Commit 0032ca45 authored by Limin Wang's avatar Limin Wang

avcodec/mpeg12enc: return more specific error codes for encode_init()

Signed-off-by: 's avatarLimin Wang <lance.lmwang@gmail.com>
parent 14285e4c
...@@ -139,16 +139,17 @@ static int find_frame_rate_index(MpegEncContext *s) ...@@ -139,16 +139,17 @@ static int find_frame_rate_index(MpegEncContext *s)
static av_cold int encode_init(AVCodecContext *avctx) static av_cold int encode_init(AVCodecContext *avctx)
{ {
int ret;
MpegEncContext *s = avctx->priv_data; MpegEncContext *s = avctx->priv_data;
if (ff_mpv_encode_init(avctx) < 0) if ((ret = ff_mpv_encode_init(avctx)) < 0)
return -1; return ret;
if (find_frame_rate_index(s) < 0) { if (find_frame_rate_index(s) < 0) {
if (s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) { if (s->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
av_log(avctx, AV_LOG_ERROR, "MPEG-1/2 does not support %d/%d fps\n", av_log(avctx, AV_LOG_ERROR, "MPEG-1/2 does not support %d/%d fps\n",
avctx->time_base.den, avctx->time_base.num); avctx->time_base.den, avctx->time_base.num);
return -1; return AVERROR(EINVAL);
} else { } else {
av_log(avctx, AV_LOG_INFO, av_log(avctx, AV_LOG_INFO,
"MPEG-1/2 does not support %d/%d fps, there may be AV sync issues\n", "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) ...@@ -159,7 +160,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
if (avctx->profile == FF_PROFILE_UNKNOWN) { if (avctx->profile == FF_PROFILE_UNKNOWN) {
if (avctx->level != FF_LEVEL_UNKNOWN) { if (avctx->level != FF_LEVEL_UNKNOWN) {
av_log(avctx, AV_LOG_ERROR, "Set profile and level\n"); av_log(avctx, AV_LOG_ERROR, "Set profile and level\n");
return -1; return AVERROR(EINVAL);
} }
/* Main or 4:2:2 */ /* Main or 4:2:2 */
avctx->profile = s->chroma_format == CHROMA_420 ? FF_PROFILE_MPEG2_MAIN : FF_PROFILE_MPEG2_422; 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) ...@@ -175,7 +176,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
if (avctx->profile != FF_PROFILE_MPEG2_HIGH && s->chroma_format != CHROMA_420) { if (avctx->profile != FF_PROFILE_MPEG2_HIGH && s->chroma_format != CHROMA_420) {
av_log(avctx, AV_LOG_ERROR, av_log(avctx, AV_LOG_ERROR,
"Only High(1) and 4:2:2(0) profiles support 4:2:2 color sampling\n"); "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) if (avctx->width <= 720 && avctx->height <= 576)
avctx->level = 8; /* Main */ avctx->level = 8; /* Main */
...@@ -205,7 +206,7 @@ static av_cold int encode_init(AVCodecContext *avctx) ...@@ -205,7 +206,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
if (s->drop_frame_timecode && s->frame_rate_index != 4) { if (s->drop_frame_timecode && s->frame_rate_index != 4) {
av_log(avctx, AV_LOG_ERROR, av_log(avctx, AV_LOG_ERROR,
"Drop frame time code only allowed with 1001/30000 fps\n"); "Drop frame time code only allowed with 1001/30000 fps\n");
return -1; return AVERROR(EINVAL);
} }
#if FF_API_PRIVATE_OPT #if FF_API_PRIVATE_OPT
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment