mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
avcodec/mpegvideo_dec: Don't alloc framesize-bufs in update_thread_ctx
It is always allocated in ff_mpv_frame_start(), so the only reason to put it into ff_mpeg_update_thread_context() would be for the case that a frame-threaded decoder that supports coded fields implements frame-threading. The only mpegvideo-decoders supporting coded fields are MPEG-1/2 and VC-1. The latter's bitstream requires both coded fields to be part of the same access unit/packet, so that every frame thread will always call ff_mpv_frame_start() itself. The former only "need" the framesize buffers when using lowres. If MPEG-1/2 gains frame-threading, one could either perform framesize allocation in its update_thread_context or when starting a field. (Given that the next packet may trigger a reinitialization due to a frame size change, it was possible for the buffers that were allocated here to be thrown away unused.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
ba341be095
commit
39660bf964
@ -160,14 +160,6 @@ int ff_mpeg_update_thread_context(AVCodecContext *dst,
|
||||
s1->bitstream_buffer_size);
|
||||
}
|
||||
|
||||
// linesize-dependent scratch buffer allocation
|
||||
ret = ff_mpv_framesize_alloc(s->avctx, &s->sc, s1->linesize);
|
||||
if (ret < 0) {
|
||||
av_log(s->avctx, AV_LOG_ERROR, "Failed to allocate context "
|
||||
"scratch buffers.\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
// MPEG-2/interlacing info
|
||||
memcpy(&s->progressive_sequence, &s1->progressive_sequence,
|
||||
(char *) &s1->rtp_mode - (char *) &s1->progressive_sequence);
|
||||
|
Loading…
Reference in New Issue
Block a user