[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