1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-10 06:10:52 +02:00

avcodec/mlpenc: propagate proper error values

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer
2020-06-24 00:34:20 -03:00
parent 14f919515d
commit 4cdd2d6d4c

View File

@@ -531,7 +531,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx)
av_log(avctx, AV_LOG_ERROR, "Unsupported sample rate %d. Supported " av_log(avctx, AV_LOG_ERROR, "Unsupported sample rate %d. Supported "
"sample rates are 44100, 88200, 176400, 48000, " "sample rates are 44100, 88200, 176400, 48000, "
"96000, and 192000.\n", avctx->sample_rate); "96000, and 192000.\n", avctx->sample_rate);
return -1; return AVERROR(EINVAL);
} }
ctx->coded_sample_rate[1] = -1 & 0xf; ctx->coded_sample_rate[1] = -1 & 0xf;
@@ -564,7 +564,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx)
default: default:
av_log(avctx, AV_LOG_ERROR, "Sample format not supported. " av_log(avctx, AV_LOG_ERROR, "Sample format not supported. "
"Only 16- and 24-bit samples are supported.\n"); "Only 16- and 24-bit samples are supported.\n");
return -1; return AVERROR(EINVAL);
} }
ctx->coded_sample_fmt[1] = -1 & 0xf; ctx->coded_sample_fmt[1] = -1 & 0xf;
@@ -638,7 +638,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx)
ctx->channel_arrangement = 12; break; ctx->channel_arrangement = 12; break;
default: default:
av_log(avctx, AV_LOG_ERROR, "Unsupported channel arrangement\n"); av_log(avctx, AV_LOG_ERROR, "Unsupported channel arrangement\n");
return -1; return AVERROR(EINVAL);
} }
ctx->flags = FLAGS_DVDA; ctx->flags = FLAGS_DVDA;
ctx->channel_occupancy = ff_mlp_ch_info[ctx->channel_arrangement].channel_occupancy; ctx->channel_occupancy = ff_mlp_ch_info[ctx->channel_arrangement].channel_occupancy;
@@ -666,7 +666,7 @@ static av_cold int mlp_encode_init(AVCodecContext *avctx)
break; break;
default: default:
av_log(avctx, AV_LOG_ERROR, "Unsupported channel arrangement\n"); av_log(avctx, AV_LOG_ERROR, "Unsupported channel arrangement\n");
return -1; return AVERROR(EINVAL);
} }
ctx->flags = 0; ctx->flags = 0;
ctx->channel_occupancy = 0; ctx->channel_occupancy = 0;
@@ -1190,7 +1190,7 @@ static unsigned int write_access_unit(MLPEncodeContext *ctx, uint8_t *buf,
int total_length; int total_length;
if (buf_size < 4) if (buf_size < 4)
return -1; return AVERROR(EINVAL);
/* Frame header will be written at the end. */ /* Frame header will be written at the end. */
buf += 4; buf += 4;
@@ -1198,7 +1198,7 @@ static unsigned int write_access_unit(MLPEncodeContext *ctx, uint8_t *buf,
if (restart_frame) { if (restart_frame) {
if (buf_size < 28) if (buf_size < 28)
return -1; return AVERROR(EINVAL);
write_major_sync(ctx, buf, buf_size); write_major_sync(ctx, buf, buf_size);
buf += 28; buf += 28;
buf_size -= 28; buf_size -= 28;
@@ -1820,7 +1820,7 @@ static int apply_filter(MLPEncodeContext *ctx, unsigned int channel)
if (!filter_state_buffer[i]) { if (!filter_state_buffer[i]) {
av_log(ctx->avctx, AV_LOG_ERROR, av_log(ctx->avctx, AV_LOG_ERROR,
"Not enough memory for applying filters.\n"); "Not enough memory for applying filters.\n");
return -1; return AVERROR(ENOMEM);
} }
} }
@@ -1848,7 +1848,7 @@ static int apply_filter(MLPEncodeContext *ctx, unsigned int channel)
residual = sample - (accum & mask); residual = sample - (accum & mask);
if (residual < SAMPLE_MIN(24) || residual > SAMPLE_MAX(24)) { if (residual < SAMPLE_MIN(24) || residual > SAMPLE_MAX(24)) {
ret = -1; ret = AVERROR_INVALIDDATA;
goto free_and_return; goto free_and_return;
} }
@@ -2264,7 +2264,7 @@ static int mlp_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
if (ctx->frame_size[ctx->frame_index] > MAX_BLOCKSIZE) { if (ctx->frame_size[ctx->frame_index] > MAX_BLOCKSIZE) {
av_log(avctx, AV_LOG_ERROR, "Invalid frame size (%d > %d)\n", av_log(avctx, AV_LOG_ERROR, "Invalid frame size (%d > %d)\n",
ctx->frame_size[ctx->frame_index], MAX_BLOCKSIZE); ctx->frame_size[ctx->frame_index], MAX_BLOCKSIZE);
return -1; return AVERROR_INVALIDDATA;
} }
restart_frame = !ctx->frame_index; restart_frame = !ctx->frame_index;