diff options
author | Limin Wang <lance.lmwang@gmail.com> | 2020-05-07 18:55:11 +0800 |
---|---|---|
committer | Limin Wang <lance.lmwang@gmail.com> | 2020-05-09 09:33:49 +0800 |
commit | 0032ca45ff0740cb8f7d70a3283348673a234a5a (patch) | |
tree | 9ff330c0f113ef74c7698438b3dafe8ebb5beefb | |
parent | 14285e4ca298607918a900c04565d4956588f20f (diff) | |
download | ffmpeg-0032ca45ff0740cb8f7d70a3283348673a234a5a.tar.gz |
avcodec/mpeg12enc: return more specific error codes for encode_init()
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
-rw-r--r-- | libavcodec/mpeg12enc.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index 643ba8165a..cab7076a58 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -139,16 +139,17 @@ static int find_frame_rate_index(MpegEncContext *s) static av_cold int encode_init(AVCodecContext *avctx) { + int ret; MpegEncContext *s = avctx->priv_data; - if (ff_mpv_encode_init(avctx) < 0) - return -1; + if ((ret = ff_mpv_encode_init(avctx)) < 0) + return ret; if (find_frame_rate_index(s) < 0) { if (s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { av_log(avctx, AV_LOG_ERROR, "MPEG-1/2 does not support %d/%d fps\n", avctx->time_base.den, avctx->time_base.num); - return -1; + return AVERROR(EINVAL); } else { av_log(avctx, AV_LOG_INFO, "MPEG-1/2 does not support %d/%d fps, there may be AV sync issues\n", @@ -159,7 +160,7 @@ static av_cold int encode_init(AVCodecContext *avctx) if (avctx->profile == FF_PROFILE_UNKNOWN) { if (avctx->level != FF_LEVEL_UNKNOWN) { av_log(avctx, AV_LOG_ERROR, "Set profile and level\n"); - return -1; + return AVERROR(EINVAL); } /* Main or 4:2:2 */ avctx->profile = s->chroma_format == CHROMA_420 ? FF_PROFILE_MPEG2_MAIN : FF_PROFILE_MPEG2_422; @@ -175,7 +176,7 @@ static av_cold int encode_init(AVCodecContext *avctx) if (avctx->profile != FF_PROFILE_MPEG2_HIGH && s->chroma_format != CHROMA_420) { av_log(avctx, AV_LOG_ERROR, "Only High(1) and 4:2:2(0) profiles support 4:2:2 color sampling\n"); - return -1; + return AVERROR(EINVAL); } if (avctx->width <= 720 && avctx->height <= 576) avctx->level = 8; /* Main */ @@ -205,7 +206,7 @@ static av_cold int encode_init(AVCodecContext *avctx) if (s->drop_frame_timecode && s->frame_rate_index != 4) { av_log(avctx, AV_LOG_ERROR, "Drop frame time code only allowed with 1001/30000 fps\n"); - return -1; + return AVERROR(EINVAL); } #if FF_API_PRIVATE_OPT |