Module: libav Branch: release/0.8 Commit: 371659d1ad71cac41732c5d9d7a32ee1cf173c95
Author: Martin Storsjö <[email protected]> Committer: Luca Barbato <[email protected]> Date: Tue Sep 24 12:02:39 2013 +0300 mpegvideo: Initialize chroma_*_shift and codec_tag even if the size is 0 This fixes breakage in a few fate tests on certain setups (that for some reason didn't break on OS X) after the previous commit (8812a8057). Currently, some video streams are initialized in ff_MPV_common_init with width/height set at 0 and only changed to a proper video size with ff_MPV_common_frame_size_change later. The breakage was diagnosed by Anton Khirnov. Signed-off-by: Martin Storsjö <[email protected]> --- libavcodec/mpegvideo.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index fa89886..8df3061 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -696,6 +696,15 @@ av_cold int MPV_common_init(MpegEncContext *s) s->flags = s->avctx->flags; s->flags2 = s->avctx->flags2; + /* set chroma shifts */ + avcodec_get_chroma_sub_sample(s->avctx->pix_fmt, &s->chroma_x_shift, + &s->chroma_y_shift); + + /* convert fourcc to upper case */ + s->codec_tag = avpriv_toupper4(s->avctx->codec_tag); + + s->stream_codec_tag = avpriv_toupper4(s->avctx->stream_codec_tag); + if (s->width && s->height) { s->mb_width = (s->width + 15) / 16; s->mb_stride = s->mb_width + 1; @@ -704,10 +713,6 @@ av_cold int MPV_common_init(MpegEncContext *s) mb_array_size = s->mb_height * s->mb_stride; mv_table_size = (s->mb_height + 2) * s->mb_stride + 1; - /* set chroma shifts */ - avcodec_get_chroma_sub_sample(s->avctx->pix_fmt, &s->chroma_x_shift, - &s->chroma_y_shift); - /* set default edge pos, will be overriden * in decode_header if needed */ s->h_edge_pos = s->mb_width * 16; @@ -726,11 +731,6 @@ av_cold int MPV_common_init(MpegEncContext *s) c_size = s->mb_stride * (s->mb_height + 1); yc_size = y_size + 2 * c_size; - /* convert fourcc to upper case */ - s->codec_tag = avpriv_toupper4(s->avctx->codec_tag); - - s->stream_codec_tag = avpriv_toupper4(s->avctx->stream_codec_tag); - s->avctx->coded_frame = (AVFrame *)&s->current_picture; FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int), _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
