VLC  4.0.0-dev
demux.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * demux.h: Input demux functions
3  *****************************************************************************
4  * Copyright (C) 1998-2008 VLC authors and VideoLAN
5  * Copyright (C) 2008 Laurent Aimar
6  *
7  * Authors: Laurent Aimar <fenrir@via.ecp.fr>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef LIBVLC_INPUT_DEMUX_H
25 #define LIBVLC_INPUT_DEMUX_H 1
26 
27 #include <vlc_common.h>
28 #include <vlc_demux.h>
29 
30 #include "stream.h"
31 
32 /* stream_t *s could be null and then it mean a access+demux in one */
33 demux_t *demux_NewAdvanced( vlc_object_t *p_obj, input_thread_t *p_parent_input,
34  const char *psz_demux, const char *url,
35  stream_t *s, es_out_t *out, bool );
36 
37 unsigned demux_TestAndClearFlags( demux_t *, unsigned );
38 int demux_GetTitle( demux_t * );
40 
41 /**
42  * Builds an explicit chain of demux filters.
43  *
44  * This function creates a chain of filters according to a supplied list.
45  *
46  * See also stream_FilterChainNew(). Those two functions have identical
47  * semantics and ownership rules, except for the use of demux vs stream.
48  *
49  * @param source input stream around which to build a filter chain
50  * @param list colon-separated list of stream filters (upstream first)
51  *
52  * @note Like stream_FilterAutoNew(), this function takes ownership of the
53  * source input stream, and transfers it to the first demux filter in the
54  * constructed chain. Any use of the source after the function call is invalid
55  * and undefined (unless the chain ends up empty).
56  *
57  * @return The last demux (filter) in the chain.
58  * The return value is always a valid (non-NULL) demux pointer.
59  */
60 demux_t *demux_FilterChainNew( demux_t *source, const char *list ) VLC_USED;
61 
62 bool demux_FilterEnable( demux_t *p_demux_chain, const char* psz_demux );
63 bool demux_FilterDisable( demux_t *p_demux_chain, const char* psz_demux );
64 
65 #endif
int demux_GetSeekpoint(demux_t *)
Definition: demux.c:473
module_config_t ** list
Definition: core.c:401
Demultiplexer modules interface.
int demux_GetTitle(demux_t *)
Definition: demux.c:464
This file is a collection of common definitions and types.
unsigned demux_TestAndClearFlags(demux_t *, unsigned)
Definition: demux.c:455
Definition: vlc_es_out.h:143
bool demux_FilterEnable(demux_t *p_demux_chain, const char *psz_demux)
Definition: demux.c:557
demux_t * demux_FilterChainNew(demux_t *source, const char *list)
Builds an explicit chain of demux filters.
Definition: demux.c:512
demux_t * demux_NewAdvanced(vlc_object_t *p_obj, input_thread_t *p_parent_input, const char *psz_demux, const char *url, stream_t *s, es_out_t *out, bool)
Definition: demux.c:186
Main structure representing an input thread.
Definition: input_internal.h:48
stream_t definition
Definition: vlc_stream.h:46
VLC object common members.
Definition: vlc_objects.h:43
#define VLC_USED
Definition: fourcc_gen.c:32
bool demux_FilterDisable(demux_t *p_demux_chain, const char *psz_demux)
Definition: demux.c:562