]> git.sesse.net Git - vlc/blobdiff - modules/codec/telx.c
mft: Link to mfplat when building with msvc
[vlc] / modules / codec / telx.c
index 07fd4cf883d24894205dfec2addc1afd69c39d8b..3b221fb04926515d8933996275e26165636cc4c7 100644 (file)
@@ -5,19 +5,19 @@
  * Some code converted from ProjectX java dvb decoder (c) 2001-2005 by dvb.matt
  * $Id$
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 /*****************************************************************************
  *
@@ -34,9 +34,8 @@
 #include <vlc_common.h>
 #include <vlc_plugin.h>
 
-#include "vlc_vout.h"
-#include "vlc_bits.h"
-#include "vlc_codec.h"
+#include <vlc_bits.h>
+#include <vlc_codec.h>
 
 /* #define TELX_DEBUG */
 #ifdef TELX_DEBUG
@@ -76,11 +75,11 @@ vlc_module_begin ()
     set_subcategory( SUBCAT_INPUT_SCODEC )
     set_callbacks( Open, Close )
 
-    add_integer( "telx-override-page", -1, NULL,
+    add_integer( "telx-override-page", -1,
                  OVERRIDE_PAGE_TEXT, OVERRIDE_PAGE_LONGTEXT, true )
-    add_bool( "telx-ignore-subtitle-flag", 0, NULL,
+    add_bool( "telx-ignore-subtitle-flag", false,
               IGNORE_SUB_FLAG_TEXT, IGNORE_SUB_FLAG_LONGTEXT, true )
-    add_bool( "telx-french-workaround", 0, NULL,
+    add_bool( "telx-french-workaround", false,
               FRENCH_WORKAROUND_TEXT, FRENCH_WORKAROUND_LONGTEXT, true )
 
 vlc_module_end ()
@@ -172,10 +171,10 @@ static int Open( vlc_object_t *p_this )
 {
     decoder_t     *p_dec = (decoder_t *) p_this;
     decoder_sys_t *p_sys = NULL;
-    vlc_value_t    val;
-    int            i;
+    int            i_val;
 
-    if( p_dec->fmt_in.i_codec != VLC_FOURCC('t','e','l','x'))
+
+    if( p_dec->fmt_in.i_codec != VLC_CODEC_TELETEXT)
     {
         return VLC_EGENERIC;
     }
@@ -188,25 +187,21 @@ static int Open( vlc_object_t *p_this )
     p_dec->fmt_out.i_codec = 0;
 
     p_sys->i_align = 0;
-    for ( i = 0; i < 9; i++ )
+    for ( int i = 0; i < 9; i++ )
         p_sys->pi_active_national_set[i] = ppi_national_subsets[1];
 
-    var_Create( p_dec, "telx-override-page",
-                VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
-    var_Get( p_dec, "telx-override-page", &val );
-    if( val.i_int == -1 &&
-        p_dec->fmt_in.subs.teletext.i_magazine != -1 &&
+    i_val = var_CreateGetInteger( p_dec, "telx-override-page" );
+    if( i_val == -1 && p_dec->fmt_in.subs.teletext.i_magazine != -1 &&
         ( p_dec->fmt_in.subs.teletext.i_magazine != 1 ||
           p_dec->fmt_in.subs.teletext.i_page != 0 ) ) /* ignore if TS demux wants page 100 (unlikely to be sub) */
     {
+        bool b_val;
         p_sys->i_wanted_magazine = p_dec->fmt_in.subs.teletext.i_magazine;
         p_sys->i_wanted_page = p_dec->fmt_in.subs.teletext.i_page;
 
-        var_Create( p_dec, "telx-french-workaround",
-                    VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
-        var_Get( p_dec, "telx-french-workaround", &val );
+        b_val = var_CreateGetBool( p_dec, "telx-french-workaround" );
         if( p_sys->i_wanted_page < 100 &&
-              (val.b_bool || (p_sys->i_wanted_page % 16) >= 10))
+            (b_val || (p_sys->i_wanted_page % 16) >= 10))
         {
             /* See http://www.nada.kth.se/~ragge/vdr/ttxtsubs/TROUBLESHOOTING.txt
              * paragraph about French channels - they mix up decimal and
@@ -215,21 +210,19 @@ static int Open( vlc_object_t *p_this )
                                    (p_sys->i_wanted_page % 10);
         }
     }
-    else if( val.i_int <= 0 )
+    else if( i_val <= 0 )
     {
         p_sys->i_wanted_magazine = -1;
         p_sys->i_wanted_page = -1;
     }
     else
     {
-        p_sys->i_wanted_magazine = val.i_int / 100;
-        p_sys->i_wanted_page = (((val.i_int % 100) / 10) << 4)
-                                | ((val.i_int % 100) % 10);
+        p_sys->i_wanted_magazine = i_val / 100;
+        p_sys->i_wanted_page = (((i_val % 100) / 10) << 4)
+                               |((i_val % 100) % 10);
     }
-    var_Create( p_dec, "telx-ignore-subtitle-flag",
-                VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
-    var_Get( p_dec, "telx-ignore-subtitle-flag", &val );
-    p_sys->b_ignore_sub_flag = val.b_bool;
+    p_sys->b_ignore_sub_flag = var_CreateGetBool( p_dec,
+                                    "telx-ignore-subtitle-flag" );
 
     msg_Dbg( p_dec, "starting telx on magazine %d page %02x flag %d",
              p_sys->i_wanted_magazine, p_sys->i_wanted_page,
@@ -692,7 +685,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block )
     strcpy( p_sys->psz_prev_text, psz_text );
 
     /* Create the subpicture unit */
-    p_spu = decoder_NewSubpicture( p_dec );
+    p_spu = decoder_NewSubpicture( p_dec, NULL );
     if( !p_spu )
     {
         msg_Warn( p_dec, "can't get spu buffer" );
@@ -700,9 +693,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block )
     }
  
     /* Create a new subpicture region */
-    memset( &fmt, 0, sizeof(video_format_t) );
-    fmt.i_chroma = VLC_FOURCC('T','E','X','T');
-    fmt.i_aspect = 0;
+    video_format_Init(&fmt, VLC_CODEC_TEXT);
     fmt.i_width = fmt.i_height = 0;
     fmt.i_x_offset = fmt.i_y_offset = 0;
     p_spu->p_region = subpicture_region_New( &fmt );
@@ -730,7 +721,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block )
 error:
     if ( p_spu != NULL )
     {
-        decoder_DeleteSubpicture( p_dec, p_spu );
+        subpicture_Delete( p_spu );
         p_spu = NULL;
     }