]> git.sesse.net Git - vlc/blobdiff - src/control/media_player.c
LibVLC VoD: remove exceptions
[vlc] / src / control / media_player.c
index 98ab5ad1a9499bc3ca45003b46b0e17815f1fb4c..116064243a26aa0ee0c4e1ec174739ba4ace7534 100644 (file)
@@ -122,24 +122,18 @@ static void release_input_thread( libvlc_media_player_t *p_mi, bool b_input_abor
  *
  * Function will lock the object.
  */
-input_thread_t *libvlc_get_input_thread( libvlc_media_player_t *p_mi,
-                                         libvlc_exception_t *p_e )
+input_thread_t *libvlc_get_input_thread( libvlc_media_player_t *p_mi )
 {
     input_thread_t *p_input_thread;
 
-    if( !p_mi ) RAISENULL( "Media Instance is NULL" );
+    assert( p_mi );
 
     lock(p_mi);
-
-    if( !p_mi->p_input_thread )
-    {
-        unlock(p_mi);
-        RAISENULL( "Input is NULL" );
-    }
-
     p_input_thread = p_mi->p_input_thread;
-    vlc_object_hold( p_input_thread );
-
+    if( p_input_thread )
+        vlc_object_hold( p_input_thread );
+    else
+        libvlc_printerr( "No active input" );
     unlock(p_mi);
 
     return p_input_thread;
@@ -347,7 +341,7 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     }
     vlc_object_attach (mp, mp->p_libvlc);
 
-    /* Drawable */
+    /* Video */
     var_Create (mp, "drawable-xid", VLC_VAR_INTEGER);
 #ifdef WIN32
     var_Create (mp, "drawable-hwnd", VLC_VAR_ADDRESS);
@@ -357,10 +351,23 @@ libvlc_media_player_new( libvlc_instance_t *instance )
     var_Create (mp, "drawable-nsobject", VLC_VAR_ADDRESS);
 #endif
 
-    /* Drawable input methods */
     var_Create (mp, "keyboard-events", VLC_VAR_BOOL);
     var_SetBool (mp, "keyboard-events", true);
     var_Create (mp, "mouse-events", VLC_VAR_BOOL);
+    var_SetBool (mp, "mouse-events", true);
+
+    var_Create (mp, "fullscreen", VLC_VAR_BOOL);
+    var_Create (mp, "autoscale", VLC_VAR_BOOL);
+    var_SetBool (mp, "autoscale", true);
+    var_Create (mp, "scale", VLC_VAR_FLOAT);
+    var_SetFloat (mp, "scale", 1.);
+    var_Create (mp, "aspect-ratio", VLC_VAR_STRING);
+    var_Create (mp, "crop", VLC_VAR_STRING);
+    var_Create (mp, "deinterlace", VLC_VAR_INTEGER);
+    var_Create (mp, "deinterlace-mode", VLC_VAR_STRING);
+
+     /* Audio */
+    var_Create (mp, "aout", VLC_VAR_STRING | VLC_VAR_DOINHERIT);
 
     mp->p_md = NULL;
     mp->state = libvlc_NothingSpecial;
@@ -572,7 +579,7 @@ int libvlc_media_player_play( libvlc_media_player_t *p_mi )
 {
     input_thread_t * p_input_thread;
 
-    if( (p_input_thread = libvlc_get_input_thread( p_mi, NULL )) )
+    if( (p_input_thread = libvlc_get_input_thread( p_mi )) )
     {
         /* A thread already exists, send it a play message */
         input_Control( p_input_thread, INPUT_SET_STATE, PLAYING_S );
@@ -622,7 +629,7 @@ int libvlc_media_player_play( libvlc_media_player_t *p_mi )
  **************************************************************************/
 void libvlc_media_player_pause( libvlc_media_player_t *p_mi )
 {
-    input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi, NULL );
+    input_thread_t * p_input_thread = libvlc_get_input_thread( p_mi );
     if( !p_input_thread )
         return;
 
@@ -782,7 +789,7 @@ libvlc_time_t libvlc_media_player_get_length(
     input_thread_t *p_input_thread;
     libvlc_time_t i_time;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -797,7 +804,7 @@ libvlc_time_t libvlc_media_player_get_time( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     libvlc_time_t i_time;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -811,7 +818,7 @@ void libvlc_media_player_set_time( libvlc_media_player_t *p_mi,
 {
     input_thread_t *p_input_thread;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return;
 
@@ -824,7 +831,7 @@ void libvlc_media_player_set_position( libvlc_media_player_t *p_mi,
 {
     input_thread_t *p_input_thread;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return;
 
@@ -837,7 +844,7 @@ float libvlc_media_player_get_position( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     float f_position;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1.0;
 
@@ -852,7 +859,7 @@ void libvlc_media_player_set_chapter( libvlc_media_player_t *p_mi,
 {
     input_thread_t *p_input_thread;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return;
 
@@ -865,7 +872,7 @@ int libvlc_media_player_get_chapter( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     int i_chapter;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -880,7 +887,7 @@ int libvlc_media_player_get_chapter_count( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     vlc_value_t val;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -897,7 +904,7 @@ int libvlc_media_player_get_chapter_count_for_title(
     input_thread_t *p_input_thread;
     vlc_value_t val;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -919,7 +926,7 @@ void libvlc_media_player_set_title( libvlc_media_player_t *p_mi,
 {
     input_thread_t *p_input_thread;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return;
 
@@ -938,7 +945,7 @@ int libvlc_media_player_get_title( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     int i_title;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -953,7 +960,7 @@ int libvlc_media_player_get_title_count( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     vlc_value_t val;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -967,7 +974,7 @@ void libvlc_media_player_next_chapter( libvlc_media_player_t *p_mi )
 {
     input_thread_t *p_input_thread;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return;
 
@@ -982,7 +989,7 @@ void libvlc_media_player_previous_chapter( libvlc_media_player_t *p_mi )
 {
     input_thread_t *p_input_thread;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return;
 
@@ -995,7 +1002,7 @@ void libvlc_media_player_previous_chapter( libvlc_media_player_t *p_mi )
 
 float libvlc_media_player_get_fps( libvlc_media_player_t *p_mi )
 {
-    input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi );
     double f_fps = 0.0;
 
     if( p_input_thread )
@@ -1011,7 +1018,7 @@ int libvlc_media_player_will_play( libvlc_media_player_t *p_mi )
 {
     bool b_will_play;
     input_thread_t *p_input_thread =
-                            libvlc_get_input_thread ( p_mi, NULL );
+                            libvlc_get_input_thread ( p_mi );
     if ( !p_input_thread )
         return false;
 
@@ -1026,7 +1033,7 @@ int libvlc_media_player_set_rate( libvlc_media_player_t *p_mi, float rate )
     input_thread_t *p_input_thread;
     bool b_can_rewind;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return -1;
 
@@ -1049,7 +1056,7 @@ float libvlc_media_player_get_rate( libvlc_media_player_t *p_mi )
     float f_rate;
     bool b_can_rewind;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if( !p_input_thread )
         return 0.0;  /* rate < 0 indicates rewind */
 
@@ -1079,7 +1086,7 @@ int libvlc_media_player_is_seekable( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     bool b_seekable;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if ( !p_input_thread )
         return false;
     b_seekable = var_GetBool( p_input_thread, "can-seek" );
@@ -1093,7 +1100,7 @@ libvlc_track_description_t *
         libvlc_get_track_description( libvlc_media_player_t *p_mi,
                                       const char *psz_variable )
 {
-    input_thread_t *p_input = libvlc_get_input_thread( p_mi, NULL );
+    input_thread_t *p_input = libvlc_get_input_thread( p_mi );
     libvlc_track_description_t *p_track_description = NULL,
                                *p_actual, *p_previous;
 
@@ -1125,7 +1132,6 @@ libvlc_track_description_t *
             if ( !p_actual )
             {
                 libvlc_track_description_release( p_track_description );
-                libvlc_exception_raise( p_e );
                 libvlc_printerr( "Not enough memory" );
                 goto end;
             }
@@ -1165,7 +1171,7 @@ int libvlc_media_player_can_pause( libvlc_media_player_t *p_mi )
     input_thread_t *p_input_thread;
     bool b_can_pause;
 
-    p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    p_input_thread = libvlc_get_input_thread ( p_mi );
     if ( !p_input_thread )
         return false;
     b_can_pause = var_GetBool( p_input_thread, "can-pause" );
@@ -1176,7 +1182,7 @@ int libvlc_media_player_can_pause( libvlc_media_player_t *p_mi )
 
 void libvlc_media_player_next_frame( libvlc_media_player_t *p_mi )
 {
-    input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi, NULL );
+    input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi );
     if( p_input_thread != NULL )
     {
         var_TriggerCallback( p_input_thread, "frame-next" );