[Ffmpeg-devel] Interleaving audio and video

Roman Shaposhnik rvs
Sun Feb 4 23:48:40 CET 2007


On Sun, 2007-02-04 at 22:40 +0100, Michael Niedermayer wrote:
> Hi
> 
> On Sun, Feb 04, 2007 at 12:53:54PM -0800, Roman Shaposhnik wrote:
> > Hi
> > 
> > On Sun, 2007-02-04 at 10:42 +0100, Michael Niedermayer wrote:
> > > >   As I pointed out in my previous email -- it seems that the 
> > > > current implementation of the GXF would generate incorrect results 
> > > > if av_write_frame() gets used. Even for the incoming stream of 
> > > > packets with the perfect interleave.
> > > > 
> > > >   I think we should fix this. Your thoughts ?
> > > 
> > > either allow interleave_packet() to repack PCM packets or change the gxf
> > > muxer to not repack them in interleave_packet()
> > 
> >   Here I don't quite follow. The problem in my opinion is to make 
> > client use interleave_packet() in the first place. Of course
> 
> NO! of course not, if the client needs interleave_packet then it MUST
> call av_interleaved_write_frame() that is the purpose of the function
> you remove the possibility of muxing correcly interleaved packets with
> low delay and no memcpy and duplicate the existing interleaving system,
> please read the code it seems you dont understand it at all, what you 
> propose makes no sense

  Well, I don't actually prose anything and  yes -- I've read the
  code ;-) 

  But for some reason we're still miscommunicating and talking about
  two different things here. Once again -- please try to follow my
  reasoning keeping in mind that I'm not prosing anything but rather
  describe what I see as a problem and asking for advice.

  So, first of all -- here's a usecase scenario I'm worried about:

      Imagine a general purpose application that can output any stream
      the user asks for. Also imagine that the incoming stream sometimes
      is interleaved properly and sometimes isn't. Now, the question
      is -- what would you recommend for the application developer:
      av_interleaved_write_frame() or  av_write_frame() ? Keep in
      mind that application always needs maximum performance (which,
      for example, means that producing badly interleaved AVIs is
      not a problem) but also needs to generate correct GXF streams. 

  I'm using GXF here not because I care about it that much, but because
  if I follow its example of using interleave_packet() as a packetizer
  for DV muxer -- it seems to me I can not guarantee correct streams
  in certain cases ever!

Thanks,
Roman.

P.S. I'm using GXF here not because I care about it that much, but
because if I follow its example of using interleave_packet() as a
packetizer for DV muxer -- it seems to me I can not guarantee correct
streams in certain cases ever.





More information about the ffmpeg-devel mailing list