mirror of
https://github.com/asticode/go-astiav.git
synced 2025-10-21 15:19:25 +08:00
Added Classer + now logs returns a Classer + tests are now done in astiav package
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
package astiav_test
|
||||
package astiav
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/asticode/go-astiav"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
@@ -15,36 +14,39 @@ func TestCodecContext(t *testing.T) {
|
||||
s1 := ss[0]
|
||||
s2 := ss[1]
|
||||
|
||||
c1 := astiav.FindDecoder(s1.CodecParameters().CodecID())
|
||||
c1 := FindDecoder(s1.CodecParameters().CodecID())
|
||||
require.NotNil(t, c1)
|
||||
cc1 := astiav.AllocCodecContext(c1)
|
||||
cc1 := AllocCodecContext(c1)
|
||||
require.NotNil(t, cc1)
|
||||
defer cc1.Free()
|
||||
err = s1.CodecParameters().ToCodecContext(cc1)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p(progressive), 320x180 [SAR 1:1 DAR 16:9], 441 kb/s", cc1.String())
|
||||
require.Equal(t, int64(441324), cc1.BitRate())
|
||||
require.Equal(t, astiav.ChromaLocationLeft, cc1.ChromaLocation())
|
||||
require.Equal(t, astiav.CodecIDH264, cc1.CodecID())
|
||||
require.Equal(t, astiav.ColorPrimariesUnspecified, cc1.ColorPrimaries())
|
||||
require.Equal(t, astiav.ColorRangeUnspecified, cc1.ColorRange())
|
||||
require.Equal(t, astiav.ColorSpaceUnspecified, cc1.ColorSpace())
|
||||
require.Equal(t, astiav.ColorTransferCharacteristicUnspecified, cc1.ColorTransferCharacteristic())
|
||||
require.Equal(t, ChromaLocationLeft, cc1.ChromaLocation())
|
||||
require.Equal(t, CodecIDH264, cc1.CodecID())
|
||||
require.Equal(t, ColorPrimariesUnspecified, cc1.ColorPrimaries())
|
||||
require.Equal(t, ColorRangeUnspecified, cc1.ColorRange())
|
||||
require.Equal(t, ColorSpaceUnspecified, cc1.ColorSpace())
|
||||
require.Equal(t, ColorTransferCharacteristicUnspecified, cc1.ColorTransferCharacteristic())
|
||||
require.Equal(t, 12, cc1.GopSize())
|
||||
require.Equal(t, 180, cc1.Height())
|
||||
require.Equal(t, astiav.Level(13), cc1.Level())
|
||||
require.Equal(t, astiav.MediaTypeVideo, cc1.MediaType())
|
||||
require.Equal(t, astiav.PixelFormatYuv420P, cc1.PixelFormat())
|
||||
require.Equal(t, astiav.ProfileH264ConstrainedBaseline, cc1.Profile())
|
||||
require.Equal(t, astiav.NewRational(1, 1), cc1.SampleAspectRatio())
|
||||
require.Equal(t, astiav.StrictStdComplianceNormal, cc1.StrictStdCompliance())
|
||||
require.Equal(t, Level(13), cc1.Level())
|
||||
require.Equal(t, MediaTypeVideo, cc1.MediaType())
|
||||
require.Equal(t, PixelFormatYuv420P, cc1.PixelFormat())
|
||||
require.Equal(t, ProfileH264ConstrainedBaseline, cc1.Profile())
|
||||
require.Equal(t, NewRational(1, 1), cc1.SampleAspectRatio())
|
||||
require.Equal(t, StrictStdComplianceNormal, cc1.StrictStdCompliance())
|
||||
require.Equal(t, 1, cc1.ThreadCount())
|
||||
require.Equal(t, astiav.ThreadType(3), cc1.ThreadType())
|
||||
require.Equal(t, ThreadType(3), cc1.ThreadType())
|
||||
require.Equal(t, 320, cc1.Width())
|
||||
cl := cc1.Class()
|
||||
require.NotNil(t, cl)
|
||||
require.Equal(t, "AVCodecContext", cl.Name())
|
||||
|
||||
c2 := astiav.FindDecoder(s2.CodecParameters().CodecID())
|
||||
c2 := FindDecoder(s2.CodecParameters().CodecID())
|
||||
require.NotNil(t, c2)
|
||||
cc2 := astiav.AllocCodecContext(c2)
|
||||
cc2 := AllocCodecContext(c2)
|
||||
require.NotNil(t, cc2)
|
||||
defer cc2.Free()
|
||||
err = s2.CodecParameters().ToCodecContext(cc2)
|
||||
@@ -52,66 +54,66 @@ func TestCodecContext(t *testing.T) {
|
||||
require.Equal(t, "Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 161 kb/s", cc2.String())
|
||||
require.Equal(t, int64(161052), cc2.BitRate())
|
||||
require.Equal(t, 2, cc2.Channels())
|
||||
require.True(t, cc2.ChannelLayout().Equal(astiav.ChannelLayoutStereo))
|
||||
require.Equal(t, astiav.CodecIDAac, cc2.CodecID())
|
||||
require.True(t, cc2.ChannelLayout().Equal(ChannelLayoutStereo))
|
||||
require.Equal(t, CodecIDAac, cc2.CodecID())
|
||||
require.Equal(t, 1024, cc2.FrameSize())
|
||||
require.Equal(t, astiav.MediaTypeAudio, cc2.MediaType())
|
||||
require.Equal(t, astiav.SampleFormatFltp, cc2.SampleFormat())
|
||||
require.Equal(t, MediaTypeAudio, cc2.MediaType())
|
||||
require.Equal(t, SampleFormatFltp, cc2.SampleFormat())
|
||||
require.Equal(t, 48000, cc2.SampleRate())
|
||||
require.Equal(t, astiav.StrictStdComplianceNormal, cc2.StrictStdCompliance())
|
||||
require.Equal(t, StrictStdComplianceNormal, cc2.StrictStdCompliance())
|
||||
require.Equal(t, 1, cc2.ThreadCount())
|
||||
require.Equal(t, astiav.ThreadType(3), cc2.ThreadType())
|
||||
require.Equal(t, ThreadType(3), cc2.ThreadType())
|
||||
|
||||
c3 := astiav.FindEncoder(astiav.CodecIDMjpeg)
|
||||
c3 := FindEncoder(CodecIDMjpeg)
|
||||
require.NotNil(t, c3)
|
||||
cc3 := astiav.AllocCodecContext(c3)
|
||||
cc3 := AllocCodecContext(c3)
|
||||
require.NotNil(t, cc3)
|
||||
defer cc3.Free()
|
||||
cc3.SetHeight(2)
|
||||
cc3.SetPixelFormat(astiav.PixelFormatYuvj420P)
|
||||
cc3.SetTimeBase(astiav.NewRational(1, 1))
|
||||
cc3.SetPixelFormat(PixelFormatYuvj420P)
|
||||
cc3.SetTimeBase(NewRational(1, 1))
|
||||
cc3.SetWidth(3)
|
||||
err = cc3.Open(c3, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
cc4 := astiav.AllocCodecContext(nil)
|
||||
cc4 := AllocCodecContext(nil)
|
||||
require.NotNil(t, cc4)
|
||||
defer cc4.Free()
|
||||
cc4.SetBitRate(1)
|
||||
cc4.SetChannelLayout(astiav.ChannelLayout21)
|
||||
cc4.SetChannelLayout(ChannelLayout21)
|
||||
cc4.SetChannels(3)
|
||||
cc4.SetFlags(astiav.NewCodecContextFlags(4))
|
||||
cc4.SetFlags2(astiav.NewCodecContextFlags2(5))
|
||||
cc4.SetFramerate(astiav.NewRational(6, 1))
|
||||
cc4.SetFlags(NewCodecContextFlags(4))
|
||||
cc4.SetFlags2(NewCodecContextFlags2(5))
|
||||
cc4.SetFramerate(NewRational(6, 1))
|
||||
cc4.SetGopSize(7)
|
||||
cc4.SetHeight(8)
|
||||
cc4.SetPixelFormat(astiav.PixelFormat0Bgr)
|
||||
cc4.SetPixelFormat(PixelFormat0Bgr)
|
||||
cc4.SetQmin(5)
|
||||
cc4.SetSampleAspectRatio(astiav.NewRational(10, 1))
|
||||
cc4.SetSampleFormat(astiav.SampleFormatDbl)
|
||||
cc4.SetSampleAspectRatio(NewRational(10, 1))
|
||||
cc4.SetSampleFormat(SampleFormatDbl)
|
||||
cc4.SetSampleRate(12)
|
||||
cc4.SetStrictStdCompliance(astiav.StrictStdComplianceExperimental)
|
||||
cc4.SetStrictStdCompliance(StrictStdComplianceExperimental)
|
||||
cc4.SetThreadCount(13)
|
||||
cc4.SetThreadType(astiav.ThreadTypeSlice)
|
||||
cc4.SetTimeBase(astiav.NewRational(15, 1))
|
||||
cc4.SetThreadType(ThreadTypeSlice)
|
||||
cc4.SetTimeBase(NewRational(15, 1))
|
||||
cc4.SetWidth(16)
|
||||
require.Equal(t, int64(1), cc4.BitRate())
|
||||
require.True(t, cc4.ChannelLayout().Equal(astiav.ChannelLayout21))
|
||||
require.True(t, cc4.ChannelLayout().Equal(ChannelLayout21))
|
||||
require.Equal(t, 3, cc4.Channels())
|
||||
require.Equal(t, astiav.NewCodecContextFlags(4), cc4.Flags())
|
||||
require.Equal(t, astiav.NewCodecContextFlags2(5), cc4.Flags2())
|
||||
require.Equal(t, astiav.NewRational(6, 1), cc4.Framerate())
|
||||
require.Equal(t, NewCodecContextFlags(4), cc4.Flags())
|
||||
require.Equal(t, NewCodecContextFlags2(5), cc4.Flags2())
|
||||
require.Equal(t, NewRational(6, 1), cc4.Framerate())
|
||||
require.Equal(t, 7, cc4.GopSize())
|
||||
require.Equal(t, 8, cc4.Height())
|
||||
require.Equal(t, astiav.PixelFormat0Bgr, cc4.PixelFormat())
|
||||
require.Equal(t, PixelFormat0Bgr, cc4.PixelFormat())
|
||||
require.Equal(t, 5, cc4.Qmin())
|
||||
require.Equal(t, astiav.NewRational(10, 1), cc4.SampleAspectRatio())
|
||||
require.Equal(t, astiav.SampleFormatDbl, cc4.SampleFormat())
|
||||
require.Equal(t, NewRational(10, 1), cc4.SampleAspectRatio())
|
||||
require.Equal(t, SampleFormatDbl, cc4.SampleFormat())
|
||||
require.Equal(t, 12, cc4.SampleRate())
|
||||
require.Equal(t, astiav.StrictStdComplianceExperimental, cc4.StrictStdCompliance())
|
||||
require.Equal(t, StrictStdComplianceExperimental, cc4.StrictStdCompliance())
|
||||
require.Equal(t, 13, cc4.ThreadCount())
|
||||
require.Equal(t, astiav.ThreadTypeSlice, cc4.ThreadType())
|
||||
require.Equal(t, astiav.NewRational(15, 1), cc4.TimeBase())
|
||||
require.Equal(t, ThreadTypeSlice, cc4.ThreadType())
|
||||
require.Equal(t, NewRational(15, 1), cc4.TimeBase())
|
||||
require.Equal(t, 16, cc4.Width())
|
||||
|
||||
// TODO Test ReceivePacket
|
||||
|
Reference in New Issue
Block a user