There are no encoders for interlaced dct that support 4:4:4. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- libavcodec/mpegvideo_enc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index 0ac8886246..15b6669e46 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -2035,6 +2035,10 @@ static av_always_inline void encode_mb_internal(MpegEncContext *s, int chroma_y_shift, int chroma_format) { +/* Interlaced DCT is only possible with MPEG-2 and MPEG-4 + * and neither of these encoders currently supports 444. */ +#define INTERLACED_DCT(s) ((chroma_format == CHROMA_420 || chroma_format == CHROMA_422) && \ + (s)->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) int16_t weight[12][64]; int16_t orig[12][64]; const int mb_x = s->mb_x; @@ -2112,7 +2116,7 @@ static av_always_inline void encode_mb_internal(MpegEncContext *s, } if (s->mb_intra) { - if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { + if (INTERLACED_DCT(s)) { int progressive_score, interlaced_score; s->interlaced_dct = 0; @@ -2191,7 +2195,7 @@ static av_always_inline void encode_mb_internal(MpegEncContext *s, op_pix, op_qpix); } - if (s->avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { + if (INTERLACED_DCT(s)) { int progressive_score, interlaced_score; s->interlaced_dct = 0; -- 2.32.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".