summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/mjpegenc.c10
-rw-r--r--libavcodec/mpegvideo_enc.c12
2 files changed, 10 insertions, 12 deletions
diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index c4c45c885b..57f249f56e 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -276,6 +276,16 @@ av_cold int ff_mjpeg_encode_init(MpegEncContext *s)
av_assert0(s->slice_context_count == 1);
+ if (s->codec_id == AV_CODEC_ID_AMV || (s->avctx->active_thread_type & FF_THREAD_SLICE))
+ s->huffman = 0;
+
+ if (s->mpv_flags & FF_MPV_FLAG_QP_RD) {
+ // Used to produce garbage with MJPEG.
+ av_log(s->avctx, AV_LOG_ERROR,
+ "QP RD is no longer compatible with MJPEG or AMV\n");
+ return AVERROR(EINVAL);
+ }
+
/* The following check is automatically true for AMV,
* but it doesn't hurt either. */
ret = ff_mjpeg_encode_check_pix_fmt(s->avctx);
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index d2520368e1..7e45fd0ff3 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -370,9 +370,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
return AVERROR(EINVAL);
}
- if (avctx->codec_id == AV_CODEC_ID_AMV || (avctx->active_thread_type & FF_THREAD_SLICE))
- s->huffman = 0;
-
if (s->intra_dc_precision > (avctx->codec_id == AV_CODEC_ID_MPEG2VIDEO ? 3 : 0)) {
av_log(avctx, AV_LOG_ERROR, "intra dc precision too large\n");
return AVERROR(EINVAL);
@@ -573,15 +570,6 @@ av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
return AVERROR(EINVAL);
}
- if ((s->mpv_flags & FF_MPV_FLAG_QP_RD) &&
- (s->codec_id == AV_CODEC_ID_AMV ||
- s->codec_id == AV_CODEC_ID_MJPEG)) {
- // Used to produce garbage with MJPEG.
- av_log(avctx, AV_LOG_ERROR,
- "QP RD is no longer compatible with MJPEG or AMV\n");
- return AVERROR(EINVAL);
- }
-
if (s->scenechange_threshold < 1000000000 &&
(avctx->flags & AV_CODEC_FLAG_CLOSED_GOP)) {
av_log(avctx, AV_LOG_ERROR,