]> git.sesse.net Git - vlc/blobdiff - src/control/media.c
The last but not least of this serie of memleaks.
[vlc] / src / control / media.c
index 38326bcf3c48c37606baa94ed74f55ab154e4a1b..bb6e7420d67b39206cfa3e57796aa3e7db556522 100644 (file)
@@ -22,7 +22,7 @@
  *****************************************************************************/
 
 #include "libvlc_internal.h"
-
+#include "libvlc.h"
 #include <vlc/libvlc.h>
 #include <vlc_input.h>
 #include <vlc_meta.h>
@@ -98,7 +98,7 @@ static void input_item_subitem_added( const vlc_event_t *p_event,
     }
 
     /* Construct the event */
-    event.type = libvlc_MediaDescriptorSubItemAdded;
+    event.type = libvlc_MediaSubItemAdded;
     event.u.media_subitem_added.new_child = p_md_child;
 
     /* Send the event */
@@ -116,7 +116,7 @@ static void input_item_meta_changed( const vlc_event_t *p_event,
     libvlc_event_t event;
 
     /* Construct the event */
-    event.type = libvlc_MediaDescriptorMetaChanged;
+    event.type = libvlc_MediaMetaChanged;
     event.u.media_meta_changed.meta_type =
         vlc_to_libvlc_meta[p_event->u.input_item_meta_changed.meta_type];
 
@@ -134,7 +134,7 @@ static void input_item_duration_changed( const vlc_event_t *p_event,
     libvlc_event_t event;
 
     /* Construct the event */
-    event.type = libvlc_MediaDescriptorDurationChanged;
+    event.type = libvlc_MediaDurationChanged;
     event.u.media_duration_changed.new_duration = 
         p_event->u.input_item_duration_changed.new_duration;
 
@@ -152,7 +152,7 @@ static void input_item_preparsed_changed( const vlc_event_t *p_event,
     libvlc_event_t event;
 
     /* Construct the event */
-    event.type = libvlc_MediaDescriptorPreparsedChanged;
+    event.type = libvlc_MediaPreparsedChanged;
     event.u.media_preparsed_changed.new_status = 
         p_event->u.input_item_preparsed_changed.new_status;
 
@@ -215,9 +215,9 @@ static void preparse_if_needed( libvlc_media_t *p_md )
     if (!p_md->b_preparsed)
     {
         playlist_PreparseEnqueue(
-                p_md->p_libvlc_instance->p_libvlc_int->p_playlist,
+                libvlc_priv (p_md->p_libvlc_instance->p_libvlc_int)->p_playlist,
                 p_md->p_input_item );
-        p_md->b_preparsed = VLC_TRUE;
+        p_md->b_preparsed = true;
     }
 }
 
@@ -240,9 +240,15 @@ libvlc_media_t * libvlc_media_new_from_input_item(
     }
 
     p_md = malloc( sizeof(libvlc_media_t) );
+    if( !p_md )
+    {
+        libvlc_exception_raise( p_e, "Not enough memory" );
+        return NULL;
+    }
+
     p_md->p_libvlc_instance = p_instance;
     p_md->p_input_item      = p_input_item;
-    p_md->b_preparsed       = VLC_FALSE;
+    p_md->b_preparsed       = false;
     p_md->i_refcount        = 1;
     p_md->p_user_data       = NULL;
 
@@ -254,15 +260,15 @@ libvlc_media_t * libvlc_media_new_from_input_item(
 
     p_md->p_event_manager = libvlc_event_manager_new( p_md, p_instance, p_e );
     libvlc_event_manager_register_event_type( p_md->p_event_manager,
-        libvlc_MediaDescriptorMetaChanged, p_e );
+        libvlc_MediaMetaChanged, p_e );
     libvlc_event_manager_register_event_type( p_md->p_event_manager,
-        libvlc_MediaDescriptorSubItemAdded, p_e );
+        libvlc_MediaSubItemAdded, p_e );
     libvlc_event_manager_register_event_type( p_md->p_event_manager,
-        libvlc_MediaDescriptorFreed, p_e );
+        libvlc_MediaFreed, p_e );
     libvlc_event_manager_register_event_type( p_md->p_event_manager,
-        libvlc_MediaDescriptorDurationChanged, p_e );
+        libvlc_MediaDurationChanged, p_e );
     libvlc_event_manager_register_event_type( p_md->p_event_manager,
-        libvlc_MediaDescriptorStateChanged, p_e );
+        libvlc_MediaStateChanged, p_e );
 
     vlc_gc_incref( p_md->p_input_item );
 
