]> git.sesse.net Git - vlc/blobdiff - modules/codec/telx.c
Really fix the vlm_MessageNew NULL warning
[vlc] / modules / codec / telx.c
index 9c6978f0fdb153fc3433023d4508ae18a56c818e..07fd4cf883d24894205dfec2addc1afd69c39d8b 100644 (file)
@@ -68,22 +68,22 @@ static subpicture_t *Decode( decoder_t *, block_t ** );
         "interpretation mistake. Try using this wrong interpretation if " \
         "your subtitles don't appear.")
 
-vlc_module_begin();
-    set_description( N_("Teletext subtitles decoder") );
-    set_shortname( "Teletext" );
-    set_capability( "decoder", 50 );
-    set_category( CAT_INPUT );
-    set_subcategory( SUBCAT_INPUT_SCODEC );
-    set_callbacks( Open, Close );
+vlc_module_begin ()
+    set_description( N_("Teletext subtitles decoder") )
+    set_shortname( "Teletext" )
+    set_capability( "decoder", 50 )
+    set_category( CAT_INPUT )
+    set_subcategory( SUBCAT_INPUT_SCODEC )
+    set_callbacks( Open, Close )
 
     add_integer( "telx-override-page", -1, NULL,
-                 OVERRIDE_PAGE_TEXT, OVERRIDE_PAGE_LONGTEXT, true );
+                 OVERRIDE_PAGE_TEXT, OVERRIDE_PAGE_LONGTEXT, true )
     add_bool( "telx-ignore-subtitle-flag", 0, NULL,
-              IGNORE_SUB_FLAG_TEXT, IGNORE_SUB_FLAG_LONGTEXT, true );
+              IGNORE_SUB_FLAG_TEXT, IGNORE_SUB_FLAG_LONGTEXT, true )
     add_bool( "telx-french-workaround", 0, NULL,
-              FRENCH_WORKAROUND_TEXT, FRENCH_WORKAROUND_LONGTEXT, true );
+              FRENCH_WORKAROUND_TEXT, FRENCH_WORKAROUND_LONGTEXT, true )
 
-vlc_module_end();
+vlc_module_end ()
 
 /****************************************************************************
  * Local structures
@@ -181,11 +181,11 @@ static int Open( vlc_object_t *p_this )
     }
 
     p_dec->pf_decode_sub = Decode;
-    p_sys = p_dec->p_sys = malloc( sizeof(decoder_sys_t) );
+    p_sys = p_dec->p_sys = calloc( 1, sizeof(*p_sys) );
     if( p_sys == NULL )
         return VLC_ENOMEM;
-
-    memset( p_sys, 0, sizeof(decoder_sys_t) );
+    p_dec->fmt_out.i_cat = SPU_ES;
+    p_dec->fmt_out.i_codec = 0;
 
     p_sys->i_align = 0;
     for ( i = 0; i < 9; i++ )
@@ -194,13 +194,13 @@ static int Open( vlc_object_t *p_this )
     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.dvb.i_id != -1 
-          && p_dec->fmt_in.subs.dvb.i_id != (1<<16) ) /* ignore if TS demux wants page 100 (unlikely to be sub) */
+    if( val.i_int == -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) */
     {
-        p_sys->i_wanted_magazine = p_dec->fmt_in.subs.dvb.i_id >> 16;
-        if( p_sys->i_wanted_magazine == 0 )
-            p_sys->i_wanted_magazine = 8;
-        p_sys->i_wanted_page = p_dec->fmt_in.subs.dvb.i_id & 0xff;
+        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 );
@@ -692,7 +692,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 = p_dec->pf_spu_buffer_new( p_dec );
+    p_spu = decoder_NewSubpicture( p_dec );
     if( !p_spu )
     {
         msg_Warn( p_dec, "can't get spu buffer" );
@@ -730,7 +730,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block )
 error:
     if ( p_spu != NULL )
     {
-        p_dec->pf_spu_buffer_del( p_dec, p_spu );
+        decoder_DeleteSubpicture( p_dec, p_spu );
         p_spu = NULL;
     }