[Ffmpeg-devel] privatizing FifoBuffer into libavutil
    Roman Shaposhnik 
    rvs
       
    Sun Sep 10 22:13:07 CEST 2006
    
    
  
Hi
On Sun, 2006-09-10 at 12:54 +0200, Michael Niedermayer wrote:
> > P.S. The only caveat here is an implicit put_buffer declaration
> > in fifo.c
> 
> i think fifo.* should stay in libavformat for now
 
  is it because of a particular reason or simply because
what you've mentioned bellow is not satisfied yet ? FifoBuffer
looks like a little nice piece of functionality which is kinda
of independent of everything else in ffmpeg.
> moving it to libavutil would at absolute minimum require
> * av_ prefixes
  easy.
> * no dependancy on libavformat (put_buffer()) -> put_fifo() must not be moved
>   to libavutil
  I actually have a question about this one. Since fifo_read and
put_fifo have identical code except for:
--- /tmp/1      2006-09-10 12:52:37.000000000 -0700
+++ /tmp/2      2006-09-10 12:52:43.000000000 -0700
@@ -13,8 +13,7 @@
         len = f->end - rptr;
         if (len > buf_size)
             len = buf_size;
-        memcpy(buf, rptr, len);
-        buf += len;
+        put_buffer(pb, rptr, len);
         rptr += len;
         if (rptr >= f->end)
             rptr = f->buffer;
  how outlandish will it be to create a common function out of
them called fifo_transfer:
    
 int fifo_transfer(FifoBuffer *f, int buf_size, 
                   void (*transfer_func)(void* out, void* in, int size),
                   void*  out);
  so that put_buffer() would become:
      
      fifo_transfer(f, size, put_buffer, pb);
  and so on ?
> * no dependancy on libavcodec (dunno if there is any...)
  none.
> * the rptr and wptr arguments should be removed as they are never used and
>   confusing
   
  agreed. in fact that's how fifo_peek and fifo_drain are done.
> * the version number of libavutil has to be increased
  sure.
> also the move should be done with
> svn cp libavformat/utils.c libavformat/fifo.c so that no history is lost
  of course.
Thanks,
Roman.
    
    
More information about the ffmpeg-devel
mailing list