vlc | branch: master | Thomas Guillem <tho...@gllm.fr> | Thu Apr 20 11:06:03 2017 +0200| [3d1b34a35ec6292cfa74d4772b8dc4e2786f22e9] | committer: Thomas Guillem
codec: hxxx: pf_process_block is now mandatory > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3d1b34a35ec6292cfa74d4772b8dc4e2786f22e9 --- modules/codec/hxxx_helper.c | 13 +++++++++++-- modules/codec/omxil/mediacodec.c | 4 ++-- modules/codec/videotoolbox.m | 3 ++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/modules/codec/hxxx_helper.c b/modules/codec/hxxx_helper.c index 134d4bd442..8e907db46a 100644 --- a/modules/codec/hxxx_helper.c +++ b/modules/codec/hxxx_helper.c @@ -386,6 +386,15 @@ helper_process_block_h264_annexb2avcc(struct hxxx_helper *hh, block_t *p_block, return p_block ? hxxx_AnnexB_to_xVC(p_block, hh->i_nal_length_size) : NULL; } +static block_t * +helper_process_block_dummy(struct hxxx_helper *hh, block_t *p_block, + bool *p_config_changed) +{ + (void) hh; + (void) p_config_changed; + return p_block; +} + int hxxx_helper_set_extra(struct hxxx_helper *hh, const void *p_extra, size_t i_extra) @@ -408,7 +417,7 @@ hxxx_helper_set_extra(struct hxxx_helper *hh, const void *p_extra, if (hh->b_is_xvcC) { if (hh->b_need_xvcC) - hh->pf_process_block = NULL; + hh->pf_process_block = helper_process_block_dummy; else hh->pf_process_block = helper_process_block_xvcc2annexb; } @@ -426,7 +435,7 @@ hxxx_helper_set_extra(struct hxxx_helper *hh, const void *p_extra, if (hh->b_need_xvcC) return VLC_EGENERIC; /* TODO */ else - hh->pf_process_block = NULL; + hh->pf_process_block = helper_process_block_dummy; break; default: vlc_assert_unreachable(); diff --git a/modules/codec/omxil/mediacodec.c b/modules/codec/omxil/mediacodec.c index c67278a2cf..9a557b6aa6 100644 --- a/modules/codec/omxil/mediacodec.c +++ b/modules/codec/omxil/mediacodec.c @@ -284,6 +284,7 @@ static int ParseVideoExtraH264(decoder_t *p_dec, uint8_t *p_extra, int i_extra) int i_ret = hxxx_helper_set_extra(hh, p_extra, i_extra); if (i_ret != VLC_SUCCESS) return i_ret; + assert(hh->pf_process_block != NULL); if (!hh->b_is_xvcC && p_sys->api.i_quirks & MC_API_VIDEO_QUIRKS_ADAPTIVE) { @@ -291,7 +292,6 @@ static int ParseVideoExtraH264(decoder_t *p_dec, uint8_t *p_extra, int i_extra) return VLC_SUCCESS; } - assert(hh->pf_process_block != NULL); p_sys->pf_on_new_block = VideoHXXX_OnNewBlock; if (hh->h264.i_sps_count > 0 || hh->h264.i_pps_count > 0) @@ -307,6 +307,7 @@ static int ParseVideoExtraHEVC(decoder_t *p_dec, uint8_t *p_extra, int i_extra) int i_ret = hxxx_helper_set_extra(hh, p_extra, i_extra); if (i_ret != VLC_SUCCESS) return i_ret; + assert(hh->pf_process_block != NULL); if (!hh->b_is_xvcC) { @@ -319,7 +320,6 @@ static int ParseVideoExtraHEVC(decoder_t *p_dec, uint8_t *p_extra, int i_extra) return VLC_EGENERIC; } - assert(hh->pf_process_block != NULL); p_sys->pf_on_new_block = VideoHXXX_OnNewBlock; if (hh->hevc.i_annexb_config_nal > 0) diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m index 69f7530865..4cffee2d89 100644 --- a/modules/codec/videotoolbox.m +++ b/modules/codec/videotoolbox.m @@ -789,6 +789,7 @@ static int SetupDecoderExtradata(decoder_t *p_dec) p_dec->fmt_in.i_extra); if (i_ret != VLC_SUCCESS) return i_ret; + assert(p_sys->hh.pf_process_block != NULL); if (p_dec->fmt_in.p_extra) { @@ -1284,7 +1285,7 @@ static int DecodeBlock(decoder_t *p_dec, block_t *p_block) } bool b_config_changed = false; - if (p_sys->codec == kCMVideoCodecType_H264 && p_sys->hh.pf_process_block) + if (p_sys->codec == kCMVideoCodecType_H264) { p_block = p_sys->hh.pf_process_block(&p_sys->hh, p_block, &b_config_changed); if (!p_block) _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits