[Ffmpeg-devel] Interleaving audio and video

Roman Shaposhnik rvs
Tue Feb 6 06:01:31 CET 2007


On Feb 5, 2007, at 3:48 PM, Michael Niedermayer wrote:
> av_write_frame() is needed for muxing without an extra memcpy() and
> without extra delay it will because of that not be removed or  
> deoptimized
> you are free to fork ffmpeg, you are also free to continue to argue  
> but
> i fear i wont be replying any further

   As I mentioned time and again -- its your project. However I do find
certain things inconsistent in FFmpeg's API and I try to argue about
such inconsistency. Sometimes it happens because I lack knowledge
sometimes because they are inconsistent. Its not that big of a deal
if you truly believe that the APIs are perfect. And I do understand
that you don't get paid for educating folks like myself. I don't get  
a cent for working on FFmpeg so I assume that I can at least
compensate in the areas of acquiring additional knowledge
and personal pride of seeing that my opinions matter. If none
of what I mention is enough of a reason for you to reply that's
fine as well. We can always limit our conversations to me asking
very simple implementation related questions and you giving
prescriptive answers.

> and about your CGI example
> either interleave the packets correctly and use av_write_frame()
> or dont and use av_interleaved_write_frame()

   That's a fine answer. But based on it I think output_example.c
has to be changed.

>> P.S. Its interesting to notice that ffmpeg itself uses
>> av_interleaved_write_frame() where ffserver uses av_write_frame().
> i see nothing interresting here, ffserver as a realtime thingy  
> cannot do
> extra buffering as the delay would be unacceptable ...

   I find it interesting because if you ever were to make  ffserver  
to generate
an GXF stream for you -- with the current implementation that would
produce a broken stream. This is a bug. Plain and simple. And I do
find bugs to be interesting.


More information about the ffmpeg-devel mailing list