Signed-off-by: Paul B Mahol <one...@gmail.com> --- libavcodec/mlpenc.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c index 7536d3b2f5..c588f5b904 100644 --- a/libavcodec/mlpenc.c +++ b/libavcodec/mlpenc.c @@ -2225,29 +2225,27 @@ static int mlp_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, int restart_frame, ret; uint8_t *data; - if ((ret = ff_alloc_packet2(avctx, avpkt, 87500 * avctx->channels, 0)) < 0) - return ret; - - if (!frame) - return 1; - /* add current frame to queue */ if (frame) { if ((ret = ff_af_queue_add(&ctx->afq, frame)) < 0) return ret; + } else { + if (ctx->last_frame == ctx->inout_buffer) { + return 0; + } } - data = frame->data[0]; + + if ((ret = ff_alloc_packet2(avctx, avpkt, 87500 * avctx->channels, 0)) < 0) + return ret; + + data = frame ? frame->data[0] : NULL; ctx->frame_index = avctx->frame_number % ctx->max_restart_interval; ctx->inout_buffer = ctx->major_inout_buffer + ctx->frame_index * ctx->one_sample_buffer_size; - if (ctx->last_frame == ctx->inout_buffer) { - return 0; - } - ctx->sample_buffer = ctx->major_scratch_buffer + ctx->frame_index * ctx->one_sample_buffer_size; @@ -2333,6 +2331,8 @@ input_and_return: number_of_samples += ctx->frame_size[(ctx->starting_frame_index + index) % ctx->max_restart_interval]; } ctx->number_of_samples = number_of_samples; + if (!ctx->number_of_samples) + break; for (index = 0; index < ctx->seq_size[seq_index]; index++) { clear_channel_params(ctx, ctx->seq_channel_params + index*(ctx->avctx->channels)); -- 2.11.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel