[vlc-devel] [PATCH] non-blocking filewriter (version 4)

Rémi Denis-Courmont remi at remlab.net
Wed May 6 21:27:28 CEST 2009

Le mardi 5 mai 2009 11:28:55 Jarmo Torvinen, vous avez écrit :
> Hi,
> Here is the version 4, which is using the S_ISFIFO() macro to test for the
> fifo pipe.
> By the way, there is one issue / feature depending on your view on this
> patch: on Close() the plugin will not flush rest of the data on the buffer
> to the pipe, it will just discard it.
> In real life, this means that if you do:
> mkfifo /tmp/fifo
> cat /tmp/fifo > output.ts &
> vlc input.ts
> "--sout=#duplicate{dst=std{access=file,mux=ts,dst=/tmp/fifo}}"
> the resulting output.ts will not contain all the data in input.ts remuxed,
> because when vlc finishes muxing the data to the output plugin buffer, it
> calls the file output module's Close() and the rest of the buffer gets
> discarded. In continuous real time transcoding, this is not an issue
> though.

Not only that. Either Write() must block if it overflows or pace control must 
be turned on. Otherwise, it will be disastrous if the input is not paced.

Rémi Denis-Courmont

More information about the vlc-devel mailing list