On 03.07.2015 01:44, Luca Barbato wrote: > On 03/07/15 01:20, Luca Barbato wrote: >> On 03/07/15 00:07, Andreas Cadhalpun wrote: >>> Otherwise a frame with non-zero nb_samples but without any data can be >>> returned. >>> >>> Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> >>> --- >>> libavcodec/wmalosslessdec.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/libavcodec/wmalosslessdec.c b/libavcodec/wmalosslessdec.c >>> index 8094db3..0c85c83 100644 >>> --- a/libavcodec/wmalosslessdec.c >>> +++ b/libavcodec/wmalosslessdec.c >>> @@ -1005,6 +1005,7 @@ static int decode_frame(WmallDecodeCtx *s) >>> if ((ret = ff_get_buffer(s->avctx, s->frame, 0)) < 0) { >>> /* return an error if no frame could be decoded at all */ >>> s->packet_loss = 1; >>> + s->frame->nb_samples = 0; >>> return ret; >>> } >>> for (i = 0; i < s->num_channels; i++) { >>> >> > > Actually it sounds more fishy. How packet_loss is reset w/out filling > the frame?
Like that: if (s->packet_loss) { /* Reset number of saved bits so that the decoder does not start * to decode incomplete frames in the s->len_prefix == 0 case. */ s->num_saved_bits = 0; s->packet_loss = 0; init_put_bits(&s->pb, s->frame_data, MAX_FRAMESIZE); } Best regards, Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel