From b7a43fec95a00045277700a3ff4fd5d118157428 Mon Sep 17 00:00:00 2001 From: Regis Merlino Date: Mon, 10 Jun 2013 15:05:20 +0200 Subject: [PATCH] Update gupnp-dlna to 0.10.2 (34fee04) --- Makefile.in | 1 + NEWS | 29 +++ configure | 117 ++++++++-- configure.ac | 28 ++- data/Makefile.am | 7 + data/Makefile.in | 6 + data/aac.xml | 6 + data/mpeg-common.xml | 158 +++++++++++++ data/mpeg-ps.xml | 203 +++++++++++++++++ data/mpeg-ts.xml | 249 +++++++++------------ data/png.xml | 3 +- doc/Makefile.in | 1 + doc/gupnp-dlna-gst/Makefile.in | 1 + doc/gupnp-dlna-gst/html/ch01.html | 2 +- doc/gupnp-dlna-gst/html/index.html | 4 +- doc/gupnp-dlna-metadata/Makefile.in | 1 + .../html/GUPnPDLNAMetadataExtractor.html | 27 ++- doc/gupnp-dlna-metadata/html/ch01.html | 2 +- doc/gupnp-dlna-metadata/html/index.html | 4 +- doc/gupnp-dlna/Makefile.in | 1 + doc/gupnp-dlna/gupnp-dlna-sections.txt | 1 + doc/gupnp-dlna/html/GUPnPDLNAInformation.html | 34 ++- doc/gupnp-dlna/html/ch01.html | 6 +- doc/gupnp-dlna/html/gupnp-dlna.devhelp2 | 1 + doc/gupnp-dlna/html/index.html | 4 +- doc/gupnp-dlna/html/index.sgml | 1 + doc/version.xml | 2 +- libgupnp-dlna/Makefile.in | 1 + libgupnp-dlna/gupnp-dlna-information.c | 22 ++ libgupnp-dlna/gupnp-dlna-information.h | 10 +- libgupnp-dlna/gupnp-dlna-profile-guesser.c | 21 ++ .../gstreamer/gupnp-dlna-gst-audio-information.c | 32 ++- .../metadata/gupnp-dlna-metadata-extractor.c | 23 +- m4/vapigen.m4 | 6 +- packaging/GUPnP-DLNA.spec | 22 +- tests/Makefile.am | 8 +- tests/Makefile.in | 145 ++++++++++-- tools/Makefile.in | 1 + vala/GUPnPDLNAGst-2.0.metadata | 1 + vala/Makefile.in | 1 + vala/gupnp-dlna-gst-2.0-custom.vala | 2 + vala/gupnp-dlna-gst-2.0.deps | 3 + 42 files changed, 943 insertions(+), 254 deletions(-) create mode 100644 data/mpeg-common.xml create mode 100644 data/mpeg-ps.xml create mode 100644 vala/GUPnPDLNAGst-2.0.metadata create mode 100644 vala/gupnp-dlna-gst-2.0-custom.vala create mode 100644 vala/gupnp-dlna-gst-2.0.deps diff --git a/Makefile.in b/Makefile.in index 6271cb0..84846c1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -280,6 +280,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/NEWS b/NEWS index 379cac8..28ca81e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,32 @@ +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 + +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 + 0.10.0 ====== - Various fixes for the GStreamer 0.10 meta-data back-end. diff --git a/configure b/configure index b9cfb00..8474811 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /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 . # @@ -651,8 +651,8 @@ MAKEFLAGS= # 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/' @@ -697,6 +697,9 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +HAVE_XMLLINT_FALSE +HAVE_XMLLINT_TRUE +XMLLINT GLIB_PREFIX GTK_DOC_USE_REBASE_FALSE GTK_DOC_USE_REBASE_TRUE @@ -1465,7 +1468,7 @@ if test "$ac_init_help" = "long"; then # 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]... @@ -1535,7 +1538,7 @@ fi 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 @@ -1693,7 +1696,7 @@ fi 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. @@ -1971,7 +1974,7 @@ cat >config.log <<_ACEOF 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 $@ @@ -2792,7 +2795,7 @@ fi # Define the identity of the package. PACKAGE='gupnp-dlna' - VERSION='0.10.0' + VERSION='0.10.2' cat >>confdefs.h <<_ACEOF @@ -12904,13 +12907,6 @@ $as_echo "yes" >&6; } fi - - - - - - - # Check for g_clear_pointer have_g_clear_pointer='no' if test -n "$PKG_CONFIG" && \ @@ -13082,8 +13078,23 @@ fi # 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 @@ -13128,11 +13139,11 @@ fi { $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 #( @@ -13145,8 +13156,10 @@ $as_echo "yes" >&6; } ;; #( 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 @@ -13156,6 +13169,9 @@ fi fi +if test "x$VAPIGEN" != "x"; then : + have_vapigen=yes +fi if test "x$VAPIGEN" != "x"; then HAVE_VAPIGEN_TRUE= HAVE_VAPIGEN_FALSE='#' @@ -13490,6 +13506,55 @@ fi 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" @@ -13667,6 +13732,10 @@ if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}" 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 @@ -14064,7 +14133,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # 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 @@ -14131,7 +14200,7 @@ _ACEOF 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\\" @@ -15924,6 +15993,8 @@ fi 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" diff --git a/configure.ac b/configure.ac index 42725af..374cb73 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ 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/]) @@ -167,13 +167,6 @@ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.32]) 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], @@ -222,11 +215,22 @@ fi 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]) @@ -234,6 +238,10 @@ 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 @@ -258,6 +266,8 @@ AC_OUTPUT 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" diff --git a/data/Makefile.am b/data/Makefile.am index 0043f46..d7ce2bd 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -11,6 +11,8 @@ dlnaprofiles = mp3.xml \ mpeg1.xml \ avc.xml \ mpeg-ts.xml \ + mpeg-ps.xml \ + mpeg-common.xml \ mpeg4.xml \ jpeg.xml \ png.xml @@ -18,4 +20,9 @@ dlnaprofiles = mp3.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) diff --git a/data/Makefile.in b/data/Makefile.in index 516f600..ad7fba2 100644 --- a/data/Makefile.in +++ b/data/Makefile.in @@ -213,6 +213,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -277,6 +278,8 @@ dlnaprofiles = mp3.xml \ mpeg1.xml \ avc.xml \ mpeg-ts.xml \ + mpeg-ps.xml \ + mpeg-common.xml \ mpeg4.xml \ jpeg.xml \ png.xml @@ -500,6 +503,9 @@ uninstall-am: uninstall-dlnaDATA 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: diff --git a/data/aac.xml b/data/aac.xml index d6267a5..9aa8976 100644 --- a/data/aac.xml +++ b/data/aac.xml @@ -37,6 +37,12 @@ + + 1 + 2 + 4 + + diff --git a/data/mpeg-common.xml b/data/mpeg-common.xml new file mode 100644 index 0000000..3c98a02 --- /dev/null +++ b/data/mpeg-common.xml @@ -0,0 +1,158 @@ + + + + + + + + + + + + 30000/1001 + + + 32/27 + 8/9 + + + + + + + 24000/1001 + 24/1 + 30000/1001 + 30/1 + 60000/1001 + 60/1 + + + 40/33 + 10/11 + + + + + + + 24000/1001 + 24/1 + 30000/1001 + 30/1 + 60000/1001 + 60/1 + + + 1/1 + 4/3 + + + + + + + 30000/1001 + + + 80/51 + 20/17 + + + + + + + 30000/1001 + + + 16/9 + 4/3 + + + + + + + 30000/1001 + + + 80/33 + 20/11 + + + + + + + 30000/1001 + + + 16/11 + 12/11 + + + + + + + + 25/1 + + + + + + + + 64/45 + 16/15 + + + + + + + + 64/45 + 16/15 + + + + + + + + 32/17 + 24/17 + + + + + + + + 32/15 + 8/5 + + + + + + + + 32/11 + 24/11 + + + + + + + + 16/11 + 12/11 + + + + diff --git a/data/mpeg-ps.xml b/data/mpeg-ps.xml new file mode 100644 index 0000000..266e915 --- /dev/null +++ b/data/mpeg-ps.xml @@ -0,0 +1,203 @@ + + + + + + + + + + video/mpeg + + + true + + + 2 + + + + + + video/mpeg + + + false + + + 2 + + + simple + main + + + low + main + + + + + + + + + 48000 + + + + + + + + + + + audio/x-ac3 + + + + + + + + audio/x-private1-ac3 + + + + + + + + audio/ac3 + + + + + + + + audio/mpeg + + + 1 + 2 + + + + + + + + audio/x-private1-lpcm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + audio/x-ac3 + + + + + + + + audio/x-private1-ac3 + + + + + + + + audio/ac3 + + + + + + + + audio/mpeg + + + 1 + 2 + + + + + + + + audio/x-private1-lpcm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/mpeg-ts.xml b/data/mpeg-ts.xml index 5e2ad7e..ab0b549 100644 --- a/data/mpeg-ts.xml +++ b/data/mpeg-ts.xml @@ -2,9 +2,10 @@ + - + video/mpegts @@ -16,10 +17,20 @@ - - - 48000 + + + + video/mpegts + + + true + + + 192 + + + @@ -28,6 +39,24 @@ + + + + + 48000 + + + + + + + + 32000 + 44100 + 48000 + + + video/mpeg @@ -55,136 +84,6 @@ - - - - - - 30000/1001 - - - 32/27 - 8/9 - - - - - - - 24000/1001 - 24/1 - 30000/1001 - 30/1 - 60000/1001 - 60/1 - - - 40/33 - 10/11 - - - - - - - 24000/1001 - 24/1 - 30000/1001 - 30/1 - 60000/1001 - 60/1 - - - 1/1 - 4/3 - - - - - - - 30000/1001 - - - 80/51 - 20/17 - - - - - - - 30000/1001 - - - 16/9 - 4/3 - - - - - - - 30000/1001 - - - 80/33 - 20/11 - - - - - - - 25/1 - - - - - - - - 64/45 - 16/15 - - - - - - - - 32/17 - 24/17 - - - - - - - - 32/15 - 8/5 - - - - - - - - 32/11 - 24/11 - - - - - - - - 16/11 - 12/11 - - - @@ -252,15 +151,15 @@ - + - + - audio/x-ac3 + audio/x-ac3 @@ -268,7 +167,7 @@ - audio/x-private1-ac3 + audio/x-private1-ac3 @@ -276,7 +175,7 @@ - audio/ac3 + audio/ac3 @@ -311,31 +210,41 @@ - + - + + + + + audio/x-ac3 + + - + - audio/x-ac3 + audio/x-private1-ac3 - + - audio/x-private1-ac3 + audio/ac3 - + - audio/ac3 + audio/mpeg + + + 1 + 2 @@ -365,9 +274,9 @@ - - + + @@ -412,4 +321,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/png.xml b/data/png.xml index 501ab3e..c130b11 100644 --- a/data/png.xml +++ b/data/png.xml @@ -65,6 +65,7 @@ + diff --git a/doc/Makefile.in b/doc/Makefile.in index 520740c..e20369e 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -223,6 +223,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/doc/gupnp-dlna-gst/Makefile.in b/doc/gupnp-dlna-gst/Makefile.in index aeaf05d..c7c8e50 100644 --- a/doc/gupnp-dlna-gst/Makefile.in +++ b/doc/gupnp-dlna-gst/Makefile.in @@ -189,6 +189,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/doc/gupnp-dlna-gst/html/ch01.html b/doc/gupnp-dlna-gst/html/ch01.html index 8ee29a2..1240117 100644 --- a/doc/gupnp-dlna-gst/html/ch01.html +++ b/doc/gupnp-dlna-gst/html/ch01.html @@ -24,7 +24,7 @@

