mirror of
https://github.com/asticode/go-astiav.git
synced 2025-11-01 12:02:48 +08:00
Added format context find best stream + compare timestamps
This commit is contained in:
@@ -35,6 +35,16 @@ func TestFormatContext(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "v=0\r\no=- 0 0 IN IP4 127.0.0.1\r\ns=Big Buck Bunny\r\nt=0 0\r\na=tool:libavformat 61.1.100\r\nm=video 0 RTP/AVP 96\r\nb=AS:441\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0LADasgKDPz4CIAAAMAAgAAAwBhHihUkA==,aM48gA==; profile-level-id=42C00D\r\na=control:streamid=0\r\nm=audio 0 RTP/AVP 97\r\nb=AS:161\r\na=rtpmap:97 MPEG4-GENERIC/48000/2\r\na=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=1190\r\na=control:streamid=1\r\n", sdp)
|
||||
|
||||
_, _, err = fc1.FindBestStream(MediaTypeUnknown, -1, -1)
|
||||
require.Error(t, err)
|
||||
s2, c1, err := fc1.FindBestStream(MediaTypeVideo, -1, -1)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, s1.Index(), s2.Index())
|
||||
require.Equal(t, s1.CodecParameters().CodecID(), c1.ID())
|
||||
s2, c1, err = fc1.FindBestStream(MediaTypeAudio, 1, 0)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, 1, s2.Index())
|
||||
|
||||
fc2, err := AllocOutputFormatContext(nil, "mp4", "")
|
||||
require.NoError(t, err)
|
||||
defer fc2.Free()
|
||||
@@ -43,20 +53,20 @@ func TestFormatContext(t *testing.T) {
|
||||
fc3 := AllocFormatContext()
|
||||
require.NotNil(t, fc3)
|
||||
defer fc3.Free()
|
||||
c, err := OpenIOContext("testdata/video.mp4", NewIOContextFlags(IOContextFlagRead))
|
||||
io, err := OpenIOContext("testdata/video.mp4", NewIOContextFlags(IOContextFlagRead))
|
||||
require.NoError(t, err)
|
||||
defer c.Close() //nolint:errcheck
|
||||
fc3.SetPb(c)
|
||||
defer io.Close() //nolint:errcheck
|
||||
fc3.SetPb(io)
|
||||
fc3.SetStrictStdCompliance(StrictStdComplianceExperimental)
|
||||
fc3.SetFlags(NewFormatContextFlags(FormatContextFlagAutoBsf))
|
||||
require.NotNil(t, fc3.Pb())
|
||||
require.Equal(t, StrictStdComplianceExperimental, fc3.StrictStdCompliance())
|
||||
require.True(t, fc3.Flags().Has(FormatContextFlagAutoBsf))
|
||||
s2 := fc3.NewStream(nil)
|
||||
require.NotNil(t, s2)
|
||||
s3 := fc3.NewStream(nil)
|
||||
require.NotNil(t, s3)
|
||||
require.Equal(t, 1, s3.Index())
|
||||
s4 := fc3.NewStream(nil)
|
||||
require.NotNil(t, s4)
|
||||
require.Equal(t, 1, s4.Index())
|
||||
|
||||
d := NewDictionary()
|
||||
d.Set("k", "v", 0)
|
||||
|
||||
Reference in New Issue
Block a user