From 1a5e1a6de978384cae8838284fc02305d3e7a46a Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Mon, 13 Jul 2009 18:00:06 +0000 Subject: [PATCH] * Add hacks to make .mkv support work on Samsung TVs. --- upnphttp.c | 12 ++++++++++++ upnpsoap.c | 2 ++ 2 files changed, 14 insertions(+) diff --git a/upnphttp.c b/upnphttp.c index 2428e5c..89708bc 100644 --- a/upnphttp.c +++ b/upnphttp.c @@ -1454,11 +1454,23 @@ SendResp_dlnafile(struct upnphttp * h, char * object) last_file.id = id; strncpy(last_file.path, result[3], sizeof(last_file.path)-1); if( result[4] ) + { strncpy(last_file.mime, result[4], sizeof(last_file.mime)-1); + /* From what I read, Samsung TV's expect a [wrong] MIME type of x-mkv. */ + if( h->req_client == ESamsungTV ) + { + if( strcmp(last_file.mime+6, "x-matroska") == 0 ) + strcpy(last_file.mime+8, "mkv"); + } + } else + { last_file.mime[0] = '\0'; + } if( result[5] ) snprintf(last_file.dlna, sizeof(last_file.dlna), "DLNA.ORG_PN=%s", result[5]); + else if( h->reqflags & FLAG_DLNA ) + strcpy(last_file.dlna, "DLNA.ORG_OP=01;DLNA.ORG_CI=0"); else last_file.dlna[0] = '\0'; sqlite3_free_table(result); diff --git a/upnpsoap.c b/upnpsoap.c index 22ed7f6..b0c79d7 100644 --- a/upnpsoap.c +++ b/upnpsoap.c @@ -516,6 +516,8 @@ callback(void *args, int argc, char **argv, char **azColName) if( dlna_pn ) sprintf(dlna_buf, "DLNA.ORG_PN=%s", dlna_pn); + else if( passed_args->flags & FLAG_DLNA ) + strcpy(dlna_buf, "DLNA.ORG_OP=01;DLNA.ORG_CI=0"); else strcpy(dlna_buf, "*");