summaryrefslogtreecommitdiffstats
path: root/main/vlc/0004-omxil-bcm-h264-Don-t-wait-for-error-free-frame.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/vlc/0004-omxil-bcm-h264-Don-t-wait-for-error-free-frame.patch')
-rw-r--r--main/vlc/0004-omxil-bcm-h264-Don-t-wait-for-error-free-frame.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/main/vlc/0004-omxil-bcm-h264-Don-t-wait-for-error-free-frame.patch b/main/vlc/0004-omxil-bcm-h264-Don-t-wait-for-error-free-frame.patch
new file mode 100644
index 000000000..502f9671c
--- /dev/null
+++ b/main/vlc/0004-omxil-bcm-h264-Don-t-wait-for-error-free-frame.patch
@@ -0,0 +1,56 @@
+From 18cbe9639c57d5d3cc676909c64acd89997bcac3 Mon Sep 17 00:00:00 2001
+From: Julian Scheel <julian@jusst.de>
+Date: Thu, 12 Sep 2013 10:14:13 +0200
+Subject: [PATCH] omxil: bcm: h264: Don't wait for error free frame.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The bcm h264 decoder is not able to detect when the first error free frame has
+been decoded for certain h264 streams. To avoid not getting any frames out of
+the decoder, disable the StartWithValidFrame flag until that is fixed at bcm.
+See https://github.com/huceke/omxplayer/issues/96 for details.
+
+Signed-off-by: Julian Scheel <julian@jusst.de>
+Signed-off-by: Martin Storsjö <martin@martin.st>
+---
+ modules/codec/omxil/omxil.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/modules/codec/omxil/omxil.c b/modules/codec/omxil/omxil.c
+index 0fafedf..da86e23 100644
+--- a/modules/codec/omxil/omxil.c
++++ b/modules/codec/omxil/omxil.c
+@@ -50,6 +50,7 @@
+ /* Defined in the broadcom version of OMX_Index.h */
+ #define OMX_IndexConfigRequestCallback 0x7f000063
+ #define OMX_IndexParamBrcmPixelAspectRatio 0x7f00004d
++#define OMX_IndexParamBrcmVideoDecodeErrorConcealment 0x7f000080
+
+ /* Defined in the broadcom version of OMX_Core.h */
+ #define OMX_EventParamOrConfigChanged 0x7F000001
+@@ -745,6 +746,21 @@ static OMX_ERRORTYPE InitialiseComponent(decoder_t *p_dec,
+ if(omx_error != OMX_ErrorNone) goto error;
+ }
+
++ if(!strncmp(p_sys->psz_component, "OMX.broadcom.", 13) &&
++ p_sys->in.p_fmt->i_codec == VLC_CODEC_H264)
++ {
++ OMX_PARAM_BRCMVIDEODECODEERRORCONCEALMENTTYPE concanParam;
++ OMX_INIT_STRUCTURE(concanParam);
++ concanParam.bStartWithValidFrame = OMX_FALSE;
++
++ omx_error = OMX_SetParameter(omx_handle,
++ OMX_IndexParamBrcmVideoDecodeErrorConcealment, &concanParam);
++ if (omx_error == OMX_ErrorNone)
++ msg_Dbg(p_dec, "StartWithValidFrame disabled.");
++ else
++ msg_Dbg(p_dec, "Could not disable StartWithValidFrame.");
++ }
++
+ /* Allocate our array for the omx buffers and enable ports */
+ for(i = 0; i < p_sys->ports; i++)
+ {
+--
+1.8.5.2
+