[vlc-commits] omxil: Update the explanation of the OMX.SEC quirk/workaround

Martin Storsjö git at videolan.org
Wed Jan 30 12:32:19 CET 2013


vlc | branch: master | Martin Storsjö <martin at martin.st> | Wed Jan 30 12:54:06 2013 +0200| [e7eb8964eeb21894425a1c17162188f27702eaf8] | committer: Rafaël Carré

omxil: Update the explanation of the OMX.SEC quirk/workaround

Signed-off-by: Rafaël Carré <funman at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e7eb8964eeb21894425a1c17162188f27702eaf8
---

 modules/codec/omxil/omxil.c |   16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/modules/codec/omxil/omxil.c b/modules/codec/omxil/omxil.c
index c2426f8..72db1bd 100644
--- a/modules/codec/omxil/omxil.c
+++ b/modules/codec/omxil/omxil.c
@@ -512,14 +512,14 @@ static OMX_ERRORTYPE GetPortDefinition(decoder_t *p_dec, OmxPort *p_port,
                     strlen("OMX.qcom.video.decoder")))
             def->format.video.eColorFormat = OMX_QCOM_COLOR_FormatYVU420SemiPlanar;
 
-        /* Hack: Galaxy S II (stock firmware) gives a slice height larger
-         * than the video height, but this doesn't imply padding between
-         * the video planes. Nexus S also has a slice height larger than
-         * the video height, but there it actually is real padding, thus
-         * Galaxy S II is the buggy one. The Galaxy S II decoder is
-         * named OMX.SEC.avcdec while the one on Nexus S is
-         * OMX.SEC.AVC.Decoder. Thus do this for any OMX.SEC. that don't
-         * contain the string ".Decoder". */
+        /* Hack: Some Samsung devices (e.g. Galaxy S III) have multiple
+         * H264 decoders with different quirks (OMX.SEC.avc.dec, OMX.SEC.avcdec
+         * and OMX.SEC.AVC.Decoder) - the latter is well-behaved while the
+         * former ones signal padding but in practice doesn't have any padding.
+         * We can't simply ignore the buggy ones, because some devices only
+         * have that one (Galaxy S II has only got one named OMX.SEC.avcdec,
+         * at least in the pre-4.0 firmwares). Thus, we enable this quirk on
+         * any OMX.SEC. decoder that doesn't contain the string ".Decoder". */
         if(!strncmp(p_sys->psz_component, "OMX.SEC.", strlen("OMX.SEC.")) &&
            !strstr(p_sys->psz_component, ".Decoder"))
             def->format.video.nSliceHeight = 0;



More information about the vlc-commits mailing list