aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpopcornmix <popcornmix@gmail.com>2017-02-15 20:23:43 +0000
committerpopcornmix <popcornmix@gmail.com>2018-02-27 20:27:20 +0000
commit68bd7fd35ae464984734b80ee141755ed6de15fd (patch)
tree397608845b29f9e4a2a2580556263aa949e6c8ad
parentdb4d5439d84308c34205346f78b95def9bea4b7a (diff)
MMALRender: Default to Bob deinterlace on Pi1
-rw-r--r--xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.cpp3
-rw-r--r--xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/MMALRenderer.h1
-rw-r--r--xbmc/cores/omxplayer/OMXVideo.cpp3
-rw-r--r--xbmc/cores/omxplayer/OMXVideo.h1
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);