Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (5)
......@@ -42,7 +42,7 @@ extern "C" {
struct services_discovery_callbacks
{
void (*item_added)(struct services_discovery_t *sd, input_item_t *parent,
input_item_t *item, const char *category);
input_item_t *item);
void (*item_removed)(struct services_discovery_t *sd, input_item_t *item);
};
......@@ -163,7 +163,7 @@ VLC_API void vlc_sd_Destroy( services_discovery_t * );
static inline void services_discovery_AddItem(services_discovery_t *sd,
input_item_t *item)
{
sd->owner.cbs->item_added(sd, NULL, item, NULL);
sd->owner.cbs->item_added(sd, NULL, item);
}
/**
......@@ -188,23 +188,7 @@ static inline void services_discovery_AddSubItem(services_discovery_t *sd,
input_item_t *parent,
input_item_t *item)
{
sd->owner.cbs->item_added(sd, parent, item, NULL);
}
/**
* Added service backward compatibility callback.
*
* @param sd the service discovery instance exposing the item
* @param item the item to expose from the service
* @param category Optional name of a group that the item belongs in
* (for backward compatibility with legacy modules)
*/
VLC_DEPRECATED
static inline void services_discovery_AddItemCat(services_discovery_t *sd,
input_item_t *item,
const char *category)
{
sd->owner.cbs->item_added(sd, NULL, item, category);
sd->owner.cbs->item_added(sd, parent, item);
}
/**
......
......@@ -44,7 +44,6 @@ struct libvlc_media_discoverer_t
libvlc_instance_t * p_libvlc_instance;
services_discovery_t * p_sd;
libvlc_media_list_t * p_mlist;
vlc_dictionary_t catname_to_submedialist;
char name[];
};
......@@ -58,8 +57,7 @@ struct libvlc_media_discoverer_t
static void services_discovery_item_added( services_discovery_t *sd,
input_item_t *parent,
input_item_t *p_item,
const char *psz_cat )
input_item_t *p_item )
{
libvlc_media_t * p_md;
libvlc_media_discoverer_t *p_mdis = sd->owner.sys;
......@@ -67,36 +65,7 @@ static void services_discovery_item_added( services_discovery_t *sd,
p_md = libvlc_media_new_from_input_item( p_item );
if( parent != NULL )
{
/* Flatten items list for now. TODO: tree support. */
}
else
/* If we have a category, that mean we have to group the items having
* that category in a media_list. */
if( psz_cat )
{
p_mlist = vlc_dictionary_value_for_key( &p_mdis->catname_to_submedialist, psz_cat );
if( p_mlist == kVLCDictionaryNotFound )
{
libvlc_media_t * p_catmd;
p_catmd = libvlc_media_new_as_node( psz_cat );
p_mlist = libvlc_media_subitems( p_catmd );
/* Insert the newly created mlist in our dictionary */
vlc_dictionary_insert( &p_mdis->catname_to_submedialist, psz_cat, p_mlist );
/* Insert the md into the root list */
libvlc_media_list_lock( p_mdis->p_mlist );
libvlc_media_list_internal_add_media( p_mdis->p_mlist, p_catmd );
libvlc_media_list_unlock( p_mdis->p_mlist );
/* We don't release the mlist cause the dictionary
* doesn't retain the object. But we release the md. */
libvlc_media_release( p_catmd );
}
}
(void) parent; /* Flatten items list for now. TODO: tree support. */
libvlc_media_list_lock( p_mlist );
libvlc_media_list_internal_add_media( p_mlist, p_md );
......@@ -160,8 +129,6 @@ libvlc_media_discoverer_new( libvlc_instance_t * p_inst, const char * psz_name )
p_mdis->p_mlist->b_read_only = true;
p_mdis->p_sd = NULL;
vlc_dictionary_init( &p_mdis->catname_to_submedialist, 0 );
libvlc_retain( p_inst );
strcpy( p_mdis->name, psz_name );
return p_mdis;
......@@ -213,12 +180,6 @@ libvlc_media_discoverer_stop( libvlc_media_discoverer_t * p_mdis )
/**************************************************************************
* release (Public)
**************************************************************************/
static void
MediaListDictValueRelease( void* mlist, void* obj )
{
libvlc_media_list_release( mlist );
(void)obj;
}
void
libvlc_media_discoverer_release( libvlc_media_discoverer_t * p_mdis )
......@@ -228,9 +189,6 @@ libvlc_media_discoverer_release( libvlc_media_discoverer_t * p_mdis )
libvlc_media_list_release( p_mdis->p_mlist );
vlc_dictionary_clear( &p_mdis->catname_to_submedialist,
MediaListDictValueRelease, NULL );
libvlc_release( p_mdis->p_libvlc_instance );
free( p_mdis );
......
......@@ -52,6 +52,7 @@ vlc_module_end ()
typedef struct
{
void *root;
void *root_card;
pa_context *context;
pa_threaded_mainloop *mainloop;
} services_discovery_sys_t;
......@@ -81,6 +82,7 @@ static int Open (vlc_object_t *obj)
sd->description = _("Audio capture");
sys->context = ctx;
sys->root = NULL;
sys->root_card = NULL;
/* Subscribe for source events */
const pa_subscription_mask_t mask = PA_SUBSCRIPTION_MASK_SOURCE;
......@@ -115,6 +117,13 @@ struct device
services_discovery_t *sd;
};
struct card
{
input_item_t *item;
services_discovery_t *sd;
char name[];
};
static void DestroySource (void *data)
{
struct device *d = data;
......@@ -124,6 +133,15 @@ static void DestroySource (void *data)
free (d);
}
static void DestroyCard(void *data)
{
struct card *c = data;
services_discovery_RemoveItem(c->sd, c->item);
input_item_Release(c->item);
free(c);
}
/**
* Compares two devices (to support binary search).
*/
......@@ -135,6 +153,54 @@ static int cmpsrc (const void *a, const void *b)
return (idxa != idxb) ? ((idxa < idxb) ? -1 : +1) : 0;
}
static int cmpcard (const void *a, const void *b)
{
const struct card *ca = a, *cb = b;
return strcmp(ca->name, cb->name);
}
static input_item_t *AddCard (services_discovery_t *sd, const pa_source_info *info)
{
services_discovery_sys_t *sys = sd->p_sys;
const char *card_name = pa_proplist_gets(info->proplist, "device.product.name");
if (card_name == NULL)
card_name = N_("Generic");
struct card *c = malloc(sizeof(*c) + strlen(card_name) + 1);
if (unlikely(c == NULL))
return NULL;
strcpy(c->name, card_name);
void **cp = tsearch(c, &sys->root_card, cmpcard);
if (cp == NULL) /* Out-of-memory */
{
free(c);
return NULL;
}
if (*cp != c)
{
free(c);
c = *cp;
assert(c->item != NULL);
return c->item;
}
c->item = input_item_NewExt("vlc://nop", c->name,
INPUT_DURATION_INDEFINITE,
ITEM_TYPE_NODE, ITEM_LOCAL);
if (unlikely(c->item == NULL))
{
tdelete(c, &sys->root_card, cmpcard);
return NULL;
}
services_discovery_AddItem(sd, c->item);
c->sd = sd;
return c->item;
}
/**
* Adds a source.
*/
......@@ -179,9 +245,8 @@ static int AddSource (services_discovery_t *sd, const pa_source_info *info)
return 0;
}
const char *card = pa_proplist_gets(info->proplist, "device.product.name");
services_discovery_AddItemCat(sd, item,
(card != NULL) ? card : N_("Generic"));
input_item_t *card = AddCard(sd, info);
services_discovery_AddSubItem(sd, card, item);
d->sd = sd;
return 0;
}
......@@ -243,5 +308,6 @@ static void Close (vlc_object_t *obj)
vlc_pa_disconnect (obj, sys->context, sys->mainloop);
tdestroy (sys->root, DestroySource);
tdestroy (sys->root_card, DestroyCard);
free (sys);
}
......@@ -59,6 +59,10 @@
# include <net/if.h>
#endif
#ifdef HAVE_SEARCH_H
# include <search.h>
#endif
#include "access/rtp/sdp.h"
/************************************************************************
......@@ -79,6 +83,23 @@
#define SAP_V4_LINK_ADDRESS "224.0.0.255"
#define ADD_SESSION 1
typedef struct
{
vlc_thread_t thread;
/* Socket descriptors */
int i_fd;
int *pi_fd;
/* Table of announces */
int i_announces;
struct sap_announce_t **pp_announces;
vlc_tick_t i_timeout;
void *root_cat;
} services_discovery_sys_t;
static int Decompress( const unsigned char *psz_src, unsigned char **_dst, int i_len )
{
#ifdef HAVE_ZLIB
......@@ -127,6 +148,66 @@ static int Decompress( const unsigned char *psz_src, unsigned char **_dst, int i
#endif
}
struct category
{
input_item_t *item;
services_discovery_t *sd;
char name[];
};
static void DestroyCategory(void *data)
{
struct category *c = data;
services_discovery_RemoveItem(c->sd, c->item);
input_item_Release(c->item);
free(c);
}
static int cmpcat (const void *a, const void *b)
{
const struct category *ca = a, *cb = b;
return strcmp(ca->name, cb->name);
}
static input_item_t *AddCategory (services_discovery_t *sd, const char *name)
{
services_discovery_sys_t *sys = sd->p_sys;
struct category *c = malloc(sizeof(*c) + strlen(name) + 1);
if (unlikely(c == NULL))
return NULL;
strcpy(c->name, name);
void **cp = tsearch(c, &sys->root_cat, cmpcat);
if (cp == NULL) /* Out-of-memory */
{
free(c);
return NULL;
}
if (*cp != c)
{
free(c);
c = *cp;
assert(c->item != NULL);
return c->item;
}
c->item = input_item_NewExt("vlc://nop", c->name,
INPUT_DURATION_INDEFINITE,
ITEM_TYPE_NODE, ITEM_LOCAL);
if (unlikely(c->item == NULL))
{
tdelete(c, &sys->root_cat, cmpcat);
return NULL;
}
services_discovery_AddItem(sd, c->item);
c->sd = sd;
return c->item;
}
typedef struct sap_announce_t
{
vlc_tick_t i_last;
......@@ -185,23 +266,27 @@ static sap_announce_t *CreateAnnounce(services_discovery_t *p_sd,
/* Handle category */
psz_value = vlc_sdp_attr_value(p_sdp, "cat");
char *str = NULL;
if (psz_value != NULL)
{
/* a=cat provides a dot-separated hierarchy.
* For the time being only replace dots with pipe. TODO: FIXME */
char *str = strdup(psz_value);
str = strdup(psz_value);
if (likely(str != NULL))
{
for (char *p = strchr(str, '.'); p != NULL; p = strchr(p, '.'))
*(p++) = '|';
services_discovery_AddItemCat(p_sd, p_input, str ? str : psz_value);
free(str);
psz_value = str;
}
}
else
{
/* backward compatibility with VLC 0.7.3-2.0.0 senders */
psz_value = vlc_sdp_attr_value(p_sdp, "x-plgroup");
services_discovery_AddItemCat(p_sd, p_input, psz_value);
}
input_item_t *cat = AddCategory(p_sd, psz_value);
free(str);
services_discovery_AddSubItem(p_sd, cat, p_input);
vlc_sdp_free(p_sdp);
return p_sap;
......@@ -211,21 +296,6 @@ error:
return NULL;
}
typedef struct
{
vlc_thread_t thread;
/* Socket descriptors */
int i_fd;
int *pi_fd;
/* Table of announces */
int i_announces;
struct sap_announce_t **pp_announces;
vlc_tick_t i_timeout;
} services_discovery_sys_t;
static int RemoveAnnounce( services_discovery_t *p_sd,
sap_announce_t *p_announce )
{
......@@ -580,6 +650,7 @@ static int Open( vlc_object_t *p_this )
p_sys->i_announces = 0;
p_sys->pp_announces = NULL;
p_sys->root_cat = NULL;
/* TODO: create sockets here, and fix racy sockets table */
if (vlc_clone (&p_sys->thread, Run, p_sd))
{
......@@ -613,6 +684,7 @@ static void Close( vlc_object_t *p_this )
RemoveAnnounce( p_sd, p_sys->pp_announces[i] );
}
FREENULL( p_sys->pp_announces );
tdestroy(p_sys->root_cat, DestroyCategory);
free( p_sys );
}
......
......@@ -58,12 +58,8 @@ struct vlc_media_source_provider_t
/* A new item has been added to a certain services discovery */
static void
services_discovery_item_added(services_discovery_t *sd,
input_item_t *parent, input_item_t *media,
const char *cat)
input_item_t *parent, input_item_t *media)
{
assert(!parent || !cat);
VLC_UNUSED(cat);
vlc_media_source_t *ms = sd->owner.sys;
vlc_media_tree_t *tree = ms->tree;
......