Esempio n. 1
0
        public async Task ReadSimple_WmvVideo_Seek()
        {
            await UnitTestHelper.InitializeWithGrahicsAsync();

            ResourceLink videoLink = new AssemblyResourceLink(
                this.GetType().Assembly,
                "SeeingSharp.Tests.Rendering.Ressources.Videos",
                "DummyVideo.wmv");

            GDI.Bitmap bitmapFrame = null;
            using (FrameByFrameVideoReader videoReader = new FrameByFrameVideoReader(videoLink))
                using (MemoryMappedTexture32bpp actFrameBuffer = new MemoryMappedTexture32bpp(videoReader.FrameSize))
                {
                    videoReader.SetCurrentPosition(TimeSpan.FromSeconds(2.0));
                    videoReader.ReadFrame(actFrameBuffer);

                    actFrameBuffer.SetAllAlphaValuesToOne_ARGB();

                    using (bitmapFrame = GraphicsHelper.LoadBitmapFromMappedTexture(actFrameBuffer))
                    {
                        Assert.NotNull(bitmapFrame);
                        Assert.True(videoReader.CurrentPosition > TimeSpan.FromSeconds(1.9));
                        Assert.True(videoReader.CurrentPosition < TimeSpan.FromSeconds(2.1));
                        Assert.True(videoReader.Duration > TimeSpan.FromSeconds(3.9));
                        Assert.True(videoReader.Duration < TimeSpan.FromSeconds(4.1));
                        Assert.True(videoReader.IsSeekable);
                        Assert.True(
                            BitmapComparison.IsNearEqual(bitmapFrame, Properties.Resources.ReferenceImage_VideoFrameWmv_Seek));
                    }
                }
        }
        /// <summary>
        /// Loads all resources.
        /// </summary>
        /// <param name="device">The device on which to load all resources.</param>
        /// <param name="resources">The current ResourceDictionary.</param>
        protected override void LoadResourceInternal(EngineDevice device, ResourceDictionary resources)
        {
            // Prepare texture
            m_texture = GraphicsHelper.CreateCpuWritableTexture(
                device, m_videoWidth, m_videoHeight);
            m_textureView = new D3D11.ShaderResourceView(device.DeviceD3D11_1, m_texture);

            // Read the thumbnail
            m_videoReader.SetCurrentPosition(m_thumbnailTimestamp);
            m_thumbnailFrame = m_videoReader.ReadFrame();
            m_thumbnailFrame.SetAllAlphaValuesToOne_ARGB();
        }
Esempio n. 3
0
        public async Task ReadSimple_WmvVideo()
        {
            await UnitTestHelper.InitializeWithGrahicsAsync();

            ResourceLink videoLink = new AssemblyResourceLink(
                this.GetType().Assembly,
                "SeeingSharp.Tests.Rendering.Ressources.Videos",
                "DummyVideo.wmv");

            GDI.Bitmap bitmapFrame10 = null;
            using (FrameByFrameVideoReader videoReader = new FrameByFrameVideoReader(videoLink))
                using (MemoryMappedTexture32bpp actFrameBuffer = new MemoryMappedTexture32bpp(videoReader.FrameSize))
                {
                    int frameIndex = 0;
                    while (!videoReader.EndReached)
                    {
                        if (videoReader.ReadFrame(actFrameBuffer))
                        {
                            actFrameBuffer.SetAllAlphaValuesToOne_ARGB();

                            frameIndex++;
                            if (frameIndex != 10)
                            {
                                continue;
                            }

                            bitmapFrame10 = GraphicsHelper.LoadBitmapFromMappedTexture(actFrameBuffer);
                            break;
                        }
                    }

                    Assert.NotNull(bitmapFrame10);
                    Assert.True(videoReader.Duration > TimeSpan.FromSeconds(3.9));
                    Assert.True(videoReader.Duration < TimeSpan.FromSeconds(4.1));
                    Assert.True(videoReader.IsSeekable);
                    Assert.True(
                        BitmapComparison.IsNearEqual(bitmapFrame10, Properties.Resources.ReferenceImage_VideoFrameWmv));
                }
        }