]> git.sesse.net Git - vlc/commitdiff
LibVLC teletext: various fixes
authorRémi Denis-Courmont <remi@remlab.net>
Sat, 6 Feb 2010 16:56:17 +0000 (18:56 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sat, 6 Feb 2010 16:56:17 +0000 (18:56 +0200)
 * allow setting page all the time,
 * remove dummy exception,
 * fix an object leak,
 * remove impossible error,
 * fix apparently inverted logic.

include/vlc/libvlc_media_player.h
src/control/media_player.c
src/control/video.c

index f14ef9087ac59948c8f9144c9f22d09d60c6f3fb..7016ee2481c0f065ec05f9011a6348e1354811d4 100644 (file)
@@ -725,9 +725,8 @@ VLC_PUBLIC_API int libvlc_video_get_teletext( libvlc_media_player_t * );
  *
  * \param p_mediaplayer the media player
  * \param i_page teletex page number requested
- * \param p_e an initialized exception pointer
  */
-VLC_PUBLIC_API void libvlc_video_set_teletext( libvlc_media_player_t *, int, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_set_teletext( libvlc_media_player_t *, int );
 
 /**
  * Toggle teletext transparent status on video output.
index 99e4df0b21c601458746491d3b762470d8d276f0..c5af723a633e0b21d80f078b9fca66e525a260be 100644 (file)
@@ -365,6 +365,7 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     var_Create (mp, "crop", VLC_VAR_STRING);
     var_Create (mp, "deinterlace", VLC_VAR_INTEGER);
     var_Create (mp, "deinterlace-mode", VLC_VAR_STRING);
+    var_Create (mp, "vbi-page", VLC_VAR_INTEGER);
 
      /* Audio */
     var_Create (mp, "aout", VLC_VAR_STRING | VLC_VAR_DOINHERIT);
index 286ae181761ee541628db40f5a913d83a9f3a361..df91345a3eb92f6ae660d025285c221ebc721d1d 100644 (file)
@@ -390,37 +390,17 @@ void libvlc_video_set_crop_geometry( libvlc_media_player_t *p_mi,
 
 int libvlc_video_get_teletext( libvlc_media_player_t *p_mi )
 {
-    input_thread_t *p_input_thread;
-    vlc_object_t *p_zvbi = NULL;
-    int i_ret = -1, telx;
-
-    p_input_thread = libvlc_get_input_thread( p_mi );
-    if( !p_input_thread ) return i_ret;
-
-    if( var_CountChoices( p_input_thread, "teletext-es" ) <= 0 )
-    {
-        vlc_object_release( p_input_thread );
-        return i_ret;
-    }
-
-    telx = var_GetInteger( p_input_thread, "teletext-es" );
-    if( input_GetEsObjects( p_input_thread, telx, &p_zvbi, NULL, NULL )
-        != VLC_SUCCESS )
-    {
-        i_ret = var_GetInteger( p_zvbi, "vbi-page" );
-        vlc_object_release( p_zvbi );
-    }
-    vlc_object_release( p_input_thread );
-    return i_ret;
+    return var_GetInteger (p_mi, "vbi-page");
 }
 
-void libvlc_video_set_teletext( libvlc_media_player_t *p_mi, int i_page,
-                                libvlc_exception_t *p_e )
+void libvlc_video_set_teletext( libvlc_media_player_t *p_mi, int i_page )
 {
     input_thread_t *p_input_thread;
     vlc_object_t *p_zvbi = NULL;
     int telx;
 
+    var_SetInteger (p_mi, "vbi-page", i_page);
+
     p_input_thread = libvlc_get_input_thread( p_mi );
     if( !p_input_thread ) return;
 
@@ -432,15 +412,10 @@ void libvlc_video_set_teletext( libvlc_media_player_t *p_mi, int i_page,
 
     telx = var_GetInteger( p_input_thread, "teletext-es" );
     if( input_GetEsObjects( p_input_thread, telx, &p_zvbi, NULL, NULL )
-        != VLC_SUCCESS )
+        == VLC_SUCCESS )
     {
-        int i_ret = var_SetInteger( p_zvbi, "vbi-page", i_page );
+        var_SetInteger( p_zvbi, "vbi-page", i_page );
         vlc_object_release( p_zvbi );
-        if( i_ret )
-        {
-            libvlc_exception_raise( p_e );
-            libvlc_printerr( "Unexpected error while setting teletext page" );
-        }
     }
     vlc_object_release( p_input_thread );
 }