]> git.sesse.net Git - vlc/blobdiff - modules/codec/telx.c
threads: Make sure we don't re-create a thread if the object has already one.
[vlc] / modules / codec / telx.c
index 455f4b9636ad47b14dd2c5a8fefb01c8830007a4..e361760c46b0273fad893a0d9494d15629133009 100644 (file)
 #ifdef HAVE_CONFIG_H
 # include "config.h"
 #endif
-
-#include <vlc/vlc.h>
 #include <assert.h>
 #include <stdint.h>
 
+#include <vlc_common.h>
+#include <vlc_plugin.h>
+#include <vlc_input.h>
+
 #include "vlc_vout.h"
 #include "vlc_bits.h"
 #include "vlc_codec.h"
@@ -68,7 +70,7 @@ static subpicture_t *Decode( decoder_t *, block_t ** );
         "your subtitles don't appear.")
 
 vlc_module_begin();
-    set_description( _("Teletext subtitles decoder") );
+    set_description( N_("Teletext subtitles decoder") );
     set_shortname( "Teletext" );
     set_capability( "decoder", 50 );
     set_category( CAT_INPUT );
@@ -182,10 +184,7 @@ 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) );
     if( p_sys == NULL )
-    {
-        msg_Err( p_dec, "out of memory" );
         return VLC_ENOMEM;
-    }
 
     memset( p_sys, 0, sizeof(decoder_sys_t) );
 
@@ -455,8 +454,11 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block )
     char psz_line[256];
     int i, total;
 
-    if( pp_block == NULL || *pp_block == NULL ) return NULL;
+    if( pp_block == NULL || *pp_block == NULL )
+        return NULL;
     p_block = *pp_block;
+    if( p_block->i_rate != 0 )
+        p_block->i_length = p_block->i_length * p_block->i_rate / INPUT_RATE_DEFAULT;
     *pp_block = NULL;
 
     dbg((p_dec, "start of telx packet with header %2x\n",