[vlc-devel] [PATCH 3/3] Add microdns services_advertisement submodule
remi at remlab.net
Tue Sep 3 17:44:43 CEST 2019
Le tiistaina 3. syyskuuta 2019, 18.27.35 EEST Thomas Guillem a écrit :
> On Tue, Sep 3, 2019, at 17:19, Rémi Denis-Courmont wrote:
> > Le maanantaina 2. syyskuuta 2019, 19.34.58 EEST Thomas Guillem a écrit :
> > > One other concern:
> > >
> > > SA modules should not annonce anything by default but the core should
> > > ask
> > > for it.
> > >
> > > I propose the following changes:
> > > - The sa module initialize from Open but doesn't annonce anything, it
> > > just
> > >
> > > registers an annonce callback. - Add vlc_sa_annonce( libvlc, const char
> > > *name, const char *type, unsigned port ), that will call the annonce
> > > callback of the main SA.
> > What makes you think a port number describe any and all types of service
> > announcements?
> Nothing, I agree with you but you could have said it more softly.
> > The only currently supported announce types is SDP, and that's
> > definitely carrying a hell of a lot more data than a port number.
> > I rather think that the activation callback should start advertising
> > straight away, because I don't see how you can make a generic "add" or
> > "start" callback for this.
> In that case, the same module will be loaded several time if there are more
> than one interfaces that want to announce themselves.
That sounds like the only way to have different advertisement protocols
provided by different plug-ins, so actually that seems right. And still, how do
you make a generic add/start callback when the set of parameters is so tightly
coupled with the protocol?
IMO, it's still highly questionable if there should at all be a SA
abstraction, precisely because the service and announcement protocol are so
tightly coupled. So far, all iterations of this patchset have really provided
a Bonjour SA interface, not a generic SA interface.
> I don't think it's a
> good idea. For mdns, this will be one thread per services then.
I don't see why. You can still have one shared thread per-LibVLC or per-
process with a reference counting mechanism.
More information about the vlc-devel