Add support for casting to a DLNA Media Renderers
implementing the AVTransport service with the
initial support of the default media format.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Header files should be self-contained and should not have
to adhere to special conditions or include order to include the header.
Also add a header guard
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Move out UpnpInstanceWrapper into its own file
since it no longer has any dependencies on existing
modules and allow other modules to get references to it.
Move as well as the various helper functions that are
directly required by the UpnpInstanceWrapper class
and inline them for a small performance gain.
Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Introduce a Listener interface to
UpnpInstanceWrapper that can be used
by modules to get UpnpEvent callbacks
from libupnp decoupling UpnpInstanceWrapper
from any specific module or its members.
Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Callbacks now take const void* as second argument and some members can
only be accessed via getter functions.
Signed-off-by: Sebastian Ramacher <sramacher@debian.org>
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
Thanks to (in no particular order, and not exhaustive):
Thomas Guillem
Hugo Beauzée-Luyssen
Pavlov Konstantin
Mirsal Ennaime
Rémi Denis-Courmont
Steve Lhomme
Jean-Baptiste Kempf
Bastien Penavayre
Chris Clayton
Felix Paul Kühne
Alexandre Pereira Nunes
Antoine Cellerier
Austin Burrow
Denis Charmet
Fabrizio Gennari
Jean-Paul Saman
Naohiro Koriyama
Pere Orga
Ludovic Fauvet
Pierre d'Herbemont
Samuel Hocevar
Rémi Duraffort
UpnpDownloadXmlDoc() can take a while, during that time all other callbacks
are blocking while they could handle simple events quickly (logging) or do
another UpnpDownloadXmlDoc() in parallel.
We only need to lock the MediaServerList in the callbacks when we need it.
And not use it if it's already destroyed.
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
This commit changes pf_readdir callback to its original behavior. Accesses and
streams now add items to a node.
Archive stream_filters will now be able to add nodes to a node (when an archive
has directory). This was not possible before.
This commit also adds an access_fsdir helper to help fs accesses (file, smb,
nfs, ftp, sftp) adding items to a node. These accesses need the same treatment
that is now done by this helper:
- hide hidden files or not (depending on "show-hiddenfiles" option)
- skip some file extensions (depending on "ignore-filetypes" option)
- sort items by type and alphabetically (depending on "directory-sort"
option).
- For a next commit: attach slaves to items
The directory demux won't do these operations anymore for every access/stream.
This commit doesn't change the interruptible state of the pf_readdir function,
accesses/streams are still interruptible in the middle of a pf_readdir call.
This partially reverts commit 88ffe15878.
UpnpInstanceWrapper::Callback() can be called while Upnp is unregistering via
UpnpUnRegisterClient(). Both functions locked the same mutex (s_lock) and this
resulted to a deadlock.
Add a new mutex to protect only the upnp callback.
Some servers don't provide a playlist of their channels, so we need to download the list for the chosen satellite from the web and process it accordingly
This is splitting the UPnP module in 2 parts:
- A service discovery module that is solely responsible for discovering
UPnP devices on the network
- An access module that will leverage the recently introduced
pf_readdir callback to list directories.
This removes the need for recursion and handling of all the items from
within the SD module.
* Request the sec:CaptionInfo and sec:CaptionInfoEx DIDL attributes
* If one of the two caption attributes are present, build and add an
input-slave option string which forces the subtitle demux
* Add the sub-track-id option to input items with subtitles
so the subtitles are immediately visible
* Accept any version of the MediaServer service
* Browse the advertised ContentDirectory service version
Signed-off-by: Mirsal Ennaime <mirsal@videolan.org>