Hi again! On Sat, 2011-01-22 at 07:04:59 +0100, Guillem Jover wrote: > Attached is a patch with few cherry-picked fixes from upstream CVS, > to enable gmediaserver to work correctly with a PS3. > > The relevant patch is debian/patches/00_cvs_fixes.diff, but it > conflicted with debian/patches/06_fix_noxon_sort.diff, so I've rebased > that one, and just included a patch against the debian packaging.
Actually just noticed that there's some hunks that are not needed given 07_mime_magic.diff, I've also removed the unneecessary changes to sort_criteria_comparision(), so there's no need any longer to rebase 06_fix_noxon_sort.diff. It would be nice to include this simpler patch for squeeze so that the server works with DLNA clients as the PS3, but I can see how this could be rejected during this period of the freeze. Attached new patch. thanks, guillem
diff -Nru gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff --- gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff 1970-01-01 01:00:00.000000000 +0100 +++ gmediaserver-0.13.0/debian/patches/00_cvs_fixes.diff 2011-01-22 07:14:51.000000000 +0100 @@ -0,0 +1,93 @@ +Description: Fix several things from upstream CVS +Origin: upstream + +diff -Naur -x CVS gmediaserver-orig/src/connectmgr.c gmediaserver/src/connectmgr.c +--- gmediaserver-orig/src/connectmgr.c 2007-10-18 18:30:04.000000000 +0200 ++++ gmediaserver/src/connectmgr.c 2008-05-06 20:39:30.000000000 +0200 +@@ -32,8 +32,8 @@ + * this: "http-get:*:audio/mpeg:*,http-get:*:audio/m3u:*,..") we use + * this generic string which is accepted according to the standard. + */ +- upnp_add_response(event, "SOURCE", "http-get:*:*:*"); +- upnp_add_response(event, "SINK", ""); ++ upnp_add_response(event, "Source", "http-get:*:*:*"); ++ upnp_add_response(event, "Sink", ""); + return event->status; + } + +diff -Naur -x CVS gmediaserver-orig/src/metadata.c gmediaserver/src/metadata.c +--- gmediaserver-orig/src/metadata.c 2007-10-20 11:41:32.000000000 +0200 ++++ gmediaserver/src/metadata.c 2010-02-14 20:23:36.000000000 +0100 +@@ -66,7 +66,7 @@ + #define MAX_INVALID_EXTM3U_FILES 16 + #define MAX_INVALID_PLS_FILES 16 + #define MAX_INVALID_PLS_LINES 16 +-#define EXT_INFO_DEFAULT "DLNA.ORG_PS=1;DLNA.ORG_CI=0;DLNA.ORG_OP=00;DLNA.ORG_FLAGS=00000000000000000000000000000000" ++#define EXT_INFO_DEFAULT "DLNA.ORG_PS=1;DLNA.ORG_CI=0;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=00000000000000000000000000000000" + #define EXT_INFO_PN ";DLNA.ORG_PN=" + + typedef enum { +@@ -109,7 +109,7 @@ + [FILE_MP3] = "MP3", + [FILE_MP3_ID3] = "MP3", + [FILE_WMA] = "WMAFULL", +- [FILE_RIFF_WAVE] = NULL, ++ [FILE_RIFF_WAVE] = "LPCM", + [FILE_M4A] = NULL, + [FILE_OGG] = NULL, + [FILE_MPG] = NULL, +@@ -129,11 +129,11 @@ + [FILE_MP3] = "audio/mpeg", + [FILE_MP3_ID3] = "audio/mpeg", + [FILE_WMA] = "audio/x-ms-wma", +- [FILE_RIFF_WAVE] = "audio/x-wav", ++ [FILE_RIFF_WAVE] = "audio/x-wav", /* DMS: was x-wav */ + [FILE_M4A] = "audio/mp4", +- [FILE_OGG] = "audio/vorbis", ++ [FILE_OGG] = "application/ogg", + [FILE_MPG] = "video/mpeg", +- [FILE_MP4] = "video/mp4", ++ [FILE_MP4] = "video/divx", /* DMS: was mp4*/ + [FILE_PLS] = "audio/x-scpls", + [FILE_M3U] = "audio/m3u", + [FILE_EXTM3U] = "audio/m3u", +@@ -153,7 +153,7 @@ + [FILE_M4A] = "m4a", + [FILE_OGG] = "ogg", + [FILE_MPG] = "mpg", +- [FILE_MP4] = "mp4", ++ [FILE_MP4] = "divx", /*DMS: was mp4*/ + [FILE_PLS] = "pls", + [FILE_M3U] = "m3u", + [FILE_EXTM3U] = "m3u", /* possibly extm3u in the future */ +@@ -341,6 +350,7 @@ + { FILE_MPG, "video/mp2p" }, + { FILE_MPG, "video/mp2t" }, + { FILE_MP4, "video/mp4" }, ++ { FILE_MP4, "video/x-msvideo" }, /* DMS: avi */ + { FILE_MP4, "video/mp4v-es" }, + { FILE_MP4, "video/h264" }, + { FILE_MP4, "video/3gpp" }, +@@ -862,18 +875,21 @@ + } else { + say(4, _("%s Matched type %s - %s\n"), indent, file_type_descs[type], file_type_mime_types[type]); + } ++ ++#ifdef RESTRICT_FILE_TYPES + if (!string_in_csv(file_types, ',', file_type_names[type])) { + say(4, _("%s Skipping (file type excluded)\n"), indent); + free(indent); + return NULL; + } ++#endif + + if (type == FILE_PLS || type == FILE_M3U || type == FILE_EXTM3U) { + free(indent); + return scan_playlist_file(fullpath, name, parent, type, indent_size+1, inl, sb.st_ino); + } + +- /*say(4, _("%s Adding as %s\n"), indent, quote(name));*/ ++ say(4, _("%s Adding %s as '%s'\n"), indent, quote(name), file_type_mime_types[type]); + entry = make_entry(name, parent, false); + + detail = add_entry_detail(entry, DETAIL_FILE); diff -Nru gmediaserver-0.13.0/debian/patches/series gmediaserver-0.13.0/debian/patches/series --- gmediaserver-0.13.0/debian/patches/series 2009-11-10 13:33:16.000000000 +0100 +++ gmediaserver-0.13.0/debian/patches/series 2011-01-22 07:07:36.000000000 +0100 @@ -1,3 +1,4 @@ +00_cvs_fixes.diff 03_fix_info_file.diff 04_dont_blog_signals_if_not_processing_them.diff 05_fix_multiple_dirs.diff