-GUPnP DLNA Gstreamer

+GUPnP DLNA Gstreamer
diff --git a/doc/gupnp-dlna-gst/html/index.html b/doc/gupnp-dlna-gst/html/index.html index cc740ee..668f29b 100644 --- a/doc/gupnp-dlna-gst/html/index.html +++ b/doc/gupnp-dlna-gst/html/index.html @@ -14,11 +14,11 @@
-

Version 0.10.0 +

Version 0.10.2

-

+

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later diff --git a/doc/gupnp-dlna-metadata/Makefile.in b/doc/gupnp-dlna-metadata/Makefile.in index 6051dd4..13132ae 100644 --- a/doc/gupnp-dlna-metadata/Makefile.in +++ b/doc/gupnp-dlna-metadata/Makefile.in @@ -189,6 +189,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/doc/gupnp-dlna-metadata/html/GUPnPDLNAMetadataExtractor.html b/doc/gupnp-dlna-metadata/html/GUPnPDLNAMetadataExtractor.html index 85775d2..ded22de 100644 --- a/doc/gupnp-dlna-metadata/html/GUPnPDLNAMetadataExtractor.html +++ b/doc/gupnp-dlna-metadata/html/GUPnPDLNAMetadataExtractor.html @@ -80,27 +80,32 @@ media.

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. +

