VLC
2.1.0-git
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
src
input
decoder.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* decoder.h: Input decoder functions
3
*****************************************************************************
4
* Copyright (C) 1998-2008 VLC authors and VideoLAN
5
* Copyright (C) 2008 Laurent Aimar
6
* $Id: 1c9e1b61e5969145b930175374c6c74e2d12b097 $
7
*
8
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
9
*
10
* This program is free software; you can redistribute it and/or modify it
11
* under the terms of the GNU Lesser General Public License as published by
12
* the Free Software Foundation; either version 2.1 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU Lesser General Public License for more details.
19
*
20
* You should have received a copy of the GNU Lesser General Public License
21
* along with this program; if not, write to the Free Software Foundation,
22
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23
*****************************************************************************/
24
25
#ifndef LIBVLC_INPUT_DECODER_H
26
#define LIBVLC_INPUT_DECODER_H 1
27
28
#include <
vlc_common.h
>
29
#include <
vlc_codec.h
>
30
31
#define BLOCK_FLAG_CORE_FLUSH (1 <<BLOCK_FLAG_CORE_PRIVATE_SHIFT)
32
#define BLOCK_FLAG_CORE_EOS (1 <<(BLOCK_FLAG_CORE_PRIVATE_SHIFT + 1))
33
34
decoder_t
*
input_DecoderNew
(
input_thread_t
*,
es_format_t
*,
input_clock_t
*,
35
sout_instance_t
* )
VLC_USED
;
36
37
/**
38
* This function changes the pause state.
39
* The date parameter MUST hold the exact date at wich the change has been
40
* done for proper vout/aout pausing.
41
*/
42
void
input_DecoderChangePause
(
decoder_t
*,
bool
b_paused,
mtime_t
i_date );
43
44
/**
45
* This function changes the delay.
46
*/
47
void
input_DecoderChangeDelay
( decoder_t *,
mtime_t
i_delay );
48
49
/**
50
* This function starts the buffering mode.
51
*/
52
void
input_DecoderStartBuffering
( decoder_t * );
53
54
/**
55
* This function waits for the decoder to have buffered sufficient data.
56
*/
57
void
input_DecoderWaitBuffering
( decoder_t * );
58
59
/**
60
* This function stops the buffering mode.
61
*/
62
void
input_DecoderStopBuffering
( decoder_t * );
63
64
/**
65
* This function returns true if the decoder fifo is empty and false otherwise.
66
*/
67
bool
input_DecoderIsEmpty
( decoder_t * );
68
69
/**
70
* This function activates the request closed caption channel.
71
*/
72
int
input_DecoderSetCcState
( decoder_t *,
bool
b_decode,
int
i_channel );
73
74
/**
75
* This function returns an error if the requested channel does not exist and
76
* set pb_decode to the channel status(active or not) otherwise.
77
*/
78
int
input_DecoderGetCcState
( decoder_t *,
bool
*pb_decode,
int
i_channel );
79
80
/**
81
* This function set each pb_present entry to true if the corresponding channel
82
* exists or false otherwise.
83
*/
84
void
input_DecoderIsCcPresent
( decoder_t *,
bool
pb_present[4] );
85
86
/**
87
* This function force the display of the next picture and fills the stream
88
* time consumed.
89
*/
90
void
input_DecoderFrameNext
( decoder_t *p_dec,
mtime_t
*pi_duration );
91
92
/**
93
* This function will return true if the ES format or meta data have changed since
94
* the last call. In which case, it will do a copy of the current es_format_t if p_fmt
95
* is not NULL and will do a copy of the current description if pp_meta is non NULL.
96
* The es_format_t MUST be freed by es_format_Clean and *pp_meta MUST be freed by
97
* vlc_meta_Delete.
98
* Otherwise it will return false and will not initialize p_fmt and *pp_meta.
99
*/
100
bool
input_DecoderHasFormatChanged
( decoder_t *p_dec,
es_format_t
*p_fmt,
vlc_meta_t
**pp_meta );
101
102
/**
103
* This function returns the current size in bytes of the decoder fifo
104
*/
105
size_t
input_DecoderGetFifoSize
( decoder_t *p_dec );
106
107
/**
108
* This function returns the objects associated to a decoder
109
*
110
* They must be released using vlc_object_release().
111
*/
112
void
input_DecoderGetObjects
( decoder_t *,
vout_thread_t
**,
audio_output_t
** );
113
114
#endif
Generated by
1.8.1.2