[FFmpeg-devel] [PATCH] wmapro decoder
Sascha Sommer
saschasommer
Sat Sep 5 17:21:48 CEST 2009
Hi,
> > > > > > + /** save transmitted scale factors so that they can
> > > > > > be reused for + the next subframe */
> > > > > > + memcpy(s->channel[c].saved_scale_factors,
> > > > > > + s->channel[c].scale_factors, s->num_bands *
> > > > > > + sizeof(*s->channel[c].saved_scale_factors));
> > > > >
> > > > > what happens with s->channel[c].scale_factors so that it cant just
> > > > > be used?
> > > >
> > > > The saved scale factors might be resampled for several subframes
> > > > before some new values are transmitted and saved_scale_factors is
> > > > updated. If the resampled scale factors would be used for the
> > > > resampling, the output would change. Therefore two buffers are
> > > > needed.
> > >
> > > understood, please document this though, also isnt it possible to just
> > > exchange 2 pointers instead of a memcpy?
> >
> > I documented it. Is the attached pointer exchange code ok or did you have
> > something different in mind?
>
> [...]
>
> > } else {
> > int i;
> > + memcpy(s->channel[c].scale_factors,
> > + s->channel[c].resampled_scale_factors,
> > s->num_bands * +
> > sizeof(*s->channel[c].saved_scale_factors)); /** run level decode
> > differences to the resampled factors */ for (i = 0; i < s->num_bands;
> > i++) {
> > int idx;
>
> thats still a memcpy ...
>
> i had in mind, no mempcpy at all, am i missing something tha makes that
> impossible?
>
No. Attached patch should do.
Regards
Sascha
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wmapro_scalefactor_bufswap2.patch
Type: text/x-diff
Size: 2997 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090905/82fd5fa0/attachment.patch>
More information about the ffmpeg-devel
mailing list