+
+

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 g_module_check_init() 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 GUPNP_DLNA_METADATA_BACKEND and +GUPNP_DLNA_METADATA_BACKEND_DIR 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 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.

If subclassing GUPnPDLNAMetadataExtractor then also diff --git a/doc/gupnp-dlna-metadata/html/ch01.html b/doc/gupnp-dlna-metadata/html/ch01.html index 2b73b2b..2cd07c5 100644 --- a/doc/gupnp-dlna-metadata/html/ch01.html +++ b/doc/gupnp-dlna-metadata/html/ch01.html @@ -24,7 +24,7 @@

-GUPnP DLNA Metadata

+GUPnP DLNA Metadata
GUPnPDLNAMetadataExtractor — Base class for extracting metadata for given media. diff --git a/doc/gupnp-dlna-metadata/html/index.html b/doc/gupnp-dlna-metadata/html/index.html index 2781ab9..aa555ad 100644 --- a/doc/gupnp-dlna-metadata/html/index.html +++ b/doc/gupnp-dlna-metadata/html/index.html @@ -14,11 +14,11 @@
-

Version 0.10.0 +

Version 0.10.2

-

+

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later diff --git a/doc/gupnp-dlna/Makefile.in b/doc/gupnp-dlna/Makefile.in index 80a02fa..40776cf 100644 --- a/doc/gupnp-dlna/Makefile.in +++ b/doc/gupnp-dlna/Makefile.in @@ -189,6 +189,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/doc/gupnp-dlna/gupnp-dlna-sections.txt b/doc/gupnp-dlna/gupnp-dlna-sections.txt index a9c3a4a..2991c15 100644 --- a/doc/gupnp-dlna/gupnp-dlna-sections.txt +++ b/doc/gupnp-dlna/gupnp-dlna-sections.txt @@ -107,6 +107,7 @@ GUPnPDLNAInformationClass 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 diff --git a/doc/gupnp-dlna/html/GUPnPDLNAInformation.html b/doc/gupnp-dlna/html/GUPnPDLNAInformation.html index 4aff246..02c43b6 100644 --- a/doc/gupnp-dlna/html/GUPnPDLNAInformation.html +++ b/doc/gupnp-dlna/html/GUPnPDLNAInformation.html @@ -50,6 +50,8 @@ metadata informations.

