You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
avcodec/mpegvideo_dec: Move syncing DivX-stuff to mpeg4videodec.c
It is only used by MPEG-4 (and is used in h263dec.c and can therefore not just be moved to Mpeg4DecContext...). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@ -3699,6 +3699,7 @@ static int mpeg4_update_thread_context(AVCodecContext *dst,
|
|||||||
s->enhancement_type = s1->enhancement_type;
|
s->enhancement_type = s1->enhancement_type;
|
||||||
s->scalability = s1->scalability;
|
s->scalability = s1->scalability;
|
||||||
s->intra_dc_threshold = s1->intra_dc_threshold;
|
s->intra_dc_threshold = s1->intra_dc_threshold;
|
||||||
|
s->m.divx_packed = s1->m.divx_packed;
|
||||||
s->divx_version = s1->divx_version;
|
s->divx_version = s1->divx_version;
|
||||||
s->divx_build = s1->divx_build;
|
s->divx_build = s1->divx_build;
|
||||||
s->xvid_build = s1->xvid_build;
|
s->xvid_build = s1->xvid_build;
|
||||||
@ -3714,6 +3715,19 @@ static int mpeg4_update_thread_context(AVCodecContext *dst,
|
|||||||
memcpy(s->sprite_shift, s1->sprite_shift, sizeof(s1->sprite_shift));
|
memcpy(s->sprite_shift, s1->sprite_shift, sizeof(s1->sprite_shift));
|
||||||
memcpy(s->sprite_traj, s1->sprite_traj, sizeof(s1->sprite_traj));
|
memcpy(s->sprite_traj, s1->sprite_traj, sizeof(s1->sprite_traj));
|
||||||
|
|
||||||
|
if (s1->m.bitstream_buffer) {
|
||||||
|
av_fast_padded_malloc(&s->m.bitstream_buffer,
|
||||||
|
&s->m.allocated_bitstream_buffer_size,
|
||||||
|
s1->m.bitstream_buffer_size);
|
||||||
|
if (!s->m.bitstream_buffer) {
|
||||||
|
s->m.bitstream_buffer_size = 0;
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
}
|
||||||
|
s->m.bitstream_buffer_size = s1->m.bitstream_buffer_size;
|
||||||
|
memcpy(s->m.bitstream_buffer, s1->m.bitstream_buffer,
|
||||||
|
s1->m.bitstream_buffer_size);
|
||||||
|
}
|
||||||
|
|
||||||
if (!init && s1->xvid_build >= 0)
|
if (!init && s1->xvid_build >= 0)
|
||||||
ff_xvid_idct_init(&s->m.idsp, dst);
|
ff_xvid_idct_init(&s->m.idsp, dst);
|
||||||
|
|
||||||
|
@ -136,22 +136,6 @@ int ff_mpeg_update_thread_context(AVCodecContext *dst,
|
|||||||
// B-frame info
|
// B-frame info
|
||||||
s->low_delay = s1->low_delay;
|
s->low_delay = s1->low_delay;
|
||||||
|
|
||||||
// DivX handling (doesn't work)
|
|
||||||
s->divx_packed = s1->divx_packed;
|
|
||||||
|
|
||||||
if (s1->bitstream_buffer) {
|
|
||||||
av_fast_padded_malloc(&s->bitstream_buffer,
|
|
||||||
&s->allocated_bitstream_buffer_size,
|
|
||||||
s1->bitstream_buffer_size);
|
|
||||||
if (!s->bitstream_buffer) {
|
|
||||||
s->bitstream_buffer_size = 0;
|
|
||||||
return AVERROR(ENOMEM);
|
|
||||||
}
|
|
||||||
s->bitstream_buffer_size = s1->bitstream_buffer_size;
|
|
||||||
memcpy(s->bitstream_buffer, s1->bitstream_buffer,
|
|
||||||
s1->bitstream_buffer_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
// MPEG-2/interlacing info
|
// MPEG-2/interlacing info
|
||||||
memcpy(&s->progressive_sequence, &s1->progressive_sequence,
|
memcpy(&s->progressive_sequence, &s1->progressive_sequence,
|
||||||
(char *) &s1->rtp_mode - (char *) &s1->progressive_sequence);
|
(char *) &s1->rtp_mode - (char *) &s1->progressive_sequence);
|
||||||
|
Reference in New Issue
Block a user