public void Id_ReturnsNativeId() { var nativeCodec = new NativeAVCodec { id = AVCodecID.AV_CODEC_ID_4XM, }; var ffmpegMock = new Mock <FFmpegClient>(); var ffmpegClient = ffmpegMock.Object; var codecContext = new NativeAVCodecContext { }; var codec = new AVCodec(ffmpegClient, &codecContext, &nativeCodec); Assert.Equal(AVCodecID.AV_CODEC_ID_4XM, codec.Id); }
public void Capabilities_ReturnsNativeCapabilities() { var capabilities = AVCodecCapabilities.DR1 | AVCodecCapabilities.Delay | AVCodecCapabilities.Threads | AVCodecCapabilities.SliceThreads; var nativeCodec = new NativeAVCodec { capabilities = (int)capabilities, }; var ffmpegMock = new Mock <FFmpegClient>(); var ffmpegClient = ffmpegMock.Object; var codecContext = new NativeAVCodecContext { }; var codec = new AVCodec(ffmpegClient, &codecContext, &nativeCodec); Assert.Equal(capabilities, codec.Capabilities); }
public void AVCodec_InitializesInstance() { var nativeCodec = new NativeAVCodec() { capabilities = (int)AVCodecCapabilities.Truncated, }; var ffmpegMock = new Mock <FFmpegClient>(); ffmpegMock .Setup(c => c.FindDecoder(AVCodecID.AV_CODEC_ID_H264)) .Returns((IntPtr)(&nativeCodec)) .Verifiable(); var codecParameters = new NativeAVCodecParameters { codec_type = NativeAVMediaType.AVMEDIA_TYPE_VIDEO, codec_id = AVCodecID.AV_CODEC_ID_H264, }; var nativeCodecContext = new NativeAVCodecContext() { codec_id = AVCodecID.AV_CODEC_ID_H264, }; #pragma warning disable CS0618 // Type or member is obsolete var nativeStream = new NativeAVStream { codecpar = &codecParameters, codec = &nativeCodecContext, }; var stream = new AVStream(&nativeStream); var ffmpeg = ffmpegMock.Object; var codec = new AVCodec(ffmpeg, stream); Assert.Equal((int)AVCodecCapabilities.Truncated, stream.CodecContext->flags); #pragma warning restore CS0618 // Type or member is obsolete }
public void IsEncoder_ReturnsNativeIsDecoder() { var name = new byte[] { (byte)'t', (byte)'e', (byte)'s', (byte)'t' }; fixed(byte *p = name) { var nativeCodec = new NativeAVCodec { }; var ffmpegMock = new Mock <FFmpegClient>(); var ffmpegClient = ffmpegMock.Object; var codecContext = new NativeAVCodecContext { }; var codec = new AVCodec(ffmpegClient, &codecContext, &nativeCodec); Assert.False(codec.IsDecoder); } }
public void Name_ReturnsNativeName() { var name = new byte[] { (byte)'t', (byte)'e', (byte)'s', (byte)'t' }; fixed(byte *p = name) { var nativeCodec = new NativeAVCodec { name = p, }; var ffmpegMock = new Mock <FFmpegClient>(); var ffmpegClient = ffmpegMock.Object; var codecContext = new NativeAVCodecContext { }; var codec = new AVCodec(ffmpegClient, &codecContext, &nativeCodec); Assert.Equal("test", codec.Name); } }