(GUPnPDLNAInformation *info); GUPnPDLNAImageInformation * gupnp_dlna_information_get_image_information (GUPnPDLNAInformation *info); +const gchar * gupnp_dlna_information_get_profile_name + (GUPnPDLNAInformation *info); const gchar * gupnp_dlna_information_get_uri (GUPnPDLNAInformation *info); GUPnPDLNAVideoInformation * gupnp_dlna_information_get_video_information (GUPnPDLNAInformation *info); @@ -108,7 +110,10 @@ that "uri" with a URI to media file is passed to @@ -139,7 +144,12 @@ to get an image information. to get a video information. - + + + + + @@ -219,6 +229,26 @@ image files).
+

gupnp_dlna_information_get_profile_name ()

+
const gchar *       gupnp_dlna_information_get_profile_name
+                                                        (GUPnPDLNAInformation *info);
+

gpointer _reserved[12];

get_profile_name ()

This is called by GUPnPDLNAProfileGuesser to +get the name of the DLNA profile assigned with this information.

gpointer _reserved[11];

Padding. Ignore it.
++ + + + + + + + + + +

info :

A GUPnPDLNAInformation object.

Returns :

The name of a DLNA profile or NULL. [transfer none] +
+
+
+

gupnp_dlna_information_get_uri ()

const gchar *       gupnp_dlna_information_get_uri      (GUPnPDLNAInformation *info);
diff --git a/doc/gupnp-dlna/html/ch01.html b/doc/gupnp-dlna/html/ch01.html index f4cf684..0e606f1 100644 --- a/doc/gupnp-dlna/html/ch01.html +++ b/doc/gupnp-dlna/html/ch01.html @@ -24,7 +24,7 @@

-GUPnP DLNA

