[FFmpeg-devel] [PATCH] wmapro decoder

Michael Niedermayer michaelni
Wed Sep 2 20:17:30 CEST 2009


On Wed, Sep 02, 2009 at 07:20:24PM +0200, Sascha Sommer wrote:
> Hi,
> 
> On Dienstag, 1. September 2009, Michael Niedermayer wrote:
> > On Mon, Aug 31, 2009 at 09:55:25PM +0200, Sascha Sommer wrote:
> > > Hi,
> > >
> > > > > +    uint32_t         frame_num;                     ///< current
> > > > > frame number
> > > >
> > > > unused
> > >
> > > It is used for error output and some debugging messages. Does it waste
> > > too many resources?
> >
> > no, but fields of structs that are unused in the decoding process should be
> > documented as such IMHO
> >
> 
> Done.
> 
> >
> > > > > +            /** 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?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

it is not once nor twice but times without number that the same ideas make
their appearance in the world. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090902/fda7ac66/attachment.pgp>



More information about the ffmpeg-devel mailing list