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
include
vlc_spu.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* vlc_spu.h: spu_t definition and functions.
3
*****************************************************************************
4
* Copyright (C) 1999-2010 VLC authors and VideoLAN
5
* Copyright (C) 2010 Laurent Aimar
6
* $Id: d448d06f8c9f9c91d70239ff0d07cb5ceac06423 $
7
*
8
* Authors: Gildas Bazin <gbazin@videolan.org>
9
* Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
10
*
11
* This program is free software; you can redistribute it and/or modify it
12
* under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation; either version 2.1 of the License, or
14
* (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU Lesser General Public License for more details.
20
*
21
* You should have received a copy of the GNU Lesser General Public License
22
* along with this program; if not, write to the Free Software Foundation,
23
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
24
*****************************************************************************/
25
26
#ifndef VLC_SPU_H
27
#define VLC_SPU_H 1
28
29
#include <
vlc_subpicture.h
>
30
31
#ifdef __cplusplus
32
extern
"C"
{
33
#endif
34
35
/**********************************************************************
36
* Base SPU structures
37
**********************************************************************/
38
/**
39
* \defgroup spu Subpicture Unit
40
* This module describes the programming interface for the subpicture unit.
41
* It includes functions allowing to create/destroy an spu, and render
42
* subpictures.
43
* @{
44
*/
45
46
typedef
struct
spu_private_t
spu_private_t
;
47
48
/* Default subpicture channel ID */
49
#define SPU_DEFAULT_CHANNEL (1)
50
51
/**
52
* Subpicture unit descriptor
53
*/
54
struct
spu_t
55
{
56
VLC_COMMON_MEMBERS
57
58
spu_private_t
*
p
;
59
};
60
61
VLC_API
spu_t
*
spu_Create
(
vlc_object_t
* );
62
#define spu_Create(a) spu_Create(VLC_OBJECT(a))
63
VLC_API
void
spu_Destroy
(
spu_t
* );
64
65
/**
66
* This function sends a subpicture to the spu_t core.
67
*
68
* You cannot use the provided subpicture anymore. The spu_t core
69
* will destroy it at its convenience.
70
*/
71
VLC_API
void
spu_PutSubpicture
(
spu_t
*,
subpicture_t
* );
72
73
/**
74
* This function will return an unique subpicture containing the OSD and
75
* subtitles visibles at the requested date.
76
*
77
* \param p_chroma_list is a list of supported chroma for the output (can be NULL)
78
* \param p_fmt_dst is the format of the picture on which the return subpicture will be rendered.
79
* \param p_fmt_src is the format of the original(source) video.
80
*
81
* The returned value if non NULL must be released by subpicture_Delete().
82
*/
83
VLC_API
subpicture_t
*
spu_Render
(
spu_t
*,
const
vlc_fourcc_t
*p_chroma_list,
const
video_format_t
*p_fmt_dst,
const
video_format_t
*p_fmt_src,
mtime_t
render_subtitle_date,
mtime_t
render_osd_date,
bool
ignore_osd );
84
85
/**
86
* It registers a new SPU channel.
87
*/
88
VLC_API
int
spu_RegisterChannel
(
spu_t
* );
89
90
/**
91
* It clears all subpictures associated to a SPU channel.
92
*/
93
VLC_API
void
spu_ClearChannel
(
spu_t
*,
int
);
94
95
/**
96
* It changes the sub sources list
97
*/
98
VLC_API
void
spu_ChangeSources
(
spu_t
*,
const
char
* );
99
100
/**
101
* It changes the sub filters list
102
*/
103
VLC_API
void
spu_ChangeFilters
(
spu_t
*,
const
char
* );
104
105
/** @}*/
106
107
#ifdef __cplusplus
108
}
109
#endif
110
111
#endif
/* VLC_SPU_H */
112
Generated by
1.8.1.2