You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
avcodec/mpeg12enc: Move resetting last_dc to encoder
The MPEG-1/2 encoders are the only non-intra-only mpegvideo encoders that want last_dc reset when encoding non-intra macroblocks. Therefore move resetting it to mpeg12enc.c. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
@ -1067,6 +1067,8 @@ static av_always_inline void mpeg1_encode_mb_internal(MpegEncContext *s,
|
|||||||
void ff_mpeg1_encode_mb(MpegEncContext *s, int16_t block[8][64],
|
void ff_mpeg1_encode_mb(MpegEncContext *s, int16_t block[8][64],
|
||||||
int motion_x, int motion_y)
|
int motion_x, int motion_y)
|
||||||
{
|
{
|
||||||
|
if (!s->mb_intra)
|
||||||
|
s->last_dc[0] = s->last_dc[1] = s->last_dc[2] = 128 << s->intra_dc_precision;
|
||||||
if (s->chroma_format == CHROMA_420)
|
if (s->chroma_format == CHROMA_420)
|
||||||
mpeg1_encode_mb_internal(s, block, motion_x, motion_y, 6, 1);
|
mpeg1_encode_mb_internal(s, block, motion_x, motion_y, 6, 1);
|
||||||
else
|
else
|
||||||
|
@ -66,10 +66,6 @@ void mpv_reconstruct_mb_internal(MpegEncContext *s, int16_t block[12][64],
|
|||||||
if (is_mpeg12 != DEFINITELY_MPEG12_H261 && (s->h263_pred || s->h263_aic)) {
|
if (is_mpeg12 != DEFINITELY_MPEG12_H261 && (s->h263_pred || s->h263_aic)) {
|
||||||
if (s->mbintra_table[mb_xy])
|
if (s->mbintra_table[mb_xy])
|
||||||
ff_clean_intra_table_entries(s);
|
ff_clean_intra_table_entries(s);
|
||||||
} else if (IS_ENCODER) {
|
|
||||||
s->last_dc[0] =
|
|
||||||
s->last_dc[1] =
|
|
||||||
s->last_dc[2] = 128 << s->intra_dc_precision;
|
|
||||||
}
|
}
|
||||||
} else if (is_mpeg12 != DEFINITELY_MPEG12_H261 && (s->h263_pred || s->h263_aic))
|
} else if (is_mpeg12 != DEFINITELY_MPEG12_H261 && (s->h263_pred || s->h263_aic))
|
||||||
s->mbintra_table[mb_xy] = 1;
|
s->mbintra_table[mb_xy] = 1;
|
||||||
|
Reference in New Issue
Block a user