X-Git-Url: https://git.videolan.org/gitweb.cgi/vlc.git/?p=vlc.git;p=vlc.git;a=blobdiff_plain;f=src%2Fcontrol%2Fmedia_descriptor.c;h=d5c076e17ae056f30b5cd3051642d0438c878db6;hp=ecd3c52680a4417f135a8990e02c9cb778411fc8;hb=3878b2748befed4ebf619818ab3973dee82079d3;hpb=f9cd3820f2956719c1995177199b1cf1515bf6a8;ds=inline diff --git a/src/control/media_descriptor.c b/src/control/media_descriptor.c index ecd3c52680..d5c076e17a 100644 --- a/src/control/media_descriptor.c +++ b/src/control/media_descriptor.c @@ -56,7 +56,10 @@ libvlc_media_descriptor_t * libvlc_media_descriptor_new( p_input_item = input_ItemNew( p_instance->p_libvlc_int, psz_mrl, psz_mrl ); if (!p_input_item) - return NULL; /* XXX: throw an exception */ + { + libvlc_exception_raise( p_e, "Can't create md's input_item" ); + return NULL; + } p_media_desc = malloc( sizeof(libvlc_media_descriptor_t) ); p_media_desc->p_libvlc_instance = p_instance; @@ -72,12 +75,16 @@ libvlc_media_descriptor_t * libvlc_media_descriptor_new( **************************************************************************/ libvlc_media_descriptor_t * libvlc_media_descriptor_new_from_input_item( libvlc_instance_t *p_instance, - input_item_t *p_input_item ) + input_item_t *p_input_item, + libvlc_exception_t *p_e ) { libvlc_media_descriptor_t * p_media_desc; if (!p_input_item) - return NULL; /* XXX: throw an exception */ + { + libvlc_exception_raise( p_e, "No input item given" ); + return NULL; + } p_media_desc = malloc( sizeof(libvlc_media_descriptor_t) ); p_media_desc->p_libvlc_instance = p_instance; @@ -129,12 +136,17 @@ char * libvlc_media_descriptor_get_meta( libvlc_media_descriptor_t *p_meta_desc, libvlc_exception_t *p_e ) { char ** ppsz_meta; + char *ppz_meta; /* XXX: locking */ preparse_if_needed( p_meta_desc ); ppsz_meta = (char**)p_meta_desc->p_input_item->p_meta; + ppz_meta = ppsz_meta[ meta_conversion[e_meta] ]; + + if( !ppz_meta ) + return NULL; - return strdup( ppsz_meta[ meta_conversion[e_meta] ] ); + return strdup( ppz_meta ); }