@@ -295,7 +301,7 @@ libvlc_media_t * libvlc_media_new(
 
     /* The p_input_item is retained in libvlc_media_new_from_input_item */
     vlc_gc_decref( p_input_item );
-    
+
     return p_md;
 }
 
@@ -339,7 +345,7 @@ void libvlc_media_add_option(
                                    const char * ppsz_option,
                                    libvlc_exception_t *p_e )
 {
-    (void)p_e;
+    VLC_UNUSED(p_e);
     input_ItemAddOpt( p_md->p_input_item, ppsz_option,
                       VLC_INPUT_OPTION_UNIQUE|VLC_INPUT_OPTION_TRUSTED );
 }
@@ -365,7 +371,7 @@ void libvlc_media_release( libvlc_media_t *p_md )
 
     /* Construct the event */
     libvlc_event_t event;
-    event.type = libvlc_MediaDescriptorFreed;
+    event.type = libvlc_MediaFreed;
     event.u.media_freed.md = p_md;
 
     /* Send the event */
@@ -404,7 +410,7 @@ char *
 libvlc_media_get_mrl( libvlc_media_t * p_md,
                                  libvlc_exception_t * p_e )
 {
-    (void)p_e;
+    VLC_UNUSED(p_e);
     return input_item_GetURI( p_md->p_input_item );
 }
 
@@ -416,9 +422,8 @@ char * libvlc_media_get_meta( libvlc_media_t *p_md,
                                          libvlc_meta_t e_meta,
                                          libvlc_exception_t *p_e )
 {
-    VLC_UNUSED(p_e);
-
     char * psz_meta;
+    VLC_UNUSED(p_e);
 
     /* XXX: locking */
 
@@ -426,11 +431,11 @@ char * libvlc_media_get_meta( libvlc_media_t *p_md,
 
     psz_meta = input_item_GetMeta( p_md->p_input_item,
                                    libvlc_to_vlc_meta[e_meta] );
-    
+
     if( e_meta == libvlc_meta_ArtworkURL && !psz_meta )
     {
         playlist_AskForArtEnqueue(
-                p_md->p_libvlc_instance->p_libvlc_int->p_playlist,
+                libvlc_priv(p_md->p_libvlc_instance->p_libvlc_int)->p_playlist,
                 p_md->p_input_item );
     }
 
@@ -453,7 +458,7 @@ libvlc_state_t
 libvlc_media_get_state( libvlc_media_t *p_md,
                                    libvlc_exception_t *p_e )
 {
-    (void)p_e;
+    VLC_UNUSED(p_e);
     return p_md->state;
 }
 
@@ -466,13 +471,13 @@ libvlc_media_set_state( libvlc_media_t *p_md,
                                    libvlc_state_t state,
                                    libvlc_exception_t *p_e )
 {
-    (void)p_e;
     libvlc_event_t event;
+    VLC_UNUSED(p_e);
 
     p_md->state = state;
 
     /* Construct the event */
-    event.type = libvlc_MediaDescriptorStateChanged;
+    event.type = libvlc_MediaStateChanged;
     event.u.media_state_changed.new_state = state;
 
     /* Send the event */
@@ -508,7 +513,7 @@ libvlc_media_event_manager( libvlc_media_t * p_md,
 /**************************************************************************
  * Get duration of media object.
  **************************************************************************/
-vlc_int64_t
+int64_t
 libvlc_media_get_duration( libvlc_media_t * p_md,
                                       libvlc_exception_t * p_e )
 {
@@ -539,7 +544,7 @@ libvlc_media_is_preparsed( libvlc_media_t * p_md,
     }
     else
     {
-        return VLC_FALSE;
+        return false;
     }
 }
 
@@ -581,4 +586,3 @@ libvlc_media_get_user_data( libvlc_media_t * p_md,
         return NULL;
     }
 }
-