diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2011-12-27 05:53:58 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-12-27 05:53:58 +0100 |
commit | b72544370aa22697cc28d4c85e642431fa591629 (patch) | |
tree | 6dea164470d6cbb27a1e65eae8bc9934e4ccf890 | |
parent | f2f8632aa5584438a09983b64c67908a96f029b9 (diff) | |
download | ffmpeg-b72544370aa22697cc28d4c85e642431fa591629.tar.gz |
mpegvideo: fix visualization buffer size.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/mpegvideo.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index 712656e0b5..5c04e9d078 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -827,15 +827,6 @@ av_cold int MPV_common_init(MpegEncContext *s) // Note the + 1 is for a quicker mpeg4 slice_end detection s->parse_context.state = -1; - if ((s->avctx->debug & (FF_DEBUG_VIS_QP | FF_DEBUG_VIS_MB_TYPE)) || - s->avctx->debug_mv) { - s->visualization_buffer[0] = av_malloc((s->mb_width * 16 + - 2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH); - s->visualization_buffer[1] = av_malloc((s->mb_width * 16 + - 2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH); - s->visualization_buffer[2] = av_malloc((s->mb_width * 16 + - 2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH); - } s->context_initialized = 1; s->thread_context[0] = s; @@ -1572,9 +1563,10 @@ void ff_print_debug_info(MpegEncContext *s, AVFrame *pict) avcodec_get_chroma_sub_sample(s->avctx->pix_fmt, &h_chroma_shift, &v_chroma_shift); for (i = 0; i < 3; i++) { - memcpy(s->visualization_buffer[i], pict->data[i], - (i == 0) ? pict->linesize[i] * height: - pict->linesize[i] * height >> v_chroma_shift); + size_t size= (i == 0) ? pict->linesize[i] * height: + pict->linesize[i] * height >> v_chroma_shift; + s->visualization_buffer[i]= av_realloc(s->visualization_buffer[i], size); + memcpy(s->visualization_buffer[i], pict->data[i], size); pict->data[i] = s->visualization_buffer[i]; } pict->type = FF_BUFFER_TYPE_COPY; |