vlc | branch: master | Felix Paul Kühne <[email protected]> | Thu Jul 30 23:40:35 2015 +0200| [f4cb3f99196da8391ab05d351bf84b6b57d45024] | committer: Felix Paul Kühne
videotoolbox: added support for ProRes > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f4cb3f99196da8391ab05d351bf84b6b57d45024 --- modules/codec/videotoolbox.m | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m index a5b3c47..4efd2d8 100644 --- a/modules/codec/videotoolbox.m +++ b/modules/codec/videotoolbox.m @@ -156,7 +156,34 @@ static CMVideoCodecType CodecPrecheck(decoder_t *p_dec) break; #if !TARGET_OS_IPHONE - /* there are no DV decoders on iOS, so bailout early */ + /* there are no DV or ProRes decoders on iOS, so bailout early */ + case VLC_CODEC_PRORES: + /* the VT decoder can't differenciate between the ProRes flavors, so we do it */ + 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; + + case VLC_FOURCC( 'a','p','c','h' ): + codec = kCMVideoCodecType_AppleProRes422HQ; + break; + + case VLC_FOURCC( 'a','p','c','s' ): + codec = kCMVideoCodecType_AppleProRes422LT; + break; + + case VLC_FOURCC( 'a','p','c','o' ): + codec = kCMVideoCodecType_AppleProRes422Proxy; + break; + + default: + codec = kCMVideoCodecType_AppleProRes422; + break; + } + if (codec != 0) + break; + case VLC_CODEC_DV: /* the VT decoder can't differenciate between PAL and NTSC, so we need to do it */ switch (p_dec->fmt_in.i_original_fourcc) { @@ -234,9 +261,9 @@ static int StartVideoToolbox(decoder_t *p_dec, block_t *p_block) /* Do a late opening if there is no extra data and no valid video size */ if ((p_dec->fmt_in.video.i_width == 0 || p_dec->fmt_in.video.i_height == 0 || p_dec->fmt_in.i_extra == 0) && p_block == NULL) { - msg_Err(p_dec, "waiting for H264 SPS/PPS, extra data %i", p_dec->fmt_in.i_extra); + msg_Dbg(p_dec, "waiting for H264 SPS/PPS, will start late"); - return VLC_SUCCESS; // return VLC_GENERIC to leave the waiting to someone else + return VLC_SUCCESS; } uint32_t size; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
