subsdec.h
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * subsdec.h : text/ASS-SSA/USF subtitles headers
  3.  *****************************************************************************
  4.  * Copyright (C) 2000-2006 the VideoLAN team
  5.  * $Id: 2c221ca95dc09e18dd64f6b2435888604ef56e6d $
  6.  *
  7.  * Authors: Gildas Bazin <gbazin@videolan.org>
  8.  *          Samuel Hocevar <sam@zoy.org>
  9.  *          Derk-Jan Hartman <hartman at videolan dot org>
  10.  *          Bernie Purcell <bitmap@videolan.org>
  11.  *
  12.  * This program is free software; you can redistribute it and/or modify
  13.  * it under the terms of the GNU General Public License as published by
  14.  * the Free Software Foundation; either version 2 of the License, or
  15.  * (at your option) any later version.
  16.  *
  17.  * This program is distributed in the hope that it will be useful,
  18.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20.  * GNU General Public License for more details.
  21.  *
  22.  * You should have received a copy of the GNU General Public License
  23.  * along with this program; if not, write to the Free Software
  24.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  25.  *****************************************************************************/
  26. #ifndef SUBSDEC_HEADER_H
  27. #define SUBSDEC_HEADER_H
  28. #include <vlc_common.h>
  29. #include <vlc_vout.h>
  30. #include <vlc_codec.h>
  31. #include <vlc_input.h>
  32. #include <vlc_osd.h>
  33. #include <vlc_filter.h>
  34. #include <vlc_image.h>
  35. #include <vlc_charset.h>
  36. #include <vlc_stream.h>
  37. #include <vlc_xml.h>
  38. #include <errno.h>
  39. #include <string.h>
  40. #define DEFAULT_NAME "Default"
  41. #define MAX_LINE 8192
  42. #define NO_BREAKING_SPACE  "&#160;"
  43. enum
  44. {
  45.     ATTRIBUTE_ALIGNMENT = (1 << 0),
  46.     ATTRIBUTE_X         = (1 << 1),
  47.     ATTRIBUTE_X_PERCENT = (1 << 2),
  48.     ATTRIBUTE_Y         = (1 << 3),
  49.     ATTRIBUTE_Y_PERCENT = (1 << 4),
  50. };
  51. typedef struct
  52. {
  53.     char       *psz_filename;
  54.     picture_t  *p_pic;
  55. } image_attach_t;
  56. typedef struct
  57. {
  58.     char *          psz_stylename; /* The name of the style, no comma's allowed */
  59.     text_style_t    font_style;
  60.     int             i_align;
  61.     int             i_margin_h;
  62.     int             i_margin_v;
  63.     int             i_margin_percent_h;
  64.     int             i_margin_percent_v;
  65. }  ssa_style_t;
  66. /*****************************************************************************
  67.  * decoder_sys_t : decoder descriptor
  68.  *****************************************************************************/
  69. struct decoder_sys_t
  70. {
  71.     bool          b_ass;                           /* The subs are ASS */
  72.     int                 i_original_height;
  73.     int                 i_original_width;
  74.     int                 i_align;          /* Subtitles alignment on the vout */
  75.     vlc_iconv_t         iconv_handle;            /* handle to iconv instance */
  76.     bool          b_autodetect_utf8;
  77.     ssa_style_t         **pp_ssa_styles;
  78.     int                 i_ssa_styles;
  79.     image_attach_t      **pp_images;
  80.     int                 i_images;
  81. };
  82. char                *GotoNextLine( char *psz_text );
  83. void                ParseSSAHeader ( decoder_t * );
  84. void                ParseSSAString ( decoder_t *, char *, subpicture_t * );
  85. #endif