+GUPnP DLNA
GUPnPDLNAProfileGuesser — Utility API for discovering DLNA profile for @@ -376,6 +376,10 @@ for DLNA profiles matching.
+gupnp_dlna_information_get_profile_name, function in GUPnPDLNAInformation +
+
+
gupnp_dlna_information_get_uri, function in GUPnPDLNAInformation
diff --git a/doc/gupnp-dlna/html/gupnp-dlna.devhelp2 b/doc/gupnp-dlna/html/gupnp-dlna.devhelp2 index d65c020..16399a0 100644 --- a/doc/gupnp-dlna/html/gupnp-dlna.devhelp2 +++ b/doc/gupnp-dlna/html/gupnp-dlna.devhelp2 @@ -53,6 +53,7 @@ + diff --git a/doc/gupnp-dlna/html/index.html b/doc/gupnp-dlna/html/index.html index cf9a106..bc43608 100644 --- a/doc/gupnp-dlna/html/index.html +++ b/doc/gupnp-dlna/html/index.html @@ -14,14 +14,14 @@
-

Version 0.10.0 +

Version 0.10.2

-

+

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later diff --git a/doc/gupnp-dlna/html/index.sgml b/doc/gupnp-dlna/html/index.sgml index 14a6e9b..314e65d 100644 --- a/doc/gupnp-dlna/html/index.sgml +++ b/doc/gupnp-dlna/html/index.sgml @@ -55,6 +55,7 @@ + diff --git a/doc/version.xml b/doc/version.xml index 78bc1ab..5eef0f1 100644 --- a/doc/version.xml +++ b/doc/version.xml @@ -1 +1 @@ -0.10.0 +0.10.2 diff --git a/libgupnp-dlna/Makefile.in b/libgupnp-dlna/Makefile.in index ed25e4c..536212e 100644 --- a/libgupnp-dlna/Makefile.in +++ b/libgupnp-dlna/Makefile.in @@ -479,6 +479,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/libgupnp-dlna/gupnp-dlna-information.c b/libgupnp-dlna/gupnp-dlna-information.c index 7d1ea8d..37fb023 100644 --- a/libgupnp-dlna/gupnp-dlna-information.c +++ b/libgupnp-dlna/gupnp-dlna-information.c @@ -60,6 +60,12 @@ enum { 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) { @@ -162,6 +168,7 @@ gupnp_dlna_information_class_init (GUPnPDLNAInformationClass *info_class) 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: @@ -394,6 +401,21 @@ gupnp_dlna_information_get_video_information (GUPnPDLNAInformation *info) } /** + * 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. * diff --git a/libgupnp-dlna/gupnp-dlna-information.h b/libgupnp-dlna/gupnp-dlna-information.h index 88e6736..e9c6bf3 100644 --- a/libgupnp-dlna/gupnp-dlna-information.h +++ b/libgupnp-dlna/gupnp-dlna-information.h @@ -74,6 +74,8 @@ typedef struct { * 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 { @@ -91,7 +93,10 @@ typedef struct { GUPnPDLNAVideoInformation * (* get_video_information) (GUPnPDLNAInformation *info); - gpointer _reserved[12]; + const gchar * + (* get_profile_name) (GUPnPDLNAInformation *info); + + gpointer _reserved[11]; } GUPnPDLNAInformationClass; GType @@ -110,6 +115,9 @@ GUPnPDLNAVideoInformation* 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 diff --git a/libgupnp-dlna/gupnp-dlna-profile-guesser.c b/libgupnp-dlna/gupnp-dlna-profile-guesser.c index b7738d5..ef9ce94 100644 --- a/libgupnp-dlna/gupnp-dlna-profile-guesser.c +++ b/libgupnp-dlna/gupnp-dlna-profile-guesser.c @@ -374,6 +374,13 @@ gupnp_dlna_profile_guesser_guess_profile_sync 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. @@ -394,6 +401,7 @@ gupnp_dlna_profile_guesser_guess_profile_from_info 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); @@ -402,6 +410,19 @@ gupnp_dlna_profile_guesser_guess_profile_from_info 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 diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c index a6ea58d..e453d90 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c @@ -50,6 +50,8 @@ get_audio_info (GUPnPDLNAGstAudioInformation *gst_info) if (!priv->audio_info) { GList *iter; + gboolean adts_hack = FALSE; + int stream_count = 0; if (!priv->stream_list) { priv->stream_list = @@ -58,16 +60,38 @@ get_audio_info (GUPnPDLNAGstAudioInformation *gst_info) 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; } } } @@ -79,10 +103,10 @@ static GstCaps * 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; } @@ -123,6 +147,8 @@ backend_get_bitrate (GUPnPDLNAAudioInformation *self) 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; diff --git a/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c b/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c index 2337548..3ae248f 100644 --- a/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c +++ b/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c @@ -30,24 +30,25 @@ * 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 gupnp_dlna_get_default_extractor() 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 g_module_check_init() 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 GUPNP_DLNA_METADATA_BACKEND and + * GUPNP_DLNA_METADATA_BACKEND_DIR 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 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. * * If subclassing #GUPnPDLNAMetadataExtractor then also * #GUPnPDLNAInformation, #GUPnPDLNAAudioInformation, diff --git a/m4/vapigen.m4 b/m4/vapigen.m4 index df6395d..c909726 100644 --- a/m4/vapigen.m4 +++ b/m4/vapigen.m4 @@ -26,7 +26,7 @@ dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg # # 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.])], @@ -37,5 +37,7 @@ AC_DEFUN([VALA_PROG_VAPIGEN], [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="" + ])])]) ]) diff --git a/packaging/GUPnP-DLNA.spec b/packaging/GUPnP-DLNA.spec index 75ea49d..8bafbb2 100644 --- a/packaging/GUPnP-DLNA.spec +++ b/packaging/GUPnP-DLNA.spec @@ -7,7 +7,7 @@ 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 @@ -17,8 +17,8 @@ Requires(post): /sbin/ldconfig 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 @@ -51,7 +51,7 @@ Files for development with gupnp-dlna # >> 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 @@ -82,8 +82,8 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/gtk-doc %{_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 @@ -98,6 +98,8 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/gtk-doc %{_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 @@ -107,7 +109,7 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/gtk-doc %{_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 @@ -120,9 +122,9 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/gtk-doc %{_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 diff --git a/tests/Makefile.am b/tests/Makefile.am index a916937..323f190 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,10 @@ -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 diff --git a/tests/Makefile.in b/tests/Makefile.in index c6fa6dc..3477951 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -14,7 +14,6 @@ # PARTICULAR PURPOSE. @SET_MAKE@ - VPATH = @srcdir@ am__make_dryrun = \ { \ @@ -51,7 +50,7 @@ PRE_UNINSTALL = : 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 @@ -67,7 +66,6 @@ mkinstalldirs = $(install_sh) -d 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 = @@ -115,6 +113,8 @@ am__can_run_installinfo = \ 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@ @@ -220,6 +220,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ @@ -272,6 +273,12 @@ target_alias = @target_alias@ 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 @@ -329,8 +336,8 @@ $(am__aclocal_m4_deps): 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; \ @@ -442,6 +449,99 @@ GTAGS: 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'`; \ @@ -473,8 +573,10 @@ distdir: $(DISTFILES) 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 @@ -508,7 +610,7 @@ maintainer-clean-generic: @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 @@ -577,20 +679,21 @@ ps-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. diff --git a/tools/Makefile.in b/tools/Makefile.in index 5d22ee7..c2a5186 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -228,6 +228,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/vala/GUPnPDLNAGst-2.0.metadata b/vala/GUPnPDLNAGst-2.0.metadata new file mode 100644 index 0000000..bab0e14 --- /dev/null +++ b/vala/GUPnPDLNAGst-2.0.metadata @@ -0,0 +1 @@ +utils_information_from_discoverer_info cheader_filename="libgupnp-dlna/gupnp-dlna-gst-utils.h" diff --git a/vala/Makefile.in b/vala/Makefile.in index 97d1fc6..179a8d9 100644 --- a/vala/Makefile.in +++ b/vala/Makefile.in @@ -229,6 +229,7 @@ SHELL = @SHELL@ STRIP = @STRIP@ VAPIGEN = @VAPIGEN@ VERSION = @VERSION@ +XMLLINT = @XMLLINT@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ diff --git a/vala/gupnp-dlna-gst-2.0-custom.vala b/vala/gupnp-dlna-gst-2.0-custom.vala new file mode 100644 index 0000000..1ff1a6e --- /dev/null +++ b/vala/gupnp-dlna-gst-2.0-custom.vala @@ -0,0 +1,2 @@ +namespace GUPnP.DLNA.Gst { +} diff --git a/vala/gupnp-dlna-gst-2.0.deps b/vala/gupnp-dlna-gst-2.0.deps new file mode 100644 index 0000000..3ed2cd4 --- /dev/null +++ b/vala/gupnp-dlna-gst-2.0.deps @@ -0,0 +1,3 @@ +gupnp-dlna-2.0 +gstreamer-1.0 +gstreamer-pbutils-1.0 -- 2.7.4