Remove net/mediatomb, there have been no new releases for over 10 years.
Use net/gerbera as an alternative. PR: 248476 Submitted by: Daniel Engberg Approved by: maintainer timeout (leo@mediatomb.cc, 4 months)
This commit is contained in:
parent
05e4043ade
commit
c924599008
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=559749
1
MOVED
1
MOVED
@ -15909,3 +15909,4 @@ www/mediawiki133|www/mediawiki135|2020-12-31|Has expired: Upstream end of life
|
||||
www/mediawiki134|www/mediawiki135|2020-12-31|Has expired: Upstream end of life
|
||||
www/py-aiohttp2|www/py-aiohttp|2020-12-31|Has expired: Use www/py-aiohttp instead
|
||||
graphics/drm-legacy-kmod|graphics/drm-kmod|2020-12-31|Has expired: Obsolete version, use drm-kmod
|
||||
net/mediatomb|net/gerbera|2020-12-31|Removed: no new release for over 10 years
|
||||
|
@ -430,7 +430,6 @@
|
||||
SUBDIR += mdns-repeater
|
||||
SUBDIR += measurement-kit
|
||||
SUBDIR += mediastreamer
|
||||
SUBDIR += mediatomb
|
||||
SUBDIR += megacmd
|
||||
SUBDIR += megatools
|
||||
SUBDIR += messagelib
|
||||
|
@ -1,124 +0,0 @@
|
||||
# Created by: Leonhard Wimmer <leo@mediatomb.cc>
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= mediatomb
|
||||
PORTVERSION= 0.12.1
|
||||
PORTREVISION= 26
|
||||
CATEGORIES= net multimedia
|
||||
MASTER_SITES= SF/${PORTNAME}/MediaTomb/${PORTVERSION}
|
||||
|
||||
MAINTAINER= leo@mediatomb.cc
|
||||
COMMENT= UPnP AV MediaServer
|
||||
|
||||
LICENSE= GPLv2
|
||||
LICENSE_FILE= ${WRKSRC}/COPYING
|
||||
|
||||
LIB_DEPENDS= libexpat.so:textproc/expat2
|
||||
|
||||
GNU_CONFIGURE= yes
|
||||
LDFLAGS+= -lpthread ${ICONV_LIB}
|
||||
CONFIGURE_ARGS= --with-search="${LOCALBASE}" \
|
||||
--disable-inotify
|
||||
CONFIGURE_ENV= PTHREAD_LIBS="-lpthread"
|
||||
USES= compiler:gcc-c++11-lib iconv localbase:ldflags
|
||||
USE_RC_SUBR= mediatomb
|
||||
|
||||
# Workaround for FreeBSD 10, whose libc++ does not have an overload for C++14's
|
||||
# `operator delete(void*, size_t)'. Since GCC 6 uses -std=gnu++14 by default,
|
||||
# linking fails when a dependency (such as taglib) is built with clang and
|
||||
# lacking the overload. FreeBSD >= 11 is fine.
|
||||
USE_CXXSTD= gnu++11
|
||||
CFLAGS+= -fcommon
|
||||
|
||||
USERS= mediatomb
|
||||
GROUPS= ${USERS}
|
||||
|
||||
SUB_FILES= config.xml.dist \
|
||||
pkg-install \
|
||||
pkg-deinstall
|
||||
|
||||
SUB_LIST= MEDIATOMB_USER=${USERS} \
|
||||
MEDIATOMB_GROUP=${GROUPS} \
|
||||
MEDIATOMB_DIR=${DESTDIR}/var/db/mediatomb
|
||||
|
||||
OPTIONS_DEFINE= JS LIBEXIF FFMPEGTHUMBNAILER \
|
||||
EXTERNAL_TRANSCODING CURL DEBUG
|
||||
OPTIONS_MULTI= DB
|
||||
OPTIONS_MULTI_DB= SQLITE MYSQL
|
||||
OPTIONS_RADIO= METADATA TAG
|
||||
OPTIONS_RADIO_METADATA= FFMPEG LIBEXTRACTOR
|
||||
OPTIONS_RADIO_TAG= TAGLIB ID3LIB
|
||||
OPTIONS_DEFAULT= SQLITE MYSQL JS LIBEXIF TAGLIB FFMPEG FFMPEGTHUMBNAILER \
|
||||
EXTERNAL_TRANSCODING CURL
|
||||
|
||||
METADATA_DESC= Metadata extractor
|
||||
TAG_DESC= Tag library
|
||||
|
||||
DB_DESC= Database backend
|
||||
JS_DESC= JavaScript (SpiderMonkey) support
|
||||
TAGLIB_DESC= taglib support
|
||||
FFMPEG_DESC= ffmpeg metadata extraction support
|
||||
FFMPEGTHUMBNAILER_DESC= ffmpeg thumbnailer support
|
||||
EXTERNAL_TRANSCODING_DESC= external transcoding support
|
||||
ID3LIB_DESC= id3lib support
|
||||
LIBEXTRACTOR_DESC= libextractor support
|
||||
|
||||
SQLITE_USES= sqlite
|
||||
SQLITE_CONFIGURE_ENABLE= sqlite3
|
||||
SQLITE_CONFIGURE_ON= --with-sqlite3-h="${LOCALBASE}/include" \
|
||||
--with-sqlite3-libs="${LOCALBASE}/lib"
|
||||
|
||||
MYSQL_USES= mysql
|
||||
MYSQL_CONFIGURE_ENABLE= mysql
|
||||
MYSQL_CONFIGURE_ON= --with-mysql-cfg="${LOCALBASE}/bin/mysql_config"
|
||||
|
||||
JS_CONFIGURE_ENABLE= libjs
|
||||
JS_CONFIGURE_ON= --with-js-h="${LOCALBASE}/include/js-1.7" \
|
||||
--with-js-libs="${LOCALBASE}/lib"
|
||||
JS_LIB_DEPENDS= libjs.so:lang/spidermonkey17
|
||||
|
||||
LIBEXIF_CONFIGURE_ENABLE= libexif
|
||||
LIBEXIF_CONFIGURE_ON= --with-libexif-h="${LOCALBASE}/include" \
|
||||
--with-libexif-libs="${LOCALBASE}/lib"
|
||||
LIBEXIF_LIB_DEPENDS= libexif.so:graphics/libexif
|
||||
|
||||
EXTERNAL_TRANSCODING_CONFIGURE_ENABLE= external-transcoding
|
||||
|
||||
FFMPEGTHUMBNAILER_CONFIGURE_ENABLE= ffmpegthumbnailer
|
||||
FFMPEGTHUMBNAILER_CONFIGURE_ON= --with-ffmpegthumbnailer-h="${LOCALBASE}/include" \
|
||||
--with-ffmpegthumbnailer-libs="${LOCALBASE}/lib"
|
||||
FFMPEGTHUMBNAILER_LIB_DEPENDS= libffmpegthumbnailer.so:multimedia/ffmpegthumbnailer
|
||||
|
||||
# CURL is only useful in combination with EXTERNAL_TRANSCODING
|
||||
CURL_IMPLIES= EXTERNAL_TRANSCODING
|
||||
CURL_CONFIGURE_ENABLE= curl
|
||||
CURL_CONFIGURE_ON= --with-curl-cfg="${LOCALBASE}/bin/curl-config"
|
||||
CURL_LIB_DEPENDS= libcurl.so:ftp/curl
|
||||
|
||||
FFMPEG_CONFIGURE_ENABLE= ffmpeg
|
||||
FFMPEG_LIB_DEPENDS= libavformat.so:multimedia/ffmpeg
|
||||
|
||||
LIBEXTRACTOR_CONFIGURE_ENABLE= libextractor
|
||||
LIBEXTRACTOR_CONFIGURE_ON= --with-extractor-h="${LOCALBASE}/include" \
|
||||
--with-extractor-libs="${LOCALBASE}/lib"
|
||||
LIBEXTRACTOR_LIB_DEPENDS= libextractor.so:textproc/libextractor
|
||||
LIBEXTRACTOR_BROKEN= LIBEXTRACTOR option fails to configure (checking for EXTRACTOR_getKeywords in -lextractor... no)
|
||||
|
||||
ID3LIB_CONFIGURE_ENABLE= id3lib
|
||||
ID3LIB_CONFIGURE_ON= --with-id3lib-h="${LOCALBASE}/include" \
|
||||
--with-id3lib-libs="${LOCALBASE}/lib"
|
||||
ID3LIB_LIB_DEPENDS= libid3.so:audio/id3lib
|
||||
|
||||
TAGLIB_CONFIGURE_ENABLE= taglib
|
||||
TAGLIB_CONFIGURE_ON= --with-taglib-cfg="${LOCALBASE}/bin/taglib-config"
|
||||
TAGLIB_LIB_DEPENDS= libtag.so:audio/taglib
|
||||
|
||||
DEBUG_CONFIGURE_ENABLE= tombdebug
|
||||
|
||||
post-install:
|
||||
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/mediatomb
|
||||
@${MKDIR} ${STAGEDIR}/var/log/mediatomb
|
||||
@${MKDIR} ${STAGEDIR}/var/db/mediatomb
|
||||
${INSTALL_DATA} ${WRKDIR}/config.xml.dist ${STAGEDIR}${PREFIX}/etc/mediatomb/config.xml.dist
|
||||
|
||||
.include <bsd.port.mk>
|
@ -1,2 +0,0 @@
|
||||
SHA256 (mediatomb-0.12.1.tar.gz) = 31163c34a7b9d1c9735181737cb31306f29f1f2a0335fb4f53ecccf8f62f11cd
|
||||
SIZE (mediatomb-0.12.1.tar.gz) = 1240612
|
@ -1,147 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<config version="1" xmlns="http://mediatomb.cc/config/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mediatomb.cc/config/1 http://mediatomb.cc/config/1.xsd">
|
||||
<server>
|
||||
<ui enabled="yes">
|
||||
<accounts enabled="no" session-timeout="30">
|
||||
<account user="mediatomb" password="mediatomb"/>
|
||||
</accounts>
|
||||
</ui>
|
||||
<name>MediaTomb</name>
|
||||
<udn/>
|
||||
<home>%%MEDIATOMB_DIR%%</home>
|
||||
<webroot>%%DATADIR%%/web</webroot>
|
||||
<storage>
|
||||
<sqlite3 enabled="yes">
|
||||
<database-file>mediatomb.db</database-file>
|
||||
</sqlite3>
|
||||
<mysql enabled="no">
|
||||
<host>localhost</host>
|
||||
<username>mediatomb</username>
|
||||
<database>mediatomb</database>
|
||||
</mysql>
|
||||
</storage>
|
||||
<protocolInfo extend="no"/><!-- For PS3 support change to "yes" -->
|
||||
<!--
|
||||
Uncomment the lines below to get rid of jerky avi playback on the
|
||||
DSM320 or to enable subtitles support on the DSM units
|
||||
-->
|
||||
<!--
|
||||
<custom-http-headers>
|
||||
<add header="X-User-Agent: redsonic"/>
|
||||
</custom-http-headers>
|
||||
<manufacturerURL>redsonic.com</manufacturerURL>
|
||||
<modelNumber>105</modelNumber>
|
||||
-->
|
||||
<!-- Uncomment the line below if you have a Telegent TG100 -->
|
||||
<!--
|
||||
<upnp-string-limit>101</upnp-string-limit>
|
||||
-->
|
||||
<!--
|
||||
<custom-http-headers>
|
||||
<add header="transferMode.dlna.org: Streaming"/>
|
||||
<add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000"/>
|
||||
</custom-http-headers>
|
||||
-->
|
||||
</server>
|
||||
<import hidden-files="no">
|
||||
<filesystem-charset>UTF-8</filesystem-charset>
|
||||
<metadata-charset>UTF-8</metadata-charset>
|
||||
<playlist-charset>UTF-8</playlist-charset>
|
||||
<scripting script-charset="UTF-8">
|
||||
<common-script>%%DATADIR%%/js/common.js</common-script>
|
||||
<playlist-script>%%DATADIR%%/js/playlists.js</playlist-script>
|
||||
<virtual-layout type="builtin">
|
||||
<import-script>%%DATADIR%%/js/import.js</import-script>
|
||||
</virtual-layout>
|
||||
</scripting>
|
||||
<mappings>
|
||||
<extension-mimetype ignore-unknown="no">
|
||||
<map from="mp3" to="audio/mpeg"/>
|
||||
<map from="ogg" to="application/ogg"/>
|
||||
<map from="mpg" to="video/mpeg"/>
|
||||
<map from="mpeg" to="video/mpeg"/>
|
||||
<map from="vob" to="video/mpeg"/>
|
||||
<map from="vro" to="video/mpeg"/>
|
||||
<map from="m2ts" to="video/avc"/>
|
||||
<map from="mts" to="video/avc"/>
|
||||
<map from="asf" to="video/x-ms-asf"/>
|
||||
<map from="asx" to="video/x-ms-asf"/>
|
||||
<map from="wma" to="audio/x-ms-wma"/>
|
||||
<map from="wax" to="audio/x-ms-wax"/>
|
||||
<map from="wmv" to="video/x-ms-wmv"/>
|
||||
<map from="wvx" to="video/x-ms-wvx"/>
|
||||
<map from="wm" to="video/x-ms-wm"/>
|
||||
<map from="wmx" to="video/x-ms-wmx"/>
|
||||
<map from="m3u" to="audio/x-mpegurl"/>
|
||||
<map from="pls" to="audio/x-scpls"/>
|
||||
<map from="flv" to="video/x-flv"/>
|
||||
<map from="mkv" to="video/x-mkv"/>
|
||||
<map from="avi" to="video/x-msvideo"/>
|
||||
<!-- Uncomment the line below for PS3 divx support -->
|
||||
<!-- <map from="avi" to="video/divx"/> -->
|
||||
<!-- Uncomment the line below for D-Link DSM / ZyXEL DMA-1000 -->
|
||||
<!-- <map from="avi" to="video/avi"/> -->
|
||||
</extension-mimetype>
|
||||
<mimetype-upnpclass>
|
||||
<map from="audio/*" to="object.item.audioItem.musicTrack"/>
|
||||
<map from="video/*" to="object.item.videoItem"/>
|
||||
<map from="image/*" to="object.item.imageItem"/>
|
||||
</mimetype-upnpclass>
|
||||
<mimetype-contenttype>
|
||||
<treat mimetype="audio/mpeg" as="mp3"/>
|
||||
<treat mimetype="application/ogg" as="ogg"/>
|
||||
<treat mimetype="audio/x-flac" as="flac"/>
|
||||
<treat mimetype="image/jpeg" as="jpg"/>
|
||||
<treat mimetype="audio/x-mpegurl" as="playlist"/>
|
||||
<treat mimetype="audio/x-scpls" as="playlist"/>
|
||||
<treat mimetype="audio/x-wav" as="pcm"/>
|
||||
<treat mimetype="video/x-msvideo" as="avi"/>
|
||||
</mimetype-contenttype>
|
||||
</mappings>
|
||||
</import>
|
||||
<transcoding enabled="no">
|
||||
<mimetype-profile-mappings>
|
||||
<transcode mimetype="video/x-flv" using="video-common"/>
|
||||
<transcode mimetype="application/ogg" using="video-common"/>
|
||||
<transcode mimetype="application/ogg" using="audio-ffmpeg-wav"/>
|
||||
<transcode mimetype="audio/x-flac" using="audio-ffmpeg-wav"/>
|
||||
</mimetype-profile-mappings>
|
||||
<profiles>
|
||||
<profile name="audio-mod-xmp" enabled="no" type="external">
|
||||
<mimetype>audio/x-wav</mimetype>
|
||||
<accept-url>no</accept-url>
|
||||
<first-resource>no</first-resource>
|
||||
<hide-original-resource>yes</hide-original-resource>
|
||||
<agent command="/usr/local/bin/xmp" arguments="-d wav -o %out %in"/>
|
||||
<buffer size="1048576" chunk-size="131072" fill-size="262144"/>
|
||||
</profile>
|
||||
<profile name="audio-ffmpeg-wav" enabled="yes" type="external">
|
||||
<mimetype>audio/x-wav</mimetype>
|
||||
<accept-url>no</accept-url>
|
||||
<first-resource>no</first-resource>
|
||||
<hide-original-resource>yes</hide-original-resource>
|
||||
<agent command="/usr/local/bin/ffmpeg" arguments="-i %in -f wav -y %out"/>
|
||||
<buffer size="1048576" chunk-size="131072" fill-size="262144"/>
|
||||
</profile>
|
||||
<profile name="audio-ffmpeg-raw" enabled="no" type="external">
|
||||
<mimetype>audio/L16</mimetype>
|
||||
<first-resource>yes</first-resource>
|
||||
<accept-url>no</accept-url>
|
||||
<sample-frequency>44100</sample-frequency>
|
||||
<audio-channels>2</audio-channels>
|
||||
<hide-original-resource>yes</hide-original-resource>
|
||||
<agent command="/usr/local/bin/ffmpeg" arguments="-i %in -ac 2 -ar 44100 -y -f s16be %out"/>
|
||||
<buffer size="1048576" chunk-size="131072" fill-size="262144"/>
|
||||
</profile>
|
||||
<profile name="video-common" enabled="yes" type="external">
|
||||
<mimetype>video/mpeg</mimetype>
|
||||
<accept-url>no</accept-url>
|
||||
<first-resource>yes</first-resource>
|
||||
<hide-original-resource>yes</hide-original-resource>
|
||||
<accept-ogg-theora>yes</accept-ogg-theora>
|
||||
<agent command="/usr/local/bin/ffmpeg" arguments="-i %in -f mpegts -sameq -vb 4096k -r 25 -ac 2 -ar 48000 -ab 192k -async 2 -threads 2 -y %out"/>
|
||||
<buffer size="10485760" chunk-size="262144" fill-size="524288"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
</transcoding>
|
||||
</config>
|
@ -1,43 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
|
||||
# PROVIDE: mediatomb
|
||||
# REQUIRE: DAEMON
|
||||
# KEYWORD: shutdown
|
||||
|
||||
# Define these mediatomb_* variables in one of these files:
|
||||
# /etc/rc.conf
|
||||
# /etc/rc.conf.local
|
||||
# /etc/rc.conf.d/mediatomb
|
||||
#
|
||||
# DO NOT CHANGE THESE DEFAULT VALUES HERE
|
||||
#
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
mediatomb_enable=${mediatomb_enable-"NO"}
|
||||
# mediatomb_flags="<set as needed>"
|
||||
# mediatomb_interface="<set as needed>"
|
||||
mediatomb_mtuser=${mediatomb_mtuser-"mediatomb"}
|
||||
mediatomb_mtgroup=${mediatomb_mtgroup-"mediatomb"}
|
||||
mediatomb_config=${mediatomb_config-"%%PREFIX%%/etc/mediatomb/config.xml"}
|
||||
mediatomb_logfile=${mediatomb_logfile-"/var/log/mediatomb/mediatomb.log"}
|
||||
mediatomb_pidfile=${mediatomb_pidfile-"/var/run/mediatomb.pid"}
|
||||
|
||||
name="mediatomb"
|
||||
rcvar=mediatomb_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
if [ "xx" != "x${mediatomb_interface}x" ]; then
|
||||
mediatomb_interface_command="-e ${mediatomb_interface}"
|
||||
else
|
||||
mediatomb_interface_command=""
|
||||
fi
|
||||
|
||||
command="%%PREFIX%%/bin/mediatomb"
|
||||
command_args="-d -c ${mediatomb_config} -l ${mediatomb_logfile} -u ${mediatomb_mtuser} -g ${mediatomb_mtgroup} -P ${mediatomb_pidfile} ${mediatomb_interface_command}"
|
||||
|
||||
pidfile="${mediatomb_pidfile}"
|
||||
|
||||
run_rc_command "$1"
|
@ -1,134 +0,0 @@
|
||||
--- src/hash/dbr_hash.h.orig 2013-09-21 09:16:26.000000000 +0000
|
||||
+++ src/hash/dbr_hash.h 2013-09-21 09:20:41.000000000 +0000
|
||||
@@ -124,7 +124,7 @@
|
||||
inline bool remove(KT key)
|
||||
{
|
||||
struct dbr_hash_slot<KT> *slot;
|
||||
- if (! search(key, &slot))
|
||||
+ if (! this->search(key, &slot))
|
||||
return false;
|
||||
slot->key = deletedKey;
|
||||
int array_slot = slot->array_slot;
|
||||
@@ -134,7 +134,7 @@
|
||||
return true;
|
||||
}
|
||||
data_array[array_slot] = data_array[--this->count];
|
||||
- if (! search(data_array[array_slot], &slot))
|
||||
+ if (! this->search(data_array[array_slot], &slot))
|
||||
{
|
||||
log_debug("DBR-Hash-Error: (%d; array_slot=%d; count=%d)\n", data_array[array_slot], array_slot, this->count);
|
||||
throw zmm::Exception(_("DBR-Hash-Error: key in data_array not found in hashtable"));
|
||||
@@ -146,7 +146,7 @@
|
||||
inline void put(KT key)
|
||||
{
|
||||
struct dbr_hash_slot<KT> *slot;
|
||||
- if (! search(key, &slot))
|
||||
+ if (! this->search(key, &slot))
|
||||
{
|
||||
#ifdef TOMBDEBUG
|
||||
if (this->count >= realCapacity)
|
||||
@@ -194,7 +194,7 @@
|
||||
inline bool exists(KT key)
|
||||
{
|
||||
struct dbr_hash_slot<KT> *slot;
|
||||
- return search(key, &slot);
|
||||
+ return this->search(key, &slot);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -202,7 +202,7 @@
|
||||
|
||||
inline bool exists(KT key, hash_slot_t *destSlot)
|
||||
{
|
||||
- return search(key, (KT **)destSlot);
|
||||
+ return this->search(key, (KT **)destSlot);
|
||||
}
|
||||
*/
|
||||
};
|
||||
--- src/hash/dbo_hash.h.orig 2013-09-21 09:23:08.000000000 +0000
|
||||
+++ src/hash/dbo_hash.h 2013-09-21 09:23:26.000000000 +0000
|
||||
@@ -106,7 +106,7 @@
|
||||
inline bool remove(KT key)
|
||||
{
|
||||
struct dbo_hash_slot<KT, VT> *slot;
|
||||
- if (! search(key, &slot))
|
||||
+ if (! this->search(key, &slot))
|
||||
return false;
|
||||
slot->key = deletedKey;
|
||||
slot->value->release();
|
||||
@@ -136,7 +136,7 @@
|
||||
inline void put(KT key, zmm::Ref<VT> value)
|
||||
{
|
||||
struct dbo_hash_slot<KT, VT> *slot;
|
||||
- search(key, &slot);
|
||||
+ this->search(key, &slot);
|
||||
put(key, (hash_slot_t)slot, value);
|
||||
}
|
||||
void put(KT key, hash_slot_t destSlot, zmm::Ref<VT> value)
|
||||
@@ -162,7 +162,7 @@
|
||||
inline zmm::Ref<VT> get(KT key)
|
||||
{
|
||||
struct dbo_hash_slot<KT, VT> *slot;
|
||||
- bool found = search(key, &slot);
|
||||
+ bool found = this->search(key, &slot);
|
||||
if (found)
|
||||
return zmm::Ref<VT>(slot->value);
|
||||
else
|
||||
@@ -174,7 +174,7 @@
|
||||
inline zmm::Ref<VT> get(KT key, hash_slot_t *destSlot)
|
||||
{
|
||||
struct dbo_hash_slot<KT, VT> **slot = (struct dbo_hash_slot<KT, VT> **)destSlot;
|
||||
- bool found = search(key, slot);
|
||||
+ bool found = this->search(key, slot);
|
||||
if (found)
|
||||
return zmm::Ref<VT>((*slot)->value);
|
||||
else
|
||||
--- src/hash/dso_hash.h.orig 2013-09-21 09:25:09.000000000 +0000
|
||||
+++ src/hash/dso_hash.h 2013-09-21 09:25:27.000000000 +0000
|
||||
@@ -100,7 +100,7 @@
|
||||
inline bool remove(zmm::String key)
|
||||
{
|
||||
struct dso_hash_slot<VT> *slot;
|
||||
- if (! search(key, &slot))
|
||||
+ if (! this->search(key, &slot))
|
||||
return false;
|
||||
slot->key->release();
|
||||
slot->value->release();
|
||||
@@ -112,7 +112,7 @@
|
||||
inline void put(zmm::String key, zmm::Ref<VT> value)
|
||||
{
|
||||
struct dso_hash_slot<VT> *slot;
|
||||
- search(key, &slot);
|
||||
+ this->search(key, &slot);
|
||||
put(key, (hash_slot_t)slot, value);
|
||||
}
|
||||
void put(zmm::String key, hash_slot_t destSlot, zmm::Ref<VT> value)
|
||||
@@ -141,7 +141,7 @@
|
||||
inline zmm::Ref<VT> get(zmm::String key)
|
||||
{
|
||||
struct dso_hash_slot<VT> *slot;
|
||||
- bool found = search(key, &slot);
|
||||
+ bool found = this->search(key, &slot);
|
||||
if (found)
|
||||
return zmm::Ref<VT>(slot->value);
|
||||
else
|
||||
@@ -153,7 +153,7 @@
|
||||
inline zmm::Ref<VT> get(zmm::String key, hash_slot_t *destSlot)
|
||||
{
|
||||
struct dso_hash_slot<VT> **slot = (struct dso_hash_slot<VT> **)destSlot;
|
||||
- bool found = search(key, slot);
|
||||
+ bool found = this->search(key, slot);
|
||||
if (found)
|
||||
return zmm::Ref<VT>((*slot)->value);
|
||||
else
|
||||
--- tombupnp/upnp/src/genlib/net/http/webserver.c.orig 2013-09-30 04:20:49.000000000 +0000
|
||||
+++ tombupnp/upnp/src/genlib/net/http/webserver.c 2013-09-30 04:21:45.000000000 +0000
|
||||
@@ -310,7 +310,7 @@
|
||||
* 0 - On Sucess
|
||||
* UPNP_E_OUTOF_MEMORY - on memory allocation failures
|
||||
************************************************************************/
|
||||
-XINLINE int
|
||||
+static XINLINE int
|
||||
get_content_type( IN const char *filename,
|
||||
OUT DOMString * content_type )
|
||||
{
|
@ -1,64 +0,0 @@
|
||||
=== modified file 'src/metadata/ffmpeg_handler.cc'
|
||||
--- src/metadata/ffmpeg_handler.cc.orig 2010-08-25 17:07:03 +0000
|
||||
+++ src/metadata/ffmpeg_handler.cc 2011-05-19 04:33:32 +0000
|
||||
@@ -89,6 +89,33 @@
|
||||
|
||||
Ref<StringConverter> sc = StringConverter::m2i();
|
||||
|
||||
+ /* Tabs are 4 characters here */
|
||||
+ typedef struct {const char *avname; metadata_fields_t field;} mapping_t;
|
||||
+ static const mapping_t mapping[] =
|
||||
+ {
|
||||
+ {"title", M_TITLE},
|
||||
+ {"artist", M_ARTIST},
|
||||
+ {"album", M_ALBUM},
|
||||
+ {"date", M_DATE},
|
||||
+ {"genre", M_GENRE},
|
||||
+ {"comment", M_DESCRIPTION},
|
||||
+ {"track", M_TRACKNUMBER},
|
||||
+ {NULL, M_MAX},
|
||||
+ };
|
||||
+
|
||||
+ if (!pFormatCtx->metadata)
|
||||
+ return;
|
||||
+ for (const mapping_t *m = mapping; m->avname != NULL; m++)
|
||||
+ {
|
||||
+ AVMetadataTag *tag = NULL;
|
||||
+ tag = av_metadata_get(pFormatCtx->metadata, m->avname, NULL, 0);
|
||||
+ if (tag && tag->value && tag->value[0])
|
||||
+ {
|
||||
+ log_debug("Added metadata %s: %s\n", m->avname, tag->value);
|
||||
+ item->setMetadata(MT_KEYS[m->field].upnp, sc->convert(tag->value));
|
||||
+ }
|
||||
+ }
|
||||
+ /* Old algorithm (doesn't work with libav >= 0.7)
|
||||
if (strlen(pFormatCtx->title) > 0)
|
||||
{
|
||||
log_debug("Added metadata title: %s\n", pFormatCtx->title);
|
||||
@@ -131,6 +158,7 @@
|
||||
item->setMetadata(MT_KEYS[M_TRACKNUMBER].upnp,
|
||||
sc->convert(String::from(pFormatCtx->track)));
|
||||
}
|
||||
+ */
|
||||
}
|
||||
|
||||
// ffmpeg library calls
|
||||
@@ -178,7 +206,7 @@
|
||||
for(i=0; i<pFormatCtx->nb_streams; i++)
|
||||
{
|
||||
AVStream *st = pFormatCtx->streams[i];
|
||||
- if((st != NULL) && (videoset == false) && (st->codec->codec_type == CODEC_TYPE_VIDEO))
|
||||
+ if((st != NULL) && (videoset == false) && (st->codec->codec_type == AVMEDIA_TYPE_VIDEO))
|
||||
{
|
||||
if (st->codec->codec_tag > 0)
|
||||
{
|
||||
@@ -209,7 +237,7 @@
|
||||
*y = st->codec->height;
|
||||
}
|
||||
}
|
||||
- if(st->codec->codec_type == CODEC_TYPE_AUDIO)
|
||||
+ if(st->codec->codec_type == AVMEDIA_TYPE_AUDIO)
|
||||
{
|
||||
// Increase number of audiochannels
|
||||
audioch++;
|
||||
|
@ -1,51 +0,0 @@
|
||||
diff -burN mediatomb-0.12.1.old//src/metadata/ffmpeg_handler.cc mediatomb-0.12.1/src/metadata/ffmpeg_handler.cc
|
||||
--- src/metadata/ffmpeg_handler.cc.orig 2012-11-25 14:55:05.335753129 +0100
|
||||
+++ src/metadata/ffmpeg_handler.cc 2012-11-25 15:29:42.840677486 +0100
|
||||
@@ -110,8 +110,8 @@
|
||||
return;
|
||||
for (const mapping_t *m = mapping; m->avname != NULL; m++)
|
||||
{
|
||||
- AVMetadataTag *tag = NULL;
|
||||
- tag = av_metadata_get(pFormatCtx->metadata, m->avname, NULL, 0);
|
||||
+ AVDictionaryEntry *tag = NULL;
|
||||
+ tag = av_dict_get(pFormatCtx->metadata, m->avname, NULL, 0);
|
||||
if (tag && tag->value && tag->value[0])
|
||||
{
|
||||
log_debug("Added metadata %s: %s\n", m->avname, tag->value);
|
||||
@@ -281,7 +281,7 @@
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
|
||||
- AVFormatContext *pFormatCtx;
|
||||
+ AVFormatContext *pFormatCtx = 0;
|
||||
|
||||
// Suppress all log messages
|
||||
av_log_set_callback(FfmpegNoOutputStub);
|
||||
@@ -290,14 +290,14 @@
|
||||
av_register_all();
|
||||
|
||||
// Open video file
|
||||
- if (av_open_input_file(&pFormatCtx,
|
||||
- item->getLocation().c_str(), NULL, 0, NULL) != 0)
|
||||
+ if (avformat_open_input(&pFormatCtx,
|
||||
+ item->getLocation().c_str(), NULL, NULL) != 0)
|
||||
return; // Couldn't open file
|
||||
|
||||
// Retrieve stream information
|
||||
- if (av_find_stream_info(pFormatCtx) < 0)
|
||||
+ if (avformat_find_stream_info(pFormatCtx, NULL) < 0)
|
||||
{
|
||||
- av_close_input_file(pFormatCtx);
|
||||
+ avformat_close_input(&pFormatCtx);
|
||||
return; // Couldn't find stream information
|
||||
}
|
||||
// Add metadata using ffmpeg library calls
|
||||
@@ -306,7 +306,7 @@
|
||||
addFfmpegResourceFields(item, pFormatCtx, &x, &y);
|
||||
|
||||
// Close the video file
|
||||
- av_close_input_file(pFormatCtx);
|
||||
+ avformat_close_input(&pFormatCtx);
|
||||
}
|
||||
|
||||
static bool _mkdir(const char *path)
|
@ -1,20 +0,0 @@
|
||||
--- src/timer.cc.orig 2010-03-25 15:58:11.000000000 +0100
|
||||
+++ src/timer.cc 2015-03-08 22:18:05.760740000 +0100
|
||||
@@ -33,12 +33,15 @@
|
||||
#include "autoconfig.h"
|
||||
#endif
|
||||
|
||||
+#include "singleton.h"
|
||||
+
|
||||
+class Timer;
|
||||
+SINGLETON_MUTEX(Timer, true);
|
||||
+
|
||||
#include "timer.h"
|
||||
|
||||
using namespace zmm;
|
||||
|
||||
-SINGLETON_MUTEX(Timer, true);
|
||||
-
|
||||
template <>
|
||||
Ref<Array<Timer::TimerSubscriberElement<TimerSubscriberSingleton<Object> > > > Timer::getAppropriateSubscribers<TimerSubscriberSingleton<Object> >()
|
||||
{
|
@ -1,11 +0,0 @@
|
||||
--- src/youtube_video_url.cc.org 2010-04-04 05:23:31.000000000 +0900
|
||||
+++ src/youtube_video_url.cc 2010-11-06 20:38:26.296613788 +0900
|
||||
@@ -47,7 +47,7 @@
|
||||
#define YOUTUBE_URL_PARAMS_REGEXP "var swfHTML.*\\;"
|
||||
#define YOUTUBE_URL_LOCATION_REGEXP "\nLocation: (http://[^\n]+)\n"
|
||||
#define YOUTUBE_URL_WATCH "http://www.youtube.com/watch?v="
|
||||
-#define YOUTUBE_URL_GET "http://www.youtube.com/get_video?"
|
||||
+#define YOUTUBE_URL_GET "http://www.youtube.com/get_video?asv=3&"
|
||||
#define YOUTUBE_URL_PARAM_VIDEO_ID "video_id"
|
||||
#define YOUTUBE_URL_PARAM_T_REGEXP ".*&t=([^&]+)&"
|
||||
#define YOUTUBE_URL_PARAM_T "t"
|
@ -1,50 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
|
||||
if [ "$2" != "POST-DEINSTALL" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -d %%PREFIX%%/etc/mediatomb ]; then
|
||||
ETC_EXISTS=yes
|
||||
else
|
||||
ETC_EXISTS=
|
||||
fi
|
||||
|
||||
if [ -d %%MEDIATOMB_DIR%% ]; then
|
||||
HOME_EXISTS=yes
|
||||
else
|
||||
HOME_EXISTS=
|
||||
fi
|
||||
|
||||
if pw usershow "%%MEDIATOMB_USER%%" 2>/dev/null 1>&2; then
|
||||
USER_EXISTS=yes
|
||||
else
|
||||
USER_EXISTS=
|
||||
fi
|
||||
|
||||
if pw groupshow "%%MEDIATOMB_GROUP%%" 2>/dev/null 1>&2; then
|
||||
GROUP_EXISTS=yes
|
||||
else
|
||||
GROUP_EXISTS=
|
||||
fi
|
||||
|
||||
if [ "$ETC_EXISTS" = "yes" -o "$HOME_EXISTS" = "yes" -o "$USER_EXISTS" = "yes" -o "$GROUP_EXISTS" = "yes" ]; then
|
||||
|
||||
echo
|
||||
echo "===================================================="
|
||||
echo
|
||||
echo "If you want remove MediaTomb permanently from your"
|
||||
echo "system execute following commands as root:"
|
||||
echo
|
||||
[ "$ETC_EXISTS" = "yes" ] && echo " # rm -rf %%PREFIX%%/etc/mediatomb"
|
||||
[ "$HOME_EXISTS" = "yes" ] && echo " # rm -rf %%MEDIATOMB_DIR%%"
|
||||
[ "$USER_EXISTS" = "yes" ] && echo " # pw userdel %%MEDIATOMB_USER%%"
|
||||
[ "$GROUP_EXISTS" = "yes" ] && echo " # pw groupdel %%MEDIATOMB_GROUP%%"
|
||||
echo
|
||||
echo "===================================================="
|
||||
echo
|
||||
|
||||
fi
|
||||
|
||||
exit 0
|
@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
if [ "$2" != "PRE-INSTALL" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#PREFIX=${PKG_PREFIX:-%%PREFIX%%}
|
||||
|
||||
#USER=%%MEDIATOMB_USER%%
|
||||
#GROUP=%%MEDIATOMB_GROUP%%
|
||||
|
||||
#INSTALL=%%INSTALL%%
|
||||
#DIR=%%MEDIATOMB_DIR%%
|
||||
#MASK=%%MEDIATOMB_MASK%%
|
||||
|
||||
#if ! ${PW} groupshow "${GROUP}" 2>/dev/null 1>&2; then
|
||||
# if ${PW} groupadd ${GROUP}; then
|
||||
# echo "Added group \"${GROUP}\"."
|
||||
# else
|
||||
# echo "Adding group \"${GROUP}\" failed..."
|
||||
# exit 1
|
||||
# fi
|
||||
#fi
|
||||
|
||||
#if ! ${PW} usershow "${USER}" 2>/dev/null 1>&2; then
|
||||
# if ${PW} useradd ${USER} -g ${GROUP} -h - \
|
||||
# -s "/sbin/nologin" -d "/nonexistent" \
|
||||
# -c "MediaTomb"; \
|
||||
# then
|
||||
# echo "Added user \"${USER}\"."
|
||||
# else
|
||||
# echo "Adding user \"${USER}\" failed..."
|
||||
# exit 1
|
||||
# fi
|
||||
#fi
|
||||
|
||||
exit 0
|
@ -1,14 +0,0 @@
|
||||
UPnP media server
|
||||
|
||||
MediaTomb is an open source (GPL) UPnP MediaServer with a nice web
|
||||
user interface, it allows you to stream your digital media through
|
||||
your home network and listen to/watch it on a variety of UPnP
|
||||
compatible devices.
|
||||
|
||||
MediaTomb implements the UPnP MediaServer V 1.0 specification that can
|
||||
be found on http://www.upnp.org/. The current implementation focuses
|
||||
on parts that are required by the specification, however we look into
|
||||
extending the functionality to cover the optional parts of the spec as
|
||||
well.
|
||||
|
||||
WWW: http://mediatomb.cc/
|
@ -1,100 +0,0 @@
|
||||
bin/mediatomb
|
||||
man/man1/mediatomb.1.gz
|
||||
%%DATADIR%%/js/import.js
|
||||
%%DATADIR%%/js/playlists.js
|
||||
%%DATADIR%%/js/common.js
|
||||
%%DATADIR%%/mappings.xml
|
||||
%%DATADIR%%/mysql.sql
|
||||
%%DATADIR%%/sqlite3.sql
|
||||
%%DATADIR%%/web/cds.xml
|
||||
%%DATADIR%%/web/cm.xml
|
||||
%%DATADIR%%/web/disabled.html
|
||||
%%DATADIR%%/web/favicon.ico
|
||||
%%DATADIR%%/web/icons/add_as_autoscan.png
|
||||
%%DATADIR%%/web/icons/autoscan_inotify_config_folder_open.png
|
||||
%%DATADIR%%/web/icons/autoscan_inotify_folder_open.png
|
||||
%%DATADIR%%/web/icons/autoscan_timed_config_folder_open.png
|
||||
%%DATADIR%%/web/icons/autoscan_timed_folder_open.png
|
||||
%%DATADIR%%/web/icons/blank.gif
|
||||
%%DATADIR%%/web/icons/blank.png
|
||||
%%DATADIR%%/web/icons/document-new.png
|
||||
%%DATADIR%%/web/icons/film.png
|
||||
%%DATADIR%%/web/icons/folder_new.png
|
||||
%%DATADIR%%/web/icons/folder_open.png
|
||||
%%DATADIR%%/web/icons/go-first.png
|
||||
%%DATADIR%%/web/icons/go-last.png
|
||||
%%DATADIR%%/web/icons/go-next.png
|
||||
%%DATADIR%%/web/icons/go-previous.png
|
||||
%%DATADIR%%/web/icons/mediatomb.png
|
||||
%%DATADIR%%/web/icons/mt-icon120.bmp
|
||||
%%DATADIR%%/web/icons/mt-icon120.jpg
|
||||
%%DATADIR%%/web/icons/mt-icon120.png
|
||||
%%DATADIR%%/web/icons/mt-icon32.bmp
|
||||
%%DATADIR%%/web/icons/mt-icon32.jpg
|
||||
%%DATADIR%%/web/icons/mt-icon32.png
|
||||
%%DATADIR%%/web/icons/mt-icon48.bmp
|
||||
%%DATADIR%%/web/icons/mt-icon48.jpg
|
||||
%%DATADIR%%/web/icons/mt-icon48.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_inotify_config_folder_closed.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_inotify_config_folder_open.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_inotify_folder_closed.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_inotify_folder_open.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_timed_config_folder_closed.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_timed_config_folder_open.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_timed_folder_closed.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/autoscan_timed_folder_open.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/folder_closed.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/folder_open.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/lastnode.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/line.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/minus.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/minus_last.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/minus_last_no_root.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/minus_no_root.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/plus.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/plus_last.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/plus_last_no_root.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/plus_no_root.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/t.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/t_no_root.png
|
||||
%%DATADIR%%/web/icons/nanotree/images/white.png
|
||||
%%DATADIR%%/web/icons/remove_all.png
|
||||
%%DATADIR%%/web/icons/remove_autoscan.png
|
||||
%%DATADIR%%/web/icons/remove_this.png
|
||||
%%DATADIR%%/web/icons/status.png
|
||||
%%DATADIR%%/web/icons/status_loading.png
|
||||
%%DATADIR%%/web/icons/status_updates_pending.png
|
||||
%%DATADIR%%/web/icons/stock-add.png
|
||||
%%DATADIR%%/web/icons/stock_edit.png
|
||||
%%DATADIR%%/web/icons/stock_exit.png
|
||||
%%DATADIR%%/web/index.html
|
||||
%%DATADIR%%/web/js/auth.js
|
||||
%%DATADIR%%/web/js/autoscan.js
|
||||
%%DATADIR%%/web/js/icons.js
|
||||
%%DATADIR%%/web/js/items.js
|
||||
%%DATADIR%%/web/js/md5.js
|
||||
%%DATADIR%%/web/js/nanotree.js
|
||||
%%DATADIR%%/web/js/iepngfix.htc
|
||||
%%DATADIR%%/web/js/prototype.js
|
||||
%%DATADIR%%/web/js/tasks.js
|
||||
%%DATADIR%%/web/js/tools.js
|
||||
%%DATADIR%%/web/js/tree.js
|
||||
%%DATADIR%%/web/left.html
|
||||
%%DATADIR%%/web/main.css
|
||||
%%DATADIR%%/web/mr_reg.xml
|
||||
%%DATADIR%%/web/right.html
|
||||
%%DATADIR%%/web/std_treelook.css
|
||||
%%DATADIR%%/web/top.html
|
||||
%%DATADIR%%/web/topleft.html
|
||||
%%DATADIR%%/web/topright.html
|
||||
@dir(mediatomb,mediatomb,750) etc/mediatomb
|
||||
@sample etc/mediatomb/config.xml.dist etc/mediatomb/config.xml
|
||||
@dir %%DATADIR%%/js
|
||||
@dir %%DATADIR%%/web/icons/nanotree/images
|
||||
@dir %%DATADIR%%/web/icons/nanotree
|
||||
@dir %%DATADIR%%/web/icons
|
||||
@dir %%DATADIR%%/web/js
|
||||
@dir %%DATADIR%%/web
|
||||
@dir %%DATADIR%%
|
||||
@dir(mediatomb,mediatomb,750) /var/log/mediatomb
|
||||
@dir(mediatomb,mediatomb,750) /var/db/mediatomb
|
Loading…
Reference in New Issue
Block a user