VLC 4.0.0-dev
Loading...
Searching...
No Matches
source.h
Go to the documentation of this file.
1/*****************************************************************************
2 * source.h: Internal input source structures
3 *****************************************************************************
4 * Copyright (C) 1998-2006 VLC authors and VideoLAN
5 *
6 * Authors: Laurent Aimar <fenrir@via.ecp.fr>
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU Lesser General Public License as published by
10 * the Free Software Foundation; either version 2.1 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this program; if not, write to the Free Software Foundation,
20 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21 *****************************************************************************/
22
23#ifndef LIBVLC_INPUT_SOURCE_H
24#define LIBVLC_INPUT_SOURCE_H 1
25
26#include <vlc_common.h>
27#include <vlc_tick.h>
28#include <vlc_atomic.h>
29
31struct vlc_input_es_out;
32
33/* input_source_t: gathers all information per input source */
35{
37
38 demux_t *p_demux; /**< Demux object (most downstream) */
39 struct vlc_input_es_out *p_slave_es_out; /**< Slave es out */
40
41 char *str_id;
44
45 /* Title infos for that input */
46 bool b_title_demux; /* Titles/Seekpoints provided by demux */
49
52
57
58 /* Properties */
64 double f_fps;
65
66 /* sub-fps handling */
68 float sub_rate;
69
70 /* */
72
73 /* Read-write protected by es_out.c lock */
75
76 bool b_eof; /* eof of demuxer */
77};
78
79/**
80 * Hold the input_source_t
81 */
83
84/**
85 * Release the input_source_t
86 */
88
89/**
90 * Returns the string identifying this input source
91 *
92 * @return a string id or NULL if the source is the master
93 */
94const char *input_source_GetStrId( input_source_t *in );
95
96/**
97 * Get a new fmt.i_id from the input source
98 *
99 * This auto id will be relative to this input source. It allows to have stable
100 * ids across different playback instances, by not relying on the input source
101 * addition order.
102 */
104
105/**
106 * Returns true if a given source should be auto-selected
107 */
109
110#endif
int input_source_GetNewAutoId(input_source_t *in)
Get a new fmt.i_id from the input source.
Definition source.c:50
input_source_t * input_source_Hold(input_source_t *in)
Hold the input_source_t.
Definition source.c:30
bool input_source_IsAutoSelected(input_source_t *in)
Returns true if a given source should be auto-selected.
Definition source.c:55
void input_source_Release(input_source_t *in)
Release the input_source_t.
Definition source.c:36
const char * input_source_GetStrId(input_source_t *in)
Returns the string identifying this input source.
Definition source.c:45
Definition source.h:35
bool b_can_pace_control
Definition source.h:60
bool b_title_demux
Definition source.h:46
bool b_can_pause
Definition source.h:59
int i_title
Definition source.h:47
bool b_can_rate_control
Definition source.h:61
input_title_t ** title
Definition source.h:48
int i_seekpoint_start
Definition source.h:55
char * str_id
Definition source.h:41
struct vlc_input_es_out * p_slave_es_out
Slave es out.
Definition source.h:39
int i_seekpoint_end
Definition source.h:56
bool b_slave_sub
Definition source.h:67
demux_t * p_demux
Demux object (most downstream)
Definition source.h:38
vlc_atomic_rc_t rc
Definition source.h:36
int i_title_end
Definition source.h:54
int i_title_start
Definition source.h:53
double f_fps
Definition source.h:64
int i_seekpoint_offset
Definition source.h:51
bool b_rescale_ts
Definition source.h:63
float sub_rate
Definition source.h:68
int auto_id
Definition source.h:42
vlc_tick_t i_normal_time
Definition source.h:74
bool autoselected
Definition source.h:43
bool b_can_stream_record
Definition source.h:62
vlc_tick_t i_pts_delay
Definition source.h:71
int i_title_offset
Definition source.h:50
bool b_eof
Definition source.h:76
Definition vlc_input.h:103
stream_t definition
Definition vlc_stream.h:135
Definition vlc_atomic.h:48
Definition es_out.h:116
Atomic operations do not require locking, but they are not very powerful.
This file is a collection of common definitions and types.
int64_t vlc_tick_t
High precision date or time interval.
Definition vlc_tick.h:48