diff options
-rw-r--r-- | libavcodec/mpegvideo.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index f81e357a52..10ace8dfdb 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -765,15 +765,6 @@ fail: return ret; } -static void exchange_uv(MpegEncContext *s) -{ - int16_t (*tmp)[64]; - - tmp = s->pblocks[4]; - s->pblocks[4] = s->pblocks[5]; - s->pblocks[5] = tmp; -} - static int init_duplicate_context(MpegEncContext *s) { int y_size = s->b8_stride * (2 * s->mb_height + 1); @@ -804,8 +795,13 @@ static int init_duplicate_context(MpegEncContext *s) for (i = 0; i < 12; i++) { s->pblocks[i] = &s->block[i]; } - if (s->avctx->codec_tag == AV_RL32("VCR2")) - exchange_uv(s); + if (s->avctx->codec_tag == AV_RL32("VCR2")) { + // exchange uv + int16_t (*tmp)[64]; + tmp = s->pblocks[4]; + s->pblocks[4] = s->pblocks[5]; + s->pblocks[5] = tmp; + } if (s->out_format == FMT_H263) { /* ac values */ @@ -880,8 +876,13 @@ int ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src) for (i = 0; i < 12; i++) { dst->pblocks[i] = &dst->block[i]; } - if (dst->avctx->codec_tag == AV_RL32("VCR2")) - exchange_uv(dst); + if (dst->avctx->codec_tag == AV_RL32("VCR2")) { + // exchange uv + int16_t (*tmp)[64]; + tmp = dst->pblocks[4]; + dst->pblocks[4] = dst->pblocks[5]; + dst->pblocks[5] = tmp; + } if (!dst->edge_emu_buffer && (ret = frame_size_alloc(dst, dst->linesize)) < 0) { av_log(dst->avctx, AV_LOG_ERROR, "failed to allocate context " |