[Ffmpeg-devel] [PATCH] MP3 decoding from RTP stream. Getting "invalid new backstep"
Michael Niedermayer
michaelni
Mon Nov 6 16:52:39 CET 2006
Hi
On Mon, Nov 06, 2006 at 03:19:10PM +0100, Martin wrote:
[...]
> >>>> assert(i <= buf_size - HEADER_SIZE && i>= 0);
> >>>> memcpy(s->last_buf + s->last_buf_size, s->gb.buffer + buf_size - HEADER_SIZE - i, i);
> >>>>@@ -2503,6 +2508,19 @@ static int mp_decode_frame(MPADecodeCont
> >>>> }
> >>>> }
> >>>>#endif
> >>>>+
> >>>>+ // zero samples if frame is distorted by overread or backstep
> >>>>+ if (discard_frame) {
> >>>>+ for(i=0;i<nb_frames;i++) {
> >>>>+ for(ch=0;ch<s->nb_channels;ch++) {
> >>>>+ int j;
> >>>>+ for(j=0;j<SBLIMIT;j++) {
> >>>>+ s->sb_samples[ch][i][j] = 0;
> >>>>+ }
> >>>>+ }
> >>>>+ }
> >>>>+ }
> >>>
> >>>
> >>>memset(0);
> >>>
> >>>[...]
> >>
> >>Is the rest of the patch ok?
> >
> >
> > i think so, but thats just from memory ...
> >
> > [...]
>
> The new patch which sets buffers to 0 if 'backstep'occurs which prior
> resulted in distorted sound is attached.
[...]
> + // zero samples if frame is distorted by overread or backstep
> + if (discard_frame) {
> + for(i=0;i<nb_frames;i++) {
> + for(ch=0;ch<s->nb_channels;ch++) {
> + int j;
> + for(j=0;j<SBLIMIT;j++) {
> + s->sb_samples[ch][i][j] = 0;
> + }
> + }
> + }
> + }
the whole above should be replaced by a if (discard_frame) \n memset(..., 0, ...)
as already said
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is
More information about the ffmpeg-devel
mailing list