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(); }
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)); } }