[FFmpeg-devel] [PATCH 1/1] Reimplement ff_img_copy_plane() as av_img_copy_plane() in libavcore, and deprecate the old function.

Michael Niedermayer michaelni
Thu Aug 26 00:44:12 CEST 2010


On Wed, Aug 25, 2010 at 07:36:40PM +0200, Stefano Sabatini wrote:
> On date Wednesday 2010-08-25 16:07:48 +0200, Michael Niedermayer encoded:
> > On Wed, Aug 25, 2010 at 03:35:38PM +0200, Stefano Sabatini wrote:
> > > On date Wednesday 2010-08-25 10:10:17 +0200, Michael Niedermayer encoded:
> > > > On Wed, Aug 25, 2010 at 12:30:38AM +0200, Stefano Sabatini wrote:
> > > > [...]
> > > > > @@ -120,3 +120,16 @@ int av_check_image_size(unsigned int w, unsigned int h, int log_offset, void *lo
> > > > >      av_log(&imgutils, AV_LOG_ERROR, "Picture size %ux%u is invalid\n", w, h);
> > > > >      return AVERROR(EINVAL);
> > > > >  }
> > > > > +
> > > > > +void av_copy_image_plane(uint8_t       *dst, int dst_linesize,
> > > > > +                         const uint8_t *src, int src_linesize,
> > > > > +                         int width, int height)
> > > > > +{
> > > > > +    if (!dst || !src)
> > > > > +        return;
> > > > > +    for (;height > 0; height--) {
> > > > > +        memcpy(dst, src, width);
> > > > > +        dst += dst_linesize;
> > > > > +        src += src_linesize;
> > > > > +    }
> > > > > +}
> > > > 
> > > > thats definitly not working with half of the pixel formats and i would
> > > > expect that you test code like this
> > > 
> > > Can you elaborate on that?
> > 
> > think of 16bit, think of 1bit think of any packed format bgr32, bgr24, yuy2
> > then think of width
> 
> Indeed the name 'width' is poorly chosen, it should rather be "bytewidth".
> 
> > > Also note that here I'm not adding or
> > > changing the logic, I'm just *moving* the code.
> > 
> > you are making internal stuff part of the public api
> > 
> > thats like
> > 1. no need to be so picky its just internal
> > 2. no need to be so picky i am just moving it
> > ;)
> 
> OK, I see two possible solutions, and since I'm lazy I'll let the
> choice to you:
> 
> 1) pick a better name for the param var (width -> bytewidth) and
>   clearly document it
> 
> 2) leave the function internal to lavcore and name it
>    ff_copy_image_plane

if nothing outside needs it then no need to make it public and as is
the param should be renamed

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

Let us carefully observe those good qualities wherein our enemies excel us
and endeavor to excel them, by avoiding what is faulty, and imitating what
is excellent in them. -- Plutarch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100826/1c90af28/attachment.pgp>



More information about the ffmpeg-devel mailing list