public RtspPlayer(EDecoderType decoderType, EVideoRendererType videoRendererType) { _decoderType = decoderType; _videoRendererType = videoRendererType; _d3dImage.IsFrontBufferAvailableChanged += IsFrontBufferAvailableChanged; _image.Source = _d3dImage; Loaded += RtspPlayer_Loaded; Content = _image; }
public DirectShowSession(RtspPlayer player, String rtspUrl, IntPtr hwnd, EDecoderType decoderType, EVideoRendererType videoRendererType) { _player = player; _rtspUrl = rtspUrl; _hwnd = hwnd; _decoderType = decoderType; _videoRendererType = videoRendererType; _workerThread = new Thread(WorkerThread); _workerThread.Start(); }
private IBaseFilter GetDecoderFilter(EDecoderType decoderType) { switch (decoderType) { case EDecoderType.LAVVideo: var videoDecoder = (IBaseFilter) new LAVVideo(); var lavVideoSettings = videoDecoder as ILAVVideoSettings; if (lavVideoSettings != null) { lavVideoSettings.SetRuntimeConfig(true); lavVideoSettings.SetNumThreads(1); // If Presenter doesnt support DXVA2 than it fallbacks to avcodec lavVideoSettings.SetHWAccel(LAVHWAccel.HWAccel_DXVA2Native); } return(videoDecoder); case EDecoderType.MicrosoftVideoDecoder: return((IBaseFilter) new MicrosoftVideoDecoder()); } return(null); }
private IBaseFilter GetDecoderFilter(EDecoderType decoderType) { switch(decoderType) { case EDecoderType.LAVVideo: var videoDecoder = (IBaseFilter)new LAVVideo(); var lavVideoSettings = videoDecoder as ILAVVideoSettings; if (lavVideoSettings != null) { lavVideoSettings.SetRuntimeConfig(true); lavVideoSettings.SetNumThreads(1); // If Presenter doesnt support DXVA2 than it fallbacks to avcodec lavVideoSettings.SetHWAccel(LAVHWAccel.HWAccel_DXVA2Native); } return videoDecoder; case EDecoderType.MicrosoftVideoDecoder: return (IBaseFilter) new MicrosoftVideoDecoder(); } return null; }