aboutsummaryrefslogtreecommitdiff
path: root/net/minidlna
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2012-01-09 20:45:07 +0000
committerMikhail Teterin <mi@FreeBSD.org>2012-01-09 20:45:07 +0000
commit9921dc07c35951ad3047953d11858d946bbeb451 (patch)
tree50b0c2014cbd0c463cb4f3fbeb6a3eb22e2a0584 /net/minidlna
parentf7c848917067f21ec4c13147315185c4961c55d3 (diff)
downloadports-9921dc07c35951ad3047953d11858d946bbeb451.tar.gz
ports-9921dc07c35951ad3047953d11858d946bbeb451.zip
Notes
Diffstat (limited to 'net/minidlna')
-rw-r--r--net/minidlna/Makefile2
-rw-r--r--net/minidlna/files/patch-bravia-dlnapn15
-rw-r--r--net/minidlna/files/patch-coverpic16
-rw-r--r--net/minidlna/files/patch-lg19
-rw-r--r--net/minidlna/files/patch-minidlna.c9
-rw-r--r--net/minidlna/files/patch-samsung-subtitle-menu-3136
6 files changed, 189 insertions, 8 deletions
diff --git a/net/minidlna/Makefile b/net/minidlna/Makefile
index 990a1d928336..cf545ab94979 100644
--- a/net/minidlna/Makefile
+++ b/net/minidlna/Makefile
@@ -7,7 +7,7 @@
PORTNAME= minidlna
PORTVERSION= 1.0.22
-PORTREVISION= 1
+PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= net multimedia www
MASTER_SITES= SF
diff --git a/net/minidlna/files/patch-bravia-dlnapn b/net/minidlna/files/patch-bravia-dlnapn
new file mode 100644
index 000000000000..09be9c2d705b
--- /dev/null
+++ b/net/minidlna/files/patch-bravia-dlnapn
@@ -0,0 +1,15 @@
+From:
+
+http://sourceforge.net/tracker/?func=detail&aid=3413830&group_id=243163&atid=1121518
+
+--- upnpsoap.c 2011-08-19 01:24:17.000000000 +0200
++++ upnpsoap.c 2011-09-25 14:54:00.000000000 +0200
+@@ -915,7 +915,7 @@
+ strncmp(dlna_pn, "AVC_TS_MP_HD_AC3", 16) == 0 ||
+ strncmp(dlna_pn, "AVC_TS_HP_HD_AC3", 16) == 0))
+ {
+- sprintf(dlna_buf, "DLNA.ORG_PN=AVC_TS_HD_50_AC3;DLNA.ORG_OP=01;DLNA.ORG_CI=0");
++ sprintf(dlna_buf, "DLNA.ORG_PN=AVC_TS_HD_50_AC3%s", dlna_pn + 16);
+ add_res(size, duration, bitrate, sampleFrequency, nrAudioChannels,
+ resolution, dlna_buf, mime, detailID, ext, passed_args);
+ }
diff --git a/net/minidlna/files/patch-coverpic b/net/minidlna/files/patch-coverpic
new file mode 100644
index 000000000000..70174b3c5321
--- /dev/null
+++ b/net/minidlna/files/patch-coverpic
@@ -0,0 +1,16 @@
+From:
+
+http://sourceforge.net/tracker/?func=detail&aid=3425414&group_id=243163&atid=1121518
+
+*** tagutils/tagutils-mp3.c 2010-11-12 00:48:14.000000000 +0100
+--- tagutils/tagutils-mp3.c 2011-10-18 22:36:22.000000000 +0200
+*************** _get_mp3tags(char *file, struct song_met
+*** 78,83 ****
+--- 78,84 ----
+ else if(!strcmp(pid3frame->id, "APIC") && !image_size)
+ {
+ if( (strcmp((char*)id3_field_getlatin1(&pid3frame->fields[1]), "image/jpeg") == 0) ||
++ (strcmp((char*)id3_field_getlatin1(&pid3frame->fields[1]), "image/jpg") == 0) ||
+ (strcmp((char*)id3_field_getlatin1(&pid3frame->fields[1]), "jpeg") == 0) )
+ {
+ image = id3_field_getbinarydata(&pid3frame->fields[4], &image_size);
diff --git a/net/minidlna/files/patch-lg b/net/minidlna/files/patch-lg
new file mode 100644
index 000000000000..6ceb040e161a
--- /dev/null
+++ b/net/minidlna/files/patch-lg
@@ -0,0 +1,19 @@
+Patch from:
+
+http://sourceforge.net/tracker/?func=detail&aid=3459128&group_id=243163&atid=1121518
+
+diff -u -b -p -d -r1.104 upnpsoap.c
+--- upnpsoap.c 23 Nov 2011 22:41:42 -0000 1.104
++++ upnpsoap.c 13 Dec 2011 20:45:33 -0000
+@@ -754,9 +754,9 @@ callback(void *args, int argc, char **ar
+ ret = strcatf(str, " refID=\"%s\"", refID);
+ }
+ ret = strcatf(str, "&gt;"
+- "&lt;dc:title&gt;%s&lt;/dc:title&gt;"
++ "&lt;dc:title&gt;%s%s&lt;/dc:title&gt;"
+ "&lt;upnp:class&gt;object.%s&lt;/upnp:class&gt;",
+- title, class);
++ title, ((strchr(title, '.') == NULL && (passed_args->filter & FILTER_RES) && *mime == 'v' && passed_args->client == ELGDevice) ? "." : ""), class);
+ if( comment && (passed_args->filter & FILTER_DC_DESCRIPTION) ) {
+ ret = strcatf(str, "&lt;dc:description&gt;%.384s&lt;/dc:description&gt;", comment);
+ }
diff --git a/net/minidlna/files/patch-minidlna.c b/net/minidlna/files/patch-minidlna.c
index ee59b9346fd7..df548dca3746 100644
--- a/net/minidlna/files/patch-minidlna.c
+++ b/net/minidlna/files/patch-minidlna.c
@@ -56,16 +56,11 @@
+ "\t\t[-u uid_to_run_as]\n"
"\t\t[-w url] [-R] [-V] [-h]\n"
"\nNotes:\n\tNotify interval is in seconds. Default is 895 seconds.\n"
-@@ -831,5 +855,10 @@
+@@ -831,5 +855,5 @@
/* set signal handler */
- signal(SIGCLD, SIG_IGN);
-+ memset(&sa, 0, sizeof(struct sigaction));
-+ sa.sa_handler = SIG_IGN;
-+ sa.sa_flags = SA_NOCLDSTOP|SA_NOCLDWAIT;
-+#ifndef SIGCHLD
-+# define SIGCHLD SIGCLD
-+#endif
++ signal(SIGCHLD, SIG_IGN);
memset(&sa, 0, sizeof(struct sigaction));
sa.sa_handler = sigterm;
@@ -849,4 +878,7 @@
diff --git a/net/minidlna/files/patch-samsung-subtitle-menu-3 b/net/minidlna/files/patch-samsung-subtitle-menu-3
new file mode 100644
index 000000000000..b95df745675c
--- /dev/null
+++ b/net/minidlna/files/patch-samsung-subtitle-menu-3
@@ -0,0 +1,136 @@
+From:
+
+https://sourceforge.net/tracker/?func=detail&aid=3387389&group_id=243163&atid=1121518
+
+Index: minidlnatypes.h
+===================================================================
+RCS file: /cvsroot/minidlna/minidlna/minidlnatypes.h,v
+retrieving revision 1.26
+diff -u -p -r1.26 minidlnatypes.h
+--- minidlnatypes.h 18 Aug 2011 23:24:17 -0000 1.26
++++ minidlnatypes.h 26 Aug 2011 21:32:40 -0000
+@@ -68,7 +68,7 @@ enum file_types {
+ enum client_types {
+ EXbox = 1,
+ EPS3,
+- ESamsungTV,
++ ESamsungSeriesC,
+ EDenonReceiver,
+ EFreeBox,
+ EPopcornHour,
+Index: upnpdescgen.c
+===================================================================
+RCS file: /cvsroot/minidlna/minidlna/upnpdescgen.c,v
+retrieving revision 1.18
+diff -u -p -r1.18 upnpdescgen.c
+--- upnpdescgen.c 2 May 2011 23:50:52 -0000 1.18
++++ upnpdescgen.c 26 Aug 2011 21:32:40 -0000
+@@ -675,18 +675,40 @@ genRootDesc(int * len)
+ {
+ char * str;
+ int tmplen;
+- tmplen = 2048;
++ tmplen = 2560;
+ str = (char *)malloc(tmplen);
+ if(str == NULL)
+ return NULL;
+ * len = strlen(xmlver);
+- /*strcpy(str, xmlver); */
+ memcpy(str, xmlver, *len + 1);
+ str = genXML(str, len, &tmplen, rootDesc);
+ str[*len] = '\0';
+ return str;
+ }
+
++char *
++genRootDescSamsung(int * len)
++{
++ char * str;
++ int tmplen;
++ struct XMLElt samsungRootDesc[sizeof(rootDesc)/sizeof(struct XMLElt)];
++ tmplen = 2560;
++ str = (char *)malloc(tmplen);
++ if(str == NULL)
++ return NULL;
++ * len = strlen(xmlver);
++ memcpy(str, xmlver, *len + 1);
++ /* Replace the optional modelURL and manufacturerURL fields with Samsung foo */
++ memcpy(&samsungRootDesc, &rootDesc, sizeof(rootDesc));
++ samsungRootDesc[8+PNPX].eltname = "/sec:ProductCap";
++ samsungRootDesc[8+PNPX].data = "smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec";
++ samsungRootDesc[12+PNPX].eltname = "/sec:X_ProductCap";
++ samsungRootDesc[12+PNPX].data = "smi,DCM10,getMediaInfo.sec,getCaptionInfo.sec";
++ str = genXML(str, len, &tmplen, samsungRootDesc);
++ str[*len] = '\0';
++ return str;
++}
++
+ /* genServiceDesc() :
+ * Generate service description with allowed methods and
+ * related variables. */
+Index: upnpdescgen.h
+===================================================================
+RCS file: /cvsroot/minidlna/minidlna/upnpdescgen.h,v
+retrieving revision 1.5
+diff -u -p -r1.5 upnpdescgen.h
+--- upnpdescgen.h 17 Feb 2011 23:17:24 -0000 1.5
++++ upnpdescgen.h 26 Aug 2011 21:32:40 -0000
+@@ -74,6 +74,9 @@ struct stateVar {
+ char *
+ genRootDesc(int * len);
+
++char *
++genRootDescSamsung(int * len);
++
+ /* for the two following functions */
+ char *
+ genContentDirectory(int * len);
+Index: upnphttp.c
+===================================================================
+RCS file: /cvsroot/minidlna/minidlna/upnphttp.c,v
+retrieving revision 1.87
+diff -u -p -r1.87 upnphttp.c
+--- upnphttp.c 18 Aug 2011 18:34:59 -0000 1.87
++++ upnphttp.c 26 Aug 2011 21:32:40 -0000
+@@ -304,10 +304,12 @@ intervening space) by either an integer
+ }
+ else if(strstrc(p, "SEC_HHP_", '\r'))
+ {
+- h->req_client = ESamsungTV;
++ h->req_client = ESamsungSeriesC;
+ h->reqflags |= FLAG_SAMSUNG;
+ h->reqflags |= FLAG_DLNA;
+ h->reqflags |= FLAG_NO_RESIZE;
++ if(strstrc(p, "SEC_HHP_TV", '\r'))
++ h->reqflags |= FLAG_SAMSUNG_TV;
+ }
+ else if(strncmp(p, "SamsungWiselinkPro", 18)==0)
+ {
+@@ -844,6 +846,10 @@ ProcessHttpQuery_upnphttp(struct upnphtt
+ sendXMLdesc(h, genRootDesc);
+ friendly_name[i] = '\0';
+ }
++ else if( h->reqflags & FLAG_SAMSUNG_TV )
++ {
++ sendXMLdesc(h, genRootDescSamsung);
++ }
+ else
+ {
+ sendXMLdesc(h, genRootDesc);
+Index: upnphttp.h
+===================================================================
+RCS file: /cvsroot/minidlna/minidlna/upnphttp.h,v
+retrieving revision 1.27
+diff -u -p -r1.27 upnphttp.h
+--- upnphttp.h 18 Aug 2011 23:24:17 -0000 1.27
++++ upnphttp.h 26 Aug 2011 21:32:40 -0000
+@@ -113,7 +113,8 @@ struct upnphttp {
+ #define FLAG_NO_RESIZE 0x02000000
+ #define FLAG_MS_PFS 0x04000000 // Microsoft PlaysForSure client
+ #define FLAG_SAMSUNG 0x08000000
+-#define FLAG_AUDIO_ONLY 0x10000000
++#define FLAG_SAMSUNG_TV 0x10000000
++#define FLAG_AUDIO_ONLY 0x20000000
+
+ #define FLAG_FREE_OBJECT_ID 0x00000001
+ #define FLAG_ROOT_CONTAINER 0x00000002