diff --git a/mythtv/libs/libmythupnp/upnpcds.cpp b/mythtv/libs/libmythupnp/upnpcds.cpp
index cc86e75..213dd9b 100644
--- a/mythtv/libs/libmythupnp/upnpcds.cpp
+++ b/mythtv/libs/libmythupnp/upnpcds.cpp
@@ -1069,8 +1069,8 @@ QString UPnpCDSExtension::CreateIDString(const QString &requestId,
// For metadata requests the request ID will be the ID of the result, so
// we don't need to do anything
- if (currentName == name.toLower() && !currentValue.isEmpty() &&
- currentValue == value.toLower())
+ if (currentName.toLower() == name.toLower() && !currentValue.isEmpty() &&
+ currentValue.toLower() == value.toLower())
return requestId;
else if (currentName == name.toLower() && currentValue.isEmpty())
return QString("%1=%2").arg(requestId).arg(value);
diff --git a/mythtv/libs/libmythupnp/upnpcdsobjects.cpp b/mythtv/libs/libmythupnp/upnpcdsobjects.cpp
index 11df343..4400f4d 100644
--- a/mythtv/libs/libmythupnp/upnpcdsobjects.cpp
+++ b/mythtv/libs/libmythupnp/upnpcdsobjects.cpp
@@ -305,6 +305,7 @@ void CDSObject::toXml( QTextStream &os, FilterMap &filter,
* See UPnP MediaServer, ContentDirectory Service Section 2.3.18, 2013
*/
bool bFilter = true;
+ QString sTitle = m_sTitle;
if (filter.contains("*"))
bFilter = false;
@@ -346,13 +347,16 @@ void CDSObject::toXml( QTextStream &os, FilterMap &filter,
<< "\" >" << endl;
sEndTag = "";
-
+
+ // if this is a video item, we have filters, and no ProgramTitle filter is specified - ass the program title to sTitle
+ if( bFilter && m_sClass == "object.item.videoItem" && !filter.contains("programTitle"))
+ sTitle = m_sTitle + ":" + HTTPRequest::Encode(GetPropValue("programTitle"));
break;
}
default: break;
}
- os << "" << m_sTitle << "" << endl;
+ os << "" << sTitle << "" << endl;
os << "" << m_sClass << "" << endl;
// ----------------------------------------------------------------------
diff --git a/mythtv/libs/libmythupnp/upnpdevice.cpp b/mythtv/libs/libmythupnp/upnpdevice.cpp
index bb23de4..c5ff2b0 100644
--- a/mythtv/libs/libmythupnp/upnpdevice.cpp
+++ b/mythtv/libs/libmythupnp/upnpdevice.cpp
@@ -543,7 +543,7 @@ QString UPnpDeviceDesc::FormatValue(const NameValue& node)
NameValues::iterator it;
for (it = node.pAttributes->begin(); it != node.pAttributes->end(); ++it)
{
- sAttributes += QString(" %1='%2'").arg((*it).sName).arg((*it).sValue);
+ sAttributes += QString(" %1=\"%2\"").arg((*it).sName).arg((*it).sValue);
}
sStr = QString("<%1%2>%3%1>\n").arg(node.sName).arg(sAttributes).arg(node.sValue);
diff --git a/mythtv/libs/libmythupnp/upnphelpers.cpp b/mythtv/libs/libmythupnp/upnphelpers.cpp
index 2865e15..3f8a4b9 100644
--- a/mythtv/libs/libmythupnp/upnphelpers.cpp
+++ b/mythtv/libs/libmythupnp/upnphelpers.cpp
@@ -120,7 +120,7 @@ QString DLNAProfileName(const QString &mimeType, const QSize &resolution,
// information in the database for each file and can determine this
// stuff 'properly'
QString sCountryCode = gCoreContext->GetLocale()->GetCountryCode();
- bool isNorthAmerica = (sCountryCode == "us" || sCountryCode == "ca" ||
+ bool isNorthAmerica = (sCountryCode.toLower() == "us" || sCountryCode == "ca" ||
sCountryCode == "mx"); // North America (NTSC/ATSC)
if (container == "MPEG2-PS")
@@ -199,7 +199,7 @@ QString DLNAProfileName(const QString &mimeType, const QSize &resolution,
}
else if (mimeType == "audio/mpeg")
{
- sProfileName = "MP3X";
+ sProfileName = "MP3";
}
else if (mimeType == "audio/x-ms-wma")
{
@@ -261,9 +261,9 @@ QString DLNAFourthField(UPNPProtocol::TransferProtocol protocol,
//
QString sProfileName = DLNAProfileName(mimeType, resolution, videoFrameRate,
container, videoCodec, audioCodec);
- if (!sProfileName.isEmpty())
- sAdditionalInfoList << QString("DLNA.ORG_PN=%1").arg(sProfileName);
-
+ //Do not output DLNA Profile name - possible to add a DB parameter to enable/disable?
+ //if (!sProfileName.isEmpty())
+ // sAdditionalInfoList << QString("DLNA.ORG_PN=%1").arg(sProfileName);
//
// OP-Param (Operation Parameters)
//
diff --git a/mythtv/programs/mythbackend/upnpcdstv.cpp b/mythtv/programs/mythbackend/upnpcdstv.cpp
index 3fbc3e2..3c808f8 100644
--- a/mythtv/programs/mythbackend/upnpcdstv.cpp
+++ b/mythtv/programs/mythbackend/upnpcdstv.cpp
@@ -563,7 +563,7 @@ bool UPnpCDSTv::LoadTitles(const UPnpCDSRequest* pRequest,
int nRecordingID = query.value(2).toInt();
int nTitleCount = query.value(3).toInt();
- if (nTitleCount > 1)
+ if (nTitleCount >= 1)
{
// TODO Album or plain old container?
CDSObject* pContainer = CDSObject::CreateAlbum( CreateIDString(sRequestId, "Title", sTitle),
@@ -624,7 +624,7 @@ bool UPnpCDSTv::LoadDates(const UPnpCDSRequest* pRequest,
MSqlQuery query(MSqlQuery::InitCon(MSqlQuery::kDedicatedConnection));
QString sql = "SELECT SQL_CALC_FOUND_ROWS "
- "r.starttime, COUNT(r.recordedid) "
+ "CONVERT_TZ(r.starttime, 'UTC', 'SYSTEM'), COUNT(r.recordedid) "
"FROM recorded r "
"LEFT JOIN recgroups g ON g.recgroup=r.recgroup "
"%1 " // WHERE clauses