home *** CD-ROM | disk | FTP | other *** search
/ mail.altrad.com / 2015.02.mail.altrad.com.tar / mail.altrad.com / TEST / vlc-2-0-5-win32.exe / sdk / include / vlc / plugins / vlc_spu.h < prev    next >
C/C++ Source or Header  |  2012-12-12  |  3KB  |  113 lines

  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.  
  113.