Bolt (Series6) seems to have a bug where it only reacts to
_tivo-videostream._tcp service types after a TiVo reboot, and ignores
_tivo-vidoes._tcp. I have no idea what the difference is supposed to be
because it's undocumented, but either type works on both Roamio (Series5)
and Bolt, so hopefully it's safe for Series 3 and 4 also.
Add support for upnp:playbackCount and upnp:lastPlaybackPosition tags.
These are used by Kodi to keep track of bookmark information as well as
determining whether to show the checkmark to indicate that the video
has been played.
Also add support for the UpdateObject command, which Kodi uses to
update the playbackCount and lastPlaybackPosition information.
This change requires a DB schema update, which should be done
automatically on the first run.
Inspired by SF user Karsten's patch #167.
On Hyundai HLN 24TS382 Smart TV, the DLNA client refuses to display
media files whose title does not end with a media file extension.
Because minidlna strips the extensions, all folders thus appear empty.
This patch adds a quirk for Hyundai TVs that appends the original file
extension to the titles, which fixes the issue.
From SF user Andrea Odetti:
The Samsung BD J5500 player does not accept some of the DLNA_PN values
used by minidlna for *.mp4 files.
For instance AVC_MP4_MP_HD_720p_AAC and AVC_MP4_BL_L31_HD_AAC are
problematic as the player would simply ignore the files and not show
them.
AVC_MP4_HP_HD_AAC works.
All the files play normally from a USB key.
I've noticed as well that NULL works always, and this is the approach I
have followed.
So I changed minidlna and added a flag to disable DLNA_PN, and this
flag is only used for a Samsung BD J5500 in order not to break other
players, which can handle DLNA_PN properly.
So when a J5500 is connected we simply set DLNA_PN to NULL and
everything works well.
Reporting Samsung features to Windows and AllShare somehow makes them
ignore us, so detect these client types specifically and don't expose
Samsung capabilities to them.
Add FLAG_CAPTION_RES to the modern Samsung profile. Older Samsung
devices used a custom method for describing subtitles, but apparently
Series J no longer supports it. The good thing is, they now support
the more standard method (and probably have been for a while, since it
works on my old Series D BDP).
So let's just expose both methods to the client, since everything should
be able to handle it.
Fixes: SF bug #113 (Subtitles support for new 2015 Samsung J series TV)
The browsing issue that was reported on Samsung Series F was
actually only present when a custom root container was being
specified (http://sourceforge.net/p/minidlna/patches/121/).
So instead of disabling DCM10, fix our X_GetFeatureList
response when a custom root container is set. If the custom
root is Browse Folders, then drop the user straight to
folder browsing for that media type. If it's something
other than folder browsing, just set all media type roots to
the custom root container.
For future reference, the DCM10 flag enables (at least)
video bookmark support and Samsung "BasicView" support; so
selecting, for example, Videos from the Samsung UI can send
you straight to the Videos section of the media library.
Add subtitle support for NetFront™ Living Connect middleware-based
clients. These appear to include devices from Panasonic, Philips,
Vizio, Sony, and probably more.
I'm not entirely sure what this flag enables. But there are reports
that is breaks browsing on Samsung Series F TV's. So we'll have to
disable for now, until that gets sorted out by people who actually
have Samsung TV's.
Asus O!Play reboots with titles longer than 23 characters with some
file types when there are subtitles present. So we truncate video
file titles with external subtitles.
It also supports subtitles in LG fashion, so add that too.
Advertising the DCM10 vendor-specific feature to Samsung Series
C and D (at least) players causes them to always browse ContainerID
1, no matter which section is chosen from their GUI.
Treat TVs and BDPs as separate client types with unique features.
A Samsung TV cannot be reliably detected by checking for "SEC_HHP_TV"
User Agent. Only the first part can be guaranteed, eg. "SEC_HHP_" as the rest
can be changed by the end user.
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>