[vlc-devel] [PATCH 1/2] transcode: add support for flush operations

Alexandre Janniaux ajanni at videolabs.io
Mon Feb 15 13:20:17 UTC 2021


On Mon, Feb 15, 2021 at 12:49:55PM +0100, Francois Cartegnie wrote:
> Le 15/02/2021 à 12:38, Alaric Senat a écrit :
> > Previously flushing the transcode stream was left unimplemented.
> > Flushing out the stream while transcoding makes sense especially to
> > support seeking operations.
> >
> > While seeking in transcoding is far from being fully supported in vlc
> > this allows to at least change the starting time before transcoding a
> > media without major modifications to the input loop.
> As I've mentioned before, there's no concept of flushing in a sout chain.
> Only individual defined flush control is possible: Decoders, packetizers. A
> generic flush has no meaning. What do I do when it hits, for example, muxers
> ?
> Trying to solve an asynchronous random access discontinuity handling issue
> with a synchronous command can't work without breaking the concept of
> stream.

I'm also a bit bothered by the fact that sout is supposed to
forward elementary stream, but flushing an elementary stream
feels like recreating the stream since the input won't match
the output stream, even without further processing.

I guess the use case is for chromecast-like renderer, what about
just discarding the stream in the transcode pipeline altogether
in the renderer module and new ones to be able to flush in this
case? It would move this special kludge to the modules really
using it. There's the «gathering» step to achieve in the renderer
sout module, meaning that ES id must be merged, but it seems quite
ok to do so since it's the same problem as if multiple video are
queued to be played.

Alexandre Janniaux

More information about the vlc-devel mailing list