[vlc-devel] [PATCH 2/3] avformat mux: Mark keyframe blocks as such.

Luca Barbato lu_zero at gentoo.org
Tue Sep 3 11:48:30 CEST 2013


On 16/08/13 16:42, Steinar H. Gunderson wrote:
> Some browsers, such as Firefox, are very picky about WebM streams needing to
> start with a keyframe. To be able to handle this correctly when streaming,
> the avformat mux needs to mark keyframe-containing blocks (or clusters, in
> Matroska terminology) as such even after they have been muxed. The next patch
> in the series will make httpd actually care about this flag.
> 
> Unfortunately, as avformat does not actually propagate this status, we need
> to use some heuristics to figure out which blocks contain keyframes. The natural
> thing to do would be to say that when we write a keyframe, the block that comes
> back has to be a keyframe block, but the WebM/Matroska muxer thwarts this by
> having its own internal buffering of clusters, flushing the _previous_ cluster
> when we send it a keyframe. Thus, we need to explicitly send a flush (a NULL
> packet) before the one that comes back when we mux a keyframe.
> ---
>  modules/demux/avformat/mux.c |   21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)

Still looks fine to me =)

lu




More information about the vlc-devel mailing list