1
0
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:
Andreas Rheinhardt
2025-02-24 17:47:22 +01:00
parent 4c0960e968
commit 9202179754
2 changed files with 14 additions and 16 deletions

View File

@ -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);

View File

@ -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);