[FFmpeg-devel] [PATCH] Apple RPZA encoder

Diego Biurrun diego
Tue Mar 24 11:12:18 CET 2009


On Tue, Mar 24, 2009 at 02:08:44PM +0530, Jai Menon wrote:
> On 3/24/09, Diego Biurrun <diego at biurrun.de> wrote:
> > On Tue, Mar 24, 2009 at 10:33:19AM +0530, Jai Menon wrote:
> >  >
> >  > Attached patch is a cleaned up version of the original one posted by
> >  > Todd Kirby [1].
> >  > And, yeah, its a gsoc qualification task :)
> >  >
> >  > [1] http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2005-June/001673.html
> >  >
> >
> > > --- libavcodec/rpzaenc.c      (revision 0)
> >  > +++ libavcodec/rpzaenc.c      (revision 0)
> >  > @@ -0,0 +1,848 @@
> >  > +/*
> >  > + * Quicktime RPZA Video Encoder.
> >
> >  QuickTime RPZA video encoder

unchanged

> >  > + * QT RPZA Video Encoder
> >
> >  QuickTime RPZA video encoder
> 
> fixed

No.

> >  > +typedef enum { BLUE,
> >  > +               GREEN,
> >  > +               RED,
> >  > +} channel_offset;
> >
> >  ditto

unchanged

> >  > +    if (r > 31) {
> >  > +        r = 31;
> >  > +    }
> >  > +    if (g > 31) {
> >  > +        g = 31;
> >  > +    }
> >  > +    if (b > 31) {
> >  > +        b = 31;
> >  > +    }
> >
> >  useless {}, same below
> 
> removed

but many more remain

> >  > +    bi.image_width = s->frame_width;
> >  > +    bi.image_height = s->frame_height;
> >  > +    bi.rowstride = pict->linesize[0];
> >  > +
> >  > +    bi.blocks_per_row = (s->frame_width + 3) >> 2;
> >
> >  align
> 
> aligned

But many more opportunities for alignment exist throughout your patch..

> revised patch attached

This revised patch leaves a few things to be desired.  You are expected
not only to address the issues pointed out, but also to look for similar
issues in the rest of your code.


> --- Changelog	(revision 18140)
> +++ Changelog	(working copy)
> @@ -6,9 +6,9 @@
>  - Alpha channel scaler
>  - PCX encoder
> +- QuickTime RPZA video encoder
>  
>  
> -
>  version 0.5:

unwanted cosmetics

> --- libavcodec/rpzaenc.c	(revision 0)
> +++ libavcodec/rpzaenc.c	(revision 0)
> @@ -0,0 +1,848 @@
> +            min_r = FFMIN(block_ptr[(x * PIXELSTRIDE) + 2], min_r);
> +            min_g = FFMIN(block_ptr[(x * PIXELSTRIDE) + 1], min_g);
> +            min_b = FFMIN(block_ptr[(x * PIXELSTRIDE) + 0], min_b);
> +
> +            max_r = FFMAX(block_ptr[(x * PIXELSTRIDE) + 2], max_r);
> +            max_g = FFMAX(block_ptr[(x * PIXELSTRIDE) + 1], max_g);
> +            max_b = FFMAX(block_ptr[(x * PIXELSTRIDE) + 0], max_b);

possibly superfluous ()

> +AVCodec rpza_encoder = {
> +    .long_name = NULL_IF_CONFIG_SMALL("QuickTime RPZA"),

not the same as the decoder

Diego



More information about the ffmpeg-devel mailing list