vlc | branch: master | Thomas Guillem <[email protected]> | Sat Feb 4 11:50:12 2017 +0100| [2c70d24fb6d1d306dc24f044dd1369b61d2c52b1] | committer: Thomas Guillem
videotoolbox: use visible size to configure VT Ref #17971 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2c70d24fb6d1d306dc24f044dd1369b61d2c52b1 --- modules/codec/videotoolbox.m | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/modules/codec/videotoolbox.m b/modules/codec/videotoolbox.m index ee481a7..8c92d6d 100644 --- a/modules/codec/videotoolbox.m +++ b/modules/codec/videotoolbox.m @@ -362,8 +362,8 @@ static int StartVideoToolbox(decoder_t *p_dec, block_t *p_block) &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - unsigned i_video_width = 0, i_video_visible_width = 0; - unsigned i_video_height = 0, i_video_visible_height = 0; + unsigned i_video_width = 0; + unsigned i_video_height = 0; int i_sar_den = 0; int i_sar_num = 0; @@ -436,11 +436,10 @@ static int StartVideoToolbox(decoder_t *p_dec, block_t *p_block) /* this data is more trust-worthy than what we receive * from the demuxer, so we will use it to over-write * the current values */ + unsigned h264_width, h264_height; (void) - h264_get_picture_size( p_sps_data, &i_video_width, - &i_video_height, - &i_video_visible_width, - &i_video_visible_height ); + h264_get_picture_size( p_sps_data, &h264_width, &h264_height, + &i_video_width, &i_video_height ); i_sar_den = p_sps_data->vui.i_sar_den; i_sar_num = p_sps_data->vui.i_sar_num; @@ -512,15 +511,18 @@ static int StartVideoToolbox(decoder_t *p_dec, block_t *p_block) &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); /* fallback on the demuxer if we don't have better info */ - /* FIXME ?: can't we skip temp storage using directly fmt_out */ if (i_video_width == 0) - i_video_width = p_dec->fmt_in.video.i_width; + { + i_video_width = p_dec->fmt_in.video.i_visible_width; + if (i_video_width == 0) + i_video_width = p_dec->fmt_in.video.i_width; + } if (i_video_height == 0) - i_video_height = p_dec->fmt_in.video.i_height; - if(!i_video_visible_width) - i_video_visible_width = p_dec->fmt_in.video.i_visible_width; - if(!i_video_visible_height) - i_video_visible_height = p_dec->fmt_in.video.i_visible_height; + { + i_video_height = p_dec->fmt_in.video.i_visible_height; + if (i_video_height == 0) + i_video_height = p_dec->fmt_in.video.i_height; + } if (i_sar_num == 0) i_sar_num = p_dec->fmt_in.video.i_sar_num ? p_dec->fmt_in.video.i_sar_num : 1; if (i_sar_den == 0) @@ -621,10 +623,10 @@ static int StartVideoToolbox(decoder_t *p_dec, block_t *p_block) kCVPixelBufferBytesPerRowAlignmentKey, i_video_width * 2); + p_dec->fmt_out.video.i_visible_width = p_dec->fmt_out.video.i_width = i_video_width; + p_dec->fmt_out.video.i_visible_height = p_dec->fmt_out.video.i_height = i_video_height; - p_dec->fmt_out.video.i_visible_width = i_video_visible_width; - p_dec->fmt_out.video.i_visible_height = i_video_visible_height; p_dec->fmt_out.video.i_sar_den = i_sar_den; p_dec->fmt_out.video.i_sar_num = i_sar_num; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
