After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 691654 - Support mkv format for Samsung TV by using Rygel.ClientHacks
Support mkv format for Samsung TV by using Rygel.ClientHacks
Status: RESOLVED FIXED
Product: rygel
Classification: Applications
Component: librygel-server
git master
Other Linux
: Normal normal
: ---
Assigned To: rygel-maint
rygel-maint
Depends on:
Blocks:
 
 
Reported: 2013-01-13 13:10 UTC by Choe Hwanjin
Modified: 2013-03-09 15:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
a patch using Rygel.ClientHacks for samsung TV (4.92 KB, patch)
2013-01-13 13:12 UTC, Choe Hwanjin
committed Details | Review

Description Choe Hwanjin 2013-01-13 13:10:01 UTC
Samsung TV can't play mkv file from Rygel.
This is because samsung TV wants mime type "video/x-mkv" for mkv files, but rygel
sends "video/x-matroska".
This problem can be fixed by adding Rygel.ClientHacks for Samsung TV.

I made a patch for this problem.
Comment 1 Choe Hwanjin 2013-01-13 13:12:06 UTC
Created attachment 233381 [details] [review]
a patch using Rygel.ClientHacks for samsung TV
Comment 2 Choe Hwanjin 2013-01-13 13:13:36 UTC
This hack has 2 advantages over changing gupnp-dlna xml profiles.
First, this hack does not affect other clients which may need "video/x-matroska".
Second, users are not required to regenerate cache.
Comment 3 Jens Georg 2013-01-18 09:40:54 UTC
Agree. Tiny problem: This only works for new samsung tvs, older ones don't provide a user agent
Comment 4 Choe Hwanjin 2013-01-18 11:37:28 UTC
Do you mean samsung TV doesn't send user agent information on play Request?
For that problem, I already added a feature for it in the previous patch.

My samsung TV sends the user agent information on list request, but not on play request.
Therefore, I added user agent cache in my patch.
If "User-Agent" field doesn't exist, rygel will look up user agent
cache table based on an IP addresses.

I think that an IP address of a client won't be changed between listing and playing.
So on that case, this patch will work.
I can play mkv files on my samsung TV with my patch.
Comment 5 Jens Georg 2013-01-18 12:16:34 UTC
oh, indeed you did, sorry. it's slightly worse though, some samsungs don't even send user-agent headers in upnp requests.

There's a patch for gssdp and gupnp that adds an user-agent cache at the discovery level in bug 653894
Comment 6 Jens Georg 2013-01-18 12:21:11 UTC
oh, indeed you did, sorry. it's slightly worse though, some samsungs don't even send user-agent headers in upnp requests.

There's a patch for gssdp and gupnp that adds an user-agent cache at the discovery level in bug 653894
Comment 7 Choe Hwanjin 2013-01-21 14:15:25 UTC
I've checked gssdp and gupnp source code.
But I don't find the code about user agent cache.
It seems that the patches weren't applied to the git repository.

Anyway, I think user agent cache does not solve all problems,
but it will be useful for part of samsung TV users.