diff options
author | popcornmix <popcornmix@gmail.com> | 2017-02-15 20:23:43 +0000 |
---|---|---|
committer | popcornmix <popcornmix@gmail.com> | 2018-02-27 20:27:20 +0000 |
commit | 68bd7fd35ae464984734b80ee141755ed6de15fd (patch) | |
tree | 397608845b29f9e4a2a2580556263aa949e6c8ad | |
parent | db4d5439d84308c34205346f78b95def9bea4b7a (diff) |
MMALRender: Default to Bob deinterlace on Pi1
4 files changed, 6 insertions, 2 deletions
diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp index 6f1cbd873e..57f5dace53 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp @@ -598,6 +598,7 @@ CMMALRenderer::CMMALRenderer() : CThread("MMALRenderer"), m_processThread(this, m_deint_aligned_height = 0; m_cachedSourceRect.SetRect(0, 0, 0, 0); m_cachedDestRect.SetRect(0, 0, 0, 0); + m_isPi1 = g_RBP.RaspberryPiVersion() == 1; m_queue_process = mmal_queue_create(); m_processThread.Create(); @@ -740,7 +741,7 @@ void CMMALRenderer::Run() { interlace_method = VS_INTERLACEMETHOD_MMAL_ADVANCED; // avoid advanced deinterlace when using software decode and HD resolution - if (omvb->m_state == MMALStateFFDec && omvb->Width() * omvb->Height() > 720*576) + if ((omvb->m_state == MMALStateFFDec || m_isPi1) && omvb->Width() * omvb->Height() > 720*576) interlace_method = VS_INTERLACEMETHOD_MMAL_BOB; } bool interlace = (omvb->mmal_buffer->flags & MMAL_BUFFER_HEADER_VIDEO_FLAG_INTERLACED) ? true:false; diff --git a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h index 23e4bef0f8..8bac073242 100644 --- a/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h +++ b/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h @@ -190,6 +190,7 @@ protected: RENDER_STEREO_MODE m_video_stereo_mode; RENDER_STEREO_MODE m_display_stereo_mode; bool m_StereoInvert; + bool m_isPi1; CCriticalSection m_sharedSection; MMAL_COMPONENT_T *m_vout; diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp index 2647d74e0d..346d1fc6f4 100644 --- a/xbmc/cores/omxplayer/OMXVideo.cpp +++ b/xbmc/cores/omxplayer/OMXVideo.cpp @@ -82,6 +82,7 @@ COMXVideo::COMXVideo(CRenderManager& renderManager, CProcessInfo &processInfo) : m_settings_changed = false; m_setStartTime = false; m_transform = OMX_DISPLAY_ROT0; + m_isPi1 = g_RBP.RaspberryPiVersion() == 1; } COMXVideo::~COMXVideo() @@ -232,7 +233,7 @@ bool COMXVideo::PortSettingsChanged(ResolutionUpdateInfo &resinfo) EINTERLACEMETHOD interlace_method = m_processInfo.GetVideoSettings().m_InterlaceMethod; if (interlace_method == VS_INTERLACEMETHOD_AUTO) - interlace_method = VS_INTERLACEMETHOD_MMAL_ADVANCED; + interlace_method = m_isPi1 ? VS_INTERLACEMETHOD_MMAL_BOB : VS_INTERLACEMETHOD_MMAL_ADVANCED; if (m_deinterlace && interlace_method != VS_INTERLACEMETHOD_NONE) { diff --git a/xbmc/cores/omxplayer/OMXVideo.h b/xbmc/cores/omxplayer/OMXVideo.h index f26a0031fb..45eaa7021e 100644 --- a/xbmc/cores/omxplayer/OMXVideo.h +++ b/xbmc/cores/omxplayer/OMXVideo.h @@ -109,6 +109,7 @@ protected: bool m_failed_eos; OMX_DISPLAYTRANSFORMTYPE m_transform; bool m_settings_changed; + bool m_isPi1; CRenderManager& m_renderManager; CProcessInfo& m_processInfo; static bool NaluFormatStartCodes(enum AVCodecID codec, uint8_t *in_extradata, int in_extrasize); |