[vlc-devel] [PATCH] [RFC] add demux filters that are similar in API to regular demuxers
Rémi Denis-Courmont
remi at remlab.net
Mon Jun 6 14:42:23 CEST 2016
Le 2016-06-06 11:11, Steve Lhomme a écrit :
> On Sun, Jun 5, 2016 at 2:15 PM, Rémi Denis-Courmont <remi at remlab.net>
> wrote:
>> Le 2016-06-05 13:03, Steve Lhomme a écrit :
>>>
>>> The only difference is that when control/demux callbacks are
>>> called, they
>>> are
>>> given the next demuxers to call in the chain
>>>
>>> --
>>> replaces https://patches.videolan.org/patch/13585/
>>> and https://patches.videolan.org/patch/13615/ with legacy patch
>>> remaining
>>> I do not understand how some demuxers have pf_demux to NULL, so
>>> there
>>> might be
>>> some simplifications possible.
>>> ---
>>> NEWS | 3 ++
>>> include/vlc_demux.h | 12 ++++++
>>> src/input/demux.c | 106
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>> src/input/demux.h | 3 ++
>>> src/input/input.c | 9 +++++
>>> src/input/var.c | 1 +
>>> src/libvlc-module.c | 5 +++
>>> src/playlist/engine.c | 1 +
>>> 8 files changed, 140 insertions(+)
>>>
>>> diff --git a/NEWS b/NEWS
>>> index fd5e690..b6eeb06 100644
>>> --- a/NEWS
>>> +++ b/NEWS
>>> @@ -101,6 +101,9 @@ Stream filter:
>>> * Added stream prebuffering plugin
>>> * Removed HTTP Live streaming stream filter
>>> * Added zlib (a.k.a. deflate) decompression filter
>>> +
>>> +Demux filter:
>>> + * Added a demuxer filter chain to filter or intercept control
>>> commands and demuxing
>>>
>>> Audio output:
>>> * Complete rewrite of the AudioTrack Android module. This is now
>>> the default.
>>> diff --git a/include/vlc_demux.h b/include/vlc_demux.h
>>> index 1153e1c..0c4bfeb 100644
>>> --- a/include/vlc_demux.h
>>> +++ b/include/vlc_demux.h
>>> @@ -77,16 +77,25 @@ struct demux_t
>>>
>>> /* Weak link to parent input */
>>> input_thread_t *p_input;
>>> +
>>> + /* demux_t filter chaining */
>>> + demux_t *p_next;
>>> + demux_t *p_prev;
>>
>>
>> Should not be needed.
>
> For now when a demuxer changes the info values, it calls the previous
> demux in line to inform it.
No. For the last time, you cannot do that. It violates the memory model
given that the demux_t "interface" is not expected or designed to be
reentrant. More accurately, you cannot ensure that it will not violate
the memory model (not that the subtlety matters much).
--
Rémi Denis-Courmont
http://www.remlab.net/
More information about the vlc-devel
mailing list