mirror of
https://github.com/asticode/go-astiav.git
synced 2025-10-05 08:06:59 +08:00
Updated frame/packet side data Get() signature
This commit is contained in:
@@ -58,10 +58,10 @@ func (d *frameSideDataRegionsOfInterest) Add(rois []RegionOfInterest) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *frameSideDataRegionsOfInterest) Get() ([]RegionOfInterest, error) {
|
func (d *frameSideDataRegionsOfInterest) Get() ([]RegionOfInterest, bool) {
|
||||||
sd := C.av_frame_side_data_get(*d.d.sd, *d.d.size, C.AV_FRAME_DATA_REGIONS_OF_INTEREST)
|
sd := C.av_frame_side_data_get(*d.d.sd, *d.d.size, C.AV_FRAME_DATA_REGIONS_OF_INTEREST)
|
||||||
if sd == nil {
|
if sd == nil {
|
||||||
return nil, nil
|
return nil, false
|
||||||
}
|
}
|
||||||
|
|
||||||
crois := d.data(sd)
|
crois := d.data(sd)
|
||||||
@@ -75,5 +75,5 @@ func (d *frameSideDataRegionsOfInterest) Get() ([]RegionOfInterest, error) {
|
|||||||
Top: int(crois[i].top),
|
Top: int(crois[i].top),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rois, nil
|
return rois, true
|
||||||
}
|
}
|
||||||
|
@@ -24,8 +24,8 @@ func testFrameSideData(sd *FrameSideData, t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.NoError(t, sd.RegionsOfInterest().Add(rois1))
|
require.NoError(t, sd.RegionsOfInterest().Add(rois1))
|
||||||
rois2, err := sd.RegionsOfInterest().Get()
|
rois2, ok := sd.RegionsOfInterest().Get()
|
||||||
require.NoError(t, err)
|
require.True(t, ok)
|
||||||
require.Equal(t, rois1, rois2)
|
require.Equal(t, rois1, rois2)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,8 +35,8 @@ func TestFrameSideData(t *testing.T) {
|
|||||||
defer f.Free()
|
defer f.Free()
|
||||||
sd := f.SideData()
|
sd := f.SideData()
|
||||||
|
|
||||||
rois1, err := sd.RegionsOfInterest().Get()
|
rois1, ok := sd.RegionsOfInterest().Get()
|
||||||
require.NoError(t, err)
|
require.False(t, ok)
|
||||||
require.Nil(t, rois1)
|
require.Nil(t, rois1)
|
||||||
rois1 = []RegionOfInterest{
|
rois1 = []RegionOfInterest{
|
||||||
{
|
{
|
||||||
@@ -55,7 +55,7 @@ func TestFrameSideData(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.NoError(t, sd.RegionsOfInterest().Add(rois1))
|
require.NoError(t, sd.RegionsOfInterest().Add(rois1))
|
||||||
rois2, err := sd.RegionsOfInterest().Get()
|
rois2, ok := sd.RegionsOfInterest().Get()
|
||||||
require.NoError(t, err)
|
require.True(t, ok)
|
||||||
require.Equal(t, rois1, rois2)
|
require.Equal(t, rois1, rois2)
|
||||||
}
|
}
|
||||||
|
@@ -38,12 +38,16 @@ func (d *packetSideDataDisplayMatrix) Add(m *DisplayMatrix) error {
|
|||||||
return d.d.addBytes(C.AV_PKT_DATA_DISPLAYMATRIX, m.bytes())
|
return d.d.addBytes(C.AV_PKT_DATA_DISPLAYMATRIX, m.bytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *packetSideDataDisplayMatrix) Get() (*DisplayMatrix, error) {
|
func (d *packetSideDataDisplayMatrix) Get() (*DisplayMatrix, bool) {
|
||||||
b := d.d.getBytes(C.AV_PKT_DATA_DISPLAYMATRIX)
|
b := d.d.getBytes(C.AV_PKT_DATA_DISPLAYMATRIX)
|
||||||
if len(b) == 0 {
|
if len(b) == 0 {
|
||||||
return nil, nil
|
return nil, false
|
||||||
}
|
}
|
||||||
return newDisplayMatrixFromBytes(b)
|
m, err := newDisplayMatrixFromBytes(b)
|
||||||
|
if err != nil {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
return m, true
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://ffmpeg.org/doxygen/7.0/group__lavc__packet__side__data.html#gga9a80bfcacc586b483a973272800edb97a2093332d8086d25a04942ede61007f6a
|
// https://ffmpeg.org/doxygen/7.0/group__lavc__packet__side__data.html#gga9a80bfcacc586b483a973272800edb97a2093332d8086d25a04942ede61007f6a
|
||||||
@@ -63,12 +67,16 @@ func (d *packetSideDataSkipSamples) Add(ss *SkipSamples) error {
|
|||||||
return d.d.addBytes(C.AV_PKT_DATA_SKIP_SAMPLES, ss.bytes())
|
return d.d.addBytes(C.AV_PKT_DATA_SKIP_SAMPLES, ss.bytes())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *packetSideDataSkipSamples) Get() (*SkipSamples, error) {
|
func (d *packetSideDataSkipSamples) Get() (*SkipSamples, bool) {
|
||||||
b := d.d.getBytes(C.AV_PKT_DATA_SKIP_SAMPLES)
|
b := d.d.getBytes(C.AV_PKT_DATA_SKIP_SAMPLES)
|
||||||
if len(b) == 0 {
|
if len(b) == 0 {
|
||||||
return nil, nil
|
return nil, false
|
||||||
}
|
}
|
||||||
return newSkipSamplesFromBytes(b)
|
ss, err := newSkipSamplesFromBytes(b)
|
||||||
|
if err != nil {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
return ss, true
|
||||||
}
|
}
|
||||||
|
|
||||||
// https://ffmpeg.org/doxygen/7.0/group__lavc__packet__side__data.html#gad208a666db035802403ea994912a83db
|
// https://ffmpeg.org/doxygen/7.0/group__lavc__packet__side__data.html#gad208a666db035802403ea994912a83db
|
||||||
|
@@ -9,8 +9,8 @@ import (
|
|||||||
func testPacketSideData(sd *PacketSideData, t *testing.T) {
|
func testPacketSideData(sd *PacketSideData, t *testing.T) {
|
||||||
m1 := NewDisplayMatrixFromRotation(90)
|
m1 := NewDisplayMatrixFromRotation(90)
|
||||||
require.NoError(t, sd.DisplayMatrix().Add(m1))
|
require.NoError(t, sd.DisplayMatrix().Add(m1))
|
||||||
m2, err := sd.DisplayMatrix().Get()
|
m2, ok := sd.DisplayMatrix().Get()
|
||||||
require.NoError(t, err)
|
require.True(t, ok)
|
||||||
require.Equal(t, m1.Rotation(), m2.Rotation())
|
require.Equal(t, m1.Rotation(), m2.Rotation())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,17 +19,17 @@ func TestPacketSideData(t *testing.T) {
|
|||||||
defer cp.Free()
|
defer cp.Free()
|
||||||
sd := cp.SideData()
|
sd := cp.SideData()
|
||||||
|
|
||||||
m1, err := sd.DisplayMatrix().Get()
|
m1, ok := sd.DisplayMatrix().Get()
|
||||||
require.NoError(t, err)
|
require.False(t, ok)
|
||||||
require.Nil(t, m1)
|
require.Nil(t, m1)
|
||||||
m1 = NewDisplayMatrixFromRotation(90)
|
m1 = NewDisplayMatrixFromRotation(90)
|
||||||
require.NoError(t, sd.DisplayMatrix().Add(m1))
|
require.NoError(t, sd.DisplayMatrix().Add(m1))
|
||||||
m2, err := sd.DisplayMatrix().Get()
|
m2, ok := sd.DisplayMatrix().Get()
|
||||||
require.NoError(t, err)
|
require.True(t, ok)
|
||||||
require.Equal(t, m1.Rotation(), m2.Rotation())
|
require.Equal(t, m1.Rotation(), m2.Rotation())
|
||||||
|
|
||||||
ss1, err := sd.SkipSamples().Get()
|
ss1, ok := sd.SkipSamples().Get()
|
||||||
require.NoError(t, err)
|
require.False(t, ok)
|
||||||
require.Nil(t, ss1)
|
require.Nil(t, ss1)
|
||||||
ss1 = &SkipSamples{
|
ss1 = &SkipSamples{
|
||||||
ReasonEnd: 1,
|
ReasonEnd: 1,
|
||||||
@@ -38,7 +38,7 @@ func TestPacketSideData(t *testing.T) {
|
|||||||
SkipStart: 4,
|
SkipStart: 4,
|
||||||
}
|
}
|
||||||
require.NoError(t, sd.SkipSamples().Add(ss1))
|
require.NoError(t, sd.SkipSamples().Add(ss1))
|
||||||
ss2, err := sd.SkipSamples().Get()
|
ss2, ok := sd.SkipSamples().Get()
|
||||||
require.NoError(t, err)
|
require.True(t, ok)
|
||||||
require.Equal(t, ss1, ss2)
|
require.Equal(t, ss1, ss2)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user