]> git.sesse.net Git - vlc/blobdiff - modules/demux/playlist/b4s.c
Use Brackets for global headers.
[vlc] / modules / demux / playlist / b4s.c
index 0f533c945c7baafb6416fe0cd44afad50ed9fd82..31405b43dce355da78185c481fe96ad4820a7b28 100644 (file)
@@ -32,9 +32,9 @@
 #include <vlc_common.h>
 #include <vlc_demux.h>
 #include <vlc_interface.h>
+#include <vlc_xml.h>
 
 #include "playlist.h"
-#include "vlc_xml.h"
 
 struct demux_sys_t
 {
@@ -98,7 +98,7 @@ static int Demux( demux_t *p_demux )
 
     psz_elname = stream_ReadLine( p_demux->s );
     free( psz_elname );
-    psz_elname = 0;
+    psz_elname = NULL;
 
     p_xml_reader = xml_ReaderCreate( p_xml, p_demux->s );
     if( !p_xml_reader ) return -1;
@@ -109,7 +109,6 @@ static int Demux( demux_t *p_demux )
     if( xml_ReaderRead( p_xml_reader ) != 1 )
     {
         msg_Err( p_demux, "invalid file (no root node)" );
-        vlc_object_release( p_playlist );
         return -1;
     }
 
@@ -120,7 +119,6 @@ static int Demux( demux_t *p_demux )
         msg_Err( p_demux, "invalid root node %i, %s",
                  xml_ReaderNodeType( p_xml_reader ), psz_elname );
         free( psz_elname );
-        vlc_object_release( p_playlist );
         return -1;
     }
     free( psz_elname );
@@ -144,14 +142,19 @@ static int Demux( demux_t *p_demux )
         free( psz_elname );
         return -1;
     }
-    free( psz_elname ); psz_elname = 0;
+    free( psz_elname ); psz_elname = NULL;
 
     // Read the attributes
     while( xml_ReaderNextAttr( p_xml_reader ) == VLC_SUCCESS )
     {
         char *psz_name = xml_ReaderName( p_xml_reader );
         char *psz_value = xml_ReaderValue( p_xml_reader );
-        if( !psz_name || !psz_value ) return -1;
+        if( !psz_name || !psz_value )
+        {
+            free( psz_name );
+            free( psz_value );
+            return -1;
+        }
         if( !strcmp( psz_name, "num_entries" ) )
         {
             msg_Dbg( p_demux, "playlist has %d entries", atoi(psz_value) );
@@ -258,18 +261,17 @@ static int Demux( demux_t *p_demux )
                 if( !psz_elname ) return -1;
                 if( !strcmp( psz_elname, "entry" ) )
                 {
-                    p_input = input_ItemNewExt( p_playlist, psz_mrl, psz_name,
-                                                0, NULL, -1 );
+                    p_input = input_item_New( p_demux, psz_mrl, psz_name );
                     if( psz_now )
                         input_item_SetNowPlaying( p_input, psz_now );
                     if( psz_genre )
                         input_item_SetGenre( p_input, psz_genre );
                     if( psz_listeners )
-                        msg_Err( p_playlist, "Unsupported meta listeners" );
+                        msg_Err( p_demux, "Unsupported meta listeners" );
                     if( psz_bitrate )
-                        msg_Err( p_playlist, "Unsupported meta bitrate" );
+                        msg_Err( p_demux, "Unsupported meta bitrate" );
 
-                    input_ItemAddSubItem( p_current_input, p_input );
+                    input_item_AddSubItem( p_current_input, p_input );
                     vlc_gc_decref( p_input );
                     FREENULL( psz_name );
                     FREENULL( psz_mrl );
@@ -291,6 +293,8 @@ static int Demux( demux_t *p_demux )
         msg_Warn( p_demux, "error while parsing data" );
     }
 
+   free( psz_elname );
+
     HANDLE_PLAY_AND_RELEASE;
     return 0; /* Needed for correct operation of go back */
 }