[vlc-commits] codec: videotoolbox: simplify CodecPrecheck
Thomas Guillem
git at videolan.org
Thu Sep 28 11:10:31 CEST 2017
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Thu Sep 28 09:00:23 2017 +0200| [99a48af34d57a7652e5e13f271c540ed048cfa26] | committer: Thomas Guillem
codec: videotoolbox: simplify CodecPrecheck
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=99a48af34d57a7652e5e13f271c540ed048cfa26
---
modules/codec/videotoolbox.m | 57 +++++++++++++++-----------------------------
1 file changed, 19 insertions(+), 38 deletions(-)
diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m
index cfa86d41cc..21fb95c8fe 100644
--- a/modules/codec/videotoolbox.m
+++ b/modules/codec/videotoolbox.m
@@ -471,17 +471,14 @@ static void OnDecodedFrame(decoder_t *p_dec, frame_info_t *p_info)
static CMVideoCodecType CodecPrecheck(decoder_t *p_dec, int *p_cvpx_chroma)
{
decoder_sys_t *p_sys = p_dec->p_sys;
- uint8_t i_profile = 0xFF, i_level = 0xFF;
- bool b_ret = false;
- CMVideoCodecType codec;
/* check for the codec we can and want to decode */
switch (p_dec->fmt_in.i_codec) {
case VLC_CODEC_H264:
- codec = kCMVideoCodecType_H264;
-
- b_ret = h264_get_profile_level(&p_dec->fmt_in, &i_profile, &i_level, NULL);
- if (!b_ret) {
+ {
+ uint8_t i_profile, i_level;
+ if (!h264_get_profile_level(&p_dec->fmt_in, &i_profile, &i_level, NULL))
+ {
msg_Warn(p_dec, "H264 profile and level parsing failed because it didn't arrive yet");
return kCMVideoCodecType_H264;
}
@@ -532,8 +529,9 @@ static CMVideoCodecType CodecPrecheck(decoder_t *p_dec, int *p_cvpx_chroma)
}
}
#endif
+ return kCMVideoCodecType_H264;
+ }
- break;
case VLC_CODEC_MP4V:
{
if (p_dec->fmt_in.i_original_fourcc == VLC_FOURCC( 'X','V','I','D' )) {
@@ -542,14 +540,11 @@ static CMVideoCodecType CodecPrecheck(decoder_t *p_dec, int *p_cvpx_chroma)
}
msg_Dbg(p_dec, "Will decode MP4V with original FourCC '%4.4s'", (char *)&p_dec->fmt_in.i_original_fourcc);
- codec = kCMVideoCodecType_MPEG4Video;
-
- break;
+ return kCMVideoCodecType_MPEG4Video;
}
#if !TARGET_OS_IPHONE
case VLC_CODEC_H263:
- codec = kCMVideoCodecType_H263;
- break;
+ return kCMVideoCodecType_H263;
/* there are no DV or ProRes decoders on iOS, so bailout early */
case VLC_CODEC_PRORES:
@@ -557,27 +552,20 @@ static CMVideoCodecType CodecPrecheck(decoder_t *p_dec, int *p_cvpx_chroma)
switch (p_dec->fmt_in.i_original_fourcc) {
case VLC_FOURCC( 'a','p','4','c' ):
case VLC_FOURCC( 'a','p','4','h' ):
- codec = kCMVideoCodecType_AppleProRes4444;
- break;
+ return kCMVideoCodecType_AppleProRes4444;
case VLC_FOURCC( 'a','p','c','h' ):
- codec = kCMVideoCodecType_AppleProRes422HQ;
- break;
+ return kCMVideoCodecType_AppleProRes422HQ;
case VLC_FOURCC( 'a','p','c','s' ):
- codec = kCMVideoCodecType_AppleProRes422LT;
- break;
+ return kCMVideoCodecType_AppleProRes422LT;
case VLC_FOURCC( 'a','p','c','o' ):
- codec = kCMVideoCodecType_AppleProRes422Proxy;
- break;
+ return kCMVideoCodecType_AppleProRes422Proxy;
default:
- codec = kCMVideoCodecType_AppleProRes422;
- break;
+ return kCMVideoCodecType_AppleProRes422;
}
- if (codec != 0)
- break;
case VLC_CODEC_DV:
/* the VT decoder can't differenciate between PAL and NTSC, so we need to do it */
@@ -585,30 +573,23 @@ static CMVideoCodecType CodecPrecheck(decoder_t *p_dec, int *p_cvpx_chroma)
case VLC_FOURCC( 'd', 'v', 'c', ' '):
case VLC_FOURCC( 'd', 'v', ' ', ' '):
msg_Dbg(p_dec, "Decoding DV NTSC");
- codec = kCMVideoCodecType_DVCNTSC;
- break;
+ return kCMVideoCodecType_DVCNTSC;
case VLC_FOURCC( 'd', 'v', 's', 'd'):
case VLC_FOURCC( 'd', 'v', 'c', 'p'):
case VLC_FOURCC( 'D', 'V', 'S', 'D'):
msg_Dbg(p_dec, "Decoding DV PAL");
- codec = kCMVideoCodecType_DVCPAL;
- break;
-
+ return kCMVideoCodecType_DVCPAL;
default:
- break;
+ return -1;
}
- if (codec != 0)
- break;
#endif
/* mpgv / mp2v needs fixing, so disable it for now */
#if 0
case VLC_CODEC_MPGV:
- codec = kCMVideoCodecType_MPEG1Video;
- break;
+ return kCMVideoCodecType_MPEG1Video;
case VLC_CODEC_MP2V:
- codec = kCMVideoCodecType_MPEG2Video;
- break;
+ return kCMVideoCodecType_MPEG2Video;
#endif
default:
@@ -618,7 +599,7 @@ static CMVideoCodecType CodecPrecheck(decoder_t *p_dec, int *p_cvpx_chroma)
return -1;
}
- return codec;
+ vlc_assert_unreachable();
}
More information about the vlc-commits
mailing list