STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
+0.10.2
+======
+- Fix vapi generation with GObject-introspection >= 1.36.
+- Minor build clean-up.
+- Check the XML profiles against their schema on make check-profiles.
+- Re-enable some of the old tests on make check.
+- Fix format detection for ADTS audio streams.
+- Fix WMA bitrate detection.
+- Fix gtk-doc warnings.
+
+Profiles:
+- Fix MPEG_TS_*_EU audio profiles to include proper bitrates and audio
+ formats.
+- Remove depth matching in PNG profiles.
+- Fix AAC level for MULT5 AAC.
+- Add MPEG_TS_{SD,HD}_{EU,NA} profiles.
+- Add MPEG_PS_{NTSC,PAL} profiles.
+
+All contributors to this release:
+ Jens Georg <jensg@openismus.com>
+
+0.10.1
+======
+- Add functionality to let the meta-data back-end provide a profile on its
+ own.
+
+All contributors to this release:
+ Jens Georg <jensg@openismus.com>
+
0.10.0
======
- Various fixes for the GStreamer 0.10 meta-data back-end.
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gupnp-dlna 0.10.0.
+# Generated by GNU Autoconf 2.69 for gupnp-dlna 0.10.2.
#
# Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp-dlna>.
#
# Identity of this package.
PACKAGE_NAME='gupnp-dlna'
PACKAGE_TARNAME='gupnp-dlna'
-PACKAGE_VERSION='0.10.0'
-PACKAGE_STRING='gupnp-dlna 0.10.0'
+PACKAGE_VERSION='0.10.2'
+PACKAGE_STRING='gupnp-dlna 0.10.2'
PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp-dlna'
PACKAGE_URL='http://www.gupnp.org/'
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+HAVE_XMLLINT_FALSE
+HAVE_XMLLINT_TRUE
+XMLLINT
GLIB_PREFIX
GTK_DOC_USE_REBASE_FALSE
GTK_DOC_USE_REBASE_TRUE
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gupnp-dlna 0.10.0 to adapt to many kinds of systems.
+\`configure' configures gupnp-dlna 0.10.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gupnp-dlna 0.10.0:";;
+ short | recursive ) echo "Configuration of gupnp-dlna 0.10.2:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gupnp-dlna configure 0.10.0
+gupnp-dlna configure 0.10.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gupnp-dlna $as_me 0.10.0, which was
+It was created by gupnp-dlna $as_me 0.10.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='gupnp-dlna'
- VERSION='0.10.0'
+ VERSION='0.10.2'
cat >>confdefs.h <<_ACEOF
fi
-
-
-
-
-
-
-
# Check for g_clear_pointer
have_g_clear_pointer='no'
if test -n "$PKG_CONFIG" && \
# vapigen
+have_vapigen=no
if test "x$found_introspection" = "xyes"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether G-I is 1.36 or newer" >&5
+$as_echo_n "checking whether G-I is 1.36 or newer... " >&6; }
+ VAPIGEN_MIN_VERSION=0.18
+ if pkg-config --atleast-version=1.36.0 gobject-introspection-1.0; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ VAPIGEN_MIN_VERSION=0.20
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
# Extract the first word of "vapigen", so it can be a program name with args.
set dummy vapigen; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No Vala API Generator found. You will not be able to generate .vapi files." >&5
$as_echo "$as_me: WARNING: No Vala API Generator found. You will not be able to generate .vapi files." >&2;}
else
- if test -n "0.18"; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking $VAPIGEN is at least version 0.18" >&5
-$as_echo_n "checking $VAPIGEN is at least version 0.18... " >&6; }
+ if test -n "$VAPIGEN_MIN_VERSION"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking $VAPIGEN is at least version $VAPIGEN_MIN_VERSION" >&5
+$as_echo_n "checking $VAPIGEN is at least version $VAPIGEN_MIN_VERSION... " >&6; }
am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator *//'`
- as_arg_v1=0.18
+ as_arg_v1=$VAPIGEN_MIN_VERSION
as_arg_v2="$am__vapigen_version"
awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
case $? in #(
2) :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Vala API Generator 0.18 not found." >&5
-$as_echo "$as_me: WARNING: Vala API Generator 0.18 not found." >&2;} ;; #(
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Vala API Generator $VAPIGEN_MIN_VERSION not found." >&5
+$as_echo "$as_me: WARNING: Vala API Generator $VAPIGEN_MIN_VERSION not found." >&2;}
+ VAPIGEN=""
+ ;; #(
*) :
;;
esac
fi
+if test "x$VAPIGEN" != "x"; then :
+ have_vapigen=yes
+fi
if test "x$VAPIGEN" != "x"; then
HAVE_VAPIGEN_TRUE=
HAVE_VAPIGEN_FALSE='#'
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
+# Extract the first word of "xmllint", so it can be a program name with args.
+set dummy xmllint; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XMLLINT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XMLLINT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XMLLINT="$XMLLINT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XMLLINT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+XMLLINT=$ac_cv_path_XMLLINT
+if test -n "$XMLLINT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLLINT" >&5
+$as_echo "$XMLLINT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$XMLLINT" != "x"; then
+ HAVE_XMLLINT_TRUE=
+ HAVE_XMLLINT_FALSE='#'
+else
+ HAVE_XMLLINT_TRUE='#'
+ HAVE_XMLLINT_FALSE=
+fi
+
+
ac_config_files="$ac_config_files Makefile libgupnp-dlna/Makefile tools/Makefile tests/Makefile data/Makefile gupnp-dlna-2.0.pc gupnp-dlna-metadata-2.0.pc gupnp-dlna-gst-2.0.pc gupnp-dlna-gst-legacy-2.0.pc doc/Makefile doc/version.xml doc/gupnp-dlna/Makefile doc/gupnp-dlna-metadata/Makefile doc/gupnp-dlna-gst/Makefile vala/Makefile"
ac_config_files="$ac_config_files tests/test-discoverer.sh"
as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${HAVE_XMLLINT_TRUE}" && test -z "${HAVE_XMLLINT_FALSE}"; then
+ as_fn_error $? "conditional \"HAVE_XMLLINT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gupnp-dlna $as_me 0.10.0, which was
+This file was extended by gupnp-dlna $as_me 0.10.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gupnp-dlna config.status 0.10.0
+gupnp-dlna config.status 0.10.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
echo
echo 'Configuration status:'
echo
+echo "GObject-Introspection: $found_introspection"
+echo "VALA bindings: $have_vapigen"
echo "Default metadata backend: $with_default_metadata_backend"
echo "Default metadata backend directory: $with_default_metadata_backend_dir"
echo "Build GStreamer metadata backend: $enable_gstreamer_metadata_backend"
AC_PREREQ([2.63])
AC_INIT([gupnp-dlna],
- [0.10.0],
+ [0.10.2],
[https://bugzilla.gnome.org/enter_bug.cgi?product=gupnp&component=gupnp-dlna],
[gupnp-dlna],
[http://www.gupnp.org/])
PKG_CHECK_MODULES([GOBJECT], [gobject-2.0])
PKG_CHECK_MODULES([GMODULE], [gmodule-2.0])
-AC_SUBST(GLIB_CFLAGS)
-AC_SUBST(GLIB_LIBS)
-AC_SUBST(GOBJECT_CFLAGS)
-AC_SUBST(GOBJECT_LIBS)
-AC_SUBST(GMODULE_CFLAGS)
-AC_SUBST(GMODULE_LIBS)
-
# Check for g_clear_pointer
have_g_clear_pointer='no'
PKG_CHECK_EXISTS([glib-2.0 >= 2.34],
GOBJECT_INTROSPECTION_CHECK([0.6.4])
# vapigen
+have_vapigen=no
AS_IF([test "x$found_introspection" = "xyes"],
[
- VALA_PROG_VAPIGEN([0.18])
+ dnl output of g-i >= 1.36.0 needs vapigen >= 0.20 to process
+ AC_MSG_CHECKING([whether G-I is 1.36 or newer])
+ VAPIGEN_MIN_VERSION=0.18
+ AS_IF([pkg-config --atleast-version=1.36.0 gobject-introspection-1.0],
+ [
+ AC_MSG_RESULT([yes])
+ VAPIGEN_MIN_VERSION=0.20
+ ],[AC_MSG_RESULT([no])]
+ )
+ GUPNP_PROG_VAPIGEN([$VAPIGEN_MIN_VERSION])
]
)
+AS_IF([test "x$VAPIGEN" != "x"], [have_vapigen=yes])
AM_CONDITIONAL([HAVE_VAPIGEN], [test "x$VAPIGEN" != "x"])
GTK_DOC_CHECK([1.11],[--flavour no-tmpl])
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
AC_SUBST(GLIB_PREFIX)
+dnl xmllint for schema validation
+AC_PATH_PROG([XMLLINT],[xmllint])
+AM_CONDITIONAL([HAVE_XMLLINT], [test "x$XMLLINT" != "x"])
+
AC_CONFIG_FILES([
Makefile
libgupnp-dlna/Makefile
echo
echo 'Configuration status:'
echo
+echo "GObject-Introspection: $found_introspection"
+echo "VALA bindings: $have_vapigen"
echo "Default metadata backend: $with_default_metadata_backend"
echo "Default metadata backend directory: $with_default_metadata_backend_dir"
echo "Build GStreamer metadata backend: $enable_gstreamer_metadata_backend"
mpeg1.xml \
avc.xml \
mpeg-ts.xml \
+ mpeg-ps.xml \
+ mpeg-common.xml \
mpeg4.xml \
jpeg.xml \
png.xml
dlnadir = $(shareddir)/dlna-profiles
dlna_DATA = $(dlnaschemas) $(dlnaprofiles)
+if HAVE_XMLLINT
+check-profiles: $(dlnaprofiles) $(dlnaschemas)
+ $(XMLLINT) --relaxng $(dlnaschemas) $(dlnaprofiles) >/dev/null
+endif
+
EXTRA_DIST = $(dlnaschemas) $(dlnaprofiles)
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
mpeg1.xml \
avc.xml \
mpeg-ts.xml \
+ mpeg-ps.xml \
+ mpeg-common.xml \
mpeg4.xml \
jpeg.xml \
png.xml
uninstall uninstall-am uninstall-dlnaDATA
+@HAVE_XMLLINT_TRUE@check-profiles: $(dlnaprofiles) $(dlnaschemas)
+@HAVE_XMLLINT_TRUE@ $(XMLLINT) --relaxng $(dlnaschemas) $(dlnaprofiles) >/dev/null
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
<restriction id="AAC-MULT5" type="audio">
<parent name="AAC" />
+ <field name="level" type="string">
+ <value>1</value>
+ <value>2</value>
+ <value>4</value>
+ </field>
+
<field name="channels" type="int">
<!-- Technically the profile supports upto 5.1, not 6 -->
<range min="1" max="6" />
--- /dev/null
+<?xml version="1.0"?>
+
+<dlna-profiles>
+ <include ref="common.xml" />
+
+ <restrictions>
+ <!-- SD resolutions -->
+ <!-- NA region -->
+ <restriction id="720x480" type="video">
+ <parent name="525_D1" />
+ <field name="framerate" type="fraction">
+ <value>30000/1001</value>
+ </field>
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>32/27</value>
+ <value>8/9</value>
+ </field>
+ </restriction>
+
+ <restriction id="704x480" type="video">
+ <parent name="525_4SIF" />
+ <field name="framerate" type="fraction">
+ <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
+ <value>24/1</value>
+ <value>30000/1001</value>
+ <value>30/1</value>
+ <value>60000/1001</value> <!-- Note: only valid for interlaced=false -->
+ <value>60/1</value> <!-- Note: only valid for interlaced=false -->
+ </field>
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>40/33</value>
+ <value>10/11</value>
+ </field>
+ </restriction>
+
+ <restriction id="640x480" type="video">
+ <parent name="VGA" />
+ <field name="framerate" type="fraction">
+ <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
+ <value>24/1</value>
+ <value>30000/1001</value>
+ <value>30/1</value>
+ <value>60000/1001</value> <!-- Note: only valid for interlaced=false -->
+ <value>60/1</value> <!-- Note: only valid for interlaced=false -->
+ </field>
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>1/1</value>
+ <value>4/3</value>
+ </field>
+ </restriction>
+
+ <restriction id="544x480" type="video">
+ <parent name="525_3/4D1" />
+ <field name="framerate" type="fraction">
+ <value>30000/1001</value>
+ </field>
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>80/51</value>
+ <value>20/17</value>
+ </field>
+ </restriction>
+
+ <restriction id="480x480" type="video">
+ <parent name="525_2/3D1" />
+ <field name="framerate" type="fraction">
+ <value>30000/1001</value>
+ </field>
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>16/9</value>
+ <value>4/3</value>
+ </field>
+ </restriction>
+
+ <restriction id="352x480" type="video">
+ <parent name="525_1/2D1" />
+ <field name="framerate" type="fraction">
+ <value>30000/1001</value>
+ </field>
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>80/33</value>
+ <value>20/11</value>
+ </field>
+ </restriction>
+
+ <restriction id="352x240" type="video">
+ <parent name="525SIF" />
+ <field name="framerate" type="fraction">
+ <value>30000/1001</value>
+ </field>
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>16/11</value>
+ <value>12/11</value>
+ </field>
+ </restriction>
+
+
+ <!-- EU region -->
+ <restriction id="EU_FPS" type="video">
+ <field name="framerate" type="fraction">
+ <value>25/1</value>
+ </field>
+ </restriction>
+
+ <restriction id="720x576" type="video">
+ <parent name="625_D1" />
+ <parent name="EU_FPS" />
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>64/45</value>
+ <value>16/15</value>
+ </field>
+ </restriction>
+
+ <restriction id="704x576" type="video">
+ <parent name="625_4SIF" />
+ <parent name="EU_FPS" />
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>64/45</value>
+ <value>16/15</value>
+ </field>
+ </restriction>
+
+ <restriction id="544x576" type="video">
+ <parent name="625_3/4D1" />
+ <parent name="EU_FPS" />
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>32/17</value>
+ <value>24/17</value>
+ </field>
+ </restriction>
+
+ <restriction id="480x576" type="video">
+ <parent name="625_2/3D1" />
+ <parent name="EU_FPS" />
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>32/15</value>
+ <value>8/5</value>
+ </field>
+ </restriction>
+
+ <restriction id="352x576" type="video">
+ <parent name="625_1/2D1" />
+ <parent name="EU_FPS" />
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>32/11</value>
+ <value>24/11</value>
+ </field>
+ </restriction>
+
+ <restriction id="352x288" type="video">
+ <parent name="CIF" />
+ <parent name="EU_FPS" />
+ <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
+ <value>16/11</value>
+ <value>12/11</value>
+ </field>
+ </restriction>
+ </restrictions>
+</dlna-profiles>
--- /dev/null
+<?xml version="1.0"?>
+
+<dlna-profiles>
+ <include ref="common.xml" />
+ <include ref="mpeg-common.xml" />
+
+ <restrictions>
+ <restriction id="MPEG_PS" type="container">
+ <field name="name" type="string">
+ <value>video/mpeg</value>
+ </field>
+ <field name="systemstream" type="boolean">
+ <value>true</value>
+ </field>
+ <field name="mpegversion" type="int">
+ <value>2</value>
+ </field>
+ </restriction>
+
+ <restriction id="MPEG_PS_VIDEO" type="video">
+ <field name="name" type="string">
+ <value>video/mpeg</value>
+ </field>
+ <field name="systemstream" type="boolean">
+ <value>false</value>
+ </field>
+ <field name="mpegversion" type="int">
+ <value>2</value>
+ </field>
+ <field name="profile" type="string">
+ <value>simple</value>
+ <value>main</value>
+ </field>
+ <field name="level" type="string">
+ <value>low</value>
+ <value>main</value>
+ </field>
+ <field name="bitrate" type="int" used="in-strict">
+ <range min="1" max="9800000" />
+ </field>
+ </restriction>
+
+ <restriction id="MPEG_PS_AUDIO" type="audio">
+ <field name="rate" type="int">
+ <value>48000</value>
+ </field>
+ </restriction>
+ </restrictions>
+
+ <dlna-profile name="MPEG_PS_PAL" mime="video/mpeg">
+ <parent name="MPEG_PS" />
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+ <field name="name" type="string">
+ <value>audio/x-ac3</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/x-private1-ac3</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/ac3</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/mpeg</value>
+ </field>
+ <field name="mpegversion" type="int">
+ <value>1</value>
+ <value>2</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/x-private1-lpcm</value>
+ </field>
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="720x576" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="704x576" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="544x576" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="480x576" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="352x576" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="352x288" />
+ </restriction>
+ </dlna-profile>
+
+ <dlna-profile name="MPEG_PS_NTSC" mime="video/mpeg">
+ <parent name="MPEG_PS" />
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+ <field name="name" type="string">
+ <value>audio/x-ac3</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/x-private1-ac3</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/ac3</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/mpeg</value>
+ </field>
+ <field name="mpegversion" type="int">
+ <value>1</value>
+ <value>2</value>
+ </field>
+ </restriction>
+
+ <restriction type="audio">
+ <parent name="MPEG_PS_AUDIO" />
+
+ <field name="name" type="string">
+ <value>audio/x-private1-lpcm</value>
+ </field>
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="720x480" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="704x480" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="480x480" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="544x480" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="352x480" />
+ </restriction>
+
+ <restriction type="video">
+ <parent name="MPEG_PS_VIDEO" />
+ <parent name="352x240" />
+ </restriction>
+ </dlna-profile>
+</dlna-profiles>
<dlna-profiles>
<include ref="common.xml" />
+ <include ref="mpeg-common.xml" />
<restrictions>
- <restriction id="MPEG_TS" type="container">
+ <restriction id="MPEG_TS_ISO" type="container">
<field name="name" type="string">
<value>video/mpegts</value>
</field>
</field>
</restriction>
- <restriction id="MPEG_TS_AUDIO" type="audio">
- <field name="rate" type="int">
- <value>48000</value>
+ <!-- TS with 192 byte packet size and all zero timestamps -->
+ <restriction id="MPEG_TS" type="container">
+ <field name="name" type="string">
+ <value>video/mpegts</value>
+ </field>
+ <field name="systemstream" type="boolean">
+ <value>true</value>
+ </field>
+ <field name="packetsize" type="int">
+ <value>192</value>
</field>
+ </restriction>
+
+ <restriction id="MPEG_TS_AUDIO_BASE" type="audio">
<field name="channels" type="int">
<range min="1" max="6" />
</field>
</field>
</restriction>
+ <!-- audio rate restrictions for non-EU TS streams -->
+ <restriction id="MPEG_TS_AUDIO" type="audio">
+ <parent name="MPEG_TS_AUDIO_BASE" />
+ <field name="rate" type="int">
+ <value>48000</value>
+ </field>
+ </restriction>
+
+ <!-- audio rate restrictions for EU TS streams -->
+ <restriction id="MPEG_TS_AUDIO_EU" type="audio">
+ <parent name="MPEG_TS_AUDIO_BASE"/>
+ <field name="rate" type="int">
+ <value>32000</value>
+ <value>44100</value>
+ <value>48000</value>
+ </field>
+ </restriction>
+
<restriction id="MPEG_TS_VIDEO" type="video">
<field name="name" type="string">
<value>video/mpeg</value>
</field>
</restriction>
- <!-- SD resolutions -->
- <!-- NA region -->
- <restriction id="720x480" type="video">
- <parent name="525_D1" />
- <field name="framerate" type="fraction">
- <value>30000/1001</value>
- </field>
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>32/27</value>
- <value>8/9</value>
- </field>
- </restriction>
-
- <restriction id="704x480" type="video">
- <parent name="525_4SIF" />
- <field name="framerate" type="fraction">
- <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
- <value>24/1</value>
- <value>30000/1001</value>
- <value>30/1</value>
- <value>60000/1001</value> <!-- Note: only valid for interlaced=false -->
- <value>60/1</value> <!-- Note: only valid for interlaced=false -->
- </field>
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>40/33</value>
- <value>10/11</value>
- </field>
- </restriction>
-
- <restriction id="640x480" type="video">
- <parent name="VGA" />
- <field name="framerate" type="fraction">
- <value>24000/1001</value> <!-- Note: only valid for interlaced=false -->
- <value>24/1</value>
- <value>30000/1001</value>
- <value>30/1</value>
- <value>60000/1001</value> <!-- Note: only valid for interlaced=false -->
- <value>60/1</value> <!-- Note: only valid for interlaced=false -->
- </field>
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>1/1</value>
- <value>4/3</value>
- </field>
- </restriction>
-
- <restriction id="544x480" type="video">
- <parent name="525_3/4D1" />
- <field name="framerate" type="fraction">
- <value>30000/1001</value>
- </field>
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>80/51</value>
- <value>20/17</value>
- </field>
- </restriction>
-
- <restriction id="480x480" type="video">
- <parent name="525_2/3D1" />
- <field name="framerate" type="fraction">
- <value>30000/1001</value>
- </field>
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>16/9</value>
- <value>4/3</value>
- </field>
- </restriction>
-
- <restriction id="352x480" type="video">
- <parent name="525_1/2D1" />
- <field name="framerate" type="fraction">
- <value>30000/1001</value>
- </field>
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>80/33</value>
- <value>20/11</value>
- </field>
- </restriction>
-
- <!-- EU region -->
- <restriction id="EU_FPS" type="video">
- <field name="framerate" type="fraction">
- <value>25/1</value>
- </field>
- </restriction>
-
- <restriction id="720x576" type="video">
- <parent name="625_D1" />
- <parent name="EU_FPS" />
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>64/45</value>
- <value>16/15</value>
- </field>
- </restriction>
-
- <restriction id="544x576" type="video">
- <parent name="625_3/4D1" />
- <parent name="EU_FPS" />
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>32/17</value>
- <value>24/17</value>
- </field>
- </restriction>
-
- <restriction id="480x576" type="video">
- <parent name="625_2/3D1" />
- <parent name="EU_FPS" />
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>32/15</value>
- <value>8/5</value>
- </field>
- </restriction>
-
- <restriction id="352x576" type="video">
- <parent name="625_1/2D1" />
- <parent name="EU_FPS" />
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>32/11</value>
- <value>24/11</value>
- </field>
- </restriction>
-
- <restriction id="352x288" type="video">
- <parent name="CIF" />
- <parent name="EU_FPS" />
- <field name="pixel-aspect-ratio" type="fraction" used="in-strict">
- <value>16/11</value>
- <value>12/11</value>
- </field>
- </restriction>
-
<!-- HD resolutions -->
<restriction id="MPEG_TS_1920x1080" type="video">
<parent name="1920x1080" />
</restriction>
</restrictions>
- <dlna-profile name="MPEG_TS_SD_NA_ISO" mime="video/mpeg">
+ <dlna-profile id="MPEG_TS_SD_NA_BASE">
<!-- Note: We have no way to restrict the system bitrate yet -->
- <parent name="MPEG_TS" />
+ <parent name="MPEG_TS_ISO" />
<restriction type="audio">
<parent name="MPEG_TS_AUDIO" />
<field name="name" type="string">
- <value>audio/x-ac3</value>
+ <value>audio/x-ac3</value>
</field>
</restriction>
<parent name="MPEG_TS_AUDIO" />
<field name="name" type="string">
- <value>audio/x-private1-ac3</value>
+ <value>audio/x-private1-ac3</value>
</field>
</restriction>
<parent name="MPEG_TS_AUDIO" />
<field name="name" type="string">
- <value>audio/ac3</value>
+ <value>audio/ac3</value>
</field>
</restriction>
</restriction>
</dlna-profile>
- <dlna-profile name="MPEG_TS_SD_EU_ISO" mime="video/mpeg">
+ <dlna-profile id="MPEG_TS_SD_EU_BASE">
<!-- Note: We have no way to restrict the system bitrate yet -->
- <parent name="MPEG_TS" />
+ <restriction type="audio">
+ <parent name="MPEG_TS_AUDIO_EU" />
+
+ <field name="name" type="string">
+ <value>audio/x-ac3</value>
+ </field>
+ </restriction>
<restriction type="audio">
- <parent name="MPEG_TS_AUDIO" />
+ <parent name="MPEG_TS_AUDIO_EU" />
<field name="name" type="string">
- <value>audio/x-ac3</value>
+ <value>audio/x-private1-ac3</value>
</field>
</restriction>
<restriction type="audio">
- <parent name="MPEG_TS_AUDIO" />
+ <parent name="MPEG_TS_AUDIO_EU" />
<field name="name" type="string">
- <value>audio/x-private1-ac3</value>
+ <value>audio/ac3</value>
</field>
</restriction>
<restriction type="audio">
- <parent name="MPEG_TS_AUDIO" />
+ <parent name="MPEG_TS_AUDIO_EU" />
<field name="name" type="string">
- <value>audio/ac3</value>
+ <value>audio/mpeg</value>
+ </field>
+ <field name="mpegversion" type="int">
+ <value>1</value>
+ <value>2</value>
</field>
</restriction>
</restriction>
</dlna-profile>
- <dlna-profile name="MPEG_TS_HD_NA_ISO" mime="video/mpeg">
- <parent name="MPEG_TS" />
+
+ <dlna-profile id="MPEG_TS_HD_NA_BASE">
<restriction type="audio">
<parent name="MPEG_TS_AUDIO" />
<parent name="1280x1080" />
</restriction>
</dlna-profile>
+
+ <dlna-profile name="MPEG_TS_SD_NA" mime="video/vnd.dlna.mpeg-tts" base-profile="MPEG_TS_SD_NA_BASE">
+ <!-- Note: We have no way to restrict the system bitrate yet -->
+ <restriction type="container">
+ <parent name="MPEG_TS" />
+ </restriction>
+ </dlna-profile>
+
+ <dlna-profile name="MPEG_TS_SD_NA_ISO" mime="video/mpeg" base-profile="MPEG_TS_SD_NA_BASE">
+ <!-- Note: We have no way to restrict the system bitrate yet -->
+ <restriction type="container">
+ <parent name="MPEG_TS_ISO" />
+ </restriction>
+ </dlna-profile>
+
+ <dlna-profile name="MPEG_TS_HD_NA" mime="video/vnd.dlna.mpeg-tts" base-profile="MPEG_TS_HD_NA_BASE">
+ <!-- Note: We have no way to restrict the system bitrate yet -->
+ <restriction type="container">
+ <parent name="MPEG_TS" />
+ </restriction>
+ </dlna-profile>
+
+ <dlna-profile name="MPEG_TS_HD_NA_ISO" mime="video/mpeg" base-profile="MPEG_TS_HD_NA_BASE">
+ <!-- Note: We have no way to restrict the system bitrate yet -->
+ <restriction type="container">
+ <parent name="MPEG_TS_ISO" />
+ </restriction>
+ </dlna-profile>
+
+ <dlna-profile name="MPEG_TS_SD_EU" mime="video/vnd.dlna.mpeg-tts" base-profile="MPEG_TS_SD_EU_BASE">
+ <!-- Note: We have no way to restrict the system bitrate yet -->
+ <restriction type="container">
+ <parent name="MPEG_TS" />
+ </restriction>
+ </dlna-profile>
+
+ <dlna-profile name="MPEG_TS_SD_EU_ISO" mime="video/mpeg" base-profile="MPEG_TS_SD_EU_BASE">
+ <!-- Note: We have no way to restrict the system bitrate yet -->
+ <restriction type="container">
+ <parent name="MPEG_TS_ISO" />
+ </restriction>
+ </dlna-profile>
</dlna-profiles>
<field name="width" type="int">
<range min="1" max="4096" />
</field>
+ <!-- bgo#689355
<field name="depth" type="int" used="in-strict">
<value>1</value>
<value>2</value>
<value>16</value>
<value>24</value>
<value>32</value>
- </field>
+ </field> -->
</restriction>
</dlna-profile>
</dlna-profiles>
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
</table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp4203888"></a>GUPnP DLNA Gstreamer</h2></div></div></div>
+<a name="idp217216"></a>GUPnP DLNA Gstreamer</h2></div></div></div>
<div class="toc"><dl><dt>
<span class="refentrytitle"><a href="gupnp-dlna-gst-gupnp-dlna-gst-utils.html">gupnp-dlna-gst-utils</a></span><span class="refpurpose"></span>
</dt></dl></div>
<div class="titlepage">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GUPnP DLNA Gstreamer Reference Manual</p></th></tr></table></div>
-<div><p class="releaseinfo">Version 0.10.0
+<div><p class="releaseinfo">Version 0.10.2
</p></div>
<div><p class="copyright">Copyright © 2013 Intel Corporation</p></div>
<div><div class="legalnotice">
-<a name="idp202352"></a><p>
+<a name="idp4249136"></a><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <em class="citetitle">GNU Free
Documentation License</em>, Version 1.1 or any later
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
get needed metadata for profile matching. This class itself does
not implement any metadata extraction features. For that it is
expected to provide a plugin which:
-1. Provides a <a class="link" href="GUPnPDLNAMetadataExtractor.html" title="GUPnPDLNAMetadataExtractor"><span class="type">GUPnPDLNAMetadataExtractor</span></a> subclass implementation.
-2. Exports a <code class="function">gupnp_dlna_get_default_extractor()</code> which takes no
-parameters and returns a <a class="link" href="GUPnPDLNAMetadataExtractor.html" title="GUPnPDLNAMetadataExtractor"><span class="type">GUPnPDLNAMetadataExtractor</span></a>.
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>Provides a <a class="link" href="GUPnPDLNAMetadataExtractor.html" title="GUPnPDLNAMetadataExtractor"><span class="type">GUPnPDLNAMetadataExtractor</span></a> subclass implementation.</p></li>
+<li class="listitem"><p>Exports a <code class="function">gupnp_dlna_get_default_extractor</code>() which
+takes no parameters and returns a <a class="link" href="GUPnPDLNAMetadataExtractor.html" title="GUPnPDLNAMetadataExtractor"><span class="type">GUPnPDLNAMetadataExtractor</span></a>.</p></li>
+</ul></div>
+<p>
</p>
<p>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a> is used for loading the plugin, so <a href="http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html#GModule"><span class="type">GModule</span></a>'s features can
-be used also (like exporting <code class="function">g_module_check_init()</code> to initialize
-multimedia framework used for extracting metadata).
+be used also (like exporting <code class="function">g_module_check_init</code>() to
+initialize the multimedia framework used for extracting metadata).
</p>
<p>
Default plugin directory and default plugin file is set during
configuration stage, but it can be overriden during runtime by
-setting respectively <code class="literal">GUPNP_DLNA_METADATA_BACKEND</code> and
-<code class="literal">GUPNP_DLNA_METADATA_BACKEND_DIR</code> environment variables before the
-plugin is loaded (i.e. before <a href="../gupnp-dlna/GUPnPDLNAProfileGuesser.html"><span class="type">GUPnPDLNAProfileGuesser</span></a> is used for
+setting respectively <code class="envar">GUPNP_DLNA_METADATA_BACKEND</code> and
+<code class="envar">GUPNP_DLNA_METADATA_BACKEND_DIR</code> environment variables before
+the plugin is loaded (i.e. before <a href="../gupnp-dlna/GUPnPDLNAProfileGuesser.html"><span class="type">GUPnPDLNAProfileGuesser</span></a> is used for
guessing profile).
</p>
<p>
-The <code class="literal">GUPNP_DLNA_METADATA_BACKEND</code> environment variable should hold a
-name like "gstreamer", so libgstreamer.so will be loaded. For
-determining a plugin filename <a href="http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html#g-module-build-path"><code class="function">g_module_build_path()</code></a> is used.
+The <code class="envar">GUPNP_DLNA_METADATA_BACKEND</code> environment variable should
+hold a name like <strong class="userinput"><code>"gstreamer"</code></strong>, so
+<code class="filename">libgstreamer.so</code> will be loaded. For determining a
+plugin filename <a href="http://library.gnome.org/devel/glib/unstable/glib-Dynamic-Loading-of-Modules.html#g-module-build-path"><code class="function">g_module_build_path()</code></a> is used.
</p>
<p>
If subclassing <a class="link" href="GUPnPDLNAMetadataExtractor.html" title="GUPnPDLNAMetadataExtractor"><span class="type">GUPnPDLNAMetadataExtractor</span></a> then also
</table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp3269872"></a>GUPnP DLNA Metadata</h2></div></div></div>
+<a name="idp4154192"></a>GUPnP DLNA Metadata</h2></div></div></div>
<div class="toc"><dl><dt>
<span class="refentrytitle"><a href="GUPnPDLNAMetadataExtractor.html">GUPnPDLNAMetadataExtractor</a></span><span class="refpurpose"> — Base class for extracting metadata for given
media.</span>
<div class="titlepage">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GUPnP DLNA Reference Manual</p></th></tr></table></div>
-<div><p class="releaseinfo">Version 0.10.0
+<div><p class="releaseinfo">Version 0.10.2
</p></div>
<div><p class="copyright">Copyright © 2012 Intel Corporation</p></div>
<div><div class="legalnotice">
-<a name="idp4034896"></a><p>
+<a name="idp201664"></a><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <em class="citetitle">GNU Free
Documentation License</em>, Version 1.1 or any later
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
gupnp_dlna_information_get_audio_information
gupnp_dlna_information_get_container_information
gupnp_dlna_information_get_image_information
+gupnp_dlna_information_get_profile_name
gupnp_dlna_information_get_uri
gupnp_dlna_information_get_video_information
<SUBSECTION Standard>
(<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *info</code></em>);
<a class="link" href="GUPnPDLNAImageInformation.html" title="GUPnPDLNAImageInformation"><span class="returnvalue">GUPnPDLNAImageInformation</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-image-information" title="gupnp_dlna_information_get_image_information ()">gupnp_dlna_information_get_image_information</a>
(<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-profile-name" title="gupnp_dlna_information_get_profile_name ()">gupnp_dlna_information_get_profile_name</a>
+ (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *info</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-uri" title="gupnp_dlna_information_get_uri ()">gupnp_dlna_information_get_uri</a> (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *info</code></em>);
<a class="link" href="GUPnPDLNAVideoInformation.html" title="GUPnPDLNAVideoInformation"><span class="returnvalue">GUPnPDLNAVideoInformation</span></a> * <a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-video-information" title="gupnp_dlna_information_get_video_information ()">gupnp_dlna_information_get_video_information</a>
(<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *info</code></em>);
GUPnPDLNAVideoInformation *
(* get_video_information) (GUPnPDLNAInformation *info);
- gpointer _reserved[12];
+ const gchar *
+ (* get_profile_name) (GUPnPDLNAInformation *info);
+
+ gpointer _reserved[11];
} GUPnPDLNAInformationClass;
</pre>
<div class="variablelist"><table border="0">
to get a video information.</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>Â <em class="structfield"><code><a name="GUPnPDLNAInformationClass.-reserved"></a>_reserved</code></em>[12];</span></p></td>
+<td><p><span class="term"><em class="structfield"><code><a name="GUPnPDLNAInformationClass.get-profile-name"></a>get_profile_name</code></em>Â ()</span></p></td>
+<td>This is called by <a class="link" href="GUPnPDLNAProfileGuesser.html" title="GUPnPDLNAProfileGuesser"><span class="type">GUPnPDLNAProfileGuesser</span></a> to
+get the name of the DLNA profile assigned with this information.</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>Â <em class="structfield"><code><a name="GUPnPDLNAInformationClass.-reserved"></a>_reserved</code></em>[11];</span></p></td>
<td>Padding. Ignore it.</td>
</tr>
</tbody>
</div>
<hr>
<div class="refsect2">
+<a name="gupnp-dlna-information-get-profile-name"></a><h3>gupnp_dlna_information_get_profile_name ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gupnp_dlna_information_get_profile_name
+ (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *info</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em>Â :</span></p></td>
+<td>A <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> object.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span>Â :</span></p></td>
+<td>The name of a DLNA profile or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="gupnp-dlna-information-get-uri"></a><h3>gupnp_dlna_information_get_uri ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gupnp_dlna_information_get_uri (<em class="parameter"><code><a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation"><span class="type">GUPnPDLNAInformation</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
</table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp4453056"></a>GUPnP DLNA</h2></div></div></div>
+<a name="idp4199680"></a>GUPnP DLNA</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="GUPnPDLNAProfileGuesser.html">GUPnPDLNAProfileGuesser</a></span><span class="refpurpose"> — Utility API for discovering DLNA profile for
</dt>
<dd></dd>
<dt>
+<a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-profile-name" title="gupnp_dlna_information_get_profile_name ()">gupnp_dlna_information_get_profile_name</a>, function in <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation">GUPnPDLNAInformation</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="GUPnPDLNAInformation.html#gupnp-dlna-information-get-uri" title="gupnp_dlna_information_get_uri ()">gupnp_dlna_information_get_uri</a>, function in <a class="link" href="GUPnPDLNAInformation.html" title="GUPnPDLNAInformation">GUPnPDLNAInformation</a>
</dt>
<dd></dd>
<keyword type="function" name="gupnp_dlna_information_get_audio_information ()" link="GUPnPDLNAInformation.html#gupnp-dlna-information-get-audio-information"/>
<keyword type="function" name="gupnp_dlna_information_get_container_information ()" link="GUPnPDLNAInformation.html#gupnp-dlna-information-get-container-information"/>
<keyword type="function" name="gupnp_dlna_information_get_image_information ()" link="GUPnPDLNAInformation.html#gupnp-dlna-information-get-image-information"/>
+ <keyword type="function" name="gupnp_dlna_information_get_profile_name ()" link="GUPnPDLNAInformation.html#gupnp-dlna-information-get-profile-name"/>
<keyword type="function" name="gupnp_dlna_information_get_uri ()" link="GUPnPDLNAInformation.html#gupnp-dlna-information-get-uri"/>
<keyword type="function" name="gupnp_dlna_information_get_video_information ()" link="GUPnPDLNAInformation.html#gupnp-dlna-information-get-video-information"/>
<keyword type="property" name="The "audio-information" property" link="GUPnPDLNAInformation.html#GUPnPDLNAInformation--audio-information"/>
<div class="titlepage">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GUPnP DLNA Reference Manual</p></th></tr></table></div>
-<div><p class="releaseinfo">Version 0.10.0
+<div><p class="releaseinfo">Version 0.10.2
</p></div>
<div><p class="copyright">Copyright © 2010 Arun Raghavan <arun.raghavan@collabora.co.uk></p></div>
<div><p class="copyright">Copyright © 2010 Collabora Multimedia</p></div>
<div><p class="copyright">Copyright © 2010 Nokia Corporation</p></div>
<div><p class="copyright">Copyright © 2012 Intel Corporation</p></div>
<div><div class="legalnotice">
-<a name="idp4121568"></a><p>
+<a name="idp160896"></a><p>
Permission is granted to copy, distribute and/or modify this
document under the terms of the <em class="citetitle">GNU Free
Documentation License</em>, Version 1.1 or any later
<ANCHOR id="gupnp-dlna-information-get-audio-information" href="gupnp-dlna/GUPnPDLNAInformation.html#gupnp-dlna-information-get-audio-information">
<ANCHOR id="gupnp-dlna-information-get-container-information" href="gupnp-dlna/GUPnPDLNAInformation.html#gupnp-dlna-information-get-container-information">
<ANCHOR id="gupnp-dlna-information-get-image-information" href="gupnp-dlna/GUPnPDLNAInformation.html#gupnp-dlna-information-get-image-information">
+<ANCHOR id="gupnp-dlna-information-get-profile-name" href="gupnp-dlna/GUPnPDLNAInformation.html#gupnp-dlna-information-get-profile-name">
<ANCHOR id="gupnp-dlna-information-get-uri" href="gupnp-dlna/GUPnPDLNAInformation.html#gupnp-dlna-information-get-uri">
<ANCHOR id="gupnp-dlna-information-get-video-information" href="gupnp-dlna/GUPnPDLNAInformation.html#gupnp-dlna-information-get-video-information">
<ANCHOR id="GUPnPDLNAInformation.property-details" href="gupnp-dlna/GUPnPDLNAInformation.html#GUPnPDLNAInformation.property-details">
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
PROP_VIDEO_INFO
};
+static const gchar *
+gupnp_dlna_information_get_profile_name_default (GUPnPDLNAInformation *info G_GNUC_UNUSED)
+{
+ return NULL;
+}
+
static void
gupnp_dlna_information_dispose (GObject *object)
{
info_class->get_image_information = NULL;
info_class->get_video_information = NULL;
info_class->get_audio_information = NULL;
+ info_class->get_profile_name = gupnp_dlna_information_get_profile_name_default;
/**
* GUPnPDLNAInformation:uri:
}
/**
+ * gupnp_dlna_information_get_profile_name:
+ * @info: A #GUPnPDLNAInformation object.
+ *
+ * Returns: (transfer none): The name of a DLNA profile or %NULL.
+ */
+const gchar *
+gupnp_dlna_information_get_profile_name (GUPnPDLNAInformation *info)
+{
+ g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL);
+
+ return GUPNP_DLNA_INFORMATION_GET_CLASS (info)->get_profile_name (info);
+}
+
+
+/**
* gupnp_dlna_information_get_uri:
* @info: A #GUPnPDLNAInformation object.
*
* to get an image information.
* @get_video_information: This is called by #GUPnPDLNAProfileGuesser
* to get a video information.
+ * @get_profile_name: This is called by #GUPnPDLNAProfileGuesser to
+ * get the name of the DLNA profile assigned with this information.
* @_reserved: Padding. Ignore it.
*/
typedef struct {
GUPnPDLNAVideoInformation *
(* get_video_information) (GUPnPDLNAInformation *info);
- gpointer _reserved[12];
+ const gchar *
+ (* get_profile_name) (GUPnPDLNAInformation *info);
+
+ gpointer _reserved[11];
} GUPnPDLNAInformationClass;
GType
gupnp_dlna_information_get_video_information (GUPnPDLNAInformation *info);
const gchar *
+gupnp_dlna_information_get_profile_name (GUPnPDLNAInformation *info);
+
+const gchar *
gupnp_dlna_information_get_uri (GUPnPDLNAInformation *info);
G_END_DECLS
return profile;
}
+static gint
+compare_profile_name (GUPnPDLNAProfile *profile, const char *name)
+{
+ return g_ascii_strcasecmp (gupnp_dlna_profile_get_name (profile),
+ name);
+}
+
/**
* gupnp_dlna_profile_guesser_guess_profile_from_info:
* @guesser: The #GUPnPDLNAProfileGuesser object.
GUPnPDLNAAudioInformation *audio_info;
GUPnPDLNAImageInformation *image_info;
GUPnPDLNAProfile *profile;
+ const gchar *profile_name;
g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), NULL);
g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL);
video_info = gupnp_dlna_information_get_video_information (info);
audio_info = gupnp_dlna_information_get_audio_information (info);
image_info = gupnp_dlna_information_get_image_information (info);
+ profile_name = gupnp_dlna_information_get_profile_name (info);
+
+ if (profile_name) {
+ GList *it = NULL;
+ it = g_list_find_custom (profiles,
+ profile_name,
+ (GCompareFunc) compare_profile_name);
+ if (it != NULL)
+ return it->data;
+ else
+ g_warning ("Profile '%s' provided by back-end not known to GUPnP-DLNA",
+ profile_name);
+ }
if (image_info)
profile = gupnp_dlna_profile_guesser_impl_guess_image_profile
if (!priv->audio_info) {
GList *iter;
+ gboolean adts_hack = FALSE;
+ int stream_count = 0;
if (!priv->stream_list) {
priv->stream_list =
return NULL;
}
+ /* For ADTS files we get two audio streams and the important
+ * information is only on the "outer" stream which is the
+ * second stream in the stream list. If we only have audio
+ * streams, we skip the first audio stream we see
+ *
+ * Works around
+ * https://bugzilla.gnome.org/show_bug.cgi?id=699212
+ */
+ iter = gst_discoverer_info_get_audio_streams (priv->info);
+ stream_count = g_list_length (priv->stream_list);
+
+ adts_hack = (stream_count == g_list_length (iter)) &&
+ stream_count == 2;
+
for (iter = priv->stream_list; iter; iter = iter->next) {
GstDiscovererStreamInfo *stream =
GST_DISCOVERER_STREAM_INFO (iter->data);
GType stream_type = G_TYPE_FROM_INSTANCE (stream);
+ /* copy caps from other stream */
+ if (adts_hack && !iter->next) {
+ priv->caps = gst_discoverer_stream_info_get_caps (stream);
+
+ continue;
+ }
+
if (stream_type == GST_TYPE_DISCOVERER_AUDIO_INFO) {
priv->audio_info =
GST_DISCOVERER_AUDIO_INFO (stream);
- break;
+ if (!adts_hack)
+ break;
}
}
}
get_caps (GUPnPDLNAGstAudioInformation *gst_info)
{
GUPnPDLNAGstAudioInformationPrivate *priv = gst_info->priv;
+ GstDiscovererStreamInfo *info = GST_DISCOVERER_STREAM_INFO (get_audio_info (gst_info));
if (!priv->caps)
- priv->caps = gst_discoverer_stream_info_get_caps
- (GST_DISCOVERER_STREAM_INFO (get_audio_info (gst_info)));
+ priv->caps = gst_discoverer_stream_info_get_caps (info);
return priv->caps;
}
if (data > 0 && data <= G_MAXINT) {
value.state = GUPNP_DLNA_VALUE_STATE_SET;
value.value = (gint) data;
+ } else {
+ value = get_int_value (gst_info, "bitrate");
}
return value;
* get needed metadata for profile matching. This class itself does
* not implement any metadata extraction features. For that it is
* expected to provide a plugin which:
- * 1. Provides a #GUPnPDLNAMetadataExtractor subclass implementation.
- * 2. Exports a gupnp_dlna_get_default_extractor() which takes no
- * parameters and returns a #GUPnPDLNAMetadataExtractor.
+ * - Provides a #GUPnPDLNAMetadataExtractor subclass implementation.
+ * - Exports a <function>gupnp_dlna_get_default_extractor</function>() which
+ * takes no parameters and returns a #GUPnPDLNAMetadataExtractor.
*
* #GModule is used for loading the plugin, so #GModule's features can
- * be used also (like exporting g_module_check_init() to initialize
- * multimedia framework used for extracting metadata).
+ * be used also (like exporting <function>g_module_check_init</function>() to
+ * initialize the multimedia framework used for extracting metadata).
*
* Default plugin directory and default plugin file is set during
* configuration stage, but it can be overriden during runtime by
- * setting respectively %GUPNP_DLNA_METADATA_BACKEND and
- * %GUPNP_DLNA_METADATA_BACKEND_DIR environment variables before the
- * plugin is loaded (i.e. before #GUPnPDLNAProfileGuesser is used for
+ * setting respectively <envar>GUPNP_DLNA_METADATA_BACKEND</envar> and
+ * <envar>GUPNP_DLNA_METADATA_BACKEND_DIR</envar> environment variables before
+ * the plugin is loaded (i.e. before #GUPnPDLNAProfileGuesser is used for
* guessing profile).
*
- * The %GUPNP_DLNA_METADATA_BACKEND environment variable should hold a
- * name like "gstreamer", so libgstreamer.so will be loaded. For
- * determining a plugin filename g_module_build_path() is used.
+ * The <envar>GUPNP_DLNA_METADATA_BACKEND</envar> environment variable should
+ * hold a name like <userinput>"gstreamer"</userinput>, so
+ * <filename>libgstreamer.so</filename> will be loaded. For determining a
+ * plugin filename g_module_build_path() is used.
*
* If subclassing #GUPnPDLNAMetadataExtractor then also
* #GUPnPDLNAInformation, #GUPnPDLNAAudioInformation,
#
# VALA_PROG_VAPIGEN([MINIMUM-VERSION])
# ------------------------------------
-AC_DEFUN([VALA_PROG_VAPIGEN],
+AC_DEFUN([GUPNP_PROG_VAPIGEN],
[AC_PATH_PROG([VAPIGEN], [vapigen], [])
AS_IF([test -z "$VAPIGEN"],
[AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
- AC_MSG_WARN([Vala API Generator $1 not found.])])])])
+ AC_MSG_WARN([Vala API Generator $1 not found.])
+ VAPIGEN=""
+ ])])])
])
Name: gupnp-dlna
Summary: Utility library for easing DLNA-related tasks
-Version: 0.10.0
+Version: 0.10.2
Release: 0
Group: Applications/Multimedia
License: LGPLv2.1
Requires(postun): /sbin/ldconfig
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(libxml-2.0)
-BuildRequires: pkgconfig(gstreamer-0.10)
-BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
+BuildRequires: pkgconfig(gstreamer-1.0)
+BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
%description
# >> build pre
# << build pre
-%configure --disable-static --disable-gstreamer-metadata-backend --enable-legacy-gstreamer-metadata-backend --with-default-metadata-backend=gstreamer-legacy
+%configure --disable-static
make %{?jobs:-j%jobs}
# >> build post
%{_bindir}/gupnp-dlna-info-2.0
%{_bindir}/gupnp-dlna-ls-profiles-2.0
%{_libdir}/libgupnp-dlna-2.0.so.*
-%{_libdir}/libgupnp-dlna-gst-legacy-2.0.so.*
-%{_libdir}/gupnp-dlna/libgstreamer-legacy.so
+%{_libdir}/libgupnp-dlna-gst-2.0.so.*
+%{_libdir}/gupnp-dlna/libgstreamer.so
%{_datadir}/gupnp-dlna-2.0/dlna-profiles/aac.xml
%{_datadir}/gupnp-dlna-2.0/dlna-profiles/ac3.xml
%{_datadir}/gupnp-dlna-2.0/dlna-profiles/amr.xml
%{_datadir}/gupnp-dlna-2.0/dlna-profiles/mpeg4.xml
%{_datadir}/gupnp-dlna-2.0/dlna-profiles/png.xml
%{_datadir}/gupnp-dlna-2.0/dlna-profiles/wma.xml
+%{_datadir}/gupnp-dlna-2.0/dlna-profiles/mpeg-common.xml
+%{_datadir}/gupnp-dlna-2.0/dlna-profiles/mpeg-ps.xml
# << files
%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna.h
%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna-audio-information.h
%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna-container-information.h
-%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna-gst-legacy-utils.h
+%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna-gst-utils.h
%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna-g-values.h
%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna-image-information.h
%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/gupnp-dlna-information.h
%{_includedir}/gupnp-dlna-2.0/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.h
%{_libdir}/pkgconfig/gupnp-dlna-2.0.pc
%{_libdir}/pkgconfig/gupnp-dlna-metadata-2.0.pc
-%{_libdir}/pkgconfig/gupnp-dlna-gst-legacy-2.0.pc
+%{_libdir}/pkgconfig/gupnp-dlna-gst-2.0.pc
%{_libdir}/libgupnp-dlna-2.0.so
-%{_libdir}/libgupnp-dlna-gst-legacy-2.0.so
-%{_libdir}/gupnp-dlna/libgstreamer-legacy.so
+%{_libdir}/libgupnp-dlna-gst-2.0.so
+%{_libdir}/gupnp-dlna/libgstreamer.so
# << files devel
-noinst_PROGRAMS = sets
+TESTS_ENVIRONMENT = \
+ G_SLICE=debug-blocks \
+ LD_LIBRARY_PATH=$(top_builddir)/libgupnp-dlna/.libs:$(LD_LIBRARY_PATH) \
+ MEDIA_DIR="$(srcdir)/media" FILE_LIST="$(srcdir)/media/media-list.txt" ${SHELL}
+TESTS = $(check_PROGRAMS) test-discoverer.sh
+
+check_PROGRAMS = sets
sets_SOURCES = \
sets.c
# PARTICULAR PURPOSE.
@SET_MAKE@
-
VPATH = @srcdir@
am__make_dryrun = \
{ \
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = sets$(EXEEXT)
+check_PROGRAMS = sets$(EXEEXT)
subdir = tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/test-discoverer.sh.in
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = test-discoverer.sh
CONFIG_CLEAN_VPATH_FILES =
-PROGRAMS = $(noinst_PROGRAMS)
am_sets_OBJECTS = sets-sets.$(OBJEXT)
sets_OBJECTS = $(am_sets_OBJECTS)
am__DEPENDENCIES_1 =
esac
ETAGS = etags
CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
+TESTS_ENVIRONMENT = \
+ G_SLICE=debug-blocks \
+ LD_LIBRARY_PATH=$(top_builddir)/libgupnp-dlna/.libs:$(LD_LIBRARY_PATH) \
+ MEDIA_DIR="$(srcdir)/media" FILE_LIST="$(srcdir)/media/media-list.txt" ${SHELL}
+
+TESTS = $(check_PROGRAMS) test-discoverer.sh
sets_SOURCES = \
sets.c
test-discoverer.sh: $(top_builddir)/config.status $(srcdir)/test-discoverer.sh.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ fi; \
+ echo "$${col}$$dashes$${std}"; \
+ echo "$${col}$$banner$${std}"; \
+ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
+ test -z "$$report" || echo "$${col}$$report$${std}"; \
+ echo "$${col}$$dashes$${std}"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
fi; \
done
check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
-all-am: Makefile $(PROGRAMS)
+all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
mostlyclean-am
distclean: distclean-am
uninstall-am:
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-noinstPROGRAMS ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-checkPROGRAMS clean-generic clean-libtool ctags \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
--- /dev/null
+utils_information_from_discoverer_info cheader_filename="libgupnp-dlna/gupnp-dlna-gst-utils.h"
STRIP = @STRIP@
VAPIGEN = @VAPIGEN@
VERSION = @VERSION@
+XMLLINT = @XMLLINT@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
--- /dev/null
+namespace GUPnP.DLNA.Gst {
+}
--- /dev/null
+gupnp-dlna-2.0
+gstreamer-1.0
+gstreamer-pbutils-1.0