Exemple #1
0
        public void Properties_ReturnNativeValues()
        {
            var presentationTimestamp = 4525;
            var width          = 5465415;
            var height         = 654312;
            var lineSize       = default(NativeIntArray);
            var lineSizeValues = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };

            lineSize.UpdateFrom(lineSizeValues);
            var data       = default(NativePointerArray);
            var dataValues = new byte *[] { (byte *)8, (byte *)7, (byte *)6, (byte *)5, (byte *)4, (byte *)3, (byte *)2, (byte *)1 };

            data.UpdateFrom(dataValues);
            var pictureType = NativeAVPictureType.AV_PICTURE_TYPE_P;
            var pixelFormat = NativeAVPixelFormat.AV_PIX_FMT_AYUV64BE;

            NativeAVFrame nativeFrame = new NativeAVFrame()
            {
                pts       = presentationTimestamp,
                width     = width,
                height    = height,
                linesize  = lineSize,
                data      = data,
                pict_type = pictureType,
                format    = (int)pixelFormat,
            };

            var ffmpegMock = new Mock <FFmpegClient>();

            ffmpegMock
            .Setup(c => c.FreeFrame(It.IsAny <IntPtr>()))
            .Verifiable();
            var ffmpegClient = ffmpegMock.Object;

            using (var frame = new AVFrame(ffmpegClient, new AVFrameHandle(ffmpegClient, &nativeFrame)))
            {
                Assert.Equal(presentationTimestamp, frame.PresentationTimestamp);
                Assert.Equal(width, frame.Width);
                Assert.Equal(height, frame.Height);
                Assert.Equal(lineSizeValues, frame.LineSize.ToArray());
                Assert.Equal(8, (int)frame.Data[0]);
                Assert.Equal(7, (int)frame.Data[1]);
                Assert.Equal(6, (int)frame.Data[2]);
                Assert.Equal(5, (int)frame.Data[3]);
                Assert.Equal(4, (int)frame.Data[4]);
                Assert.Equal(3, (int)frame.Data[5]);
                Assert.Equal(2, (int)frame.Data[6]);
                Assert.Equal(1, (int)frame.Data[7]);
                Assert.Equal(pictureType, frame.PictureType);
                Assert.Equal(pixelFormat, frame.Format);
            }

            ffmpegMock.Verify();
        }
Exemple #2
0
        public void Constuctor_GivenNativeFrame_InitializesInstance()
        {
            var ffmpegMock = new Mock <FFmpegClient>();

            NativeAVFrame frame = new NativeAVFrame()
            {
                height = 12354,
            };

            ffmpegMock
            .Setup(c => c.FreeFrame(It.IsAny <IntPtr>()))
            .Verifiable();

            using (var handle = new AVFrameHandle(ffmpegMock.Object, &frame))
            {
                Assert.Equal((int)&frame, (int)handle.DangerousGetHandle().ToPointer());
            }

            ffmpegMock.Verify();
        }