[vlc-devel] [RFC] Sout workshop notes

Alexandre Janniaux ajanni at videolabs.io
Tue Mar 3 14:06:00 CET 2020


Hi,

Thank you for the synthesis and your hard work on this!

A few question:

>  - Pass the PCR to the sout packetizers from DecoderThread

Does it mean that we will have packetizer after encoder ?
I have patches adding this as I needed this for mediacodec
encoding (the CSD are not sent in the Open()) but it seemed
like a hack. It is probably not 100% compatible with the API
changes you seem to plan.

>  - Create module one by one with a proper function call (a module can be  mux, protocol, codecs, Resolution NbChannels).

This is interesting, although probably a bit out of the work
you did during this workshop. Was there any more detailed
description of this API?

Thanks,

Regards,
--
Alexandre Janniaux
Videolabs


On Mon, Mar 02, 2020 at 01:36:44PM +0100, Thomas Guillem wrote:
> Hello,
>
> Here is the synthesis of the Sout workshop notes that written on https://mensuel.framapad.org/p/9fa9-coucoutuveuxvoirmoncone?lang=fr
>
> It's a draft. if people (attending or not attending this workshop) have questions or remarks, please comment after this mail.
> Finally, I will publish the final version on this ML when everyone agree.
>
> The goal of this workshop was principally to forward the PCR to the Sout in order to use it from muxer modules.
>
> To forward this PCR from the demuxer to the muxer, we have to go through:
>  - es_out display (input/es_out.c)
>  - input_Decoder API (input/decoder.c)
>  - DecoderThread packetizers
>  - Sout API
>
> Here some assertions that everyone agreed on:
>  - DTS >= PCR (demuxers not respecting it should be fixed)
>  - Demuxers  and packetizers have to output in DTS order (modules should be fixed otherwise)
>
> Here is the detailed task list:
>
> Part 1 by Typx (WIP, cf.ML): Forward PCR to input_Decoder (input/decoder.c)
>  - Add the vlc_es_fifo_t API: it allows to recover the PCR used by the blocks
>  - Use this API from input_Decoder API
>  - Pass the PCR to the sout packetizers from DecoderThread
>
> Part 2 by tguillem (WIP, will be done next week): Pass and filter PCR from packetizers
>  - Change the packetizer module API to do like decoders:  replace pf_packetize by pf_decode, add a new owner callback: packetizer_Queueblock(block);
>  - Add decoder.pf_send_pcr() and fix packetizer_Queueblock() to also send the PCR of the block
>
> Part 3 by inthewings (Waiting for Part 2): implement pf_send_pcr() on all packetizers modules.
>
> Part 4 by inthewings: What about decoder module in the transcode case (decoder+encode) ?
>  - We could forward PCR to decoder modules but avcodec won't be able to handle it.
>  - Add an option that setup the maximum DTS delays between 2 different ES (min/max): after this delay: trash the late ES.
>
> Part 5: align mux on "stream out"
>  - SetPCR/GetPCR
> ^^^^^NEED MORE INFOS ^^^^^^^^^
>
> Part 6 by courmish (already done/ML): remove "vlc_tick_now()<->PTS" from sout
>
> Part 7 by courmish (WIP) : Remove p_sout_instance
>
> Part Bonus: LibVLC sout simple API Draft
>  - Create module one by one with a proper function call (a module can be  mux, protocol, codecs, Resolution NbChannels).
>  - Each modules need to be refcounted in order to re-use them
>  - Add setter/getters to modify modules options
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list