On 16.12.2016 14:19, Ronald S. Bultje wrote: > This reverts 2a4700a4f03280fa8ba4fc0f8a9987bb550f0d1e and implements it > correctly so streams actually decode the way the encoder intended them > to.
Why is it correct? Is this behavior defined in a specification or reference decoder? > --- > libavcodec/wmavoice.c | 20 ++++---------------- > 1 file changed, 4 insertions(+), 16 deletions(-) > > diff --git a/libavcodec/wmavoice.c b/libavcodec/wmavoice.c > index 0f29bdd..f1b5369 100644 > --- a/libavcodec/wmavoice.c > +++ b/libavcodec/wmavoice.c > @@ -1900,16 +1900,10 @@ static int wmavoice_decode_packet(AVCodecContext > *ctx, void *data, > cnt += s->spillover_nbits; > s->skip_bits_next = cnt & 7; > res = cnt >> 3; > - if (res > avpkt->size) { > - av_log(ctx, AV_LOG_ERROR, > - "Trying to skip %d bytes in packet of size > %d\n", > - res, avpkt->size); > - return AVERROR_INVALIDDATA; > - } > - return res; > + return FFMIN(avpkt->size, res); > } else > - skip_bits_long (gb, s->spillover_nbits - cnt + > - get_bits_count(gb)); // resync > + skip_bits_long(gb, s->spillover_nbits - cnt + > + get_bits_count(gb)); // resync Please do cosmetic changes in a separate commit. Best regards, Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel