unsafe void OnpDisplay(void *opaque, void *picture) { lock (m_lock) { try { m_frameRate++; if (m_callback != null) { PlanarFrame pf = GetFrame(); m_callback(pf); } } catch (Exception ex) { if (m_excHandler != null) { m_excHandler(ex); } else { throw; } } } }
unsafe void OnpDisplay(void *opaque, void *picture) { lock (m_lock) { try { m_frameRate++; for (int i = 0; i < m_pixelData.Sizes.Length; i++) { m_planes[i] = new IntPtr(m_pixelData.Data[i]); } if (m_callback != null) { PlanarFrame pf = GetFrame(); m_callback(pf); } } catch (Exception ex) { if (m_excHandler != null) { m_excHandler(ex); } else { throw ex; } } } }
private void OnNewFrameCallbackEx(PlanarFrame frame) { Monitor.Enter(_lockStateModif); try { /* * data.Data = frame.Planes[0]; * data.DataSize = frame.Lenghts[0]; * data.PTS = frameCounter++ * MicroSecondsBetweenFrame; * * InputMedia.AddFrame(data); // DTS ramane pe default ( -1 ) * * for (int i = 0; i < frame.Planes.Length; frame.Planes[i++] = IntPtr.Zero) ;*/ //if (/*m_inputMedia.PendingFramesCount == 10 && */!Player.IsPlaying) { Player.Play(); } data = new FrameData() { Data = frame.Planes[0], DataSize = frame.Lenghts[0], DTS = -1, PTS = frameCounter++ *MicroSecondsBetweenFrame }; InputMedia.AddFrame(data); //data. //InputMedia.AddFrame(new FrameData() { Data = frame.Planes[1], DataSize = frame.Lenghts[1], DTS = -1, PTS = frameCounter++ * MicroSecondsBetweenFrame }); //InputMedia.AddFrame(new FrameData() { Data = frame.Planes[2], DataSize = frame.Lenghts[2], DTS = -1, PTS = frameCounter++ * MicroSecondsBetweenFrame }); } finally { Monitor.Exit(_lockStateModif); } }
private void OnNewFrame(PlanarFrame frame) { Marshal.Copy(frame.Planes[0], m_ptr_buffer, 0, m_format.Width * m_format.Height); Marshal.Copy(frame.Planes[2], m_ptr_buffer, m_format.Width * m_format.Height, m_format.Width * m_format.Height / 4); Marshal.Copy(frame.Planes[1], m_ptr_buffer, m_format.Width * m_format.Height + m_format.Width * m_format.Height / 4, m_format.Width * m_format.Height / 4); IntPtr ptr = Marshal.UnsafeAddrOfPinnedArrayElement(m_ptr_buffer, 0); this.d3dSource.Render(ptr); }
private void OnNewFrameCallback(PlanarFrame frame) { data.Data = frame.Planes[0]; data.DataSize = frame.Lenghts[0]; data.PTS = frameCounter++ *MicroSecondsBetweenFrame; m_inputMedia.AddFrame(data); if (/*m_inputMedia.PendingFramesCount == 10 && */ !m_renderPlayer.IsPlaying) { m_renderPlayer.Play(); } }
unsafe void OnpDisplay(void *opaque, void *picture) { lock (m_lock) { m_frameRate++; for (int i = 0; i < m_pixelData.Sizes.Length; i++) { m_planes[i] = new IntPtr(m_pixelData.Data[i]); } if (m_callback != null) { PlanarFrame pf = GetFrame(); m_callback(pf); } } }
private unsafe void OnNewFrameCallback(PlanarFrame frame) { if (m_firstFrameTS == 0) m_firstFrameTS = m_factory.Clock; data.Data = frame.Planes[0]; data.DataSize = frame.Lenghts[0]; data.PTS = m_factory.Clock - m_firstFrameTS; m_inputMedia.AddFrame(VIDEO_ID, data); if (/*m_inputMedia.PendingFramesCount == 10 &&*/ !m_renderPlayer.IsPlaying) { m_renderPlayer.Open(m_inputMedia); m_renderPlayer.Mute = false; m_renderPlayer.Volume = 100; m_renderPlayer.Play(); } }