[vlc-commits] mediacodec: remove mp4v I-Frame parsing

Thomas Guillem git at videolan.org
Thu Jun 23 19:56:59 CEST 2016


vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Thu Jun 23 19:17:16 2016 +0200| [5de88369c06d670faeec86aecb11494947424e51] | committer: Thomas Guillem

mediacodec: remove mp4v I-Frame parsing

Bad idea and implemented poorly (yes by me).

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

 modules/codec/omxil/mediacodec.c |   37 -------------------------------------
 1 file changed, 37 deletions(-)

diff --git a/modules/codec/omxil/mediacodec.c b/modules/codec/omxil/mediacodec.c
index 9f82dde..d8c2204 100644
--- a/modules/codec/omxil/mediacodec.c
+++ b/modules/codec/omxil/mediacodec.c
@@ -122,7 +122,6 @@ struct decoder_sys_t
             int i_pixel_format;
             uint8_t i_nal_length_size;
             size_t i_h264_profile;
-            bool b_first_mp4v_iframe;
             /* stores the inflight picture for each output buffer or NULL */
             picture_sys_t** pp_inflight_pictures;
             unsigned int i_inflight_pictures;
@@ -150,7 +149,6 @@ static void CloseDecoder(vlc_object_t *);
 static int Video_OnNewBlock(decoder_t *, block_t **, int *);
 static int VideoH264_OnNewBlock(decoder_t *, block_t **, int *);
 static int VideoHEVC_OnNewBlock(decoder_t *, block_t **, int *);
-static int VideoMP4V_OnNewBlock(decoder_t *, block_t **, int *);
 static int VideoVC1_OnNewBlock(decoder_t *, block_t **, int *);
 static void Video_OnFlush(decoder_t *);
 static int Video_ProcessOutput(decoder_t *, mc_api_out *, picture_t **, block_t **);
@@ -714,9 +712,6 @@ static int OpenDecoder(vlc_object_t *p_this, pf_MediaCodecApi_init pf_init)
         case VLC_CODEC_HEVC:
             p_sys->pf_on_new_block = VideoHEVC_OnNewBlock;
             break;
-        case VLC_CODEC_MP4V:
-            p_sys->pf_on_new_block = VideoMP4V_OnNewBlock;
-            break;
         case VLC_CODEC_VC1:
             p_sys->pf_on_new_block = VideoVC1_OnNewBlock;
             break;
@@ -1602,38 +1597,6 @@ static int VideoHEVC_OnNewBlock(decoder_t *p_dec, block_t **pp_block,
     return Video_OnNewBlock(p_dec, pp_block, p_flags);
 }
 
-static int VideoMP4V_OnNewBlock(decoder_t *p_dec, block_t **pp_block,
-                                int *p_flags)
-{
-    decoder_sys_t *p_sys = p_dec->p_sys;
-    block_t *p_block = *pp_block;
-
-    /* The first input sent to MediaCodec must be an I-Frame */
-    if (!p_sys->u.video.b_first_mp4v_iframe)
-    {
-        if ((p_block->i_flags & BLOCK_FLAG_TYPE_I))
-            p_sys->u.video.b_first_mp4v_iframe = true;
-        else
-        {
-            static const uint8_t p_mp4v_startcode[3] = {0x00, 0x00, 0x01};
-
-            if (p_block->i_buffer > 6
-             && memcmp(p_mp4v_startcode, p_block->p_buffer, 3) == 0
-             && p_block->p_buffer[3] == 0xb6)
-            {
-                bs_t s;
-                bs_init(&s, &p_block->p_buffer[4], 2);
-                if (bs_read(&s, 2) == 0)
-                    p_sys->u.video.b_first_mp4v_iframe = true;
-            }
-        }
-        if (!p_sys->u.video.b_first_mp4v_iframe)
-             return 0; /* Drop current block */
-    }
-
-    return Video_OnNewBlock(p_dec, pp_block, p_flags);
-}
-
 static int VideoVC1_OnNewBlock(decoder_t *p_dec, block_t **pp_block,
                                int *p_flags)
 {



More information about the vlc-commits mailing list