<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp='urn:schemas-upnp-org:metadata-1-0/upnp/' xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/"
xmlns:sec="http://www.sec.co.kr/"><item id="V_D_0000_9_376" parentID="V_D_0000_9" restricted="1">
<dc:title>VideoWithSubtitle.avi</dc:title>
<upnp:class>object.item.videoItem</upnp:class>
<sec:dcmInfo>CREATIONDATE=1253629219,FOLDER=01 - Sous-Titrés</sec:dcmInfo>
<dc:date>2009-09-22</dc:date>
<sec:CaptionInfoEx sec:type="srt">http://192.168.1.2:53235/V_D_0000_9_376.SRT</sec:CaptionInfoEx>
<res protocolInfo="http-get:*:video/x-msvideo:DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000" size="733958196" duration="1:25:25">http://192.168.1.2:53235/V_D_0000_9_376.AVI</res>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00D00000000000000000000000000000">http://192.168.1.2:53235/V_D_0000_9_376.MTN</res>
<res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00D00000000000000000000000000000">http://192.168.1.2:53235/V_D_0000_9_376.TMTN</res>
</item>
</DIDL-Lite>
I can write a patch myself, but where should I add the code to attach "<sec:CaptionInfoEx sec:type="srt">...</sec:CaptionInfoEx>" to the XML data sent to the TV by mediatomb. Appreciate any guidance, help, suggestions etc. Thanks.
cd debian/patches
sed -i "s/ a\// /g" *.patch
sed -i "s/ b\// /g" *.patch
cd to the mediatomb source directory and do
autoreconf -i
./configure
Then apply the patchs:
patch -p0 -i <path-to-patch>
And finally, apply the samsung patch (assuming it is in your home dir):
patch -p0 -i ~/samsung_video_subtitles.patch
Now we can build and install:
make && sudo make installIf nothing goes wrong, you show now be able to run mediatomb with subtitle support. Also, a few notes on the config file: You need to set the samsung-hacks attribute and the paths might be different from the ubuntu package installs. My working config.xml is at: http://pastebin.com/15ieZfmy You can use that as a reference. Hope this helps.
<mark-played-items enabled="yes" suppress-cds-updates="yes">
<mark>
<content>video</content>
</mark>
<string mode="prepend">*</string>
</mark-played-items>
I wasn't able to narrow down the problem till later. Sorry about any trouble.
tr command is part of the GNU CoreUtils and that package appears to be missing (may be normal on that device.) It also seems to be missing gcc or another compiler. I did some further research and it appears that the trouble to get mediatomb to compile on the device may not be worth it.
Another, easier, option is probably to use the optware system to cross-compile on a PC and then install using the ipkg tool. I am trying to compile mediatomb this way on Ubuntu Natty release, but having some trouble getting a required package, libjs. The ftp site seems to be down. I'll keep trying and will let you know how it turns out.
There is cross-compile guide at < http://mybookworld.wikidot.com/cross-compile-for-mbwe-using-optware >
Meanwhile, If you'd like to give it a try yourself, you can install Natty on a virtual machine and then you'll need the build-essential and gcc-arm-linux-gnueabi packages.
Do steps 1 and 2 from be guide above, then:
To get the latest source from subversion, you'll need to edit the optware/make/mediatomb.mk file and uncomment the following lines:
MEDIATOMB_SVN_REPO=https://mediatomb.svn.sourceforge.net/svnroot/mediatomb/trunk MEDIATOMB_SVN_REV=XXXXThen change the
MEDIATOMB_SVN_REV value to HEAD. It should now be:
MEDIATOMB_SVN_REV=HEADNow, perform step 3 from the guide, with
package=mediatomb
If everything goes well, you should have an ipkg package. The guide at < http://mybookworld.wikidot.com/optware > shows how to install it.
--
Remember, this won't have the samsung subtitle patch applied and that'll have to be integrated into the build process, but once you can get mediatomb to cross-compile integrating the patch should be easy.
Further information about making optware packages can found at < http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware >.
make ${package} -unpack
I followed your instuctions applying the patch like follows
amats@ubuntu:~/optware/sources/mediatomb$ patch -p0 -i ~/samsung_video_subtitles.patch
patching file src/config_manager.cc
Hunk #1 FAILED at 1433.
1 out of 1 hunk FAILED -- saving rejects to file src/config_manager.cc.rej
patching file src/common.h
Hunk #1 FAILED at 196.
Hunk #2 FAILED at 243.
2 out of 2 hunks FAILED -- saving rejects to file src/common.h.rej
patching file src/config_manager.h
Hunk #1 FAILED at 73.
1 out of 1 hunk FAILED -- saving rejects to file src/config_manager.h.rej
patching file src/cds_resource_manager.cc
Hunk #1 FAILED at 482.
1 out of 1 hunk FAILED -- saving rejects to file src/cds_resource_manager.cc.rej
patching file src/file_request_handler.cc
Hunk #1 FAILED at 305.
1 out of 1 hunk FAILED -- saving rejects to file src/file_request_handler.cc.rej
patching file src/upnp_cds_actions.cc
Hunk #1 FAILED at 106.
1 out of 1 hunk FAILED -- saving rejects to file src/upnp_cds_actions.cc.rej
patching file src/upnp_xml.cc
Hunk #1 FAILED at 381.
1 out of 1 hunk FAILED -- saving rejects to file src/upnp_xml.cc.rej
patching file src/upnp_xml.h
Hunk #1 FAILED at 76.
1 out of 1 hunk FAILED -- saving rejects to file src/upnp_xml.h.rej
I don't know what have i done wrong this time.
mediatomb-0.11.0/mediatomb/doc/manpage.xml
if test -n "/home/amats/optware/cs05q1armel/sources/mediatomb/mediatomb_nas.patch" ; \
then cat /home/amats/optware/cs05q1armel/sources/mediatomb/mediatomb_nas.patch | \
patch -d /home/amats/optware/cs05q1armel/builds/mediatomb-0.11.0 -p1 ; \
fi
patching file configure.ac
Hunk #1 FAILED at 24.
Hunk #2 FAILED at 471.
Hunk #3 FAILED at 1224.
Hunk #4 FAILED at 1943.
Hunk #5 FAILED at 2919.
5 out of 5 hunks FAILED -- saving rejects to file configure.ac.rej
patching file src/config_manager.cc
Hunk #1 FAILED at 24.
Hunk #2 FAILED at 385.
Hunk #3 FAILED at 889.
3 out of 3 hunks FAILED -- saving rejects to file src/config_manager.cc.rej
make: *** [/home/amats/optware/cs05q1armel/builds/mediatomb/.configured] Error 1
I do not understand what am I doing wrong in this process. Any tip will be very much appreciated.
MEDIATOMB_SVN_REPO=https://mediatomb.svn.sourceforge.net/svnroot/mediatomb/trunk
to
MEDIATOMB_SVN_REPO=https://mediatomb.svn.sourceforge.net/svnroot/mediatomb/trunk/mediatomb
then delete ~/optware/cs05q1armel/downloads/mediatomb-x.xx.tar.gzip, so that the mediatomb source will be downloaded again.
But the mediatomb_nas patch appears to be already integrated into the mediatomb svn, so it is not necessary. To apply the Samsung subtitle patch instead, as part of the build process, edit the mediatomb.mk file and change line 58 to:
MEDIATOMB_PATCHES=$(MEDIATOMB_SOURCE_DIR)/samsung_video_subtitles.patch
and the place the file samsung_video_subtitles.patch in the ~/optware/sources/mediatomb directory.
Then, to change the patch file so that the optware automatic configuration target can handle it, you'll have to edit the samsung_video_subtitles.patch. Using sed, the following commands should do the job:
$ cd ~/optware/sources/mediatomb
$ mv samsung_video_subtitles.patch samsung_video_subtitles.patch.bak
$ cat samsung_video_subtitles.patch.bak | sed -e "s_src/_/src/_g" > samsung_video_subtitles.patch
Finally run, make ${package}-unpack again, followed by make ${package} and make ${package}-ipk.
I had to disable javascript support for the build process to work, but YMMV. At the end you should have a mediatomb_xxx_arm.ipk file in ~/optware/cs05q1armel/builds directory.
$ cd ~/optware/sources/mediatomb
$ mv samsung_video_subtitles.patch samsung_video_subtitles.patch.bak
$ cat samsung_video_subtitles.patch.bak | sed -e "s_src/_/src/_g" > samsung_video_subtitles.patch
I'll try it as soon as i get home and let you know. Thanks for all the help provided and patience
svn co https://svn.mediatomb.cc/svnroot/mediatomb/trunk/mediatomb mediatomb
Then generate the configure script by running autotools:
cd mediatomb
autoreconf -i
Then, you can get the patch file from Marcin's post: https://sourceforge.net/tracker/?func=detail&aid=3014026&group_id=129766&atid=715782
While in the mediatomb directory, run the following command to apply the patch:
patch -p0 -i <path-to-patch>
If there are no errors, you can configure the project and build it:
./configure
make && sudo make install
Finally, edit the config.xml file to enable the Samsung subtitle support (see the comments in Marcin's post for more info):
<protocolInfo extend="yes" samsung-hack="yes"/>
configure: error: Support of at least one of mysql or sqlite3 must be configuredBelow is the complete output from the ./configure:
root@b3:/home/nick/downloads/mediatomb/mediatomb# ./configure checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking build system type... armv5tel-unknown-linux-gnueabi checking host system type... armv5tel-unknown-linux-gnueabi checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for ranlib... ranlib checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking whether gcc needs -traditional... no checking for dirent.h that defines DIR... yes checking for library containing opendir... none required checking for ANSI C header files... yes checking for sys/wait.h that is POSIX.1 compatible... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes checking whether time.h and sys/time.h may both be included... yes checking whether stat file-mode macros are broken... no checking whether gcc and cc understand -c and -o together... yes checking time.h usability... yes checking time.h presence... yes checking for time.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for unistd.h... (cached) yes checking arpa/inet.h usability... yes checking arpa/inet.h presence... yes checking for arpa/inet.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking limits.h usability... yes checking limits.h presence... yes checking for limits.h... yes checking netdb.h usability... yes checking netdb.h presence... yes checking for netdb.h... yes checking netinet/in.h usability... yes checking netinet/in.h presence... yes checking for netinet/in.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/file.h usability... yes checking sys/file.h presence... yes checking for sys/file.h... yes checking sys/ioctl.h usability... yes checking sys/ioctl.h presence... yes checking for sys/ioctl.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/time.h usability... yes checking sys/time.h presence... yes checking for sys/time.h... yes checking for sys/types.h... (cached) yes checking for sys/wait.h... (cached) yes checking langinfo.h usability... yes checking langinfo.h presence... yes checking for langinfo.h... yes checking locale.h usability... yes checking locale.h presence... yes checking for locale.h... yes checking sys/utsname.h usability... yes checking sys/utsname.h presence... yes checking for sys/utsname.h... yes checking sched.h usability... yes checking sched.h presence... yes checking for sched.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking for sched_getparam... yes checking for sched_setparam... yes checking for sched_get_priority_min... yes checking for sched_get_priority_max... yes checking for mkdir... yes checking getopt.h usability... yes checking getopt.h presence... yes checking for getopt.h... yes checking for getopt_long... yes checking for mkfifo... yes checking iconv.h usability... yes checking iconv.h presence... yes checking for iconv.h... yes checking for iconv... yes checking if iconv declaration requires const char cast... no checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking for time_t... yes checking for special C compiler options needed for large files... no checking for _FILE_OFFSET_BITS value needed for large files... 64 checking for off_t... yes checking for size_t... yes checking for _LARGEFILE_SOURCE value needed for large files... no checking size of off_t... 8 checking size of size_t... 4 checking size of time_t... 4 checking size of unsigned int... 4 checking size of unsigned long... 4 checking for strtoll... yes checking for nl_langinfo... yes checking for setlocale... yes checking for backtrace... yes checking for backtrace_symbols... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking for working volatile... yes checking return type of signal handlers... void checking for pid_t... yes checking for size_t... (cached) yes checking for int64_t... yes checking for ssize_t... yes checking for uint32_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking whether byte ordering is bigendian... no checking whether LONG_MAX is declared... yes checking whether LLONG_MAX is declared... yes checking for working alloca.h... yes checking for alloca... yes checking whether closedir returns void... no checking for error_at_line... yes checking vfork.h usability... no checking vfork.h presence... no checking for vfork.h... no checking for fork... yes checking for vfork... yes checking for working fork... yes checking for working vfork... (cached) yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... yes checking for working memcmp... yes checking for stdlib.h... (cached) yes checking for GNU libc compatible realloc... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking for sys/socket.h... (cached) yes checking types of arguments for select... int,fd_set *,struct timeval * checking whether lstat correctly handles trailing slash... yes checking whether stat accepts an empty string... no checking for working strtod... yes checking for vprintf... yes checking for _doprnt... no checking whether strerror_r is declared... yes checking for strerror_r... yes checking whether strerror_r returns char *... no checking for strftime... yes checking for gethostname... yes checking for gettimeofday... yes checking for localtime_r... yes checking for memmove... yes checking for memset... yes checking for regcomp... yes checking for select... yes checking for strcasecmp... yes checking for strchr... yes checking for strdup... yes checking for strerror... yes checking for strncasecmp... yes checking for strrchr... yes checking for strstr... yes checking for strtol... yes checking for strtoul... yes checking for uname... yes checking for sigaction... yes checking for sigprocmask... yes checking for ioctl... yes checking for tolower... yes checking for toupper... yes checking for inet_ntoa... yes checking for socket... yes checking for gethostbyname... yes checking how to run the C++ preprocessor... g++ -E checking for gethostbyname_r... yes checking for if_nameindex... yes checking for if_freenameindex... yes checking for the pthreads library -lpthreads... no checking whether pthreads work without any flags... no checking whether pthreads work with -Kthread... no checking whether pthreads work with -kthread... no checking for the pthreads library -llthread... no checking whether pthreads work with -pthread... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking if more special flags are required for pthreads... no checking for clock_gettime in -lrt... yes checking zlib.h usability... yes checking zlib.h presence... yes checking for zlib.h... yes checking for uncompress in -lz... yes checking sqlite3.h usability... no checking sqlite3.h presence... no checking for sqlite3.h... no checking /usr/local/include/sqlite3.h usability... no checking /usr/local/include/sqlite3.h presence... no checking for /usr/local/include/sqlite3.h... no checking for mysql_config... none checking for mysql_config... none mysql_config not found, please install the mysql devel package configure: none could not be executed or returned invalid values configure: error: Support of at least one of mysql or sqlite3 must be configuredPlease help me on how to proceed.
This forum does not allow anonymous participation.
Log in to add a reply. Not registered? Create an account to participate and receive email updates when replies are posted to this topic.