On 1/30/2019 10:47 AM, Carl Eugen Hoyos wrote: > 2019-01-29 22:47 GMT+01:00, Carl Eugen Hoyos <ceffm...@gmail.com>: >> Hi! >> >> Attached patch fixes decoding NO_DATA amr-wb frames. > > Now with patch. > > Carl Eugen
> From 0a8c318c49ec358ad646ed601588154cf7d7da37 Mon Sep 17 00:00:00 2001 > From: Carl Eugen Hoyos <ceffm...@gmail.com> > Date: Tue, 29 Jan 2019 22:46:37 +0100 > Subject: [PATCH] lavc/amrwbdec: Do not ignore NO_DATA frames. > > Fixes the actual output duration of the sample in ticket #7113. > --- > libavcodec/amrwbdata.h | 2 +- > libavcodec/amrwbdec.c | 9 ++++++++- > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/amrwbdata.h b/libavcodec/amrwbdata.h > index 8a8cbfd..95c0aaa 100644 > --- a/libavcodec/amrwbdata.h > +++ b/libavcodec/amrwbdata.h > @@ -1884,7 +1884,7 @@ static const float lpf_7_coef[31] = { // low pass, 7kHz > cutoff > /** Core frame sizes in each mode */ > static const uint16_t cf_sizes_wb[] = { > 132, 177, 253, 285, 317, 365, 397, 461, 477, > - 40 /// SID/comfort noise frame > + 40, 0, 0, 0, 0, 0, 0 > }; > > #endif /* AVCODEC_AMRWBDATA_H */ > diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c > index 47fe7eb..b488a5d 100644 > --- a/libavcodec/amrwbdec.c > +++ b/libavcodec/amrwbdec.c > @@ -1119,12 +1119,19 @@ static int amrwb_decode_frame(AVCodecContext *avctx, > void *data, > buf_out = (float *)frame->data[0]; > > header_size = decode_mime_header(ctx, buf); > + expected_fr_size = ((cf_sizes_wb[ctx->fr_cur_mode] + 7) >> 3) + 1; > + > + if (ctx->fr_cur_mode == NO_DATA) { > + for (i = 0; i < frame->nb_samples; i++) > + buf_out[i] = 0.f; You can use av_samples_set_silence() for this. > + *got_frame_ptr = 1; > + return expected_fr_size; > + } > if (ctx->fr_cur_mode > MODE_SID) { > av_log(avctx, AV_LOG_ERROR, > "Invalid mode %d\n", ctx->fr_cur_mode); > return AVERROR_INVALIDDATA; > } > - expected_fr_size = ((cf_sizes_wb[ctx->fr_cur_mode] + 7) >> 3) + 1; > > if (buf_size < expected_fr_size) { > av_log(avctx, AV_LOG_ERROR, > -- > 1.7.10.4 > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".