[vlc-devel] [PATCH 01/10] [RFC] core: add demux-filter objects to intercept & filter demuxer calls

Steve Lhomme robux4 at gmail.com
Tue May 31 19:53:50 CEST 2016


On Tue, May 31, 2016 at 7:38 PM, Rémi Denis-Courmont <remi at remlab.net> wrote:
> On Tuesday 31 May 2016 19:31:39 Steve Lhomme wrote:
>> On Tue, May 31, 2016 at 4:28 PM, Rémi Denis-Courmont <remi at remlab.net>
> wrote:
>> > Le 2016-05-31 16:05, Steve Lhomme a écrit :
>> >> On Tue, May 31, 2016 at 3:28 PM, Rémi Denis-Courmont <remi at remlab.net>
>> >>
>> >> wrote:
>> >>> Le 2016-05-31 13:15, Steve Lhomme a écrit :
>> >>>> This can be used to tweak the results of some Control() calls or delay
>> >>>> the
>> >>>> actual Demux() call.
>> >>>>
>> >>>> A demuxer filter should call demux_FilterDemuxNext() to call the demux
>> >>>> operation to the next demuxer in line and demux_vaFilterControlNext()
>> >>>> to
>> >>>> pass
>> >>>> the control calls to the next demuxer in line.
>> >>>
>> >>> No way. I have spent an awful lot of times removing this bug with stream
>> >>> filters and access. You don't get to add it back.
>> >>
>> >> It is only for demuxer filters. This code did not exist before. All
>> >> the other demuxer users continue to work the same.
>> >
>> > And? Just like access, stream_filters, and pretty much all plugin types,
>> > demuxers are not reentrant.
>>
>> What's reentrant about filterA->filterB->demuxer calls ?
>
> The case where you skip the filter(s) and invoke the demuxer directly!
>
> demux_FilterDemuxer() in particular.

Looking at all the cases I indentified with the previous patch that
had stronger typing, it's mostly in input.c to access internal values
of demux_t.
- testing if pf_demux is NULL
- read title info
- access the s stream
- add/remove attachements

In the Chromecast demux filter I also use p_input to get the title of
the item playing and hook on "intf-event" to receive pause/play
events.

We could turn all these uses into callback calls. That could give a
chance to demux filters to filter even more stuff. Or we could decide
some things are not allowed to be filtered and call directly the
actual demux_t.

> --
> Rémi Denis-Courmont
> http://www.remlab.net/
>
> _______________________________________________
> 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