From 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd Mon Sep 17 00:00:00 2001 From: ToshikazuOhiwa Date: Mon, 30 Mar 2020 09:24:26 +0900 Subject: agl-basesystem --- .../alsa-equal/alsa-equal/0001-Fix-asneeded.patch | 37 ++ .../alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch | 83 +++ .../alsa-equal/alsa-equal/0003-Fix-mixer.patch | 92 ++++ .../alsa-equal/alsa-equal_0.6.bb | 44 ++ .../0001-Do-not-use-obsolete-pow10f-function.patch | 50 ++ ...01-basic.h-Use-c99-supported-stdint-types.patch | 46 ++ .../caps/Avoid-ambiguity-in-div-invocation.patch | 32 ++ .../caps/caps/append_ldflags.patch | 18 + .../recipes-multimedia/caps/caps_0.9.24.bb | 31 ++ .../cdparanoia/cdparanoia_10.2.bb | 34 ++ ...0001-Use-DESTDIR-in-install-Makefile-rule.patch | 70 +++ ...-for-null-buffer-before-trying-a-byteswap.patch | 31 ++ ...-utils-Use-c99-compiler-independent-types.patch | 49 ++ .../files/0002-Fix-printf-format-errors.patch | 32 ++ .../0002-interface-remove-C-reserved-keyword.patch | 605 +++++++++++++++++++++ .../0003-Fix-missing-shared-object-LDFLAGS.patch | 42 ++ .../files/dont-use-internal-configs.patch | 30 + .../cdparanoia/files/out-of-tree-build.patch | 42 ++ .../recipes-multimedia/dca/dcadec_0.2.0.bb | 17 + .../dleyna/dleyna-connector-dbus_0.3.0.bb | 18 + .../recipes-multimedia/dleyna/dleyna-core_0.6.0.bb | 18 + .../dleyna/dleyna-renderer_0.6.0.bb | 23 + .../dleyna/dleyna-server_0.6.0.bb | 21 + .../recipes-multimedia/faac/faac_1.29.bb | 30 + ...Define-__STRING-if-cdefs.h-does-not-exist.patch | 28 + ...N-accelaration-for-float-multithreaded-se.patch | 76 +++ .../fluidsynth/fluidsynth_1.1.11.bb | 24 + .../gerbera/files/gerbera.service | 13 + .../recipes-multimedia/gerbera/gerbera_git.bb | 32 ++ .../gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb | 14 + .../gst-fluendo-mpegdemux_0.10.85.bb | 12 + .../gstreamer-0.10/gst-fluendo.inc | 14 + .../gstreamer-0.10/gst-meta-base_0.10.bb | 73 +++ .../gstreamer-0.10/gst-openmax/gcc_4.6.patch | 18 + .../gstreamer-0.10/gst-openmax/ptr-array.patch | 46 ++ .../gstreamer-0.10/gst-openmax_0.10.1.bb | 35 ++ .../gst-plugins-bad/buffer-overflow-mp4.patch | 36 ++ .../gstreamer-0.10/gst-plugins-bad_0.10.23.bb | 61 +++ ...l.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch | 32 ++ ...le-Fix-build-on-x86-if-emmintrin.h-is-ava.patch | 37 ++ .../configure.ac-fix-subparse-plugin.patch | 27 + .../gst-plugins-base-tremor.patch | 20 + .../gstreamer-0.10/gst-plugins-base_0.10.36.bb | 43 ++ ...-conditional-gl-framebuffer-undefined-use.patch | 35 ++ .../gst-plugins-gl/rpi-egl-gles2-dep.patch | 22 + .../gstreamer-0.10/gst-plugins-gl_0.10.3.bb | 29 + ...ild-with-recent-kernels-the-v4l2_buffer-i.patch | 33 ++ ...define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch | 45 ++ .../0407-mulawdec-fix-integer-overrun.patch | 47 ++ .../gstreamer-0.10/gst-plugins-good_0.10.31.bb | 47 ++ ...sate-for-libcdio-s-recent-cd-text-api-cha.patch | 193 +++++++ .../0002-Fix-opencore-include-paths.patch | 58 ++ .../gstreamer-0.10/gst-plugins-ugly_0.10.19.bb | 35 ++ .../gstreamer-0.10/gst-plugins.inc | 29 + ...ecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch | 38 ++ .../gstreamer-0.10/gst-rtsp_0.10.8.bb | 18 + ...ix-self-comparison-always-evaluates-to-tr.patch | 32 ++ ...01-parse-make-grammar.y-work-with-Bison-3.patch | 35 ++ ...2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch | 32 ++ .../gstreamer-0.10.36/check_fix.patch | 19 + .../gst-inspect-check-error.patch | 16 + .../gstreamer-0.10.36/gstregistrybinary.c | 487 +++++++++++++++++ .../gstreamer-0.10.36/gstregistrybinary.h | 194 +++++++ .../gstreamer-0.10/gstreamer_0.10.36.bb | 50 ++ .../gstreamer-1.0/gst-shark_0.2.1.bb | 38 ++ .../recipes-multimedia/gstreamer-1.0/gstd.inc | 21 + .../0001-Look-for-gtk-doc.make-in-builddir.patch | 32 ++ .../gstd/0001-gstd-yocto-compatibility.patch | 25 + .../recipes-multimedia/gstreamer-1.0/gstd_1.0.bb | 3 + .../juce/nativesdk-projucer_git.bb | 3 + .../recipes-multimedia/juce/projucer-native_git.bb | 3 + .../recipes-multimedia/juce/projucer.inc | 37 ++ .../recipes-multimedia/libao/libao_1.2.0.bb | 34 ++ .../libavc1394/libavc1394_0.5.4.bb | 18 + .../libdc1394/files/install_examples.patch | 14 + .../recipes-multimedia/libdc1394/libdc1394_git.bb | 26 + .../recipes-multimedia/libde265/libde265_1.0.2.bb | 20 + .../libdvbpsi/libdvbpsi_1.3.0.bb | 12 + .../libdvdnav/libdvdnav_5.0.3.bb | 14 + .../libiec61883/libiec61883_1.2.0.bb | 16 + .../recipes-multimedia/libopenmpt/files/run-ptest | 9 + .../libopenmpt/libopenmpt_0.3.10.bb | 104 ++++ .../recipes-multimedia/libsquish/libsquish_git.bb | 19 + .../recipes-multimedia/minidlna/minidlna.inc | 41 ++ .../minidlna/0001-Update-Gettext-version.patch | 34 ++ .../minidlna/minidlna/minidlna-daemon.init.d | 54 ++ .../minidlna/minidlna/minidlna.service | 10 + .../recipes-multimedia/minidlna/minidlna_1.2.1.bb | 4 + .../musicbrainz/files/allow-libdir-override.patch | 21 + .../musicbrainz/libmusicbrainz_git.bb | 40 ++ .../musicpd/libmpd-11.8.17/glibc-2.20.patch | 10 + .../recipes-multimedia/musicpd/libmpd_11.8.17.bb | 13 + .../musicpd/libmpdclient_2.16.bb | 22 + .../recipes-multimedia/musicpd/mpc_0.31.bb | 16 + .../recipes-multimedia/musicpd/mpd/mpd.conf.in | 420 ++++++++++++++ .../recipes-multimedia/musicpd/mpd_0.20.22.bb | 99 ++++ .../recipes-multimedia/musicpd/ncmpc_0.33.bb | 37 ++ .../openal/openal-soft_1.15.1.bb | 20 + .../opencore-amr/opencore-amr_0.1.3.bb | 13 + .../opencore-amr/vo-aacenc_0.1.3.bb | 13 + .../opencore-amr/vo-amrwbenc_0.1.3.bb | 13 + .../recipes-multimedia/openh264/openh264_1.7.0.bb | 42 ++ .../recipes-multimedia/opusfile/opusfile_0.10.bb | 14 + .../rtmpdump/rtmpdump/fix-racing-build-issue.patch | 18 + .../recipes-multimedia/rtmpdump/rtmpdump_2.4.bb | 22 + .../sample-content/bigbuckbunny-1080p.bb | 17 + .../sample-content/bigbuckbunny-480p.bb | 17 + .../sample-content/bigbuckbunny-720p.bb | 17 + .../sample-content/tearsofsteel-1080p.bb | 16 + .../schroedinger/schroedinger/configure.ac.patch | 20 + .../schroedinger/schroedinger_1.0.11.bb | 22 + .../sox/sox/0001-Update-exported-symbol-list.patch | 34 ++ ...error-line-and-live-without-file-type-det.patch | 28 + .../recipes-multimedia/sox/sox_14.4.2.bb | 40 ++ ...build-these-are-foreign-automake-projects.patch | 49 ++ ...ld-don-t-ignore-CPPFLAGS-from-environment.patch | 30 + .../0003-ripstream-fix-compilation.patch | 42 ++ .../streamripper/streamripper_1.64.6.bb | 32 ++ .../recipes-multimedia/tinyalsa/tinyalsa.bb | 24 + .../tremor/tremor/obsolete_automake_macros.patch | 15 + .../tremor/tremor/tremor-arm-thumb2.patch | 104 ++++ .../recipes-multimedia/tremor/tremor_20150107.bb | 27 + .../recipes-multimedia/vlc/libdvdcss_1.3.0.bb | 12 + .../meta-multimedia/recipes-multimedia/vlc/vlc.inc | 113 ++++ .../vlc/vlc/0001-enable-subdir-objects.patch | 13 + .../vlc/0002-glibc-does-not-provide-strlcpy.patch | 17 + .../vlc/vlc/0003-use-am-path-libgcrypt.patch | 46 ++ .../0004-modules-gui-qt4-out-of-tree-build.patch | 19 + .../vlc/vlc/0005-libpostproc-header-check.patch | 17 + .../vlc/vlc/0006-make-opencv-configurable.patch | 29 + .../vlc/vlc/0007-use-vorbisidec.patch | 19 + .../vlc/vlc/0008-fix-luaL-checkint.patch | 279 ++++++++++ ...codec-swscale-use-AV_PIX_FMT-consistently.patch | 293 ++++++++++ .../0010-SWSCALE-fix-compilation-with-4.x.patch | 45 ++ .../recipes-multimedia/vlc/vlc_2.2.2.bb | 19 + ...oggenc-Fix-large-alloca-on-bad-AIFF-input.patch | 49 ++ ...error-blocking-compilation-with-hardening.patch | 26 + .../vorbis-tools/vorbis-tools_1.4.0.bb | 26 + ...ild-Protect-against-unsupported-CPU-types.patch | 29 + .../0002-build-Add-ARM-64bit-support.patch | 30 + .../0003-build-fix-architecture-detection.patch | 96 ++++ ...add-support-for-64-bit-and-big-endian-MIP.patch | 41 ++ .../0005-typedefs.h-add-support-for-PowerPC.patch | 28 + ...o-implement-endianness-conversion-in-wav-.patch | 116 ++++ .../webrtc-audio-processing_0.3.bb | 28 + 145 files changed, 6978 insertions(+) create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0001-Fix-asneeded.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0003-Fix-mixer.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0003-Fix-missing-shared-object-LDFLAGS.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb create mode 100755 external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch create mode 100755 external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-Update-exported-symbol-list.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0001-build-these-are-foreign-automake-projects.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0002-build-don-t-ignore-CPPFLAGS-from-environment.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0003-ripstream-fix-compilation.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/obsolete_automake_macros.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/tremor-arm-thumb2.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0005-typedefs.h-add-support-for-PowerPC.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0006-common_audio-implement-endianness-conversion-in-wav-.patch create mode 100644 external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb (limited to 'external/meta-openembedded/meta-multimedia/recipes-multimedia') diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0001-Fix-asneeded.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0001-Fix-asneeded.patch new file mode 100644 index 00000000..64130d90 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0001-Fix-asneeded.patch @@ -0,0 +1,37 @@ +From c17129561e784bb9efebee2380349f121db0a9db Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Wed, 5 Oct 2016 10:56:33 -0300 +Subject: [PATCH 1/3] Fix asneeded +Organization: O.S. Systems Software LTDA. + +Patch from: +https://git.backbone.ws/portage/overlay/commit/7a069112054fbb5dc94a857e9c020a38cb1c6fde + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 3b2aa7d..0489fc1 100644 +--- a/Makefile ++++ b/Makefile +@@ -29,11 +29,11 @@ dep: + + $(SND_PCM_BIN): $(SND_PCM_OBJECTS) + @echo LD $@ +- $(Q)$(LD) $(LDFLAGS) $(SND_PCM_LIBS) $(SND_PCM_OBJECTS) -o $(SND_PCM_BIN) ++ $(Q)$(LD) $(LDFLAGS) $(SND_PCM_OBJECTS) -o $(SND_PCM_BIN) $(SND_PCM_LIBS) + + $(SND_CTL_BIN): $(SND_CTL_OBJECTS) + @echo LD $@ +- $(Q)$(LD) $(LDFLAGS) $(SND_CTL_LIBS) $(SND_CTL_OBJECTS) -o $(SND_CTL_BIN) ++ $(Q)$(LD) $(LDFLAGS) $(SND_CTL_OBJECTS) -o $(SND_CTL_BIN) $(SND_CTL_LIBS) + + %.o: %.c + @echo GCC $< +-- +2.1.4 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch new file mode 100644 index 00000000..efce3807 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0002-Fix-Eq-CAPS-plugin-name.patch @@ -0,0 +1,83 @@ +From d5c6c92045f9b6ad32365f39b8cc77f2fcd7d0f5 Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Wed, 5 Oct 2016 10:57:29 -0300 +Subject: [PATCH 2/3] Fix Eq CAPS plugin name +Organization: O.S. Systems Software LTDA. + +Patch from: +https://git.backbone.ws/portage/overlay/commit/7a069112054fbb5dc94a857e9c020a38cb1c6fde + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + README | 8 ++++---- + ctl_equal.c | 2 +- + pcm_equal.c | 2 +- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/README b/README +index b77fd2d..2df3dc5 100644 +--- a/README ++++ b/README +@@ -1,11 +1,11 @@ + Alsaequal is a real-time adjustable equalizer plugin for ALSA. It can + be adjusted using any ALSA compatible mixer, e.g. alsamixergui. + +-Alsaequal uses the Eq CAPS LADSPA Plugin for audio processing, actually ++Alsaequal uses the Eq10 CAPS LADSPA Plugin for audio processing, actually + alsaequal is a generic LADSPA plugin interface with real-time access to + the LADSPA controls (the LADSPA plugin included with alsa doesn't allow + for real-time controls) but it was developed for and only tested with +-Eq CAPS LADSPA plugin. You are welcome to try it with other plugins, it ++Eq10 CAPS LADSPA plugin. You are welcome to try it with other plugins, it + may work. Let me know how it goes, you can reach me at + . + +@@ -66,7 +66,7 @@ ctl. { + library -- location of the LADSPA library, the default is + "/usr/lib/ladspa/caps.so" + module -- module name within the LADSPA library, the deafault +- is "Eq" ++ is "Eq10" + channels -- number of channels, the default is 2 + } + +@@ -81,7 +81,7 @@ pcm. { + library -- location of the LADSPA library, the default is + "/usr/lib/ladspa/caps.so" + module -- module name within the LADSPA library, the deafault +- is "Eq" ++ is "Eq10" + channels -- number of channels, the default is 2 + } + +diff --git a/ctl_equal.c b/ctl_equal.c +index 40747d4..afba793 100644 +--- a/ctl_equal.c ++++ b/ctl_equal.c +@@ -167,7 +167,7 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal) + snd_ctl_equal_t *equal; + const char *controls = ".alsaequal.bin"; + const char *library = "/usr/lib/ladspa/caps.so"; +- const char *module = "Eq"; ++ const char *module = "Eq10"; + long channels = 2; + const char *sufix = " Playback Volume"; + int err, i, index; +diff --git a/pcm_equal.c b/pcm_equal.c +index 2bc87fb..b0b4265 100644 +--- a/pcm_equal.c ++++ b/pcm_equal.c +@@ -151,7 +151,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(equal) + snd_config_t *sconf = NULL; + const char *controls = ".alsaequal.bin"; + const char *library = "/usr/lib/ladspa/caps.so"; +- const char *module = "Eq"; ++ const char *module = "Eq10"; + long channels = 2; + int err; + +-- +2.1.4 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0003-Fix-mixer.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0003-Fix-mixer.patch new file mode 100644 index 00000000..1c2503ed --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal/0003-Fix-mixer.patch @@ -0,0 +1,92 @@ +From 665f68a863b4ac2e21b0a994dce7e2720c03aa9d Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Wed, 5 Oct 2016 11:02:18 -0300 +Subject: [PATCH 3/3] Fix mixer +Organization: O.S. Systems Software LTDA. + +Patch from: +https://git.backbone.ws/portage/overlay/commit/7a069112054fbb5dc94a857e9c020a38cb1c6fde + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + ctl_equal.c | 9 ++++++--- + ladspa_utils.c | 6 ++++-- + pcm_equal.c | 6 ++++-- + 3 files changed, 14 insertions(+), 7 deletions(-) + +diff --git a/ctl_equal.c b/ctl_equal.c +index afba793..dd90e88 100644 +--- a/ctl_equal.c ++++ b/ctl_equal.c +@@ -263,7 +263,8 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal) + for(i = 0; i < equal->num_input_controls; i++) { + if(equal->control_data->control[i].type == LADSPA_CNTRL_INPUT) { + index = equal->control_data->control[i].index; +- if(equal->klass->PortDescriptors[index] != ++ if((equal->klass->PortDescriptors[index] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) != + (LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) { + SNDERR("Problem with control file %s, %d.", controls, index); + return -1; +@@ -284,12 +285,14 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal) + } + + /* Make sure that the control file makes sense */ +- if(equal->klass->PortDescriptors[equal->control_data->input_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->input_index] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO))!= + (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; + } +- if(equal->klass->PortDescriptors[equal->control_data->output_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->output_index] & ++ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO))!= + (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; +diff --git a/ladspa_utils.c b/ladspa_utils.c +index 7b596da..0c00800 100644 +--- a/ladspa_utils.c ++++ b/ladspa_utils.c +@@ -354,10 +354,12 @@ LADSPA_Control * LADSPAcontrolMMAP(const LADSPA_Descriptor *psDescriptor, + default_controls->control[index].type = LADSPA_CNTRL_OUTPUT; + } + index++; +- } else if(psDescriptor->PortDescriptors[i] == ++ } else if((psDescriptor->PortDescriptors[i] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) == + (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) { + default_controls->input_index = i; +- } else if(psDescriptor->PortDescriptors[i] == ++ } else if((psDescriptor->PortDescriptors[i] & ++ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) == + (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) { + default_controls->output_index = i; + } +diff --git a/pcm_equal.c b/pcm_equal.c +index b0b4265..8d98371 100644 +--- a/pcm_equal.c ++++ b/pcm_equal.c +@@ -231,12 +231,14 @@ SND_PCM_PLUGIN_DEFINE_FUNC(equal) + } + + /* Make sure that the control file makes sense */ +- if(equal->klass->PortDescriptors[equal->control_data->input_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->input_index] & ++ (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) != + (LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; + } +- if(equal->klass->PortDescriptors[equal->control_data->output_index] != ++ if((equal->klass->PortDescriptors[equal->control_data->output_index] & ++ (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) != + (LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO)) { + SNDERR("Problem with control file %s.", controls); + return -1; +-- +2.1.4 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb new file mode 100644 index 00000000..3bed70e1 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "A real-time adjustable equalizer plugin for ALSA" +HOMEPAGE = "https://web.archive.org/web/20161105202833/http://thedigitalmachine.net/alsaequal.html" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad" + +DEPENDS = "alsa-lib" + +SRC_URI = " \ + https://launchpad.net/ubuntu/+archive/primary/+files/alsaequal_${PV}.orig.tar.bz2 \ + file://0001-Fix-asneeded.patch \ + file://0002-Fix-Eq-CAPS-plugin-name.patch \ + file://0003-Fix-mixer.patch \ +" + +SRC_URI[md5sum] = "d2edc7710c72cbf3ab297c414e35ebda" +SRC_URI[sha256sum] = "916e7d152added24617efc350142438a46099efe062bd8781d36dbf10b4e6ff0" + +S = "${WORKDIR}/alsaequal" + +EXTRA_OEMAKE = " \ + Q='' \ + CC='${CC}' \ + LD='${CC}' \ + LDFLAGS='${LDFLAGS} -shared -lasound' \ + CFLAGS='${CFLAGS} -I. -funroll-loops -ffast-math -fPIC -DPIC' \ + SND_PCM_LIBS='-lasound' \ + SND_CTL_LIBS='-lasound' \ +" + +do_compile() { + oe_runmake all +} + +do_install() { + install -Dm 0644 libasound_module_ctl_equal.so ${D}${libdir}/alsa-lib/libasound_module_ctl_equal.so + install -Dm 0644 libasound_module_pcm_equal.so ${D}${libdir}/alsa-lib/libasound_module_pcm_equal.so +} + +RDEPENDS_${PN} += " \ + alsa-utils \ + caps \ +" + +FILES_${PN} = "${libdir}/alsa-lib/" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch new file mode 100644 index 00000000..bd5e1b60 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch @@ -0,0 +1,50 @@ +From 0cc7362e171616dcfeb93c6e1576362761bf14e5 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 31 Jan 2018 18:37:16 -0800 +Subject: [PATCH] Do not use obsolete pow10f() function + +exp10 name is standardized in TS 18661-4 and its +available in glibc since version 2.1 +it has been now removed from glibc 2.27+ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + dsp/v4f_IIR2.h | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/dsp/v4f_IIR2.h b/dsp/v4f_IIR2.h +index a68ecf5..ebd1234 100644 +--- a/dsp/v4f_IIR2.h ++++ b/dsp/v4f_IIR2.h +@@ -33,7 +33,7 @@ + namespace DSP { + + #ifdef __APPLE__ +-inline float pow10f(float f) {return pow(10,f);} ++inline float exp10f(float f) {return __exp10f(f);} + #endif + + class RBJv4 +@@ -142,7 +142,7 @@ class IIR2v4 + /* A = pow (10, gain / 40) */ + v4f_t A = (v4f_t) {.025,.025,.025,.025}; + A *= gain; +- A = v4f_map (A); ++ A = v4f_map (A); + + RBJv4 p (f, Q); + +@@ -429,7 +429,7 @@ class IIR2v4Bank + /* A = pow (10, gain / 40) */ + v4f_t A = (v4f_t) {.025,.025,.025,.025}; + A *= gain[i]; +- A = v4f_map (A); ++ A = v4f_map (A); + + RBJv4 p (f[i], Q[i]); + +-- +2.16.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch new file mode 100644 index 00000000..1087b0e7 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch @@ -0,0 +1,46 @@ +From a5cea22294a9acb6eed955bd415f562a6cc36482 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 22 Mar 2017 11:54:23 -0700 +Subject: [PATCH] basic.h: Use c99 supported stdint types + +include stdint.h for getting the definitions for int types + +Signed-off-by: Khem Raj +--- + basics.h | 17 +++++++++-------- + 1 file changed, 9 insertions(+), 8 deletions(-) + +diff --git a/basics.h b/basics.h +index 643d96e..1dc2fa7 100644 +--- a/basics.h ++++ b/basics.h +@@ -46,17 +46,18 @@ + + #include + #include ++#include + + #include "ladspa.h" + +-typedef __int8_t int8; +-typedef __uint8_t uint8; +-typedef __int16_t int16; +-typedef __uint16_t uint16; +-typedef __int32_t int32; +-typedef __uint32_t uint32; +-typedef __int64_t int64; +-typedef __uint64_t uint64; ++typedef int8_t int8; ++typedef uint8_t uint8; ++typedef int16_t int16; ++typedef uint16_t uint16; ++typedef int32_t int32; ++typedef uint32_t uint32; ++typedef int64_t int64; ++typedef uint64_t uint64; + + #define MIN_GAIN 1e-6 /* -120 dB */ + /* smallest non-denormal 32 bit IEEE float is 1.18e-38 */ +-- +2.12.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch new file mode 100644 index 00000000..1a050af9 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch @@ -0,0 +1,32 @@ +From 1ea09653692efdd6443fb6770e8523bf6c9e49b9 Mon Sep 17 00:00:00 2001 +From: Fabio Berton +Date: Thu, 6 Oct 2016 11:54:07 -0300 +Subject: Avoid ambiguity in div invocation +Organization: O.S. Systems Software LTDA. + +Patch from: +https://anonscm.debian.org/cgit/pkg-multimedia/caps.git/commit/?id=9a99c225fb813ae69f146e3d90f7b47bdbd97708 + +Upstream-Status: Pending + +Signed-off-by: Fabio Berton +--- + AutoFilter.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/AutoFilter.cc b/AutoFilter.cc +index fc087d0..bd6b12f 100644 +--- a/AutoFilter.cc ++++ b/AutoFilter.cc +@@ -69,7 +69,7 @@ AutoFilter::activate() + void + AutoFilter::cycle (uint frames) + { +- div_t qr = div (frames, blocksize); ++ div_t qr = div ((int)frames, (int)blocksize); + int blocks = qr.quot; + if (qr.rem) ++blocks; + double over_blocks = 1./blocks; +-- +2.1.4 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch new file mode 100644 index 00000000..3abd3818 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch @@ -0,0 +1,18 @@ +Change the order of linker flags such that -shared is appearig after -pie/-fpie +this helps in building the package when secuiry flags are enabled + +-Khem + +Index: caps-0.9.24/Makefile +=================================================================== +--- caps-0.9.24.orig/Makefile ++++ caps-0.9.24/Makefile +@@ -14,7 +14,7 @@ STRIP = strip + -include defines.make + + CFLAGS += $(OPTS) $(_CFLAGS) +-LDFLAGS += $(_LDFLAGS) $(CFLAGS) ++LDFLAGS += $(CFLAGS) $(_LDFLAGS) + + PLUG = caps + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb new file mode 100644 index 00000000..fe864c49 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "The CAPS Audio Plugin Suite - LADSPA plugin suite" +HOMEPAGE = "http://quitte.de/dsp/caps.html" +LICENSE = "GPL-3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "http://quitte.de/dsp/${PN}_${PV}.tar.bz2 \ + file://Avoid-ambiguity-in-div-invocation.patch \ + file://0001-basic.h-Use-c99-supported-stdint-types.patch \ + file://append_ldflags.patch \ + file://0001-Do-not-use-obsolete-pow10f-function.patch \ + " + +SRC_URI[md5sum] = "c1d634038dcb54702306c0e30cb1c626" +SRC_URI[sha256sum] = "f746feba57af316b159f0169de5d78b4fd1064c2c0c8017cb5856b2f22e83f20" + +S = "${WORKDIR}/${PN}-${PV}" + +EXTRA_OEMAKE = " \ + CC='${CXX}' \ + CFLAGS='${CFLAGS} -ffast-math -funroll-loops -fPIC -DPIC' \ + ARCH='' \ +" +do_compile() { + oe_runmake all +} + +do_install() { + install -Dm 0644 caps.so ${D}${libdir}/ladspa/caps.so +} + +FILES_${PN} = "${libdir}/ladspa/" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb new file mode 100644 index 00000000..27fa0e58 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb @@ -0,0 +1,34 @@ +SUMMARY = "cdparanoia library" +DESCRIPTION = "library used to read audio CDs, which is able to perform \ +error corrections, hence the name paranoia." +HOMEPAGE = "https://www.xiph.org/" +SECTION = "multimedia" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=d370feaa1c9edcdbd29ca27ea3d2304d" + +SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${PV}.src.tgz \ + file://0001-Use-DESTDIR-in-install-Makefile-rule.patch \ + file://0002-interface-remove-C-reserved-keyword.patch \ + file://0003-Fix-missing-shared-object-LDFLAGS.patch \ + file://dont-use-internal-configs.patch \ + file://out-of-tree-build.patch \ + file://0001-check-for-null-buffer-before-trying-a-byteswap.patch \ + file://0002-Fix-printf-format-errors.patch \ + file://0001-utils-Use-c99-compiler-independent-types.patch \ + " +SRC_URI[md5sum] = "b304bbe8ab63373924a744eac9ebc652" +SRC_URI[sha256sum] = "005db45ef4ee017f5c32ec124f913a0546e77014266c6a1c50df902a55fe64df" + +# Uppercase letters are not allowed in the recipe name, thus the recipe can not be named cdparanoia-III and +# we need to add the path to the extracted sources explicitely: +S = "${WORKDIR}/cdparanoia-III-${PV}" + +# cdparanoia Makefile can not be used with several threads (because the static library target and the shared +# library target use object files which are compiled in the same directory, the object files are just removed +# between the compilation of those two targets) +PARALLEL_MAKE = "" + +EXTRA_OECONF = "CC='${CC}' CFLAGS='${CFLAGS}'" + +inherit autotools diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch new file mode 100644 index 00000000..7b083003 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-Use-DESTDIR-in-install-Makefile-rule.patch @@ -0,0 +1,70 @@ +From 97c06ae955b270851f4fd2396c715f9c76591f37 Mon Sep 17 00:00:00 2001 +From: Etienne Cordonnier +Date: Thu, 2 Apr 2015 10:15:08 +0200 +Subject: [PATCH] Use DESTDIR in "install" Makefile rule + +This change allows to perform installations in a sysroot folder, which is required e.g. by +the recipes inheriting yocto autotool class, and is an autotool standard: +make install DESTDIR=~/mysysroot + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Etienne Cordonnier +--- + Makefile.in | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 3d235ad..df544c7 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -63,28 +63,28 @@ slib: + cd paranoia && $(MAKE) slib + + install: +- $(INSTALL) -d -m 0755 $(BINDIR) +- $(INSTALL) -m 755 $(srcdir)/cdparanoia $(BINDIR) +- $(INSTALL) -d -m 0755 $(MANDIR) +- $(INSTALL) -d -m 0755 $(MANDIR)/man1 +- $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(MANDIR)/man1 +- $(INSTALL) -d -m 0755 $(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(INCLUDEDIR) +- $(INSTALL) -d -m 0755 $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/utils.h $(INCLUDEDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR) ++ $(INSTALL) -m 755 $(srcdir)/cdparanoia $(DESTDIR)$(BINDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(srcdir)/utils.h $(DESTDIR)$(INCLUDEDIR) + ln -fs libcdda_interface.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_interface.so.0 ++ $(DESTDIR)$(LIBDIR)/libcdda_interface.so.0 + ln -fs libcdda_interface.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_interface.so ++ $(DESTDIR)$(LIBDIR)/libcdda_interface.so + ln -fs libcdda_paranoia.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_paranoia.so.0 ++ $(DESTDIR)$(LIBDIR)/libcdda_paranoia.so.0 + ln -fs libcdda_paranoia.so.0.$(VERSION) \ +- $(LIBDIR)/libcdda_paranoia.so ++ $(DESTDIR)$(LIBDIR)/libcdda_paranoia.so + + cdparanoia: $(OFILES) $(LIBDEP) + $(LD) $(CFLAGS) $(LDFLAGS) $(OFILES) \ +-- +1.9.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch new file mode 100644 index 00000000..682cf6e0 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch @@ -0,0 +1,31 @@ +From c760c5d31f2412a5be5ac6896e6069d1cea08527 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 26 Jun 2017 22:31:45 -0700 +Subject: [PATCH 1/2] check for null buffer before trying a byteswap + +Author: Monty + +Patch from debian +http://sources.debian.net/src/cdparanoia/3.10.2%2Bdebian-11/debian/patches/04-endian.patch + +Signed-off-by: Khem Raj +--- + interface/interface.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/interface/interface.c b/interface/interface.c +index 526c2a9..763a0ea 100644 +--- a/interface/interface.c ++++ b/interface/interface.c +@@ -118,7 +118,7 @@ long cdda_read_timed(cdrom_drive *d, void *buffer, long beginsector, long sector + if(d->bigendianp==-1) /* not determined yet */ + d->bigendianp=data_bigendianp(d); + +- if(d->bigendianp!=bigendianp()){ ++ if(buffer && d->bigendianp!=bigendianp()){ + int i; + u_int16_t *p=(u_int16_t *)buffer; + long els=sectors*CD_FRAMESIZE_RAW/2; +-- +2.13.2 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch new file mode 100644 index 00000000..7699017f --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch @@ -0,0 +1,49 @@ +From 89071cbc8d3ab9a15503f397580b7590338e5e91 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 17:23:45 -0700 +Subject: [PATCH] utils: Use c99 compiler independent types + +Make it portable across different platforms + +Signed-off-by: Khem Raj +--- + utils.h | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +diff --git a/utils.h b/utils.h +index 10dce58..73bba92 100644 +--- a/utils.h ++++ b/utils.h +@@ -3,6 +3,7 @@ + #include + #include + #include ++#include + + extern long buffering_write(int outf, char *buffer, long num); + extern int buffering_close(int fd); +@@ -18,15 +19,15 @@ static inline int bigendianp(void){ + } + + static inline int32_t swap32(int32_t x){ +- return((((u_int32_t)x & 0x000000ffU) << 24) | +- (((u_int32_t)x & 0x0000ff00U) << 8) | +- (((u_int32_t)x & 0x00ff0000U) >> 8) | +- (((u_int32_t)x & 0xff000000U) >> 24)); ++ return((((uint32_t)x & 0x000000ffU) << 24) | ++ (((uint32_t)x & 0x0000ff00U) << 8) | ++ (((uint32_t)x & 0x00ff0000U) >> 8) | ++ (((uint32_t)x & 0xff000000U) >> 24)); + } + + static inline int16_t swap16(int16_t x){ +- return((((u_int16_t)x & 0x00ffU) << 8) | +- (((u_int16_t)x & 0xff00U) >> 8)); ++ return((((uint16_t)x & 0x00ffU) << 8) | ++ (((uint16_t)x & 0xff00U) >> 8)); + } + + #if BYTE_ORDER == LITTLE_ENDIAN +-- +2.13.2 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch new file mode 100644 index 00000000..024479ca --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch @@ -0,0 +1,32 @@ +From f4f81bdadb9515938b3b5d13707bd4b9322fd967 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 26 Jun 2017 22:37:13 -0700 +Subject: [PATCH 2/2] Fix printf format errors + +error: format not a string literal and no format arguments + +Signed-off-by: Khem Raj +--- + main.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/main.c b/main.c +index 664acac..d568fb1 100644 +--- a/main.c ++++ b/main.c +@@ -588,10 +588,10 @@ static void callback(long inpos, int function){ + buffer[aheadposition+19]='>'; + } + +- fprintf(stderr,buffer); ++ fprintf(stderr, "%s", buffer); + + if (logfile != NULL && function==-1) { +- fprintf(logfile,buffer+1); ++ fprintf(logfile, "%s", buffer+1); + fprintf(logfile,"\n\n"); + fflush(logfile); + } +-- +2.13.2 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch new file mode 100644 index 00000000..a5600a1c --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-interface-remove-C-reserved-keyword.patch @@ -0,0 +1,605 @@ +From 12ea28398f8e5d4a4a23c62d511fc4f53584e51d Mon Sep 17 00:00:00 2001 +From: Etienne Cordonnier +Date: Tue, 7 Apr 2015 11:07:56 +0200 +Subject: [PATCH] interface: remove C++ reserved keyword + +Because "private" was used in cdda_interface.h, this header file could not be +compiled in C++. + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Etienne Cordonnier +--- + interface/cdda_interface.h | 2 +- + interface/cooked_interface.c | 8 +-- + interface/interface.c | 8 +-- + interface/scan_devices.c | 22 ++++---- + interface/scsi_interface.c | 128 +++++++++++++++++++++---------------------- + interface/test_interface.c | 4 +- + 6 files changed, 86 insertions(+), 86 deletions(-) + +diff --git a/interface/cdda_interface.h b/interface/cdda_interface.h +index 8487cb7..b738825 100644 +--- a/interface/cdda_interface.h ++++ b/interface/cdda_interface.h +@@ -84,7 +84,7 @@ typedef struct cdrom_drive{ + int is_atapi; + int is_mmc; + +- cdda_private_data_t *private; ++ cdda_private_data_t *priv; /* private is a C++ reserved keyword */ + void *reserved; + unsigned char inqbytes[4]; + +diff --git a/interface/cooked_interface.c b/interface/cooked_interface.c +index de29055..ea9d0fc 100644 +--- a/interface/cooked_interface.c ++++ b/interface/cooked_interface.c +@@ -13,13 +13,13 @@ + static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->priv->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->priv->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; + } +diff --git a/interface/interface.c b/interface/interface.c +index e8a90cd..526c2a9 100644 +--- a/interface/interface.c ++++ b/interface/interface.c +@@ -39,9 +39,9 @@ int cdda_close(cdrom_drive *d){ + if(d->drive_model)free(d->drive_model); + if(d->cdda_fd!=-1)close(d->cdda_fd); + if(d->ioctl_fd!=-1 && d->ioctl_fd!=d->cdda_fd)close(d->ioctl_fd); +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->priv){ ++ if(d->priv->sg_hd)free(d->priv->sg_hd); ++ free(d->priv); + } + + free(d); +@@ -127,7 +127,7 @@ long cdda_read_timed(cdrom_drive *d, void *buffer, long beginsector, long sector + } + } + } +- if(ms)*ms=d->private->last_milliseconds; ++ if(ms)*ms=d->priv->last_milliseconds; + return(sectors); + } + +diff --git a/interface/scan_devices.c b/interface/scan_devices.c +index fc58110..5f6c4e3 100644 +--- a/interface/scan_devices.c ++++ b/interface/scan_devices.c +@@ -264,11 +264,11 @@ cdrom_drive *cdda_identify_cooked(const char *dev, int messagedest, + d->interface=COOKED_IOCTL; + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->priv->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",description); + return(d); +@@ -674,15 +674,15 @@ cdrom_drive *cdda_identify_scsi(const char *generic_device, + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; + d->messagedest = messagedest; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + { + /* goddamnit */ + struct timespec tv; +- d->private->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); ++ d->priv->clock=(clock_gettime(CLOCK_MONOTONIC,&tv)<0?CLOCK_REALTIME:CLOCK_MONOTONIC); + } + if(use_sgio){ + d->interface=SGIO_SCSI; +- d->private->sg_buffer=(unsigned char *)(d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); ++ d->priv->sg_buffer=(unsigned char *)(d->priv->sg_hd=malloc(MAX_BIG_BUFF_SIZE)); + g_fd=d->cdda_fd=dup(d->ioctl_fd); + }else{ + version=verify_SG_version(d,messagedest,messages); +@@ -696,8 +696,8 @@ cdrom_drive *cdda_identify_scsi(const char *generic_device, + } + + /* malloc our big buffer for scsi commands */ +- d->private->sg_hd=malloc(MAX_BIG_BUFF_SIZE); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->priv->sg_hd=malloc(MAX_BIG_BUFF_SIZE); ++ d->priv->sg_buffer=((unsigned char *)d->priv->sg_hd)+SG_OFF; + } + + { +@@ -772,9 +772,9 @@ cdda_identify_scsi_fail: + if(i_fd!=-1)close(i_fd); + if(g_fd!=-1)close(g_fd); + if(d){ +- if(d->private){ +- if(d->private->sg_hd)free(d->private->sg_hd); +- free(d->private); ++ if(d->priv){ ++ if(d->priv->sg_hd)free(d->priv->sg_hd); ++ free(d->priv); + } + free(d); + } +@@ -821,7 +821,7 @@ cdrom_drive *cdda_identify_test(const char *filename, int messagedest, + d->interface=TEST_INTERFACE; + d->bigendianp=-1; /* We don't know yet... */ + d->nsectors=-1; +- d->private=calloc(1,sizeof(*d->private)); ++ d->priv=calloc(1,sizeof(*d->priv)); + d->drive_model=copystring("File based test interface"); + idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",d->drive_model); + +diff --git a/interface/scsi_interface.c b/interface/scsi_interface.c +index adbb9bf..75d90d4 100644 +--- a/interface/scsi_interface.c ++++ b/interface/scsi_interface.c +@@ -15,13 +15,13 @@ + static int timed_ioctl(cdrom_drive *d, int fd, int command, void *arg){ + struct timespec tv1; + struct timespec tv2; +- int ret1=clock_gettime(d->private->clock,&tv1); ++ int ret1=clock_gettime(d->priv->clock,&tv1); + int ret2=ioctl(fd, command,arg); +- int ret3=clock_gettime(d->private->clock,&tv2); ++ int ret3=clock_gettime(d->priv->clock,&tv2); + if(ret1<0 || ret3<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000. + (tv2.tv_nsec-tv1.tv_nsec)/1000000.; + } + return ret2; + } +@@ -96,7 +96,7 @@ static void tweak_SG_buffer(cdrom_drive *d) { + static void clear_garbage(cdrom_drive *d){ + fd_set fdset; + struct timeval tv; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->priv->sg_hd; + int flag=0; + + /* clear out any possibly preexisting garbage */ +@@ -185,7 +185,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + struct timespec tv2; + int tret1,tret2; + int status = 0; +- struct sg_header *sg_hd=d->private->sg_hd; ++ struct sg_header *sg_hd=d->priv->sg_hd; + long writebytes=SG_OFF+cmd_len+in_size; + + /* generic scsi device services */ +@@ -195,7 +195,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + + memset(sg_hd,0,sizeof(sg_hd)); + memset(sense_buffer,0,SG_MAX_SENSE); +- memcpy(d->private->sg_buffer,cmd,cmd_len+in_size); ++ memcpy(d->priv->sg_buffer,cmd,cmd_len+in_size); + sg_hd->twelve_byte = cmd_len == 12; + sg_hd->result = 0; + sg_hd->reply_len = SG_OFF + out_size; +@@ -209,7 +209,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + tell if the command failed. Scared yet? */ + + if(bytecheck && out_size>in_size){ +- memset(d->private->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); ++ memset(d->priv->sg_buffer+cmd_len+in_size,bytefill,out_size-in_size); + /* the size does not remove cmd_len due to the way the kernel + driver copies buffers */ + writebytes+=(out_size-in_size); +@@ -243,7 +243,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + } + + sigprocmask (SIG_BLOCK, &(d->sigset), NULL ); +- tret1=clock_gettime(d->private->clock,&tv1); ++ tret1=clock_gettime(d->priv->clock,&tv1); + errno=0; + status = write(d->cdda_fd, sg_hd, writebytes ); + +@@ -289,7 +289,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + } + } + +- tret2=clock_gettime(d->private->clock,&tv2); ++ tret2=clock_gettime(d->priv->clock,&tv2); + errno=0; + status = read(d->cdda_fd, sg_hd, SG_OFF + out_size); + sigprocmask ( SIG_UNBLOCK, &(d->sigset), NULL ); +@@ -313,7 +313,7 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + if(bytecheck && in_size+cmd_lenprivate->sg_buffer[i]!=bytefill){ ++ if(d->priv->sg_buffer[i]!=bytefill){ + flag=1; + break; + } +@@ -326,9 +326,9 @@ static int sg2_handle_scsi_cmd(cdrom_drive *d, + + errno=0; + if(tret1<0 || tret2<0){ +- d->private->last_milliseconds=-1; ++ d->priv->last_milliseconds=-1; + }else{ +- d->private->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; ++ d->priv->last_milliseconds = (tv2.tv_sec-tv1.tv_sec)*1000 + (tv2.tv_nsec-tv1.tv_nsec)/1000000; + } + return(0); + } +@@ -347,7 +347,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + + memset(&hdr,0,sizeof(hdr)); + memset(sense,0,sizeof(sense)); +- memcpy(d->private->sg_buffer,cmd+cmd_len,in_size); ++ memcpy(d->priv->sg_buffer,cmd+cmd_len,in_size); + + hdr.cmdp = cmd; + hdr.cmd_len = cmd_len; +@@ -355,7 +355,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + hdr.mx_sb_len = SG_MAX_SENSE; + hdr.timeout = 50000; + hdr.interface_id = 'S'; +- hdr.dxferp = d->private->sg_buffer; ++ hdr.dxferp = d->priv->sg_buffer; + hdr.flags = SG_FLAG_DIRECT_IO; /* direct IO if we can get it */ + + /* scary buffer fill hack */ +@@ -400,7 +400,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + if(bytecheck && in_sizeprivate->sg_buffer[i]!=bytefill){ ++ if(d->priv->sg_buffer[i]!=bytefill){ + flag=1; + break; + } +@@ -412,7 +412,7 @@ static int sgio_handle_scsi_cmd(cdrom_drive *d, + } + + /* Can't rely on .duration because we can't be certain kernel has HZ set to something useful */ +- /* d->private->last_milliseconds = hdr.duration; */ ++ /* d->priv->last_milliseconds = hdr.duration; */ + + errno = 0; + return 0; +@@ -445,9 +445,9 @@ static int test_unit_ready(cdrom_drive *d){ + + handle_scsi_cmd(d, cmd, 6, 0, 56, 0,0, sense); + +- key = d->private->sg_buffer[2] & 0xf; +- ASC = d->private->sg_buffer[12]; +- ASCQ = d->private->sg_buffer[13]; ++ key = d->priv->sg_buffer[2] & 0xf; ++ ASC = d->priv->sg_buffer[12]; ++ ASCQ = d->priv->sg_buffer[13]; + + if(key == 2 && ASC == 4 && ASCQ == 1) return 0; + return 1; +@@ -492,7 +492,7 @@ static int mode_sense_atapi(cdrom_drive *d,int size,int page){ + if (handle_scsi_cmd (d, cmd, 10, 0, size+4,'\377',1,sense)) return(1); + + { +- unsigned char *b=d->private->sg_buffer; ++ unsigned char *b=d->priv->sg_buffer; + if(b[0])return(1); /* Handles only up to 256 bytes */ + if(b[6])return(1); /* Handles only up to 256 bytes */ + +@@ -604,8 +604,8 @@ static int mode_select(cdrom_drive *d,int density,int secsize){ + static unsigned int get_orig_sectorsize(cdrom_drive *d){ + if(mode_sense(d,12,0x01))return(-1); + +- d->orgdens = d->private->sg_buffer[4]; +- return(d->orgsize = ((int)(d->private->sg_buffer[10])<<8)+d->private->sg_buffer[11]); ++ d->orgdens = d->priv->sg_buffer[4]; ++ return(d->orgsize = ((int)(d->priv->sg_buffer[10])<<8)+d->priv->sg_buffer[11]); + } + + /* switch CDROM scsi drives to given sector size */ +@@ -664,8 +664,8 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-4); + } + +- first=d->private->sg_buffer[2]; +- last=d->private->sg_buffer[3]; ++ first=d->priv->sg_buffer[2]; ++ last=d->priv->sg_buffer[3]; + tracks=last-first+1; + + if (last > MAXTRK || first > MAXTRK || last<0 || first<0) { +@@ -683,7 +683,7 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-5); + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->priv->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; + d->disc_toc[i-first].bTrack=i; +@@ -704,7 +704,7 @@ static int scsi_read_toc (cdrom_drive *d){ + return(-2); + } + { +- scsi_TOC *toc=(scsi_TOC *)(d->private->sg_buffer+4); ++ scsi_TOC *toc=(scsi_TOC *)(d->priv->sg_buffer+4); + + d->disc_toc[i-first].bFlags=toc->bFlags; + d->disc_toc[i-first].bTrack=0xAA; +@@ -738,7 +738,7 @@ static int scsi_read_toc2 (cdrom_drive *d){ + } + + /* copy to our structure and convert start sector */ +- tracks = d->private->sg_buffer[1]; ++ tracks = d->priv->sg_buffer[1]; + if (tracks > MAXTRK) { + cderror(d,"003: CDROM reporting illegal number of tracks\n"); + return(-3); +@@ -754,33 +754,33 @@ static int scsi_read_toc2 (cdrom_drive *d){ + return(-5); + } + +- d->disc_toc[i].bFlags = d->private->sg_buffer[10]; ++ d->disc_toc[i].bFlags = d->priv->sg_buffer[10]; + d->disc_toc[i].bTrack = i + 1; + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- (((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5])); ++ (((signed char)(d->priv->sg_buffer[2])<<24) | ++ (d->priv->sg_buffer[3]<<16)| ++ (d->priv->sg_buffer[4]<<8)| ++ (d->priv->sg_buffer[5])); + } + + d->disc_toc[i].bFlags = 0; + d->disc_toc[i].bTrack = i + 1; +- memcpy (&foo, d->private->sg_buffer+2, 4); +- memcpy (&bar, d->private->sg_buffer+6, 4); ++ memcpy (&foo, d->priv->sg_buffer+2, 4); ++ memcpy (&bar, d->priv->sg_buffer+6, 4); + d->disc_toc[i].dwStartSector = d->adjust_ssize * (be32_to_cpu(foo) + + be32_to_cpu(bar)); + + d->disc_toc[i].dwStartSector= d->adjust_ssize * +- ((((signed char)(d->private->sg_buffer[2])<<24) | +- (d->private->sg_buffer[3]<<16)| +- (d->private->sg_buffer[4]<<8)| +- (d->private->sg_buffer[5]))+ ++ ((((signed char)(d->priv->sg_buffer[2])<<24) | ++ (d->priv->sg_buffer[3]<<16)| ++ (d->priv->sg_buffer[4]<<8)| ++ (d->priv->sg_buffer[5]))+ + +- ((((signed char)(d->private->sg_buffer[6])<<24) | +- (d->private->sg_buffer[7]<<16)| +- (d->private->sg_buffer[8]<<8)| +- (d->private->sg_buffer[9])))); ++ ((((signed char)(d->priv->sg_buffer[6])<<24) | ++ (d->priv->sg_buffer[7]<<16)| ++ (d->priv->sg_buffer[8]<<8)| ++ (d->priv->sg_buffer[9])))); + + + d->cd_extra = FixupTOC(d,tracks+1); +@@ -817,7 +817,7 @@ static int i_read_28 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -836,7 +836,7 @@ static int i_read_A8 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -854,7 +854,7 @@ static int i_read_D4_10 (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -872,7 +872,7 @@ static int i_read_D4_12 (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -890,7 +890,7 @@ static int i_read_D5 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,10,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -908,7 +908,7 @@ static int i_read_D8 (cdrom_drive *d, void *p, long begin, long sectors, unsigne + cmd[9] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -922,7 +922,7 @@ static int i_read_mmc (cdrom_drive *d, void *p, long begin, long sectors, unsign + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -936,7 +936,7 @@ static int i_read_mmcB (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -950,7 +950,7 @@ static int i_read_mmc2 (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -964,7 +964,7 @@ static int i_read_mmc2B (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -978,7 +978,7 @@ static int i_read_mmc3 (cdrom_drive *d, void *p, long begin, long sectors, unsig + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -992,7 +992,7 @@ static int i_read_mmc3B (cdrom_drive *d, void *p, long begin, long sectors, unsi + cmd[8] = sectors; + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1026,7 +1026,7 @@ static int i_read_msf (cdrom_drive *d, void *p, long begin, long sectors, unsign + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1039,7 +1039,7 @@ static int i_read_msf2 (cdrom_drive *d, void *p, long begin, long sectors, unsig + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1052,7 +1052,7 @@ static int i_read_msf3 (cdrom_drive *d, void *p, long begin, long sectors, unsig + + if((ret=handle_scsi_cmd(d,cmd,12,0,sectors * CD_FRAMESIZE_RAW,'\177',1,sense))) + return(ret); +- if(p)memcpy(p,d->private->sg_buffer,sectors*CD_FRAMESIZE_RAW); ++ if(p)memcpy(p,d->priv->sg_buffer,sectors*CD_FRAMESIZE_RAW); + return(0); + } + +@@ -1275,7 +1275,7 @@ long scsi_read_msf3 (cdrom_drive *d, void *p, long begin, + static int count_2352_bytes(cdrom_drive *d){ + long i; + for(i=2351;i>=0;i--) +- if(d->private->sg_buffer[i]!=(unsigned char)'\177') ++ if(d->priv->sg_buffer[i]!=(unsigned char)'\177') + return(((i+3)>>2)<<2); + + return(0); +@@ -1284,7 +1284,7 @@ static int count_2352_bytes(cdrom_drive *d){ + static int verify_nonzero(cdrom_drive *d){ + long i,flag=0; + for(i=0;i<2352;i++) +- if(d->private->sg_buffer[i]!=0){ ++ if(d->priv->sg_buffer[i]!=0){ + flag=1; + break; + } +@@ -1625,7 +1625,7 @@ static int check_mmc(cdrom_drive *d){ + d->is_mmc=0; + if(mode_sense(d,22,0x2A)==0){ + +- b=d->private->sg_buffer; ++ b=d->priv->sg_buffer; + b+=b[3]+4; + + if((b[0]&0x3F)==0x2A){ +@@ -1673,7 +1673,7 @@ unsigned char *scsi_inquiry(cdrom_drive *d){ + cderror(d,"008: Unable to identify CDROM model\n"); + return(NULL); + } +- return (d->private->sg_buffer); ++ return (d->priv->sg_buffer); + } + + int scsi_init_drive(cdrom_drive *d){ +@@ -1742,8 +1742,8 @@ int scsi_init_drive(cdrom_drive *d){ + check_cache(d); + + d->error_retry=1; +- d->private->sg_hd=realloc(d->private->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); +- d->private->sg_buffer=((unsigned char *)d->private->sg_hd)+SG_OFF; ++ d->priv->sg_hd=realloc(d->priv->sg_hd,d->nsectors*CD_FRAMESIZE_RAW + SG_OFF + 128); ++ d->priv->sg_buffer=((unsigned char *)d->priv->sg_hd)+SG_OFF; + d->report_all=1; + return(0); + } +diff --git a/interface/test_interface.c b/interface/test_interface.c +index 11bec25..e1cefaa 100644 +--- a/interface/test_interface.c ++++ b/interface/test_interface.c +@@ -66,9 +66,9 @@ static long test_read(cdrom_drive *d, void *p, long begin, long sectors){ + if(!fd)fd=fdopen(d->cdda_fd,"r"); + + if(beginprivate->last_milliseconds=20; ++ d->priv->last_milliseconds=20; + else +- d->private->last_milliseconds=sectors; ++ d->priv->last_milliseconds=sectors; + + #ifdef CDDA_TEST_UNDERRUN + sectors-=1; +-- +1.9.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0003-Fix-missing-shared-object-LDFLAGS.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0003-Fix-missing-shared-object-LDFLAGS.patch new file mode 100644 index 00000000..5298a3dc --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/0003-Fix-missing-shared-object-LDFLAGS.patch @@ -0,0 +1,42 @@ +From c0b77aeb2127da821ae1c03c2f98aaf4db65277d Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Sat, 10 Sep 2016 21:15:18 +0200 +Subject: [PATCH] Fix missing shared object LDFLAGS + +Upstream-Status: Inappropriate (the upstream project is dead) + +Signed-off-by: Carlos Rafael Giani +--- + interface/Makefile.in | 2 +- + paranoia/Makefile.in | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/interface/Makefile.in b/interface/Makefile.in +index 40c6098..020bf2a 100644 +--- a/interface/Makefile.in ++++ b/interface/Makefile.in +@@ -46,7 +46,7 @@ libcdda_interface.a: $(OFILES) + $(RANLIB) libcdda_interface.a + + libcdda_interface.so: $(OFILES) +- $(CC) -fpic -shared -o libcdda_interface.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_interface.so.0 $(OFILES) $(LIBS) ++ $(CC) -fpic -shared -o libcdda_interface.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_interface.so.0 $(LDFLAGS) $(OFILES) $(LIBS) + [ -e libcdda_interface.so.0 ] || ln -s libcdda_interface.so.0.$(VERSION) libcdda_interface.so.0 + [ -e libcdda_interface.so ] || ln -s libcdda_interface.so.0.$(VERSION) libcdda_interface.so + +diff --git a/paranoia/Makefile.in b/paranoia/Makefile.in +index 89d0328..ffb4e70 100644 +--- a/paranoia/Makefile.in ++++ b/paranoia/Makefile.in +@@ -44,7 +44,7 @@ libcdda_paranoia.a: $(OFILES) + $(RANLIB) libcdda_paranoia.a + + libcdda_paranoia.so: $(OFILES) +- $(CC) -fpic -shared -o libcdda_paranoia.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_paranoia.so.0 $(OFILES) -L ../interface -lcdda_interface ++ $(CC) -fpic -shared -o libcdda_paranoia.so.0.$(VERSION) -Wl,-soname -Wl,libcdda_paranoia.so.0 $(LDFLAGS) $(OFILES) -L ../interface -lcdda_interface + [ -e libcdda_paranoia.so.0 ] || ln -s libcdda_paranoia.so.0.$(VERSION) libcdda_paranoia.so.0 + [ -e libcdda_paranoia.so ] || ln -s libcdda_paranoia.so.0.$(VERSION) libcdda_paranoia.so + +-- +2.7.4 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch new file mode 100644 index 00000000..9b268b7e --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch @@ -0,0 +1,30 @@ +Index: cdparanoia-III-10.2/configure.in +=================================================================== +--- cdparanoia-III-10.2.orig/configure.in ++++ cdparanoia-III-10.2/configure.in +@@ -1,13 +1,8 @@ + AC_INIT(interface/interface.c) + +-cp $srcdir/configure.guess $srcdir/config.guess +-cp $srcdir/configure.sub $srcdir/config.sub +- + AC_CANONICAL_HOST + +-if test -z "$CC"; then +- AC_PROG_CC +-fi ++AC_PROG_CC + AC_PROG_RANLIB + AC_CHECK_PROG(AR,ar,ar) + AC_CHECK_PROG(INSTALL,install,install) +@@ -44,8 +39,8 @@ case 4 in + $ac_cv_sizeof_long) SIZE32="long";; + esac + +-AC_CHECK_TYPE(int16_t,SIZE16="int16_t",,) +-AC_CHECK_TYPE(int32_t,SIZE32="size32_t",,) ++AC_CHECK_TYPES([int16_t], [SIZE16="int16_t"], [], [[#include ]]) ++AC_CHECK_TYPES([int32_t], [SIZE32="int32_t"], [], [[#include ]]) + + if test -z "$SIZE16"; then + AC_MSG_ERROR(No 16 bit type found on this platform!) diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch new file mode 100644 index 00000000..06ee8209 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch @@ -0,0 +1,42 @@ +Index: cdparanoia-III-10.2/Makefile.in +=================================================================== +--- cdparanoia-III-10.2.orig/Makefile.in ++++ cdparanoia-III-10.2/Makefile.in +@@ -6,6 +6,8 @@ + VERSION=10.2 + VPATH=@srcdir@ + srcdir=@srcdir@ ++top_srcdir=@top_srcdir@ ++top_builddir=@top_builddir@ + + @SET_MAKE@ + FLAGS=@TYPESIZES@ @CFLAGS@ +@@ -64,19 +66,19 @@ slib: + + install: + $(INSTALL) -d -m 0755 $(DESTDIR)$(BINDIR) +- $(INSTALL) -m 755 $(srcdir)/cdparanoia $(DESTDIR)$(BINDIR) ++ $(INSTALL) -m 755 $(top_builddir)/cdparanoia $(DESTDIR)$(BINDIR) + $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR) + $(INSTALL) -d -m 0755 $(DESTDIR)$(MANDIR)/man1 +- $(INSTALL) -m 0644 $(srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 ++ $(INSTALL) -m 0644 $(top_srcdir)/cdparanoia.1 $(DESTDIR)$(MANDIR)/man1 + $(INSTALL) -d -m 0755 $(DESTDIR)$(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/cdda_paranoia.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(top_srcdir)/paranoia/cdda_paranoia.h $(DESTDIR)$(INCLUDEDIR) + $(INSTALL) -d -m 0755 $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/paranoia/libcdda_paranoia.a $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/cdda_interface.h $(DESTDIR)$(INCLUDEDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/interface/libcdda_interface.a $(DESTDIR)$(LIBDIR) +- $(INSTALL) -m 0644 $(srcdir)/utils.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/paranoia/libcdda_paranoia.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/paranoia/libcdda_paranoia.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_srcdir)/interface/cdda_interface.h $(DESTDIR)$(INCLUDEDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/interface/libcdda_interface.so.0.$(VERSION) $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_builddir)/interface/libcdda_interface.a $(DESTDIR)$(LIBDIR) ++ $(INSTALL) -m 0644 $(top_srcdir)/utils.h $(DESTDIR)$(INCLUDEDIR) + ln -fs libcdda_interface.so.0.$(VERSION) \ + $(DESTDIR)$(LIBDIR)/libcdda_interface.so.0 + ln -fs libcdda_interface.so.0.$(VERSION) \ diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb new file mode 100644 index 00000000..45b53c11 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "DTS Coherent Acoustics decoder with support for HD extensions" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c" + +SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158" +SRC_URI = "git://github.com/foo86/dcadec.git;protocol=http" + +S = "${WORKDIR}/git" + +inherit lib_package + +EXTRA_OEMAKE = "CONFIG_SHARED=1" + +do_install() { + oe_runmake install DESTDIR="${D}" PREFIX="${prefix}" +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb new file mode 100644 index 00000000..f23bc6ca --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "D-Bus connector for dLeyna libraries" +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://src/connector-dbus.c;endline=21;md5=0a1695cef53beefc36651de439f643b5" + +DEPENDS = "glib-2.0 dbus dleyna-core" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "de913c35e5c936e2d40ddbd276ee902cd802bd3a" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} += "${libdir}/dleyna-1.0/connectors/*.so" +FILES_${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la" +FILES_${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb new file mode 100644 index 00000000..a3b27937 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "Utility functions for dLeyna libraries" +DESCRIPTION = "dleyna-core is a library of utility functions that are used \ +by the higher level dLeyna libraries that communicate with DLNA devices, \ +e.g., dleyna-server. In brief, it provides APIs for logging, error, settings \ +and task management and an IPC asbstraction API." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/core/core.c;endline=21;md5=139cba0c634344abc9456694fbb5083b" + +DEPENDS = "glib-2.0 gupnp" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "27a3786ec013f64fd58243410a60798f824acec3" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb new file mode 100644 index 00000000..b30aee9f --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "DLNA renderer libraries" +DESCRIPTION = "dleyna-renderer is a library for implementing services \ +that allow clients to discover and manipulate Digital Media Renderers. \ +An implementation of such a service for linux is also included." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/renderer/server.c;endline=21;md5=f51acd4757fb6a779a87122c43cf1346" + +DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core" +RDEPENDS_${PN} = "dleyna-connector-dbus" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +CFLAGS += " -I${S}" + +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dev += "${libdir}/${PN}/*.so" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb new file mode 100644 index 00000000..a8e5406d --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "DLNA server libraries" +DESCRIPTION = "dleyna-server is a library for implementing services that \ +allow clients to discover, browse and manipulate Digital Media Servers. \ +An implementation of such a service for linux is also included." +HOMEPAGE = "https://01.org/dleyna/" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ + file://libdleyna/server/server.c;endline=22;md5=437455d8aeff69ebd0996a76c67397bb" + +DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core" +RDEPENDS_${PN} = "dleyna-connector-dbus" + +SRC_URI = "git://github.com/01org/${BPN}.git" +SRCREV = "776950d5d96ac9dbf5c5c47bde8ac06f50a3cf46" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +FILES_${PN} += "${datadir}/dbus-1" +FILES_${PN}-dev += "${libdir}/${PN}/*.so" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb new file mode 100644 index 00000000..d36f2f48 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb @@ -0,0 +1,30 @@ +SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)" +SECTION = "libs" +LICENSE = "LGPLv2+" +HOMEPAGE = "http://www.audiocoding.com/faac.html" +LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ + file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0" + +LICENSE_FLAGS = "commercial" + +inherit autotools + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/faac/${BP}.tar.gz \ + file://0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch \ +" + +SRC_URI[md5sum] = "78603720f655180059d6970c582a3005" +SRC_URI[sha256sum] = "8cc7b03ceb2722223a6457e95d4c994731d80214a03ba33d1af76ba53f4b3197" + +EXTRA_OECONF += "--without-mp4v2" + +PACKAGES =+ "lib${BPN} lib${BPN}-dev" + +FILES_${PN} = " ${bindir}/faac " +FILES_lib${PN} = " ${libdir}/*.so.*" +FILES_lib${PN}-dev = " \ + ${includedir} \ + ${libdir}/*.so \ + ${libdir}/*.la \ +" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch new file mode 100644 index 00000000..d845ddf5 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch @@ -0,0 +1,28 @@ +From 46cc9298c38b9dd735fec3f39aa2d6e56a362410 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 28 Mar 2017 21:33:36 -0700 +Subject: [PATCH 2/2] mp4v2: Define __STRING if cdefs.h does not exist + +Signed-off-by: Khem Raj +--- + common/mp4v2/mp4util.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/common/mp4v2/mp4util.h b/common/mp4v2/mp4util.h +index 1f9cb64..1e7aced 100644 +--- a/common/mp4v2/mp4util.h ++++ b/common/mp4v2/mp4util.h +@@ -23,6 +23,10 @@ + #define __MP4_UTIL_INCLUDED__ + #include + ++#ifndef __STRING ++#define __STRING(x) #x ++#endif ++ + #ifndef ASSERT + #define ASSERT(expr) \ + if (!(expr)) { \ +-- +2.12.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch new file mode 100644 index 00000000..0e1846e3 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch @@ -0,0 +1,76 @@ +From 2de7e128fbdf528716b500cf27ed9a4358c931c9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 24 Nov 2017 00:05:35 +0100 +Subject: [PATCH 2/2] Use ARM-NEON accelaration for float-multithreaded setups +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + src/rvoice/fluid_rvoice_mixer.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/src/rvoice/fluid_rvoice_mixer.c b/src/rvoice/fluid_rvoice_mixer.c +index 9616518..dbf8057 100644 +--- a/src/rvoice/fluid_rvoice_mixer.c ++++ b/src/rvoice/fluid_rvoice_mixer.c +@@ -27,6 +27,10 @@ + #include "fluid_ladspa.h" + #include "fluid_synth.h" + ++#if defined(__ARM_NEON__) ++#include "arm_neon.h" ++#endif ++ + + #define ENABLE_MIXER_THREADS 1 + +@@ -794,20 +798,42 @@ fluid_mixer_buffers_mix(fluid_mixer_buffers_t* dest, fluid_mixer_buffers_t* src) + if (minbuf > src->buf_count) + minbuf = src->buf_count; + for (i=0; i < minbuf; i++) { ++#if defined(__ARM_NEON__) && defined(WITH_FLOAT) ++ for (j=0; j < scount; j+=4) { ++ float32x4_t vleft = vld1q_f32(&dest->left_buf[i][j]); ++ float32x4_t vright = vld1q_f32(&dest->right_buf[i][j]); ++ vleft = vaddq_f32(vleft, vld1q_f32(&src->left_buf[i][j])); ++ vright = vaddq_f32(vright, vld1q_f32(&src->right_buf[i][j])); ++ vst1q_f32(&dest->left_buf[i][j], vleft); ++ vst1q_f32(&dest->right_buf[i][j], vright); ++ } ++#else + for (j=0; j < scount; j++) { + dest->left_buf[i][j] += src->left_buf[i][j]; + dest->right_buf[i][j] += src->right_buf[i][j]; + } ++#endif + } + + minbuf = dest->fx_buf_count; + if (minbuf > src->fx_buf_count) + minbuf = src->fx_buf_count; + for (i=0; i < minbuf; i++) { ++#if defined(__ARM_NEON__) && defined(WITH_FLOAT) ++ for (j=0; j < scount; j+=4) { ++ float32x4_t vleft = vld1q_f32(&dest->fx_left_buf[i][j]); ++ float32x4_t vright = vld1q_f32(&dest->fx_right_buf[i][j]); ++ vleft = vaddq_f32(vleft, vld1q_f32(&src->fx_left_buf[i][j])); ++ vright = vaddq_f32(vright, vld1q_f32(&src->fx_right_buf[i][j])); ++ vst1q_f32(&dest->fx_left_buf[i][j], vleft); ++ vst1q_f32(&dest->fx_right_buf[i][j], vright); ++ } ++#else + for (j=0; j < scount; j++) { + dest->fx_left_buf[i][j] += src->fx_left_buf[i][j]; + dest->fx_right_buf[i][j] += src->fx_right_buf[i][j]; + } ++#endif + } + } + +-- +2.9.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb new file mode 100644 index 00000000..4df31027 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb @@ -0,0 +1,24 @@ +SUMMARY = "Fluidsynth is a software synthesizer" +HOMEPAGE = "http://www.fluidsynth.org/" +SECTION = "libs/multimedia" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594" + +DEPENDS = "alsa-lib ncurses glib-2.0" + +SRC_URI = " \ + git://github.com/FluidSynth/fluidsynth.git;branch=1.1.x \ + file://0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \ +" +SRCREV = "f65c6ba25fb2c7e37c89fc6a4afc5aa645e208c2" +S = "${WORKDIR}/git" + +inherit cmake pkgconfig lib_package + +EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}" +PACKAGECONFIG[sndfile] = "-Denable-libsndfile-support=ON,-Denable-libsndfile-support=OFF,libsndfile1" +PACKAGECONFIG[jack] = "-Denable-jack-support=ON,-Denable-jack-support=OFF,jack" +PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio" +PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service new file mode 100644 index 00000000..1b5a3ad3 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service @@ -0,0 +1,13 @@ +[Unit] +Description=Start Gerbera, an UPnP media server +After=multi-user.target network-online.target +Wants=network-online.target + +[Service] +ExecStart=/usr/bin/gerbera +Environment='HOME=/root' +Type=simple +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb new file mode 100644 index 00000000..f763cf1e --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb @@ -0,0 +1,32 @@ +Description = "Gerbera - An UPnP media server" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8" + +SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \ + file://gerbera.service \ +" + +PV = "1.0+git${SRCPV}" +SRCREV = "4435b165d121195aefd67d0287f7f9349e181d45" + +S = "${WORKDIR}/git" + +DEPENDS = "expat zlib curl libupnp e2fsprogs sqlite3 " + +SYSTEMD_SERVICE_${PN} = "gerbera.service" + +inherit cmake systemd + +PACKAGECONFIG = "" +PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib" + +EXTRA_OECMAKE = "-DWITH_JS=FALSE -DWITH_MAGIC=FALSE -DWITH_EXIF=FALSE -DLIBUUID_INCLUDE_DIRS=${STAGING_INCDIR} -DLIBUUID_LIBRARIES=-luuid" + +do_install_append() { + install -d ${D}/root/.config/ + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/gerbera.service ${D}${systemd_system_unitdir}/ +} + +FILES_${PN} += "/root/.config/" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb new file mode 100644 index 00000000..1e2cd2a4 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb @@ -0,0 +1,14 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo closed-format mp3 GStreamer plug-in" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2" +LICENSE_FLAGS = "commercial" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF += "${GSTREAMER_DEBUG} --with-gstreamer-api=0.10" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "adf0390f3416bb72f91c358528be0c38" +SRC_URI[sha256sum] = "dae0d0559a4e159c0dd92b7e18de059a5783f8d038904c7de4ca6393f7d55c7d" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb new file mode 100644 index 00000000..7bba41a3 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb @@ -0,0 +1,12 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo MPEG Transport Stream and Program Stream demuxer for GStreamer" +LICENSE = "MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \ + file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd" +LICENSE_FLAGS = "commercial" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "7c4fb993f80b9ae631b11897733f0970" +SRC_URI[sha256sum] = "df04c91cc8e5d9a892c2492ed989974b4547beaa2a3647649e85113317897424" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc new file mode 100644 index 00000000..7a77d624 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc @@ -0,0 +1,14 @@ +SUMMARY = "Fluendo closed-format GStreamer plug-in" +SECTION = "multimedia" +HOMEPAGE = "https://core.fluendo.com/gstreamer/trac/wiki" +DEPENDS = "gstreamer gst-plugins-base zlib" + +inherit autotools pkgconfig + +SRC_URI = "http://core.fluendo.com/gstreamer/src/${BPN}/${BPN}-${PV}.tar.bz2" + +FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" + +EXTRA_OECONF = "--disable-valgrind" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb new file mode 100644 index 00000000..88f1abf6 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb @@ -0,0 +1,73 @@ +SUMMARY = "GStreamer package groups" +LICENSE = "MIT" + +COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}" +DEPENDS_UGLY="${@'gst-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS_BAD="${@'gst-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS = "gstreamer gst-plugins-base gst-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}" + +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + + +PR = "r13" + +PACKAGES = "\ + gst-meta-base \ + gst-meta-x11-base \ + gst-meta-audio \ + gst-meta-debug \ + gst-meta-video" + +ALLOW_EMPTY_gst-meta-base = "1" +ALLOW_EMPTY_gst-meta-x11-base = "1" +ALLOW_EMPTY_gst-meta-audio = "1" +ALLOW_EMPTY_gst-meta-debug = "1" +ALLOW_EMPTY_gst-meta-video = "1" + +RDEPENDS_gst-meta-base = "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \ + gstreamer \ + gst-plugins-base-playbin \ + gst-plugins-base-decodebin \ + gst-plugins-base-decodebin2 \ + gst-plugins-base-gio \ + gst-plugins-base-alsa \ + gst-plugins-base-volume \ + gst-plugins-base-audioconvert \ + gst-plugins-base-audioresample \ + gst-plugins-base-typefindfunctions \ + gst-plugins-base-videoscale \ + gst-plugins-base-ffmpegcolorspace \ + gst-plugins-good-autodetect \ + gst-plugins-good-souphttpsrc" + +RRECOMMENDS_gst-meta-x11-base = "\ + gst-plugins-base-ximagesink \ + gst-plugins-base-xvimagesink" + +RDEPENDS_gst-meta-audio = "\ + gst-meta-base \ + gst-plugins-base-vorbis \ + gst-plugins-base-ogg \ + gst-plugins-good-wavparse \ + gst-plugins-good-flac \ + ${COMMERCIAL_AUDIO_PLUGINS}" + + +RDEPENDS_gst-meta-debug = "\ + gst-meta-base \ + gst-plugins-good-debug \ + gst-plugins-base-audiotestsrc \ + gst-plugins-base-videotestsrc" + + +RDEPENDS_gst-meta-video = "\ + gst-meta-base \ + gst-plugins-good-avi \ + gst-plugins-good-matroska \ + gst-plugins-base-theora \ + ${COMMERCIAL_VIDEO_PLUGINS}" + +RRECOMMENDS_gst-meta-video = "\ + gst-meta-audio" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch new file mode 100644 index 00000000..57a63b5a --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch @@ -0,0 +1,18 @@ +Upstream-Status: Pending + +Signed-off-by: Saul Wold + +Index: gst-openmax-0.10.1/omx/gstomx.c +=================================================================== +--- gst-openmax-0.10.1.orig/omx/gstomx.c 2010-09-30 18:00:24.000000000 -0700 ++++ gst-openmax-0.10.1/omx/gstomx.c 2011-05-17 23:08:08.794535872 -0700 +@@ -238,7 +238,8 @@ + const gchar *element_name = gst_structure_nth_field_name (element_table, i); + GstStructure *element = get_element_entry (element_name); + const gchar *type_name, *parent_type_name; +- const gchar *component_name, *component_role, *library_name; ++ const gchar *component_name, *library_name; ++ const gchar __attribute__((__unused__)) *component_role; + GType type; + gint rank; + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch new file mode 100644 index 00000000..5965bbaf --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch @@ -0,0 +1,46 @@ +Rename static functions that use GLib naming conventions as one of them +(g_ptr_array_insert) has now been added to GLib. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/omx/gstomx_util.c b/omx/gstomx_util.c +index 423e441..579dbf5 100644 +--- a/omx/gstomx_util.c ++++ b/omx/gstomx_util.c +@@ -85,7 +85,7 @@ static gboolean initialized; + */ + + static void +-g_ptr_array_clear (GPtrArray * array) ++omx_g_ptr_array_clear (GPtrArray * array) + { + guint index; + for (index = 0; index < array->len; index++) +@@ -93,7 +93,7 @@ g_ptr_array_clear (GPtrArray * array) + } + + static void +-g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) ++omx_g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) + { + if (index + 1 > array->len) { + g_ptr_array_set_size (array, index + 1); +@@ -394,7 +394,7 @@ g_omx_core_unload (GOmxCore * core) + } + + core_for_each_port (core, g_omx_port_free); +- g_ptr_array_clear (core->ports); ++ omx_g_ptr_array_clear (core->ports); + } + + static inline GOmxPort * +@@ -418,7 +418,7 @@ g_omx_core_new_port (GOmxCore * core, guint index) + } + + port = g_omx_port_new (core, index); +- g_ptr_array_insert (core->ports, index, port); ++ omx_g_ptr_array_insert (core->ports, index, port); + + return port; + } diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb new file mode 100644 index 00000000..2e015795 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "GStreamer plug-in for communication with OpenMAX IL components" +DESCRIPTION = "GstOpenMAX is a GStreamer plug-in that allows \ +communication with OpenMAX Integration Layer (IL) components. OpenMAX \ +IL is an industry standard that provides an abstraction layer for \ +computer graphics, video, and sound routines." +HOMEPAGE = "http://freedesktop.org/wiki/GstOpenMAX" +DEPENDS = "gstreamer" +RDEPENDS_${PN} = "libomxil" +LICENSE = "LGPLv2.1" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://util/sem.h;beginline=1;endline=20;md5=accce5550d5583b839b441a0623f09fc" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/gst-openmax-${PV}.tar.bz2 \ + file://gcc_4.6.patch \ + file://ptr-array.patch \ + " + +inherit autotools pkgconfig + +# Tell configure that this isn't a development snapshot so we don't want +# -Werror (hopefully fixed in 0.10.2) +export GST_CVS="no" + +EXTRA_OECONF += "--disable-valgrind" + +PR = "r4" + +FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/libgstomx.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/" + +SRC_URI[md5sum] = "4d0370bfe99dea20918c84347abadb4e" +SRC_URI[sha256sum] = "9074d5a0591995133d19cfb15144f19664f902c1623f996595695cf2c2070e1f" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch new file mode 100644 index 00000000..235acda8 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch @@ -0,0 +1,36 @@ +Description: Fix buffer overflow in mp4 parsing +Author: Ralph Giles +--- +Backport patch from debian to fix CVE-2015-0797. +https://sources.debian.net/data/main/g/gst-plugins-bad0.10/0.10.23-7.1+deb7u2/debian/patches/buffer-overflow-mp4.patch + +Upstream-Status: Backport + +Signed-off-by: Kai Kang +--- +--- gst-plugins-bad0.10-0.10.23.orig/gst/videoparsers/gsth264parse.c ++++ gst-plugins-bad0.10-0.10.23/gst/videoparsers/gsth264parse.c +@@ -384,6 +384,11 @@ gst_h264_parse_wrap_nal (GstH264Parse * + + GST_DEBUG_OBJECT (h264parse, "nal length %d", size); + ++ if (size > G_MAXUINT32 - nl) { ++ GST_ELEMENT_ERROR (h264parse, STREAM, FAILED, (NULL), ++ ("overflow in nal size")); ++ return NULL; ++ } + buf = gst_buffer_new_and_alloc (size + nl + 4); + if (format == GST_H264_PARSE_FORMAT_AVC) { + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), size << (32 - 8 * nl)); +@@ -452,6 +457,11 @@ gst_h264_parse_process_nal (GstH264Parse + GST_DEBUG_OBJECT (h264parse, "not processing nal size %u", nalu->size); + return; + } ++ if (G_UNLIKELY (nalu->size > 20 * 1024 * 1024)) { ++ GST_DEBUG_OBJECT (h264parse, "not processing nal size %u (too big)", ++ nalu->size); ++ return; ++ } + + /* we have a peek as well */ + nal_type = nalu->type; diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb new file mode 100644 index 00000000..38fccc8d --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb @@ -0,0 +1,61 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=629b0c7a665d155a6677778f4460ec06 \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c" + +DEPENDS += "gst-plugins-base" + +PR = "r4" + +SRC_URI += "file://buffer-overflow-mp4.patch" + +inherit gettext gsettings + +EXTRA_OECONF += "--disable-experimental \ + --disable-sdl --disable-cdaudio --disable-directfb \ + --disable-vdpau --disable-apexsink" + +PACKAGECONFIG ??= "bzip curl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'rsvg', '', d)}" + +PACKAGECONFIG[bzip] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg," +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" +PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng" +PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper" +PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" +PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx" +PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" +PACKAGECONFIG[schro] = "--enable-schro,--disable-schro,schroedinger" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread" +PACKAGECONFIG[zbar] = "--enable-zbar,--disable-zbar,zbar jpeg" + +ARM_INSTRUCTION_SET = "arm" + +PACKAGES =+ "${PN}-resindvd" +FILES_${PN}-resindvd = "${libdir}/gstreamer-${LIBV}/libresindvd.so" +FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/libresindvd.la" +FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "fcb09798114461955260e4d940db5987" +SRC_URI[sha256sum] = "0eae7d1a1357ae8377fded6a1b42e663887beabe0e6cc336e2ef9ada42e11491" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 00000000..29fbec5f --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 5478eafecf618cd8e742cc1b96d688a2c7ce5a79 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 2 Oct 2016 21:49:33 +0200 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch new file mode 100644 index 00000000..52142562 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch @@ -0,0 +1,37 @@ +audioresample: Fix build on x86 if emmintrin.h is available but can't be used + +On x86, EMMINTRIN is defined but not usable without SSE so check for +__SSE__ and __SSE2__ as well. + +https://bugzilla.gnome.org/show_bug.cgi?id=670690 + +Upstream-Status: Backport + +Signed-off-by: Jackie Huang +--- + gst/audioresample/resample.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c +index 98d006c..481fa01 100644 +--- a/gst/audioresample/resample.c ++++ b/gst/audioresample/resample.c +@@ -77,13 +77,13 @@ + #define EXPORT G_GNUC_INTERNAL + + #ifdef _USE_SSE +-#ifndef HAVE_XMMINTRIN_H ++#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE + #endif + #endif + + #ifdef _USE_SSE2 +-#ifndef HAVE_EMMINTRIN_H ++#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H) + #undef _USE_SSE2 + #endif + #endif +-- +1.7.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch new file mode 100644 index 00000000..b8602c80 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch @@ -0,0 +1,27 @@ +Upstream-Status: Submitted [similar patch by other author, bugzilla] +Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600 + +Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't +search for gstconfig.h in /usr/include. + +Signed-off-by: Andreas Oberritter +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1901bcf..460fb0a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume) + dnl check for gstreamer core features (subsystems) + dnl FIXME: this assumes srcdir == builddir for uninstalled setups + GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h" +-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH) ++AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH) + AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1") + + dnl disable plug-ins that require libxml2's HTML support if it is not available +-- +1.7.5.4 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch new file mode 100644 index 00000000..99dbc9d5 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch @@ -0,0 +1,20 @@ +Remove -DTREMOR option since Tremor has dropped its internal +libogg2, and gst-plugins-base has dependency on that. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Dongxiao Xu +Signed-off-by: Shane Wang + +diff -r 70065fb4e085 ext/vorbis/Makefile.am +--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800 ++++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800 +@@ -30,7 +30,7 @@ + gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c + libgstivorbisdec_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \ +- -DTREMOR $(IVORBIS_CFLAGS) ++ $(IVORBIS_CFLAGS) + libgstivorbisdec_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \ diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb new file mode 100644 index 00000000..f2354648 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb @@ -0,0 +1,43 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0" + +DEPENDS += "alsa-lib libogg libvorbis libtheora util-linux tremor glib-2.0-native" + +SRC_URI += "file://gst-plugins-base-tremor.patch \ + file://configure.ac-fix-subparse-plugin.patch \ + file://audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch \ + file://0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a" +SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976" + +PR = "r8" + +inherit gettext + +EXTRA_OECONF += "--disable-freetypetest" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm -f ${S}/m4/lib-link.m4 +} + +FILES_${PN} += "${datadir}/${BPN}" + +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + +# /usr/bin/gst-visualise-0.10 is a perl script. +RDEPENDS_${PN}-apps += "perl" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch new file mode 100644 index 00000000..bc2f88b2 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch @@ -0,0 +1,35 @@ +From 14d51cbefef19737e7ab2b6818ee1d3bdb248d12 Mon Sep 17 00:00:00 2001 +From: Jeremy Stashluk +Date: Wed, 6 Feb 2013 09:59:48 -0500 +Subject: [PATCH] conditional gl framebuffer undefined use + +The OpenGL extension GL_ARB_framebuffer_object defines the macro +GL_FRAMEBUFFER_UNDEFINED. The macro will only need to map to an error +string if the extension provides functions that might return the macro. + +Upstream-Status: Pending + +Signed-off-by: Jeremy Stashluk +--- + gst-libs/gst/gl/gstgldisplay.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c +index 3ed0b71..64c6c2c 100644 +--- a/gst-libs/gst/gl/gstgldisplay.c ++++ b/gst-libs/gst/gl/gstgldisplay.c +@@ -2177,9 +2177,11 @@ gst_gl_display_check_framebuffer_status (void) + GST_ERROR ("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"); + break; + ++#if defined(GL_ARB_framebuffer_object) + case GL_FRAMEBUFFER_UNDEFINED: + GST_ERROR ("GL_FRAMEBUFFER_UNDEFINED"); + break; ++#endif + + default: + GST_ERROR ("General FBO error"); +-- +1.7.9.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch new file mode 100644 index 00000000..7db1c5af --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch @@ -0,0 +1,22 @@ +Check for header and library separately and check for GLESv2 before egl +this is to overcome an annoying issue with rpi/userland where egl depends +on sysmbols from libGLESv2 + +-Khem +Index: gst-plugins-gl-0.10.3/configure.ac +=================================================================== +--- gst-plugins-gl-0.10.3.orig/configure.ac ++++ gst-plugins-gl-0.10.3/configure.ac +@@ -183,8 +183,10 @@ case $host in + else + AC_CHECK_HEADERS([EGL/egl.h], [HAVE_EGL=yes], [HAVE_EGL=no]) + if test "x$HAVE_EGL" = "xyes"; then +- AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h,, AC_MSG_ERROR([EGL is required])) +- AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h,, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_HEADERS([GLES2/gl2.h],, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_LIB(GLESv2,[glTexImage2D],, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_HEADERS([EGL/egl.h],, AC_MSG_ERROR([EGL is required])) ++ AC_CHECK_LIB(EGL,[eglGetError],, AC_MSG_ERROR([EGL is required])) + GL_LIBS="$LIBS $X_LIBS -lEGL -lGLESv2" + GL_BACKEND=x11ES2 + GL_TYPE=gles diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb new file mode 100644 index 00000000..f3eaf309 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb @@ -0,0 +1,29 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +SRC_URI[md5sum] = "ac70ede13f79978d56eaed8abaa3c938" +SRC_URI[sha256sum] = "48340b6a4b8abce16344a7bc33e74a94fdcce4f57ef6342cdf2f941c429bf210" + +SRC_URI += " file://0001-conditional-gl-framebuffer-undefined-use.patch \ + file://rpi-egl-gles2-dep.patch \ +" + +DEPENDS += "gst-plugins-base virtual/libgles2 virtual/egl jpeg libpng glew" + +PR = "r4" + +inherit gettext distro_features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +# This package doesn't have a configure switch for EGL or GL, so forcibly tell +# configure that it can't find gl.h so it always uses EGL. If/when we have some +# way for machines to specify their preferred GL flavour this can be +# automatically adapted. +EXTRA_OECONF += "ac_cv_header_GL_gl_h=no" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-apps = "1" +ALLOW_EMPTY_${PN}-glib = "1" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch new file mode 100644 index 00000000..6456d3c6 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch @@ -0,0 +1,33 @@ +From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 5 Sep 2012 18:54:42 +0200 +Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input + field was removed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport + +[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012 + +Signed-off-by: Andreas Müller +--- + sys/v4l2/gstv4l2bufferpool.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c +index b81c6a4..51cc0ce 100644 +--- a/sys/v4l2/gstv4l2bufferpool.c ++++ b/sys/v4l2/gstv4l2bufferpool.c +@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps) + GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u", + ret->vbuffer.m.offset); + GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length); +- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input); + + data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, +-- +1.7.6.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch new file mode 100644 index 00000000..bd0de583 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch @@ -0,0 +1,45 @@ +From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Thu, 22 Aug 2013 12:15:54 -0400 +Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER + +kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls] +removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three +years of depreciation. + +The ioctl values are still free, and the case statement which processess them +in v4l2 userspace falls through to the proper replacement. So in the short +term, we can explicitly define them using the old absolute values, and everything +will work. + +Signed-off-by: Bruce Ashfield +--- + sys/v4l2/v4l2_calls.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c +index 309bfb6..3c64544 100644 +--- a/sys/v4l2/v4l2_calls.c ++++ b/sys/v4l2/v4l2_calls.c +@@ -54,11 +54,16 @@ + #include "gst/gst-i18n-plugin.h" + + /* Those are ioctl calls */ ++ ++/* V4L2_CID_HCENTER has been removed from the mainline kernel, but ++ the ioctl space is still present. Since these values fall through ++ to their replacement, it is safe (in the short term) to re-use the ++ old values explictily */ + #ifndef V4L2_CID_HCENTER +-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED ++#define V4L2_CID_HCENTER V4L2_CID_BASE+22 + #endif + #ifndef V4L2_CID_VCENTER +-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED ++#define V4L2_CID_VCENTER V4L2_CID_BASE+23 + #endif + + GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); +-- +1.7.10.4 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch new file mode 100644 index 00000000..48b8e98b --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch @@ -0,0 +1,47 @@ +From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001 +From: Roland Krikava +Date: Fri, 2 Nov 2012 12:38:44 -0400 +Subject: [PATCH 407/440] mulawdec: fix integer overrun + +There might be more than 65535 samples in a chunk of data. + +https://bugzilla.gnome.org/show_bug.cgi?id=687469 + +Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Roland Krikava +--- + gst/law/mulaw-conversion.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c +index 8afae80..190a9f5 100644 +--- a/gst/law/mulaw-conversion.c ++++ b/gst/law/mulaw-conversion.c +@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples) + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 + }; +- gint16 sign, exponent, mantissa, i; ++ gint16 sign, exponent, mantissa; + gint16 sample; + guint8 ulawbyte; ++ gint i; + + for (i = 0; i < numsamples; i++) { + sample = in[i]; +@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples) + static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 }; + gint16 sign, exponent, mantissa; + guint8 ulawbyte; +- gint16 linear, i; ++ gint16 linear; ++ gint i; + + for (i = 0; i < numsamples; i++) { + ulawbyte = in[i]; +-- +1.7.9.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb new file mode 100644 index 00000000..f993cfc1 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb @@ -0,0 +1,47 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +PR = "r8" + +PACKAGECONFIG ?= "jpeg v4l \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ +" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" +PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,libgudev" +# sub-feature of v4l, but control separately since libv4l is not part of oe-core +PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l" +PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394" + +DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \ + speex libsoup-2.4 libcap" + +inherit gettext gconf + +SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \ + file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \ + file://0407-mulawdec-fix-integer-overrun.patch \ +" +EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \ + --disable-examples --disable-taglib" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6" +SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6" + +FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas" +FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch new file mode 100644 index 00000000..1f72fc03 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch @@ -0,0 +1,193 @@ +From 649bd92cd2600719862ad5189899212409dd0a67 Mon Sep 17 00:00:00 2001 +From: Leon Merten Lohse +Date: Thu, 3 May 2012 23:50:30 +0100 +Subject: [PATCH] cdio: compensate for libcdio's recent cd-text api changes + +https://bugzilla.gnome.org/show_bug.cgi?id=675112 + +Conflicts: + + ext/cdio/gstcdiocddasrc.c + +Signed-off-by: Andreas Müller + +Upstream-Status: Backport +--- + ext/cdio/gstcdio.c | 35 ++++++++++++++++++++++++++++------- + ext/cdio/gstcdio.h | 16 ++++++++++++++++ + ext/cdio/gstcdiocddasrc.c | 19 +++++++++++++++++++ + 3 files changed, 63 insertions(+), 7 deletions(-) + +diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c +index 2f58d18..483ebf5 100644 +--- a/ext/cdio/gstcdio.c ++++ b/ext/cdio/gstcdio.c +@@ -30,12 +30,16 @@ + GST_DEBUG_CATEGORY (gst_cdio_debug); + + void +-gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, ++gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track, + cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags) + { + const gchar *txt; + ++#if LIBCDIO_VERSION_NUM > 83 ++ txt = cdtext_get_const (cdtext, field, track); ++#else + txt = cdtext_get_const (field, cdtext); ++#endif + if (txt == NULL || *txt == '\0') { + GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag); + return; +@@ -57,6 +61,12 @@ gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, + } + + GstTagList * ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_get_cdtext (GstObject * src, cdtext_t * t, track_t track) ++{ ++ GstTagList *tags = NULL; ++ ++#else + gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + { + GstTagList *tags = NULL; +@@ -67,14 +77,22 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track); + return NULL; + } ++#endif + +- gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_TITLE, GST_TAG_TITLE, ++ &tags); + + return tags; + } + + void ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_add_cdtext_album_tags (GstObject * src, cdtext_t * t, ++ GstTagList * tags) ++{ ++#else + gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + { + cdtext_t *t; +@@ -84,11 +102,14 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + GST_DEBUG_OBJECT (src, "no CD-TEXT for album"); + return; + } ++#endif + +- /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */ +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags); +- ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ALBUM_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_TITLE, GST_TAG_ALBUM, ++ &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_GENRE, GST_TAG_GENRE, ++ &tags); + GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags); + } + +diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h +index ef31ed0..c6da580 100644 +--- a/ext/cdio/gstcdio.h ++++ b/ext/cdio/gstcdio.h +@@ -24,22 +24,38 @@ + #include + #include + #include ++#include ++ ++#if LIBCDIO_VERSION_NUM <= 83 ++ #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER ++ #define CDTEXT_FIELD_GENRE CDTEXT_GENRE ++ #define CDTEXT_FIELD_TITLE CDTEXT_TITLE ++#endif + + GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug); + #define GST_CAT_DEFAULT gst_cdio_debug + + void gst_cdio_add_cdtext_field (GstObject * src, + cdtext_t * cdtext, ++ track_t track, + cdtext_field_t field, + const gchar * gst_tag, + GstTagList ** p_tags); + + GstTagList * gst_cdio_get_cdtext (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + track_t track); + + void gst_cdio_add_cdtext_album_tags (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + GstTagList * tags); + + #endif /* __GST_CDIO_H__ */ +diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c +index 615a0c8..830839e 100644 +--- a/ext/cdio/gstcdiocddasrc.c ++++ b/ext/cdio/gstcdiocddasrc.c +@@ -206,6 +206,9 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + GstCdioCddaSrc *src; + discmode_t discmode; + gint first_track, num_tracks, i; ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t *cdtext; ++#endif + + src = GST_CDIO_CDDA_SRC (audiocdsrc); + +@@ -244,8 +244,18 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device) + if (src->read_speed != -1) + cdio_set_speed (src->cdio, src->read_speed); + ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext = cdio_get_cdtext (src->cdio); ++ ++ if (NULL == cdtext) ++ GST_DEBUG_OBJECT (src, "no CD-TEXT on disc"); ++ else ++ gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), cdtext, ++ cddabasesrc->tags); ++#else + gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio, + cddabasesrc->tags); ++#endif + + GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track); + +@@ -250,8 +263,14 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + * the right thing here (for cddb id calculations etc. as well) */ + track.start = cdio_get_track_lsn (src->cdio, i + first_track); + track.end = track.start + len_sectors - 1; /* -1? */ ++#if LIBCDIO_VERSION_NUM > 83 ++ if (NULL != cdtext) ++ track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), cdtext, ++ i + first_track); ++#else + track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio, + i + first_track); ++#endif + + gst_audio_cd_src_add_track (GST_AUDIO_CD_SRC (src), &track); + } +-- +2.1.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch new file mode 100644 index 00000000..3fd6a269 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch @@ -0,0 +1,58 @@ +From e634bc6420826f760f6519a9f134c6a4d3412ef8 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Mon, 19 Oct 2015 15:26:24 +0200 +Subject: [PATCH] Fix opencore include paths + +Upstream-Status: Inappropriate [no upstream - GStreamer 0.10 is no longer being maintained] + +Signed-off-by: Carlos Rafael Giani +--- + ext/amrnb/amrnbdec.h | 2 +- + ext/amrnb/amrnbenc.h | 2 +- + ext/amrwbdec/amrwbdec.h | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ext/amrnb/amrnbdec.h b/ext/amrnb/amrnbdec.h +index 1e81839..01b7154 100644 +--- a/ext/amrnb/amrnbdec.h ++++ b/ext/amrnb/amrnbdec.h +@@ -22,7 +22,7 @@ + + #include + #include +-#include ++#include + + G_BEGIN_DECLS + +diff --git a/ext/amrnb/amrnbenc.h b/ext/amrnb/amrnbenc.h +index 7f673ac..5be39b5 100644 +--- a/ext/amrnb/amrnbenc.h ++++ b/ext/amrnb/amrnbenc.h +@@ -21,7 +21,7 @@ + #define __GST_AMRNBENC_H__ + + #include +-#include ++#include + #include + + G_BEGIN_DECLS +diff --git a/ext/amrwbdec/amrwbdec.h b/ext/amrwbdec/amrwbdec.h +index c3528fc..f27c6d2 100644 +--- a/ext/amrwbdec/amrwbdec.h ++++ b/ext/amrwbdec/amrwbdec.h +@@ -22,8 +22,8 @@ + + #include + #include +-#include +-#include ++#include ++#include + + G_BEGIN_DECLS + +-- +1.9.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb new file mode 100644 index 00000000..199b47d7 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb @@ -0,0 +1,35 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \ + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \ + file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9" + +DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame" +PR = "r3" + +inherit gettext + +EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia \ + --disable-orc" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" +PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" +PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" +PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "1d81c593e22a6cdf0f2b4f57eae93df2" +SRC_URI[sha256sum] = "1ca90059275c0f5dca71d4d1601a8f429b7852baed0723e820703b977e2c8df0" +SRC_URI += "file://0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch \ + file://0002-Fix-opencore-include-paths.patch" + +FILES_${PN}-amrnb += "${datadir}/gstreamer-0.10/presets/GstAmrnbEnc.prs" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc new file mode 100644 index 00000000..6e163a8c --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc @@ -0,0 +1,29 @@ +SUMMARY = "Plugins for the GStreamer multimedia framework" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +DEPENDS = "gstreamer" + +# gobject-introspection to get --disable-introspection into UNKNOWN_CONFIGURE_WHITELIST +inherit autotools pkgconfig gobject-introspection + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples --disable-introspection" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIBV = "0.10" +require recipes-multimedia/gstreamer/gst-plugins-package.inc + +PACKAGES_DYNAMIC += "^${PN}-.*" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + if [ -e ${S}/po/Makefile.in.in ]; then + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in + fi +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch new file mode 100644 index 00000000..69b21dd8 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch @@ -0,0 +1,38 @@ +index gst-rtsp_0.10.8/bindings/python/Makefile.am +Index: gst-rtsp-0.10.8/bindings/python/Makefile.am +=================================================================== +--- gst-rtsp-0.10.8.orig/bindings/python/Makefile.am ++++ gst-rtsp-0.10.8/bindings/python/Makefile.am +@@ -14,7 +14,7 @@ defs_DATA = $(DEFS) + defsdir = $(pkgdatadir)/$(GST_MAJORMINOR)/defs + OVERRIDES = rtspserver.override + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES) + + rtspserver_la_CFLAGS = -I$(top_srcdir)/src \ + $(PYGOBJECT_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +Index: gst-rtsp-0.10.8/examples/Makefile.am +=================================================================== +--- gst-rtsp-0.10.8.orig/examples/Makefile.am ++++ gst-rtsp-0.10.8/examples/Makefile.am +@@ -1,6 +1,6 @@ + noinst_PROGRAMS = test-video test-ogg test-mp4 test-readme test-launch test-sdp test-uri test-auth + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) + + AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) + AM_LDFLAGS = \ +Index: gst-rtsp-0.10.8/tests/Makefile.am +=================================================================== +--- gst-rtsp-0.10.8.orig/tests/Makefile.am ++++ gst-rtsp-0.10.8/tests/Makefile.am +@@ -1,6 +1,6 @@ + noinst_PROGRAMS = test-cleanup + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) + + AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) + AM_LDFLAGS = \ diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb new file mode 100644 index 00000000..b78bcaf5 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb @@ -0,0 +1,18 @@ +SUMMARY = "GStreamer RTSP server" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch" +SRC_URI[md5sum] = "b511af07000595f63c3a705946221643" +SRC_URI[sha256sum] = "9915887cf8515bda87462c69738646afb715b597613edc7340477ccab63a6617" + +DEPENDS = "gst-plugins-base gstreamer" + +EXTRA_OECONF = "--disable-introspection" + +# Configure always checks for Python so inherit pythonnative. Better solution +# would be to disable the checks entirely. +inherit autotools pythonnative gettext + +FILES_${PN}-dev += "${datadir}/vala/vapi/" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch new file mode 100644 index 00000000..d0774968 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch @@ -0,0 +1,32 @@ +From ed7f4802222234eef192aa3f74bc92268f338f97 Mon Sep 17 00:00:00 2001 +From: Sebastian Droege +Date: Tue, 6 Mar 2012 12:28:02 +0100 +Subject: [PATCH] baseparse: Fix 'self-comparison always evaluates to true' + +This was really a bug. + +Commit is ed7f4802222234eef192aa3f74bc92268f338f97 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Sebastian Droege +--- + libs/gst/base/gstbaseparse.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c +index 851ec1d..108ee89 100644 +--- a/libs/gst/base/gstbaseparse.c ++++ b/libs/gst/base/gstbaseparse.c +@@ -3899,7 +3899,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event) + seek event (in bytes) to upstream. Segment / flush handling happens + in corresponding src event handlers */ + GST_DEBUG_OBJECT (parse, "seek in PUSH mode"); +- if (seekstop >= 0 && seekpos <= seekpos) ++ if (seekstop >= 0 && seekstop <= seekpos) + seekstop = seekpos; + new_event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, + GST_SEEK_TYPE_SET, seekpos, stop_type, seekstop); +-- +1.7.9.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch new file mode 100644 index 00000000..dc2d6061 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch @@ -0,0 +1,35 @@ +From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001 +From: Kerrick Staley +Date: Tue, 20 Aug 2013 23:59:29 -0700 +Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3 + +YYLEX_PARAM is no longer supported in Bison 3. + +https://bugzilla.gnome.org/show_bug.cgi?id=706462 +--- + gst/parse/grammar.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y +index 24fc87b..7f9dd16 100644 +--- a/gst/parse/grammar.y ++++ b/gst/parse/grammar.y +@@ -26,7 +26,6 @@ + */ + + #define YYERROR_VERBOSE 1 +-#define YYLEX_PARAM scanner + + #define YYENABLE_NLS 0 + +@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s); + %right '.' + %left '!' '=' + ++%lex-param { void *scanner } + %parse-param { void *scanner } + %parse-param { graph_t *graph } + %pure-parser +-- +2.7.2 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 00000000..8db39663 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 4b145ceb22bbce7ba6e209c6ab61f2d5867e69f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 1 Nov 2016 19:02:30 +0100 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch new file mode 100644 index 00000000..5d8bb134 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch @@ -0,0 +1,19 @@ +# gstreamer: Fix a problem with configure if check has already been built +# Richard Purdie + +Upstream-Status: Inappropriate [configuration] + +diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac +--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800 ++++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800 +@@ -543,8 +543,10 @@ + *) BUILD_CHECK=yes ;; + esac + ]) ++ + dnl bit of a misnomer, but keep the conditional named like this so we don't + dnl have to change too much elsewhere ++HAVE_CHECK=no + AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes") + + dnl configure the desired buffer alignment diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch new file mode 100644 index 00000000..30be85f5 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch @@ -0,0 +1,16 @@ +# Fix crash with gst-inspect +# Chris Lord + +Upstream-Status: Pending + +--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100 ++++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100 +@@ -1123,7 +1123,7 @@ + g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE); + g_option_context_add_group (ctx, gst_init_get_option_group ()); + if (!g_option_context_parse (ctx, &argc, &argv, &err)) { +- g_print ("Error initializing: %s\n", err->message); ++ g_print ("Error initializing: %s\n", err ? err->message : "(null)"); + exit (1); + } + g_option_context_free (ctx); diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c new file mode 100644 index 00000000..c1f3e71a --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c @@ -0,0 +1,487 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * 2005 David A. Schleef + * + * gstregistryxml.c: GstRegistry object, support routines + * + * This library is free software; you can redistribute it and/or + * modify it ulnder the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#include + +/* +** Simple handy function to write a memory location to the registry cache file +*/ +inline static gboolean +gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size) +{ + if (write(registry->cache_file, mem, size) != size) + { + GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n", + mem, size, strerror(errno)); + return FALSE; + } + return TRUE; +} + +/* +** Save features GstBinary style +*/ +static gboolean +gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name) +{ + GstBinaryChunck *chk; + + if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = dest; + chk->size = sizeof (GstBinaryPluginFeature); + + *list = g_list_append(*list, chk); + + dest->rank = orig->rank; + if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) || + !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + + if (GST_IS_ELEMENT_FACTORY(orig)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(orig); + + if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) || + !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) || + !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) || + !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + } + + dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0; + return TRUE; + + fail: + free(chk); + return FALSE; +} + + +/* +** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version +*/ +inline static gboolean +gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m) +{ + if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) || + !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Failed to write magic to the registry magic structure"); + return FALSE; + } + return TRUE; +} + +/* +** Check GstBinaryRegistryMagic validity. +** Return a pointer pointing right after the magic structure +*/ +static gchar * +gst_registry_binary_check_magic(gchar *in) +{ + GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in; + + if (m == NULL || m->magic == NULL || m->version == NULL) + { + GST_ERROR("Binary registry magic structure is broken"); + return NULL; + } + if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0) + { + GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x", + GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff, + GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff, + m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff); + return NULL; + } + if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Binary registry magic version is different : %s != %s", + GST_MAJORMINOR, m->version); + return NULL; + } + return (in + sizeof (GstBinaryRegistryMagic)); +} + +/* +** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the +** registry file. +*/ +static gboolean +gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin) +{ + GstBinaryPluginElement *e; + GstBinaryChunck *chk; + GList *walk; + + if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL || + (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = e; + chk->size = sizeof (GstBinaryPluginElement); + *list = g_list_append(*list, chk); + + if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) || + !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) || + !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) || + !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) || + !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) || + !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) || + !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) || + !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN)) + { + GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement"); + goto fail; + } + + e->size = plugin->file_size; + e->m32p = plugin->file_mtime; + + GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name); + + for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++) + { + GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data); + GstBinaryPluginFeature *newfeat; + const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat)); + + if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL) + goto fail; + + if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name)) + { + GST_ERROR("Can't fill plugin feature, aborting."); + goto fail; + } + } + + GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name); + return TRUE; + + fail: + free(chk); + free(e); + return FALSE; +} + +/* +** Write the cache to file. Part of the code was taken from gstregistryxml.c +*/ +gboolean +gst_registry_binary_write_cache(GstRegistry *registry, const char *location) +{ + GList *walk; + char *tmp_location; + GstBinaryRegistryMagic *magic; + GstBinaryChunck *magic_chunck; + GList *to_write = NULL; + + GST_INFO("Writing binary registry cache"); + + g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE); + tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL); + registry->cache_file = g_mkstemp (tmp_location); + if (registry->cache_file == -1) + { + char *dir; + + /* oops, I bet the directory doesn't exist */ + dir = g_path_get_dirname (location); + g_mkdir_with_parents (dir, 0777); + g_free (dir); + + registry->cache_file = g_mkstemp (tmp_location); + } + + if (registry->cache_file == -1) + goto fail; + + if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL || + !gst_registry_binary_initialize_magic(magic)) + goto fail; + + if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL) + goto fail; + + magic_chunck->data = magic; + magic_chunck->size = sizeof (GstBinaryRegistryMagic); + to_write = g_list_append(to_write, magic_chunck); + + /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */ + for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk)) + { + GstPlugin *plugin = GST_PLUGIN(walk->data); + + if (!plugin->filename) + continue; + + if (plugin->flags & GST_PLUGIN_FLAG_CACHED) + { + int ret; + struct stat statbuf; + + ret = g_stat (plugin->filename, &statbuf); + if ((ret = g_stat (plugin->filename, &statbuf)) < 0 || + plugin->file_mtime != statbuf.st_mtime || + plugin->file_size != statbuf.st_size) + continue; + } + + if (!gst_registry_binary_save_plugin(&to_write, registry, plugin)) + { + GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename); + continue; /* Try anyway */ + } + } + + for (walk = g_list_first(to_write); walk; walk = g_list_next(walk)) + { + GstBinaryChunck *cur = walk->data; + + if (!gst_registry_binary_write(registry, cur->data, cur->size)) + { + free(cur->data); + free(cur); + g_list_free(to_write); + goto fail; + } + free(cur->data); + free(cur); + } + g_list_free(to_write); + + if (close(registry->cache_file) < 0) + { + GST_DEBUG("Can't close registry file : %s", strerror(errno)); + goto fail; + } + + if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) { +#ifdef WIN32 + remove (location); +#endif + rename (tmp_location, location); + } + + g_free (tmp_location); + return TRUE; + + fail: + g_free(tmp_location); + return FALSE; +} + +static GstPluginFeature* +gst_registry_binary_load_feature(GstBinaryPluginFeature *in) +{ + GstPluginFeature *feature; + GType type; + + if (!in->typename || !*(in->typename)) + return NULL; + + /* GST_INFO("Plugin feature typename : %s", in->typename);*/ + + if (!(type = g_type_from_name(in->typename))) + { + GST_ERROR("Unknown type from typename"); + return NULL; + } + feature = g_object_new (type, NULL); + + if (!feature) { + GST_ERROR("Can't create feature from type"); + return NULL; + } + + if (!GST_IS_PLUGIN_FEATURE (feature)) { + /* don't really know what it is */ + if (GST_IS_OBJECT (feature)) + gst_object_unref (feature); + else + g_object_unref (feature); + return NULL; + } + + feature->name = g_strdup(in->name); + feature->rank = in->rank; + + if (GST_IS_ELEMENT_FACTORY(feature)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(feature); + + factory->details.longname = g_strdup(in->longname); + factory->details.klass = g_strdup(in->class); + factory->details.description = g_strdup(in->description); + factory->details.author = g_strdup(in->author); + + /* GST_INFO("Element factory : %s", factory->details.longname); */ + } + + GST_DEBUG("Added feature %p with name %s", feature, feature->name); + return feature; +} + +/* +** Make a new plugin from current GstBinaryPluginElement structure +** and save it to the GstRegistry. Return an offset to the next +** GstBinaryPluginElement structure. +*/ +static unsigned long +gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in) +{ + GstBinaryPluginElement *p = (GstBinaryPluginElement *) in; + GstPlugin *plugin = NULL; + GList *plugin_features = NULL; + GstBinaryPluginFeature *feat; + unsigned int i; + unsigned long offset; + + plugin = g_object_new (GST_TYPE_PLUGIN, NULL); + + plugin->flags |= GST_PLUGIN_FLAG_CACHED; + + plugin->desc.name = g_strdup(p->name); + plugin->desc.description= g_strdup(p->description); + plugin->filename = g_strdup(p->filename); + plugin->desc.version = g_strdup(p->version); + plugin->desc.license = g_strdup(p->license); + plugin->desc.source = g_strdup(p->source); + plugin->desc.package = g_strdup(p->package); + plugin->desc.origin = g_strdup(p->origin); + plugin->file_mtime = p->m32p; + plugin->file_size = p->size; + plugin->basename = g_path_get_basename (plugin->filename); + + if (plugin->file_mtime < 0 || plugin->file_size < 0) + { + GST_ERROR("Plugin time or file size is not valid !"); + g_free(plugin); + return -1; + } + + if (p->nfeatures < 0) + { + GST_ERROR("The number of feature structure is not valid !"); + gst_object_unref(plugin); + return -1; + } + + for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0; + i < p->nfeatures; i++, feat++) + { + GstPluginFeature *gstfeat; + + if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL) + { + g_list_free(plugin_features); + g_free(plugin); + GST_ERROR("Error while loading binary feature"); + return -1; + } + gstfeat->plugin_name = g_strdup(plugin->desc.name); + plugin_features = g_list_prepend(plugin_features, gstfeat); + } + + GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name); + GList *g; + + gst_registry_add_plugin (registry, plugin); + for (g = plugin_features; g; g = g_list_next (g)) + gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data)); + /* g_list_free(plugin_features); */ + + offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature); + return offset; +} + + +/* +** Read the cache and adapt it to fill GstRegistry +*/ +gboolean +gst_registry_binary_read_cache(GstRegistry *registry, const char *location) +{ + GMappedFile *mapped = NULL; + GTimer *timer = NULL; + gchar *contents = NULL; + gdouble seconds; + unsigned long offset, inc; + gsize size; + + /* make sure these types exist */ + GST_TYPE_ELEMENT_FACTORY; + GST_TYPE_TYPE_FIND_FACTORY; + GST_TYPE_INDEX_FACTORY; + + timer = g_timer_new (); + + if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL || + (contents = g_mapped_file_get_contents(mapped)) == NULL) + { + GST_ERROR("Can't load file : %s", strerror(errno)); + return FALSE; + } + if ((contents = gst_registry_binary_check_magic(contents)) == NULL) + { + GST_ERROR("Binary registry type not recognized (invalid magic)"); + g_mapped_file_free(mapped); + return FALSE; + } + + if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement)) + { + GST_INFO("No binary plugins structure to read"); + return TRUE; /* This is not really an error */ + } + + for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size && + (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0; + offset += inc) + ; /* May want in the future to do something here */ + if (inc < 0) + { + GST_DEBUG("Problem while reading binary registry"); + return FALSE; + } + + g_timer_stop (timer); + seconds = g_timer_elapsed (timer, NULL); + g_timer_destroy (timer); + + GST_INFO ("loaded %s in %f seconds", location, seconds); + + if (mapped) + g_mapped_file_free (mapped); + return TRUE; +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h new file mode 100644 index 00000000..2ef24d76 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h @@ -0,0 +1,194 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * + * gstregistry.h: Header for registry handling + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* SUGGESTIONS AND TODO : +** ==================== +** - Use a compressed registry, but would induce performance loss +** - Encrypt the registry, for security purpose, but would also reduce performances +** - Also have a non-mmap based cache reading (work with file descriptors) +*/ + +#ifndef __GST_REGISTRYBINARY_H__ +#define __GST_REGISTRYBINARY_H__ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "glib-compat-private.h" +#include + +/* A magic, written at the beginning of the file */ +#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d" +#define GST_MAGIC_BINARY_REGISTRY_LEN (4) +#define GST_MAGIC_BINARY_VERSION_LEN (64) + +typedef struct _GstBinaryRegistryMagic +{ + char magic[GST_MAGIC_BINARY_REGISTRY_LEN]; + char version[GST_MAGIC_BINARY_VERSION_LEN]; +} GstBinaryRegistryMagic; + + +/* Used to store pointers to write */ +typedef struct _GstBinaryChunck +{ + void *data; + unsigned int size; +} GstBinaryChunck; + + +/* A structure containing (staticely) every information needed for a plugin +** +** Notes : +** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have +** right after the structure itself. +*/ + +/* Various lenght defines for our GstBinaryPluginElement structure +** Note : We could eventually use smaller size +*/ +#define GST_BINARY_REGISTRY_NAME_LEN (256) +#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_VERSION_LEN (64) +#define GST_BINARY_REGISTRY_LICENSE_LEN (256) +#define GST_BINARY_REGISTRY_SOURCE_LEN (256) +#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024) +#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024) + +typedef struct _GstBinaryPluginElement +{ + char name[GST_BINARY_REGISTRY_NAME_LEN]; + char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN]; + char filename[_POSIX_PATH_MAX]; + char version[GST_BINARY_REGISTRY_VERSION_LEN]; + char license[GST_BINARY_REGISTRY_LICENSE_LEN]; + char source[GST_BINARY_REGISTRY_SOURCE_LEN]; + char package[GST_BINARY_REGISTRY_PACKAGE_LEN]; + char origin[GST_BINARY_REGISTRY_ORIGIN_LEN]; + unsigned long size; + unsigned long m32p; + unsigned int nfeatures; +} GstBinaryPluginElement; + + +/* A structure containing the plugin features +** +** Note : +** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself. +** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself. +** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself. +*/ +#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512) +#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256) + +typedef struct _GstBinaryPluginFeature +{ + char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN]; + char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN]; + unsigned long rank; + char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN]; + char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN]; + char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN]; + char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN]; + unsigned int npadtemplates; + unsigned int ninterfaces; + unsigned int nuritypes; +} GstBinaryPluginFeature; + + +/* +** A structure containing the static pad templates of a plugin feature +*/ +#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256) +#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024) + +typedef struct _GstBinaryPadTemplate +{ + char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN]; + char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN]; + int direction; /* Either 0:"sink" or 1:"src" */ + GstPadPresence presence; +} GstBinaryPadTemplate; + +/* +** A very simple structure defining the plugin feature interface string +*/ +#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512) +typedef struct _GstBinaryInterface +{ + char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN]; + unsigned long size; +} GstBinaryInterface; + +/* Uri Type */ +typedef struct _GstBinaryUriType +{ + GstURIType type; + unsigned long nuriprotocols; +} GstBinaryUriType; + +/* +** Function prototypes +*/ + +/* Local prototypes */ +inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size); +inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m); +static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *); +static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin); +static gchar *gst_registry_binary_check_magic(gchar *in); +static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *); +static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in); + +/* Exportable */ +gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location); +gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location); + +#endif /* !__GST_REGISTRYBINARY_H__ */ + + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb new file mode 100644 index 00000000..56d82205 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb @@ -0,0 +1,50 @@ +SUMMARY = "GStreamer multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4" +DEPENDS = "glib-2.0 libxml2 bison-native flex-native glib-2.0-native" + +PR = "r2" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \ + file://check_fix.patch \ + file://gst-inspect-check-error.patch \ + file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \ + file://0001-parse-make-grammar.y-work-with-Bison-3.patch \ + file://0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b" +SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30" + +inherit autotools pkgconfig gettext + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \ + --disable-dependency-tracking --disable-check \ + --disable-examples --disable-tests \ + --disable-valgrind ${GSTREAMER_DEBUG} \ + --disable-introspection \ + " + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in +} + +#do_compile_prepend () { +# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/ +#} + +FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" +FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb new file mode 100644 index 00000000..5409f320 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb @@ -0,0 +1,38 @@ +SUMMARY = "Gst-Shark Tracers" +DESCRIPTION = "Benchmarks and profiling tools for GStreamer" +HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark" +SECTION = "multimedia" +LICENSE = "GPLv2+" + +LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad " + +SRCBRANCH ?= "master" + +SRCREV_base = "a60b3996fe3376d42334fc89014e9d6f6af62899" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" + +SRC_URI = " \ + git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \ + git://anongit.freedesktop.org/git/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \ + " + +S = "${WORKDIR}/git" + +PACKAGECONFIG_CONFARGS = " \ + --disable-graphviz \ + --enable-gtk-doc=no \ +" + +FILES_${PN} += "\ + ${libdir}/gstreamer-1.0/libgstsharktracers.so \ + ${libdir}/gstreamer-1.0/libgstsharktracers.la \ +" + +inherit autotools gettext + +do_configure() { + ${S}/autogen.sh --noconfigure + oe_runconf +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc new file mode 100644 index 00000000..455d8968 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc @@ -0,0 +1,21 @@ +DESCRIPTION = "Gstreamer Daemon 1.0" +SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages" +HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0" +SECTION = "multimedia" +LICENSE = "GPLv2+" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon" + +SRCBRANCH ?= "master" +SRCREV = "3526d0ffdbccc375db7d5fe33a72c68b134657c2" +SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \ + file://0001-gstd-yocto-compatibility.patch \ + file://0001-Look-for-gtk-doc.make-in-builddir.patch \ + " +S = "${WORKDIR}/git" + +inherit autotools pkgconfig gettext gtk-doc + +do_configure_prepend() { + sed -i -e "s|include \$(top_builddir)/docs/gtk-doc.make||g" ${S}/docs/reference/gstd/Makefile.am +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch new file mode 100644 index 00000000..5a286164 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch @@ -0,0 +1,32 @@ +From a84e9a6e1dca685eda072d58b58556b5b35cb4c8 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Mon, 10 Sep 2018 21:16:50 -0700 +Subject: [PATCH] Look for gtk-doc.make in builddir + +this is evident when S != B because gtkdocize +generates this file and its actually built into +build area + +Upstream-Status: Submitted [https://github.com/RidgeRun/gstd-1.x/pull/39] + +Signed-off-by: Khem Raj +--- + docs/reference/gstd/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/docs/reference/gstd/Makefile.am b/docs/reference/gstd/Makefile.am +index f860fa1..62870da 100644 +--- a/docs/reference/gstd/Makefile.am ++++ b/docs/reference/gstd/Makefile.am +@@ -66,7 +66,7 @@ GTKDOC_LIBS=$(top_builddir)/gstd/libgstd-core.la + + + # This includes the standard gtk-doc make rules, copied by gtkdocize. +-include $(top_srcdir)/docs/gtk-doc.make ++include $(top_builddir)/docs/gtk-doc.make + + # Comment this out if you want 'make check' to test you doc status + # and run some sanity checks +-- +2.18.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch new file mode 100644 index 00000000..ffcc6ea9 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch @@ -0,0 +1,25 @@ +From eaf51d6420c63713f62025583681007c3502d387 Mon Sep 17 00:00:00 2001 +From: Carlos +Date: Fri, 15 Dec 2017 10:14:05 -0600 +Subject: [PATCH] gstd:yocto compatibility + +--- + gstd/Makefile.am | 2 +- + 3 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/gstd/Makefile.am b/gstd/Makefile.am +index 13c551d..11fe202 100644 +--- a/gstd/Makefile.am ++++ b/gstd/Makefile.am +@@ -49,7 +49,7 @@ bin_PROGRAMS = gstd + + gstd_SOURCES = gstd.c + gstd_CFLAGS = $(GST_CFLAGS) $(GIO_CFLAGS) $(GJSON_CFLAGS) +-gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS) -Wl,-rpath -Wl,$(libdir) ++gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS) + gstd_LDADD = libgstd-core.la + + gstdincludedir = $(includedir)/gstd +-- +1.9.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb new file mode 100644 index 00000000..94f6b575 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb @@ -0,0 +1,3 @@ +require gstd.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb new file mode 100644 index 00000000..7836bae6 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb @@ -0,0 +1,3 @@ +inherit nativesdk +include projucer.inc +BBCLASSEXTEND = "nativesdk" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb new file mode 100644 index 00000000..fb54fb9e --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb @@ -0,0 +1,3 @@ +inherit native +include projucer.inc +BBCLASSEXTEND = "native" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc b/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc new file mode 100644 index 00000000..63ed9e90 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/juce/projucer.inc @@ -0,0 +1,37 @@ +SUMMARY = "JUCE's Projucer" +DESCRIPTION = "Projucer is used to build and generate support files and build infrastructure for all \ +JUCE supported platforms, including Linux and Embedded Linux." +SECTION = "utils" +HOMEPAGE = "http://juce.com/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://README.md;md5=65c50b4ff3522b99436da100536ccd1c" + +inherit pkgconfig + +DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl" + +SRCREV = "4f41f28b47d01b939559123d145b4e5860528bb7" +BRANCH = "master" +SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH}" + +S = "${WORKDIR}/git" +PV = "5.0.1" + +JUCE_PROJUCER_BUILD_PATH = "${B}/extras/Projucer/Builds" +JUCE_PROJUCER_MAKEFILE_PATH = "${JUCE_PROJUCER_BUILD_PATH}/LinuxMakefile" +JUCE_PROJUCER = "${JUCE_PROJUCER_MAKEFILE_PATH}/build/Projucer" + +do_configure() { + cd ${JUCE_PROJUCER_MAKEFILE_PATH} + CONFIG=Release oe_runmake clean +} + +do_compile() { + cd ${JUCE_PROJUCER_MAKEFILE_PATH} + CONFIG=Release oe_runmake +} + +do_install() { + install -d ${D}${bindir} + install -m 0755 ${JUCE_PROJUCER} ${D}${bindir} +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb new file mode 100644 index 00000000..4c0976e4 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb @@ -0,0 +1,34 @@ +SUMMARY = "Cross-platform audio output library and plugins" +DESCRIPTION = "Libao is a cross-platform audio library that allows programs to \ + output audio using a simple API on a wide variety of platforms." +SECTION = "multimedia" +HOMEPAGE = "https://www.xiph.org/ao/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI="http://downloads.xiph.org/releases/ao/${BP}.tar.gz" +SRC_URI[md5sum] = "9f5dd20d7e95fd0dd72df5353829f097" +SRC_URI[sha256sum] = "03ad231ad1f9d64b52474392d63c31197b0bc7bd416e58b1c10a329a5ed89caf" + +inherit autotools + +PACKAGES += "${BPN}-ckport" +PACKAGES_DYNAMIC += "^${BPN}-plugin-.*" + +do_install_append () { + find "${D}" -name '*.la' -exec rm -f {} + +} + +python populate_packages_prepend () { + rootdir = bb.data.expand('${libdir}/ao/plugins-4', d) + rootdir_dbg = bb.data.expand('${libdir}/ao/plugins-4/.debug', d) + do_split_packages(d, rootdir, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin') + do_split_packages(d, rootdir_dbg, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data') +} + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}" +PACKAGECONFIG[esound] = "--enable-esd,--disable-esd,esound" +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +FILES_${BPN}-ckport = "${libdir}/ckport" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb new file mode 100644 index 00000000..f5b0d48c --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "libavc1394 is a programming interface for the 1394 Trade \ +Association AV/C (Audio/Video Control) Digital Interface Command Set" +HOMEPAGE = "http://sourceforge.net/projects/libavc1394/" +SECTION = "libs/multimedia" + +DEPENDS = "libraw1394" +DEPENDS_append_libc-musl = " argp-standalone" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz" +SRC_URI[md5sum] = "caf0db059d8b8d35d6f08e6c0e1c7dfe" +SRC_URI[sha256sum] = "7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4215b53" + +inherit autotools pkgconfig + +LDFLAGS_append_libc-musl = " -largp" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch new file mode 100755 index 00000000..df0c2355 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch @@ -0,0 +1,14 @@ +Index: libdc1394/examples/Makefile.am +=================================================================== +--- libdc1394.orig/examples/Makefile.am ++++ libdc1394/examples/Makefile.am +@@ -36,8 +36,7 @@ if HAVE_MACOSX + AM_LDFLAGS = -framework CoreFoundation $(FRAMEWORK_IOKIT) + endif + +-noinst_PROGRAMS = $(A) +-bin_PROGRAMS = $(B) ++bin_PROGRAMS = $(A) $(B) + + LDADD = ../dc1394/libdc1394.la + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb new file mode 100755 index 00000000..b6bb447b --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "Capture and control API for IIDC compliant cameras" +HOMEPAGE = "http://sourceforge.net/projects/libdc1394/" +SECTION = "libs" +LICENSE = "LGPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64" + +# libsdl to provide sdl.m4 with AM_PATH_SDL +DEPENDS += "libusb1 libraw1394 libsdl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \ +" + +PV = "2.2.5+gitr${SRCPV}" + +SRCREV = "5e78f51936fd09db0c0f742c7d2c0e5bdbbeed56" + +SRC_URI = "git://git.code.sf.net/p/libdc1394/code;branch=master;protocol=git \ + file://install_examples.patch \ + " + +S = "${WORKDIR}/git/${PN}" + +inherit autotools-brokensep pkgconfig + +EXTRA_OECONF += "--disable-doxygen-doc --disable-examples" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb new file mode 100644 index 00000000..cd075ffe --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "libde265 is an open source implementation of the h.265 \ +video codec. It is written from scratch and has a plain C API to enable a \ +simple integration into other software." +HOMEPAGE = "http://www.libde265.org/" +SECTION = "libs/multimedia" + +LICENSE = "LGPLv3" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=852f345c1c52c9160f9a7c36bb997546" + +SRC_URI = "https://github.com/strukturag/libde265/releases/download/v${PV}/${BPN}-${PV}.tar.gz" +SRC_URI[md5sum] = "93520b378df25f3a94e962f2b54872cc" +SRC_URI[sha256sum] = "eaa0348839c2935dd90647d72c6dd4a043e36361cb3c33d2b04df10fbcebd3cb" + +EXTRA_OECONF = "--disable-sherlock265 --disable-dec265" + +inherit autotools-brokensep pkgconfig + +PACKAGES =+ "${PN}-tools" +FILES_${PN}-tools = "${bindir}/*" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb new file mode 100644 index 00000000..48b01110 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "libdvbpsi is a simple library designed for decoding \ +and generation of MPEG TS and DVB PSI tables according to standards \ +ISO/IEC 13818 and ITU-T H.222.0." +HOMEPAGE = "http://www.videolan.org/developers/libdvbpsi.html" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +SRC_URI = "http://download.videolan.org/pub/libdvbpsi/${PV}/libdvbpsi-${PV}.tar.bz2" +SRC_URI[md5sum] = "2b217039a1299000c39423441f77e76a" +SRC_URI[sha256sum] = "a2fed1d11980662f919bbd1f29e2462719e0f6227e1a531310bd5a706db0a1fe" + +inherit autotools diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb new file mode 100644 index 00000000..c2dd96f9 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb @@ -0,0 +1,14 @@ +SUMMARY = "library for DVD navigation features" +SECTION = "libs/multimedia" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +DEPENDS = "libdvdread" + +SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2" +SRC_URI[md5sum] = "e9ea4de3bd8f204e61301d407d09f033" +SRC_URI[sha256sum] = "5097023e3d2b36944c763f1df707ee06b19dc639b2b68fb30113a5f2cbf60b6d" + +inherit autotools lib_package binconfig pkgconfig + +CONFIGUREOPTS_remove = "--disable-silent-rules" + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb new file mode 100644 index 00000000..e6079bd7 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "An implementation of the most relevant parts of IEC 61883 over \ +libraw1394 for transmission, reception, and management of media streams and \ +devices such as DV, MPEG2-TS, audio, and MIDI" +HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libiec61883" +SECTION = "libs/multimedia" + +DEPENDS = "libraw1394" + +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=771782cb6245c7fbbe74bc0ec059beff" + +SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.xz" +SRC_URI[md5sum] = "ed91bc1727fac8e019402fc3724a283d" +SRC_URI[sha256sum] = "d1e02c7e276fac37313a2f8c1c33d7a9e19282ff16f32e72435428ff5121f09e" + +inherit autotools pkgconfig diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest new file mode 100644 index 00000000..84981b22 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest @@ -0,0 +1,9 @@ +#!/bin/sh + +./libopenmpttest >/dev/null 2>&1 + +if [ $? -eq 0 ]; then + echo "PASS: libopenmpttest" +else + echo "FAIL: libopenmpttest" +fi diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb new file mode 100644 index 00000000..d14246f3 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb @@ -0,0 +1,104 @@ +SUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)" +DESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \ +music files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \ +cross-platform command-line or terminal based module file player, and libopenmpt_modplug, \ +a wrapper around libopenmpt that provides an interface that is ABI compatile with \ +libmodplug. libopenmpt is based on the player code of the OpenMPT project." +HOMEPAGE = "https://lib.openmpt.org/libopenmpt/" +SECTION = "libs" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e804150573f149befef6c07e173f20c3" + +DEPENDS = "virtual/libiconv" + +SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \ + file://run-ptest \ + " +SRC_URI[md5sum] = "66bbc6fbb5f27a554cb145d805e9ef9d" +SRC_URI[sha256sum] = "14a137b8d1a20e1b6a5e67cbc9467ab7e5e4e67d5aa38a247afc825685c53939" + +S = "${WORKDIR}/libopenmpt-${PV}+release.autotools" + +inherit autotools pkgconfig ptest + +PACKAGECONFIG ??= " \ + libopenmpt-modplug openmpt123 \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ + flac mpg123 ogg sndfile vorbis vorbisfile zlib \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ +" + +# libopenmpt_modplug is a library that wraps libopenmpt calls into +# functions that are ABI compatible with libmodplug. This allows for +# using modplug headers and linking against libopenmpt_modplug +# instead of against the original libmodplug library. +# NOTE: The wrapper is compatible to the ABI from libmodplug version +# 0.8.8 and newer. +PACKAGECONFIG[libopenmpt-modplug] = "--enable-libopenmpt_modplug,--disable-libopenmpt_modplug" +PACKAGECONFIG[openmpt123] = "--enable-openmpt123,--disable-openmpt123" +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests" + +# These packageconfigs affect openmpt123 +PACKAGECONFIG[flac] = "--with-flac,--without-flac,flac" +PACKAGECONFIG[mpg123] = "--with-mpg123,--without-mpg123,mpg123" +PACKAGECONFIG[ogg] = "--with-ogg,--without-ogg,libogg" +PACKAGECONFIG[portaudio] = "--with-portaudio,--without-portaudio,portaudio-v19" +PACKAGECONFIG[pulseaudio] = "--with-pulseaudio,--without-pulseaudio,pulseaudio" +PACKAGECONFIG[sdl] = "--with-sdl,--without-sdl,virtual/libsdl" +PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,virtual/libsdl2" +PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1" +PACKAGECONFIG[vorbis] = "--with-vorbis,--without-vorbis,libvorbis" +PACKAGECONFIG[vorbisfile] = "--with-vorbisfile,--without-vorbisfile,libvorbis" +PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" + +# --disable-libmodplug is necessary, since otherwise we'd +# have a collision with the libmodplug package, because of the +# libmodplug.so file. (libmodplug.so from libopenmpt isintended +# to be used as a drop-in replacement, and according to the +# documentation, is not complete.) +EXTRA_OECONF += " \ + --disable-doxygen-doc \ + --disable-examples \ + --disable-libmodplug \ + --without-portaudiocpp \ +" + +do_compile_ptest() { + oe_runmake ${PARALLEL_MAKE} libopenmpttest +} + +do_install_ptest() { + install -d ${D}${PTEST_PATH}/test + install -m 0755 ${B}/libopenmpttest ${D}${PTEST_PATH} + install -m 0644 ${S}/test/test.mptm ${D}${PTEST_PATH}/test + install -m 0644 ${S}/test/test.s3m ${D}${PTEST_PATH}/test + install -m 0644 ${S}/test/test.xm ${D}${PTEST_PATH}/test + + install -d ${D}${PTEST_PATH}/libopenmpt + install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt +} + +python __anonymous() { + packageconfig = (d.getVar("PACKAGECONFIG") or "").split() + if ("sdl" in packageconfig) and ("sdl2" in packageconfig): + bb.error("sdl and sdl2 packageconfigs cannot be both enabled") +} + +PACKAGES =+ "${PN}-modplug ${PN}-openmpt123 ${PN}-openmpt123-doc" +FILES_${PN}-modplug = "${libdir}/libopenmpt_modplug.so.*" +FILES_${PN}-openmpt123 = "${bindir}/openmpt123" +FILES_${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*" + +# Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning. +# The SemVer versioning scheme is incompatible with Debian/Ubuntu +# package version names. +DEBIAN_NOAUTONAME_${PN} = "1" +DEBIAN_NOAUTONAME_${PN}-modplug = "1" + +RDEPENDS_${PN}_libc-glibc = " \ + glibc-gconv-cp1252 \ + glibc-gconv-ibm437 \ + glibc-gconv-iso8859-1 \ + glibc-gconv-iso8859-15 \ +" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb new file mode 100644 index 00000000..f060f1e8 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb @@ -0,0 +1,19 @@ +SUMMARY = "The squish library (abbreviated to libsquish) is an open source DXT compression library written in C++ " + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://alpha.cpp;beginline=3;endline=22;md5=6665e479f71feb92d590ea9ae9b9f6d5" + +PV = "1.10+git${SRCPV}" + +SRCREV = "52e7d93c5947f72380521116c05d97c528863ba8" +SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https" + +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix}" + +do_install() { + install -d ${D}${includedir} + install -d ${D}${libdir}/pkgconfig + oe_runmake install +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc new file mode 100644 index 00000000..187ff536 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc @@ -0,0 +1,41 @@ +DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \ +being fully compliant with DLNA/UPnP-AV clients." +LICENSE = "GPL-2.0|BSD" +DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis" + +# because it depends on libav which has commercial flag +LICENSE_FLAGS = "commercial" + +inherit gettext autotools-brokensep update-rc.d systemd + +SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \ + file://minidlna-daemon.init.d \ + file://minidlna.service \ + file://0001-Update-Gettext-version.patch \ + " + +S = "${WORKDIR}/git" + +# This remove "--exclude=autopoint" option from autoreconf argument to avoid +# configure.ac:30: error: required file './ABOUT-NLS' not found +EXTRA_AUTORECONF = "" + +do_install_append(){ + install -d ${D}${sysconfdir} + install -m 0755 minidlna.conf ${D}${sysconfdir} + +# Systemd script + install -d ${D}${nonarch_base_libdir}/systemd/system + install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system + +# Sysvinit script + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna + +} + +SYSTEMD_SERVICE_${PN} = "minidlna.service" + +INITSCRIPT_NAME = "minidlna" +INITSCRIPT_PARAMS = "defaults 90" + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch new file mode 100644 index 00000000..c18095d4 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch @@ -0,0 +1,34 @@ +From a4290bf1887f9203288858ca76bdd20b2edf337a Mon Sep 17 00:00:00 2001 +From: Baptiste Durand +Date: Sun, 9 Sep 2018 20:50:41 +0200 +Subject: [PATCH] Update Gettext version + +Upstream-Status: Inappropriate [oe-core specific] + +Signed-off-by: Baptiste Durand +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f343d21..a556b33 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -14,7 +14,7 @@ + # License along with MiniDLNA; if not, write to the Free Software + # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + # USA. +-AC_INIT(MiniDLNA,1.1.3,,minidlna) ++AC_INIT(MiniDLNA,1.2.1,,minidlna) + #LT_INIT + + AC_CANONICAL_TARGET +@@ -28,7 +28,7 @@ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_USE_SYSTEM_EXTENSIONS]) + + AM_ICONV + AM_GNU_GETTEXT([external]) +-AM_GNU_GETTEXT_VERSION(0.18) ++AM_GNU_GETTEXT_VERSION(0.19) + + # Checks for programs. + AC_PROG_AWK diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d new file mode 100644 index 00000000..9e64a20f --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d @@ -0,0 +1,54 @@ +#!/bin/sh + +NAME="minidlna" +DAEMON=/usr/sbin/minidlnad +SCRIPTNAME=/etc/init.d/$NAME +PIDFILE=/var/run/$NAME.pid +CONF=/etc/$NAME.conf +ARGS="-f $CONF" + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +start_function() { + + export PATH=$PWD:$PATH + + if [ -f ${PIDFILE} ]; then + echo "$SCRIPTNAME already running with PID #`cat $PIDFILE` ( according to ${PIDFILE} )"; + exit 0 + fi + + $DAEMON $ARGS + + pid=$! + + if [ "$pid" != "" ]; then + echo -n "$pid" > ${PIDFILE} + fi +} + +stop_function() { + + export PATH=$PWD:$PATH + + if [ ! -e "${PIDFILE}" ]; then + echo "${SCRIPTNAME} not running ( according to ${PIDFILE} )"; + exit 1; + fi + PID=`cat ${PIDFILE}` + kill -INT ${PID} + rm -f ${PIDFILE} +} + +case $1 in + "start") + start_function + ;; + "stop") + stop_function + ;; + *) + echo "Usage: $0 {start | stop}" + +esac diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service new file mode 100644 index 00000000..656100bb --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service @@ -0,0 +1,10 @@ +[Unit] +Description=Minidlna Daemon +After=network.target + +[Service] +Type=notify +ExecStart=/usr/sbin/minidlnad -f /etc/minidlna.conf + +[Install] +WantedBy=multi-user.target diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb new file mode 100644 index 00000000..999d85ce --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb @@ -0,0 +1,4 @@ +require ${BPN}.inc + +SRCREV = "c760a338e07ebd11d62fef701e3de824a91f8625" +LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch new file mode 100644 index 00000000..db4d6e8c --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch @@ -0,0 +1,21 @@ +Allow LIB_INSTALL_DIR to be set by the the cmake configure invocation. We dont +easily have a way of determining something that patches ${LIB_SUFFIX} so we'll +set LIB_INSTALL_DIR. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Kumar Gala + +Index: git/CMakeLists.txt +=================================================================== +--- git.orig/CMakeLists.txt ++++ git/CMakeLists.txt +@@ -36,7 +36,7 @@ FIND_PACKAGE(LibXml2 REQUIRED) + SET(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") + SET(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Installation prefix for executables and object code libraries" FORCE) + SET(BIN_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/bin CACHE PATH "Installation prefix for user executables" FORCE) +-SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries" FORCE) ++SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries") + SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE) + + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz5.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc) diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb new file mode 100644 index 00000000..ca9d94a1 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb @@ -0,0 +1,40 @@ +SUMMARY = "MusicBrainz client library" +DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. The library allows you to access the data held on the MusicBrainz server." +HOMEPAGE = "http://musicbrainz.org" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24" +DEPENDS = "expat libxml2 libxml2-native neon neon-native" + +PV = "5.1.0+git${SRCPV}" + +SRCREV = "44c05779dd996035758f5ec426766aeedce29cc3" +SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git \ + file://allow-libdir-override.patch " + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +do_configure_prepend() { + # The native build really doesn't like being rebuilt, so delete + # it if it's already present. Also delete all other files not + # known to Git to fix subsequent invocations of do_configure. + git clean -dfx -e /.pc/ -e /patches/ . + mkdir build-native + cd build-native + LDFLAGS="${BUILD_LDFLAGS}" \ + cmake -DCMAKE_C_FLAGS=${BUILD_CFLAGS} \ + -DCMAKE_C_COMPILER=${BUILD_CC} \ + -DCMAKE_CXX_FLAGS=${BUILD_CXXFLAGS} \ + -DCMAKE_CXX_COMPILER=${BUILD_CXX} \ + -DCMAKE_EXE_LINKER_FLAGS=${BUILD_LDFLAGS} \ + .. + make make-c-interface + cd .. +} + +EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:PATH=${libdir} \ + -DIMPORT_EXECUTABLES=build-native/ImportExecutables.cmake" + +# out-of-tree building doesn't appear to work for this package. +B = "${S}" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch new file mode 100644 index 00000000..4a2b25cd --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch @@ -0,0 +1,10 @@ +--- libmpd-11.8.17/src/libmpd-internal.h.orig 2014-09-30 04:08:50.963292427 +0200 ++++ libmpd-11.8.17/src/libmpd-internal.h 2014-09-30 04:08:30.595292223 +0200 +@@ -21,6 +21,7 @@ + #define __MPD_INTERNAL_LIB_ + + #include "libmpdclient.h" ++#include "config.h" + struct _MpdData_real; + + typedef struct _MpdData_real { diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb new file mode 100644 index 00000000..54d79109 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb @@ -0,0 +1,13 @@ +SUMMARY = "Music Player Daemon library" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE ="http://sourceforge.net/projects/musicpd" +DEPENDS = "glib-2.0" + +SRC_URI = "http://www.musicpd.org/download/${BPN}/${PV}/${BP}.tar.gz \ + file://glibc-2.20.patch \ +" +SRC_URI[md5sum] = "5ae3d87467d52aef3345407adb0a2488" +SRC_URI[sha256sum] = "fe20326b0d10641f71c4673fae637bf9222a96e1712f71f170fca2fc34bf7a83" + +inherit autotools pkgconfig diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb new file mode 100644 index 00000000..455e76fc --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb @@ -0,0 +1,22 @@ +SUMMARY = "C client library for the Music Player Daemon" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=06b9dfd2f197dc514d8ef06549684b77" +HOMEPAGE = "https://www.musicpd.org/libs/libmpdclient/" + +inherit meson + +SRC_URI = " \ + git://github.com/MusicPlayerDaemon/libmpdclient \ +" +SRCREV = "4e8d990eb5239566ee948f1cd79b7248e008620a" +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "tcp" +PACKAGECONFIG[tcp] = "-Dtcp=true,-Dtcp=false" + +do_install_append() { + # libmpdclient's Vala bindings are outdated and unmaintained; it + # is likely that nobody will ever use them, so let's not install + # them + rm -rf ${D}${datadir}/vala +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb new file mode 100644 index 00000000..41abe710 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb @@ -0,0 +1,16 @@ +SUMMARY = "A minimalist command line interface to the Music Player Daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE = "https://www.musicpd.org/clients/mpc/" + +inherit meson + +DEPENDS += " \ + libmpdclient \ +" + +SRC_URI = " \ + git://github.com/MusicPlayerDaemon/mpc \ +" +SRCREV = "59875acdf34e5f0eac0c11453c49daef54f78413" +S = "${WORKDIR}/git" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in new file mode 100644 index 00000000..f9f92c98 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/mpd.conf.in @@ -0,0 +1,420 @@ +# An example configuration file for MPD +# See the mpd.conf man page for a more detailed description of each parameter. + + +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. +# +music_directory "%music_directory%" +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# playlist files not created by the server but only if they are in the MPD +# format. This setting defaults to playlist saving being disabled. +# +playlist_directory "%playlist_directory%" +# +# This setting sets the location of the MPD database. This file is used to +# load the database at server start up and store the database while the +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +db_file "%db_file%" +# +# These settings are the locations for the daemon log files for the daemon. +# These logs are great for troubleshooting, depending on your log_level +# settings. +# +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog, otherwise logging is disabled. +# +log_file "%log_file%" +# +# This setting sets the location of the file which stores the process ID +# for use of mpd --kill and some init scripts. This setting is disabled by +# default and the pid file will not be stored. +# +#pid_file "/var/run/mpd/mpd.pid" +# +# This setting sets the location of the file which contains information about +# most variables to get MPD back into the same general shape it was in before +# it was brought down. This setting is disabled by default and the server +# state will be reset on server start up. +# +state_file "%state_file%" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +#sticker_file "~/.mpd/sticker.sql" +# +############################################################################### + + +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +user "mpd" +# +# This setting specifies the group that MPD will run as. If not specified +# primary group of user specified with "user" setting will be used (if set). +# This is useful if MPD needs to be a member of group such as "audio" to +# have permission to use sound card. +# +group "audio" +# +# This setting sets the address for the daemon to listen on. Careful attention +# should be paid if this is assigned to anything other then the default, any. +# This setting can deny access to control of the daemon. +# +# For network +bind_to_address "any" +# +# And for Unix Socket +#bind_to_address "~/.mpd/socket" +# +# This setting is the TCP port that is desired for the daemon to get assigned +# to. +# +#port "6600" +# +# This setting controls the type of information which is logged. Available +# setting arguments are "default", "secure" or "verbose". The "verbose" setting +# argument is recommended for troubleshooting, though can quickly stretch +# available resources on limited hardware storage. +# +#log_level "default" +# +# If you have a problem with your MP3s ending abruptly it is recommended that +# you set this argument to "no" to attempt to fix the problem. If this solves +# the problem, it is highly recommended to fix the MP3 files with vbrfix +# (available from ), at which +# point gapless MP3 playback can be enabled. +# +#gapless_mp3_playback "yes" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. Optionally, 'comment' can be added to this +# list. +# +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. +# +#auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### + + +# Symbolic link behavior ###################################################### +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. +# +#follow_outside_symlinks "yes" +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. +# +#follow_inside_symlinks "yes" +# +############################################################################### + + +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" +# +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. +# +#zeroconf_name "Music Player" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# can setting can be specified multiple times for different password profiles. +# +#password "password@read,add,control,admin" +# +# This setting specifies the permissions a user has who has not yet logged in. +# +#default_permissions "read,add,control,admin" +# +############################################################################### + + +# Input ####################################################################### +# + +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + +# +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. +# +# See for examples of +# other audio outputs. +# +# board specific examples ##################################################### +# (feel free to add futher) +# +# gumstix overo (tested with TOBI expansion board) +#audio_output { +# type "alsa" +# name "overo" +# mixer_control "Headset" +# mixer_index "0" +#} +# +# general examples ############################################################ +# +# An example of an ALSA output: +# +#audio_output { +# type "alsa" +# name "My ALSA Device" +## device "hw:0,0" # optional +## format "44100:16:2" # optional +## mixer_type "hardware" # optional +## mixer_device "default" # optional +## mixer_control "PCM" # optional +## mixer_index "0" # optional +#} +# +# An example of an OSS output: +# +#audio_output { +# type "oss" +# name "My OSS Device" +## device "/dev/dsp" # optional +## format "44100:16:2" # optional +## mixer_type "hardware" # optional +## mixer_device "/dev/mixer" # optional +## mixer_control "PCM" # optional +#} +# +# An example of a shout output (for streaming to Icecast): +# +#audio_output { +# type "shout" +# encoding "ogg" # optional +# name "My Shout Stream" +# host "localhost" +# port "8000" +# mount "/mpd.ogg" +# password "hackme" +# quality "5.0" +# bitrate "128" +# format "44100:16:1" +## protocol "icecast2" # optional +## user "source" # optional +## description "My Stream Description" # optional +## genre "jazz" # optional +## public "no" # optional +## timeout "2" # optional +## mixer_type "software" # optional +#} +# +# An example of a recorder output: +# +#audio_output { +# type "recorder" +# name "My recorder" +# encoder "vorbis" # optional, vorbis or lame +# path "/var/lib/mpd/recorder/mpd.ogg" +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +#} +# +# An example of a httpd output (built-in HTTP streaming server): +# +#audio_output { +# type "httpd" +# name "My HTTP Stream" +# encoder "vorbis" # optional, vorbis or lame +# port "8000" +# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +# max_clients "0" # optional 0=no limit +#} +# +# An example of a pulseaudio output (streaming to a remote pulseaudio server) +# +#audio_output { +# type "pulse" +# name "My Pulse Output" +## server "remote_server" # optional +## sink "remote_server_sink" # optional +#} +# +## Example "pipe" output: +# +#audio_output { +# type "pipe" +# name "my pipe" +# command "aplay -f cd 2>/dev/null" +## Or if you're want to use AudioCompress +# command "AudioCompress -m | aplay -f cd 2>/dev/null" +## Or to send raw PCM stream through PCM: +# command "nc example.org 8765" +# format "44100:16:2" +#} +# +## An example of a null output (for no audio output): +# +#audio_output { +# type "null" +# name "My Null Output" +# mixer_type "none" # optional +#} +# +# This setting will change all decoded audio to be converted to the specified +# format before being passed to the audio outputs. By default, this setting is +# disabled. +# +#audio_output_format "44100:16:2" +# +# If MPD has been compiled with libsamplerate support, this setting specifies +# the sample rate converter to use. Possible values can be found in the +# mpd.conf man page or the libsamplerate documentation. By default, this is +# setting is disabled. +# +#samplerate_converter "Fastest Sinc Interpolator" +# +############################################################################### + + +# Normalization automatic volume adjustments ################################## +# +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album" or "track". See +# for more details. This setting is off by default. +# +#replaygain "album" +# +# This setting sets the pre-amp used for files that have ReplayGain tags. By +# default this setting is disabled. +# +#replaygain_preamp "0" +# +# This setting enables on-the-fly normalization volume adjustment. This will +# result in the volume of all playing audio to be adjusted so the output has +# equal "loudness". This setting is disabled by default. +# +#volume_normalization "no" +# +############################################################################### + + +# MPD Internal Buffering ###################################################### +# +# This setting adjusts the size of internal decoded audio buffering. Changing +# this may have undesired effects. Don't change this if you don't know what you +# are doing. +# +#audio_buffer_size "2048" +# +# This setting controls the percentage of the buffer which is filled before +# beginning to play. Increasing this reduces the chance of audio file skipping, +# at the cost of increased time prior to audio playback. +# +#buffer_before_play "10%" +# +############################################################################### + + +# Resource Limitations ######################################################## +# +# These settings are various limitations to prevent MPD from using too many +# resources. Generally, these settings should be minimized to prevent security +# risks, depending on the operating resources. +# +#connection_timeout "60" +#max_connections "10" +#max_playlist_length "16384" +#max_command_list_size "2048" +#max_output_buffer_size "8192" +# +############################################################################### + + +# Character Encoding ########################################################## +# +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. +# +#filesystem_charset "UTF-8" +# +# This setting controls the encoding that ID3v1 tags should be converted from. +# +#id3v1_encoding "ISO-8859-1" +# +############################################################################### + + +# SIDPlay decoder ############################################################# +# +# songlength_database: +# Location of your songlengths file, as distributed with the HVSC. +# The sidplay plugin checks this for matching MD5 fingerprints. +# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq +# +# default_songlength: +# This is the default playing time in seconds for songs not in the +# songlength database, or in case you're not using a database. +# A value of 0 means play indefinitely. +# +# filter: +# Turns the SID filter emulation on or off. +# +#decoder { +# plugin "sidplay" +# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt" +# default_songlength "120" +# filter "true" +#} +# +############################################################################### + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb new file mode 100644 index 00000000..6c6ad423 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb @@ -0,0 +1,99 @@ +SUMMARY = "Music Player Daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE ="http://www.musicpd.org" + +inherit autotools useradd systemd pkgconfig + +DEPENDS += " \ + curl \ + sqlite3 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ + yajl \ + boost \ + icu \ + dbus \ + expat \ +" + +SRC_URI = " \ + git://github.com/MusicPlayerDaemon/MPD;branch=v0.20.x \ + file://mpd.conf.in \ +" +SRCREV = "9274bc15bc41bbe490fde847f8422468cc20375d" +S = "${WORKDIR}/git" + +EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" + +PACKAGECONFIG ??= "alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate libwrap httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib" +PACKAGECONFIG += "${@bb.utils.contains('LICENSE_FLAGS', 'commercial', 'aac', '', d)}" + +PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,faad2" +PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" +PACKAGECONFIG[ao] = "--enable-ao,--disable-ao,libao" +PACKAGECONFIG[audiofile] = "--enable-audiofile,--disable-audiofile,audiofile" +PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2" +PACKAGECONFIG[cdioparanoia] = "--enable-cdio-paranoia,--disable-cdio-paranoia,libcdio-paranoia" +PACKAGECONFIG[daemon] = "--enable-daemon,--disable-daemon" +PACKAGECONFIG[ffmpeg] = "--enable-ffmpeg,--disable-ffmpeg,ffmpeg" +PACKAGECONFIG[fifo] = "--enable-fifo,--disable-fifo" +PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" +PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" +PACKAGECONFIG[httpd] = "--enable-httpd-output,--disable-httpd-output" +PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag" +PACKAGECONFIG[iso9660] = "--enable-iso9660,--disable-iso9660,libcdio" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame" +PACKAGECONFIG[libsamplerate] = "--enable-lsr,--disable-lsr,libsamplerate0" +PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers" +PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" +PACKAGECONFIG[mms] = "--enable-mms,--disable-mms,libmms" +PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" +PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" +PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus libogg" +PACKAGECONFIG[oss] = "--enable-oss,--disable-oss," +PACKAGECONFIG[recorder] = "--enable-recorder-output,--disable-recorder-output" +PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba" +PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" +PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" + +do_configure_prepend() { + sed -i -e 's|libsystemd-daemon|libsystemd|' ${S}/configure.ac +} + +do_install_append() { + install -o mpd -d \ + ${D}/${localstatedir}/lib/mpd \ + ${D}/${localstatedir}/lib/mpd/playlists + install -m775 -o mpd -g mpd -d \ + ${D}/${localstatedir}/lib/mpd/music + + install -d ${D}/${sysconfdir} + install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf + sed -i \ + -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \ + -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \ + -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \ + -e 's|%log_file%|${localstatedir}/log/mpd.log|' \ + -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \ + ${D}/${sysconfdir}/mpd.conf + + # we don't need the icon + rm -rf ${D}${datadir}/icons +} + +RPROVIDES_${PN} += "${PN}-systemd" +RREPLACES_${PN} += "${PN}-systemd" +RCONFLICTS_${PN} += "${PN}-systemd" +SYSTEMD_SERVICE_${PN} = "mpd.socket" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM_${PN} = " \ + --system --no-create-home \ + --home ${localstatedir}/lib/mpd \ + --groups audio \ + --user-group mpd" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb new file mode 100644 index 00000000..8468d125 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb @@ -0,0 +1,37 @@ +SUMMARY = "A curses client for the Music Player Daemon" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" +HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/" + +inherit meson + +DEPENDS += " \ + boost \ + ncurses \ + libmpdclient \ +" + +PACKAGECONFIG ??= "colors locale mouse nls regex help_screen artist_screen search_screen song_screen key_screen lyrics_screen outputs_screen" + +PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false" +PACKAGECONFIG[lirc] = "-Dlirc=enabled,-Dlirc=disabled,lirc" +PACKAGECONFIG[locale] = "-Dlocale=enabled,-Dlocale=disabled" +PACKAGECONFIG[mini] = "-Dmini=true,-Dmini=false" +PACKAGECONFIG[mouse] = "-Dmouse=enabled,-Dmouse=disabled" +PACKAGECONFIG[nls] = "-Dnls=enabled,-Dnls=disabled,gettext-native" +PACKAGECONFIG[regex] = "-Dregex=enabled,-Dregex=disabled,pcre" + +PACKAGECONFIG[help_screen] = "-Dhelp_screen=true,-Dhelp_screen=false" +PACKAGECONFIG[artist_screen] = "-Dartist_screen=true,-Dartist_screen=false" +PACKAGECONFIG[search_screen] = "-Dsearch_screen=true,-Dsearch_screen=false" +PACKAGECONFIG[song_screen] = "-Dsong_screen=true,-Dsong_screen=false" +PACKAGECONFIG[key_screen] = "-Dkey_screen=true,-Dkey_screen=false" +PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false" +PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false" +PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false" + +SRC_URI = " \ + git://github.com/MusicPlayerDaemon/ncmpc \ +" +SRCREV = "8e98f89ff07b140e6357dab2a9a9f6432ae0e521" +S = "${WORKDIR}/git" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb new file mode 100644 index 00000000..e0f1a26d --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb @@ -0,0 +1,20 @@ +SUMMARY = "OpenAL is a cross-platform 3D audio API" +HOMEPAGE = "http://kcat.strangesoft.net/openal.html" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=facc3a8f452930083bbb95d82b989c35" + +inherit cmake + +SRC_URI = "http://kcat.strangesoft.net/openal-releases/${BP}.tar.bz2" +SRC_URI[md5sum] = "ea83dec3b9655a27d28e7bc7cae9cd71" +SRC_URI[sha256sum] = "0e29a162f0841ccb4135ce76e92e8a704589b680a85eddf76f898de5236eb056" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}" +PACKAGECONFIG[alsa] = "-DALSA=TRUE, -DALSA=FALSE, alsa-lib" +PACKAGECONFIG[pulseaudio] = "-DPULSEAUDIO=TRUE, -DPULSEAUDIO=FALSE, pulseaudio" +# currently doesn't work with libav-9 +# PKG_CHECK_MODULES(FFMPEG libavcodec>=53.61.100 libavformat>=53.32.100 libavutil>=51.35.100) +# but alffmpeg.c:418:44: error: 'AV_CH_LAYOUT_MONO' undeclared (first use in this function) +PACKAGECONFIG[examples] = "-DEXAMPLES=TRUE, -DEXAMPLES=FALSE, libav" + +FILES_${PN} += "${datadir}/openal" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb new file mode 100644 index 00000000..ab5813eb --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "OpenCORE Adaptive Multi Rate (AMR) speech codec library implementation" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "09d2c5dfb43a9f6e9fec8b1ae678e725" +SRC_URI[sha256sum] = "106bf811c1f36444d7671d8fd2589f8b2e0cca58a2c764da62ffc4a070595385" + +inherit autotools diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb new file mode 100644 index 00000000..ce373629 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-aacenc_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "VisualOn Advanced Audio Coding (AAC) encoder" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "b574da1d92d75fc40b0b75aa16f24ac4" +SRC_URI[sha256sum] = "e51a7477a359f18df7c4f82d195dab4e14e7414cbd48cf79cc195fc446850f36" + +inherit autotools diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb new file mode 100644 index 00000000..cc049edb --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opencore-amr/vo-amrwbenc_0.1.3.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "VisualOn Adaptive Multi Rate Wideband (AMR-WB) encoder" +HOMEPAGE = "http://sourceforge.net/projects/opencore-amr/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" + +SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" +SRC_URI[md5sum] = "f63bb92bde0b1583cb3cb344c12922e0" +SRC_URI[sha256sum] = "5652b391e0f0e296417b841b02987d3fd33e6c0af342c69542cbb016a71d9d4e" + +inherit autotools diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb new file mode 100644 index 00000000..44c46f81 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb @@ -0,0 +1,42 @@ +DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \ +decoding. It is suitable for use in real time applications such as WebRTC." +HOMEPAGE = "http://www.openh264.org/" +SECTION = "libs/multimedia" + +DEPENDS_x86 += "nasm-native" +DEPENDS_x86-64 += "nasm-native" + +LICENSE = "BSD-2-Clause" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf" + +S = "${WORKDIR}/git" +SRCREV = "a180c9d4d6f1a4830ca9eed9d159d54996bd63cb" +BRANCH = "openh264v1.7" +SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH};" + +COMPATIBLE_MACHINE_armv7a = "(.*)" +COMPATIBLE_MACHINE_aarch64 = "(.*)" +COMPATIBLE_MACHINE_x86 = "(.*)" +COMPATIBLE_MACHINE_x86-64 = "(.*)" +COMPATIBLE_MACHINE_mips = "(.*)" +COMPATIBLE_MACHINE_mips64 = "(.*)" + +EXTRA_OEMAKE_armv7a = "ARCH=arm" +EXTRA_OEMAKE_aarch64 = "ARCH=arm64" +EXTRA_OEMAKE_x86 = "ARCH=i386" +EXTRA_OEMAKE_x86-64 = "ARCH=x86_64" +EXTRA_OEMAKE_mips = "ARCH=mips" +EXTRA_OEMAKE_mips64 = "ARCH=mips64" + +do_configure() { + : +} + +do_compile() { + oe_runmake +} + +do_install() { + oe_runmake install DESTDIR=${D} PREFIX=${prefix} +} diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb new file mode 100644 index 00000000..189dc87c --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Library for opening, seeking, and decoding opus audio files" +HOMEPAGE = "https://www.opus-codec.org/" +SECTION = "audio" + +DEPENDS = "libogg openssl libopus" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=6ac22b992dde6a891f8949c3e2da8576" + +SRC_URI = "https://downloads.xiph.org/releases/opus/${PN}-${PV}.tar.gz" +SRC_URI[md5sum] = "ab3f7d15d766f5b36b0951ee435f9ebf" +SRC_URI[sha256sum] = "48e03526ba87ef9cf5f1c47b5ebe3aa195bd89b912a57060c36184a6cd19412f" + +inherit autotools pkgconfig diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch new file mode 100644 index 00000000..6e11c975 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch @@ -0,0 +1,18 @@ +Make sure libdir (SODIR) is created when running parallel make. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Andrei Gherzan + +Index: git/librtmp/Makefile +=================================================================== +--- git.orig/librtmp/Makefile ++++ git/librtmp/Makefile +@@ -115,6 +115,7 @@ install_base: librtmp.a librtmp.pc + cp librtmp.3 $(MANDIR)/man3 + + install_so: librtmp$(SO_EXT) ++ -mkdir -p $(SODIR) + cp librtmp$(SO_EXT) $(SODIR) + $(INSTALL_IMPLIB) + cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX) diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb new file mode 100644 index 00000000..5f78be4f --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb @@ -0,0 +1,22 @@ +SUMMARY = "RTMP Dump" +DESCRIPTION = "rtmpdump is a toolkit for RTMP streams. All forms of RTMP are \ +supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://." +HOMEPAGE = "http://rtmpdump.mplayerhq.hu/" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +DEPENDS = "gnutls zlib" + +SRCREV = "fa8646daeb19dfd12c181f7d19de708d623704c0" +SRC_URI = " \ + git://git.ffmpeg.org/rtmpdump \ + file://fix-racing-build-issue.patch" + +S = "${WORKDIR}/git" + +inherit autotools-brokensep + +EXTRA_OEMAKE = " \ + CC='${CC}' LD='${LD} ${STAGING_LIBDIR}' XCFLAGS='${CFLAGS}' XLDFLAGS='${LDFLAGS}' \ + SYS=posix INC=-I=/usr/include DESTDIR=${D} CRYPTO=GNUTLS \ + prefix=${prefix} libdir=${libdir} incdir=${includedir}/librtmp bindir=${bindir} mandir=${mandir}" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb new file mode 100644 index 00000000..a80fc10a --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -0,0 +1,17 @@ +SUMMARY = "Big Buck Bunny movie - 1080P" +LICENSE = "CC-BY-3.0" +# http://www.bigbuckbunny.org/index.php/about/ +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_surround.avi" +SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" +SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c20c06ea" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_1080p_surround.avi ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb new file mode 100644 index 00000000..59ac4788 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -0,0 +1,17 @@ +SUMMARY = "Big Buck Bunny movie - 480P" +LICENSE = "CC-BY-3.0" +# http://www.bigbuckbunny.org/index.php/about/ +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi" +SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" +SRC_URI[sha256sum] = "40d1cf5bc8e1b0e55dac7bb2e3fbc2aea05b6679444864781299b24db044634f" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_480p_surround-fix.avi ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb new file mode 100644 index 00000000..21b8f8f0 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -0,0 +1,17 @@ +SUMMARY = "Big Buck Bunny movie - 720P" +LICENSE = "CC-BY-3.0" +# http://www.bigbuckbunny.org/index.php/about/ +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi" +SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" +SRC_URI[sha256sum] = "b957d6e6212638441b52d3b620af157cc8d40c2a0342669294854a06edcd528c" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/big_buck_bunny_720p_surround.avi ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb new file mode 100644 index 00000000..0582a485 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb @@ -0,0 +1,16 @@ +SUMMARY = "Tears of Steel movie - 1080P" +LICENSE = "CC-BY-3.0" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" + +SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov" +SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6" +SRC_URI[sha256sum] = "bd2b5bc6c16d4085034f47ef7e4b3938afe86b4eec4ac3cf2685367d3b0b23b0" + +inherit allarch + +do_install() { + install -d ${D}${datadir}/movies + install -m 0644 ${WORKDIR}/ToS-4k-1920.mov ${D}${datadir}/movies/ +} + +FILES_${PN} += "${datadir}/movies" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch new file mode 100644 index 00000000..838400f0 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/configure.ac.patch @@ -0,0 +1,20 @@ +Use the version of orcc in the sysroot not the one from the host + +Signed-off-by: Dongxiao Xu +Signed-off-by: Paul Eggleton + +Upstream-Status: Inappropriate [configuration] + +Index: schroedinger-1.0.11/configure.ac +=================================================================== +--- schroedinger-1.0.11.orig/configure.ac ++++ schroedinger-1.0.11/configure.ac +@@ -54,7 +54,7 @@ if test "x${HAVE_ORC}" != xyes ; then + AC_ERROR([orc-0.4 >= $ORC_VER is required]) + fi + SCHRO_PKG_DEPS="$SCHRO_PKG_DEPS orc-0.4 >= $ORC_VER" +-ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` ++ORCC=$STAGING_DIR`$PKG_CONFIG --variable=orcc orc-0.4` + AC_SUBST(ORCC) + AM_CONDITIONAL(HAVE_ORCC, test "x$cross_compiling" != xyes) + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb new file mode 100644 index 00000000..d38eb947 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb @@ -0,0 +1,22 @@ +SUMMARY = "Dirac compressed video encoder/decoder" +HOMEPAGE = "http://schrodinger.sourceforge.net/" +LICENSE = "MPL-1.1 | GPLv2 | LGPLv2 | MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \ + file://COPYING.GPL;md5=e181e3b7c66f5f96921d813c1074f833 \ + file://COPYING.LGPL;md5=38c893e21baec4cd75ad800ba9e2410a \ + file://COPYING.MIT;md5=8b345371b3536b4ce37ead1eafc88221 \ + file://COPYING.MPL;md5=0117647fecb9a932c25a7bbfc0333c37" + +DEPENDS = "liboil orc-native orc" + +SRC_URI = "http://www.diracvideo.org/download/schroedinger/${BP}.tar.gz \ + file://configure.ac.patch" + +SRC_URI[md5sum] = "da6af08e564ca1157348fb8d92efc891" +SRC_URI[sha256sum] = "1e572a0735b92aca5746c4528f9bebd35aa0ccf8619b22fa2756137a8cc9f912" + +EXTRA_OECONF += "STAGING_DIR=${STAGING_DIR_NATIVE}" + +inherit autotools-brokensep pkgconfig + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-Update-exported-symbol-list.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-Update-exported-symbol-list.patch new file mode 100644 index 00000000..44c6b19b --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-Update-exported-symbol-list.patch @@ -0,0 +1,34 @@ +From b1809d82031aa7c5bcaad58bcb4b59e082e0446e Mon Sep 17 00:00:00 2001 +From: Mans Rullgard +Date: Sun, 5 Nov 2017 15:40:16 +0000 +Subject: [PATCH] Update exported symbol list + +commit 5c58413544 ("Don't export (most) internal libsox symbols") +breaks dynamic flac builds as flac.c references lsx.error, so add it +to the list of exceptions. + +| .libs/flac.o: In function `decoder_read_callback': +| /usr/src/debug/sox/14.4.2-r0/sox-14.4.2/src/flac.c:63: undefined reference to `lsx_error' + +Upstream-Status: Backport [https://bogomips.org/sox.git ("pu" branch)] + +--- + src/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 7cceaafd..a3a04ed1 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -95,7 +95,7 @@ libsox_la_LIBADD += @GOMP_LIBS@ + + libsox_la_CFLAGS = @WARN_CFLAGS@ + libsox_la_LDFLAGS = @APP_LDFLAGS@ -version-info @SHLIB_VERSION@ \ +- -export-symbols-regex '^(sox_.*|lsx_(check_read_params|(close|open)_dllibrary|(debug(_more|_most)?|fail|report|warn)_impl|eof|fail_errno|filelength|find_(enum_(text|value)|file_extension)|getopt(_init)?|lpc10_(create_(de|en)coder_state|(de|en)code)|raw(read|write)|read(_b_buf|buf|chars)|realloc|rewind|seeki|sigfigs3p?|strcasecmp|tell|unreadb|write(b|_b_buf|buf|s)))$$' ++ -export-symbols-regex '^(sox_.*|lsx_(([cm]|re)alloc|check_read_params|(close|open)_dllibrary|(debug(_more|_most)?|fail|report|warn)_impl|eof|error|fail_errno|filelength|find_(enum_(text|value)|file_extension)|flush|getopt(_init)?|id3_read_tag|lpc10_(create_(de|en)coder_state|(de|en)code)|raw(read|write)|read(_b_buf|buf|chars)|rewind|seeki|sigfigs3p?|strcasecmp|strdup|tell|unreadb|write(b|_b_buf|buf|s)))$$' + + if HAVE_WIN32_LTDL + libsox_la_SOURCES += win32-ltdl.c win32-ltdl.h +-- +2.16.2 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch new file mode 100644 index 00000000..4f02a66f --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch @@ -0,0 +1,28 @@ +From d0313be5fb947df399a4db24a5f9244510d2ce87 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Wed, 12 Jul 2017 16:36:06 -0700 +Subject: [PATCH] remove the #error line and live without file-type detection + with pipes + +this fallback is executed with musl + +Signed-off-by: Khem Raj +--- + src/formats.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/src/formats.c b/src/formats.c +index 724a4cda..f683a922 100644 +--- a/src/formats.c ++++ b/src/formats.c +@@ -422,7 +422,6 @@ static void UNUSED rewind_pipe(FILE * fp) + /* To fix this #error, either simply remove the #error line and live without + * file-type detection with pipes, or add support for your compiler in the + * lines above. Test with cat monkey.wav | ./sox --info - */ +- #error FIX NEEDED HERE + #define NO_REWIND_PIPE + (void)fp; + #endif +-- +2.16.2 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb new file mode 100644 index 00000000..21fddd1e --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb @@ -0,0 +1,40 @@ +DESCRIPTION="SoX is the Swiss Army knife of sound processing tools. \ +It converts audio files among various standard audio file formats \ +and can apply different effects and filters to the audio data." +HOMEPAGE = "http://sox.sourceforge.net" +SECTION = "audio" + +DEPENDS = "libpng ffmpeg libsndfile1" + +# While this item does not require it, it depends on ffmpeg which does +LICENSE_FLAGS = "commercial" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \ + magic \ +" +PACKAGECONFIG[pulseaudio] = "--with-pulseaudio=dyn,--with-pulseaudio=no,pulseaudio," +PACKAGECONFIG[alsa] = "--with-alsa=dyn,--with-alsa=no,alsa-lib," +PACKAGECONFIG[wavpack] = "--with-wavpack=dyn,--with-wavpack=no,wavpack," +PACKAGECONFIG[flac] = "--with-flac=dyn,--with-flac=no,flac," +PACKAGECONFIG[amrwb] = "--with-amrwb=dyn,--with-amrwb=no,opencore-amr," +PACKAGECONFIG[amrnb] = "--with-amrnb=dyn,--with-amrnb=no,opencore-amr," +PACKAGECONFIG[oggvorbis] = "--with-oggvorbis=dyn,--with-oggvorbis=no,libvorbis" +PACKAGECONFIG[opus] = "--with-opus=dyn,--with-opus=no,opusfile" +PACKAGECONFIG[magic] = "--with-magic,--without-magic,file," +PACKAGECONFIG[mad] = "--with-mad,--without-mad,libmad," +PACKAGECONFIG[id3tag] = "--with-id3tag,--without-id3tag,libid3tag," +PACKAGECONFIG[lame] = "--with-lame,--without-lame,lame," +PACKAGECONFIG[ao] = "--with-ao,--without-ao,libao," + +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe \ + file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24" + +SRC_URI = "${SOURCEFORGE_MIRROR}/sox/sox-${PV}.tar.gz \ + file://0001-remove-the-error-line-and-live-without-file-type-det.patch \ + file://0001-Update-exported-symbol-list.patch \ + " +SRC_URI[md5sum] = "d04fba2d9245e661f245de0577f48a33" +SRC_URI[sha256sum] = "b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3bb55f6c" + +inherit autotools pkgconfig diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0001-build-these-are-foreign-automake-projects.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0001-build-these-are-foreign-automake-projects.patch new file mode 100644 index 00000000..c0f4692d --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0001-build-these-are-foreign-automake-projects.patch @@ -0,0 +1,49 @@ +From 4c7165b3fbc0e99e7cdd77031e8a001440d0629d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Thu, 3 Nov 2016 20:53:21 +0000 +Subject: [PATCH 1/3] build: these are 'foreign' automake projects +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In order to prevent automake from complaining about missing + +files ChangeLog, AUTHORS, etc., use the 'foreign' automake +option to instruct it so. + +Upstream-Status: Inappropriate [no upstream activity for 7+ years] +Signed-off-by: André Draszik +--- + configure.ac | 2 +- + libmad-0.15.1b/configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index b12d11f..96300d6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -11,7 +11,7 @@ dnl AC_CHECK_FUNC: defines a shell variable + + AC_PREREQ(2.59) + AC_INIT(streamripper,1.64.6) +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + + AC_CONFIG_HEADERS([lib/config.h]) + +diff --git a/libmad-0.15.1b/configure.ac b/libmad-0.15.1b/configure.ac +index 8fb35ee..ab116a6 100644 +--- a/libmad-0.15.1b/configure.ac ++++ b/libmad-0.15.1b/configure.ac +@@ -26,7 +26,7 @@ AC_PREREQ(2.53) + + AC_CONFIG_SRCDIR([decoder.h]) + +-AM_INIT_AUTOMAKE ++AM_INIT_AUTOMAKE([foreign]) + + AM_CONFIG_HEADER([config.h]) + +-- +2.10.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0002-build-don-t-ignore-CPPFLAGS-from-environment.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0002-build-don-t-ignore-CPPFLAGS-from-environment.patch new file mode 100644 index 00000000..58473f61 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0002-build-don-t-ignore-CPPFLAGS-from-environment.patch @@ -0,0 +1,30 @@ +From 2fcf2b164e25c4b2523dea4b04094916e57ba19e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Thu, 3 Nov 2016 20:53:26 +0000 +Subject: [PATCH 2/3] build: don't ignore CPPFLAGS from environment +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [no upstream activity for 7+ years] +Signed-off-by: André Draszik +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 96300d6..1600c88 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -56,7 +56,7 @@ AC_ARG_WITH(curses, + [ --with-curses(=XXX) compile curses front-end (XXX is curses (default), ncurses, ncursesw, pdcurses or slang)]) + + +-CPPFLAGS="-D__UNIX__" ++CPPFLAGS="$CPPFLAGS -D__UNIX__" + AC_SUBST(CPPFLAGS) + + +-- +2.10.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0003-ripstream-fix-compilation.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0003-ripstream-fix-compilation.patch new file mode 100644 index 00000000..065254ec --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper/0003-ripstream-fix-compilation.patch @@ -0,0 +1,42 @@ +From 6d59b60ff5108357ad2c2951a97112e713ee5368 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= +Date: Thu, 3 Nov 2016 20:53:32 +0000 +Subject: [PATCH 3/3] ripstream: fix compilation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| ../../streamripper-1.64.6/lib/ripstream.c: In function 'write_id3v2_frame': +| ../../streamripper-1.64.6/lib/ripstream.c:717:5: error: unknown type name '__uint32_t' +| __uint32_t framesize = 0; +| ^~~~~~~~~~ + +The already included srtypes.h does the right thing for all +platforms (I think). It certainly works well here. + +Upstream-Status: Inappropriate [no upstream activity for 7+ years] +Signed-off-by: André Draszik +--- + lib/ripstream.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/lib/ripstream.c b/lib/ripstream.c +index c671e18..7f311c6 100644 +--- a/lib/ripstream.c ++++ b/lib/ripstream.c +@@ -713,11 +713,7 @@ write_id3v2_frame(RIP_MANAGER_INFO* rmi, char* tag_name, mchar* data, + int rc; + char bigbuf[HEADER_SIZE] = ""; + ID3V2frame id3v2frame; +-#ifndef WIN32 +- __uint32_t framesize = 0; +-#else +- unsigned long int framesize = 0; +-#endif ++ uint32_t framesize = 0; + + memset(&id3v2frame, '\000', sizeof(id3v2frame)); + strncpy(id3v2frame.id, tag_name, 4); +-- +2.10.1 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb new file mode 100644 index 00000000..722815ab --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb @@ -0,0 +1,32 @@ +SUMMARY = "download online streams into audio files" +DESCRIPTION = "This command-line tool can be used to record MPEG III \ +and OGG online radio-streams into track-separated audio files." +HOMEPAGE = "http://streamripper.sourceforge.net" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" +DEPENDS = "glib-2.0 libmad libogg libvorbis" + +# While this item does not require it, it depends on libmad which does +LICENSE_FLAGS = "commercial" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ + file://0001-build-these-are-foreign-automake-projects.patch \ + file://0002-build-don-t-ignore-CPPFLAGS-from-environment.patch \ + file://0003-ripstream-fix-compilation.patch \ +" +SRC_URI[mdsum] = "a37a1a8b8f9228522196a122a1c2dd32" +SRC_URI[sha256sum] = "c1d75f2e9c7b38fd4695be66eff4533395248132f3cc61f375196403c4d8de42" + +inherit autotools pkgconfig + +EXTRA_OECONF += "--with-included-argv=yes --with-included-libmad=no" +EXTRA_OECONF += "\ + --with-ogg-includes=${STAGING_INCDIR} \ + --with-ogg-libraries=${STAGING_LIBDIR} \ + --with-vorbis-includes=${STAGING_INCDIR} \ + --with-vorbis-libraries=${STAGING_LIBDIR} \ +" + +# the included argv library needs this +CPPFLAGS_append = " -DANSI_PROTOTYPES" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb new file mode 100644 index 00000000..157e4c91 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "TinyALSA is a small library to interface with ALSA in \ +the Linux kernel. It is a lightweight alternative to libasound." +HOMEPAGE = "https://github.com/tinyalsa/tinyalsa" +SECTION = "libs/multimedia" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b" + +SRCREV = "67b9210d344c34e8d1aa0cfe638abce71c5221ca" +SRC_URI = "git://github.com/tinyalsa/tinyalsa" +PV = "1.1.1+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit cmake + +# tinyalsa is built as a static library. Enable PIC to avoid relocation +# errors like these: +# +# unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17' +CFLAGS += " -fPIC -DPIC " + +PACKAGES =+ "${PN}-tools" +FILES_${PN}-tools = "${bindir}/*" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/obsolete_automake_macros.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/obsolete_automake_macros.patch new file mode 100644 index 00000000..7e510290 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/obsolete_automake_macros.patch @@ -0,0 +1,15 @@ +Upstream-Status: Submitted [https://trac.xiph.org/ticket/1922] + +Signed-off-by: Marko Lindqvist +Index: configure.in +=================================================================== +--- configure.in (revision 18764) ++++ configure.in (working copy) +@@ -9,7 +9,7 @@ + AC_CANONICAL_HOST + AC_CANONICAL_TARGET + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + AM_INIT_AUTOMAKE(libvorbisidec,1.2.1) diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/tremor-arm-thumb2.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/tremor-arm-thumb2.patch new file mode 100644 index 00000000..20495422 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor/tremor-arm-thumb2.patch @@ -0,0 +1,104 @@ +From: Xin Ouyang +Date: Mon, 16 Jul 2012 13:29:34 +0800 +Subject: [PATCH] tremor: add IT instructions for arm thumb2 tune flags. + +Upstream-Status: Pending + +In Thumb-2, most instructions do not have a built in condition code (except for +conditional branches). Instead, short sequences of instructions which are to be +executed conditionally can be preceded by a special "IT instruction" which +describes the condition and which of the following instructions should be +executed if the condition is false respectively. + +For the ARM/Thumb IT(If-Then) instruction: +http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cjabicci.html + +Signed-off-by: Xin Ouyang +--- + asm_arm.h | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/asm_arm.h b/asm_arm.h +index c3bda00..823c54f 100755 +--- a/asm_arm.h ++++ b/asm_arm.h +@@ -108,9 +108,11 @@ static inline void XNPROD31(ogg_int32_t a, ogg_int32_t b, + static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) { + int tmp; + asm volatile("subs %1, %0, #32768\n\t" ++ "itt pl\n\t" + "movpl %0, #0x7f00\n\t" + "orrpl %0, %0, #0xff\n" + "adds %1, %0, #32768\n\t" ++ "it mi\n\t" + "movmi %0, #0x8000" + : "+r"(x),"=r"(tmp) + : +@@ -139,10 +141,12 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, + + "ldmdb r0!,{r1,r3};" + "subs r1,r1,%4;" //ilsp[j]-wi ++ "it mi;" + "rsbmi r1,r1,#0;" //labs(ilsp[j]-wi) + "umull %0,r2,r1,%0;" //qi*=labs(ilsp[j]-wi) + + "subs r1,r3,%4;" //ilsp[j+1]-wi ++ "it mi;" + "rsbmi r1,r1,#0;" //labs(ilsp[j+1]-wi) + "umull %1,r3,r1,%1;" //pi*=labs(ilsp[j+1]-wi) + +@@ -167,6 +171,7 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, + "mov r0,#0x4000;\n" + + "subs r1,r1,%4;\n" //ilsp[j]-wi ++ "it mi;\n" + "rsbmi r1,r1,#0;\n" //labs(ilsp[j]-wi) + "umull %0,r2,r1,%0;\n" //qi*=labs(ilsp[j]-wi) + "umull %1,r3,r0,%1;\n" //pi*=labs(ilsp[j+1]-wi) +@@ -190,18 +195,23 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip, + "mov r2,#0;" + "orr r1,%0,%1;" + "tst r1,#0xff000000;" ++ "itt ne;" + "addne r2,r2,#8;" + "movne r1,r1,lsr #8;" + "tst r1,#0x00f00000;" ++ "itt ne;" + "addne r2,r2,#4;" + "movne r1,r1,lsr #4;" + "tst r1,#0x000c0000;" ++ "itt ne;" + "addne r2,r2,#2;" + "movne r1,r1,lsr #2;" + "tst r1,#0x00020000;" ++ "itt ne;" + "addne r2,r2,#1;" + "movne r1,r1,lsr #1;" + "tst r1,#0x00010000;" ++ "it ne;" + "addne r2,r2,#1;" + "mov %0,%0,lsr r2;" + "mov %1,%1,lsr r2;" +@@ -222,15 +232,19 @@ static inline void lsp_norm_asm(ogg_uint32_t *qip,ogg_int32_t *qexpp){ + ogg_int32_t qexp=*qexpp; + + asm("tst %0,#0x0000ff00;" ++ "itt eq;" + "moveq %0,%0,lsl #8;" + "subeq %1,%1,#8;" + "tst %0,#0x0000f000;" ++ "itt eq;" + "moveq %0,%0,lsl #4;" + "subeq %1,%1,#4;" + "tst %0,#0x0000c000;" ++ "itt eq;" + "moveq %0,%0,lsl #2;" + "subeq %1,%1,#2;" + "tst %0,#0x00008000;" ++ "itt eq;" + "moveq %0,%0,lsl #1;" + "subeq %1,%1,#1;" + : "+r"(qi),"+r"(qexp) +-- +1.7.9.5 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb new file mode 100644 index 00000000..937894a7 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb @@ -0,0 +1,27 @@ +SUMMARY = "Fixed-point decoder" +DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec." +SECTION = "libs" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ + file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f" +DEPENDS = "libogg" +SRCDATE = "${PV}" +PR = "r1" + +# SVN support for upstream version check isn't implemented yet +RECIPE_UPSTREAM_VERSION = "20150107" +RECIPE_UPSTREAM_DATE = "Jan 07, 2015" +CHECK_DATE = "Aug 12, 2015" + +SRC_URI = "svn://svn.xiph.org/trunk;module=Tremor;rev=19427;protocol=http \ + file://obsolete_automake_macros.patch;striplevel=0 \ + file://tremor-arm-thumb2.patch \ +" + +S = "${WORKDIR}/Tremor" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--enable-shared" + +ARM_INSTRUCTION_SET = "arm" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb new file mode 100644 index 00000000..79e64aeb --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2" + +inherit autotools + +EXTRA_OECONF = " --disable-doc " + +SRC_URI[md5sum] = "7f0fdb3ff91d638f5e45ed7536f7eb67" +SRC_URI[sha256sum] = "7c414acd520c4e4dd7267952f72d738ff50321a7869af4d75c65aefad44f1395" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc new file mode 100644 index 00000000..f13c0ead --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc.inc @@ -0,0 +1,113 @@ +DESCRIPTION = "Video player and streamer - davinci edition" +HOMEPAGE = "http://www.videolan.org" +SECTION = "multimedia" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +DEPENDS = "fribidi libtool libgcrypt libgcrypt-native \ + dbus dbus-glib libxml2 gnutls \ + tremor faad2 ffmpeg flac fluidsynth alsa-lib \ + lua-native lua libidn \ + avahi jpeg xz libmodplug mpeg2dec \ + libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ + tiff" + +# While this item does not require it, it depends on ffmpeg which does +LICENSE_FLAGS = "commercial" + +SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz" + +inherit autotools gettext pkgconfig distro_features_check + +ARM_INSTRUCTION_SET = "arm" + +EXTRA_OECONF = "\ + --enable-run-as-root \ + --enable-xvideo \ + --disable-screen --disable-caca \ + --enable-httpd --enable-vlm \ + --enable-freetype \ + --enable-tremor \ + --enable-v4l2 --disable-aa --disable-faad \ + --enable-dbus \ + --without-contrib \ + --without-kde-solid \ + --enable-realrtsp \ + --disable-libtar \ + ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}/moc4 \ + ac_cv_path_RCC=${STAGING_BINDIR_NATIVE}/rcc4 \ + ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}/uic4 \ +" + +PACKAGECONFIG ?= " live555 dc1394 dv1394 notify fontconfig freetype dvdread png ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 sdl vdpau', '', d)}" +PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" +PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl libsdl-image " +PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[live555] = "--enable-live555,--disable-live555,live555" +PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass" +PACKAGECONFIG[mkv] = "--enable-mkv,--disable-mkv,libmatroska libebml" +PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc" +PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" +PACKAGECONFIG[libva] = "--enable-libva --enable-avcodec,--disable-libva --disable-avcodec,libva libav" +PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" +PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gst-plugins-bad" +PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx" +PACKAGECONFIG[qt4] = "--enable-qt,--disable-qt, qt4-x11-free" +PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp" +PACKAGECONFIG[dvbpsi] = "--enable-dvbpsi,--disable-dvbpsi, libdvbpsi" +PACKAGECONFIG[samba] = "--enable-smbclient,--disable-smbclient, samba" +PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp" +PACKAGECONFIG[dvdnav] = "--enable-dvdnav,--disable-dvdnav,libdvdnav libdvdcss" +PACKAGECONFIG[sftp] = "--enable-sftp,--disable-sftp,libssh2" +PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg" +PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libvorbis libogg" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394" +PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg" +PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo" +PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+" +PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig" +PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss" +PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver" +PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama" +PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" +PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" + +do_configure_prepend() { + cp ${STAGING_DATADIR}/libtool/config.* ${S}/autotools/ || true +} + +do_configure_append() { + sed -i -e s:'$(MOC) $(DEFS) $(CPPFLAGS)':'$(MOC) $(DEFS)'\ -I${B}/include\ -DSYS_LINUX:g ${B}/modules/gui/qt4/Makefile + sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool +} + +# This recipe packages vlc as a library as well, so qt4 dependencies +# can be avoided when only the library is installed. +PACKAGES =+ "libvlc" + +LEAD_SONAME_libvlc = "libvlc.so.5" +FILES_libvlc = "${libdir}/lib*.so.*" + +FILES_${PN} += "\ + ${bindir}/vlc \ + ${datadir}/applications \ + ${datadir}/vlc/ \ + ${datadir}/icons \ + ${lindir}/vlc/vlc/libvlc_vdpau.so \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/vlc/*/.debug \ + ${libdir}/vlc/plugins/*/.debug \ +" + +FILES_${PN}-staticdev += "\ + ${libdir}/vlc/plugins/*/*.a \ +" + +INSANE_SKIP_${PN} = "dev-so" + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch new file mode 100644 index 00000000..9f0e708e --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch @@ -0,0 +1,13 @@ +Index: vlc-2.1.2/configure.ac +=================================================================== +--- vlc-2.1.2.orig/configure.ac ++++ vlc-2.1.2/configure.ac +@@ -24,7 +24,7 @@ AC_CANONICAL_BUILD + AC_CANONICAL_HOST + AC_PRESERVE_HELP_ORDER + +-AM_INIT_AUTOMAKE(tar-ustar color-tests foreign) ++AM_INIT_AUTOMAKE(tar-ustar color-tests foreign subdir-objects) + AC_CONFIG_HEADERS([config.h]) + + # Disable with "./configure --disable-silent-rules" or "make V=1" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch new file mode 100644 index 00000000..6d2a46fb --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch @@ -0,0 +1,17 @@ +Index: vlc-2.1.2/src/input/subtitles.c +=================================================================== +--- vlc-2.1.2.orig/src/input/subtitles.c ++++ vlc-2.1.2/src/input/subtitles.c +@@ -44,6 +44,12 @@ + #include "input_internal.h" + + /** ++ * Drepper's alternative ++ * http://en.wikibooks.org/wiki/C_Programming/C_Reference/nonstandard/strlcpy ++ */ ++#define strlcpy(dst, src, n) *((char* ) mempcpy(dst, src, n)) = '\0' ++ ++/** + * We are not going to autodetect more subtitle files than this. + */ + #define MAX_SUBTITLE_FILES 128 diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch new file mode 100644 index 00000000..8e881d09 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch @@ -0,0 +1,46 @@ +* The upstream tests for libgcrypt are awkward and not working. + - Requires libgcrypt-config, which seems broken? +* AM_PATH_LIBGCRYPT exists for a reason, why not use it? KISS. +* Upstream abandoned AM_PATH_LIBGCRYPT in the past...newer automake ok? + +Upstream status: Pending + +Index: vlc-2.2.1/configure.ac +=================================================================== +--- vlc-2.2.1.orig/configure.ac ++++ vlc-2.2.1/configure.ac +@@ -4017,25 +4017,19 @@ PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], + dnl + dnl libgcrypt + dnl ++GCRYPT_LIBVER=1 ++GCRYPT_REQ=1.1.94 + AC_ARG_ENABLE(libgcrypt, + [ --disable-libgcrypt gcrypt support (default enabled)]) + AS_IF([test "${enable_libgcrypt}" != "no"], [ +- AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [ +- libgcrypt-config --version >/dev/null || \ +- AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found]) +- AC_CHECK_LIB(gcrypt, gcry_control, [ +- have_libgcrypt="yes" +- GCRYPT_CFLAGS="`libgcrypt-config --cflags`" +- GCRYPT_LIBS="`libgcrypt-config --libs`" +- ], [ +- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.]) +- ], [`libgcrypt-config --libs`]) +- ], [ +- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.]) +- ], [#include ] +- ) ++ AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_REQ, ++ [ ++ GCRYPT_CFLAGS="$LIBGCRYPT_CFLAGS" ++ GCRYPT_LIBS="$LIBGCRYPT_LIBS" ++ ],[ ++ AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.]) ++ ]) + ]) +- + AC_SUBST(GCRYPT_CFLAGS) + AC_SUBST(GCRYPT_LIBS) + AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"]) diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch new file mode 100644 index 00000000..53df1c6e --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch @@ -0,0 +1,19 @@ +* modules/gui/qt4/Makefile.am not B!=S friendly +* Simple solution to missing directories in ${B} + +Upstream status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/gui/qt4/Makefile.am +=================================================================== +--- vlc-2.2.1.orig/modules/gui/qt4/Makefile.am ++++ vlc-2.2.1/modules/gui/qt4/Makefile.am +@@ -127,6 +127,7 @@ moc_verbose_0 = @echo " MOC " $@; + moc_verbose__0 = $(moc_verbose_0) + + .hpp.moc.cpp: ++ [ -d $(dir $@) ] || mkdir -p $(dir $@) + $(moc_verbose)$(MOC) $(MOC_CPPFLAGS) -o $@ $< + + # These MOC files depend on the configure settings: diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch new file mode 100644 index 00000000..2d84ffd2 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch @@ -0,0 +1,17 @@ +* Also look for postprocess.h under libpostproc/ + +Upstream-status: Pending + +Index: vlc-2.1.4/configure.ac +=================================================================== +--- vlc-2.1.4.orig/configure.ac ++++ vlc-2.1.4/configure.ac +@@ -2444,7 +2444,7 @@ then + VLC_SAVE_FLAGS + CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}" + CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}" +- AC_CHECK_HEADERS(postproc/postprocess.h) ++ AC_CHECK_HEADERS(postproc/postprocess.h,[],[AC_CHECK_HEADERS(libpostproc/postprocess.h)]) + VLC_ADD_PLUGIN([postproc]) + VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS]) + VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS]) diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch new file mode 100644 index 00000000..950c09b8 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch @@ -0,0 +1,29 @@ +Recent opencv API changes break upstream filter and example. +Make opencv explicitly configurable. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Tim Orling + +Index: vlc-2.1.4/configure.ac +=================================================================== +--- vlc-2.1.4.orig/configure.ac ++++ vlc-2.1.4/configure.ac +@@ -1693,7 +1693,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu + dnl + dnl OpenCV wrapper and example filters + dnl +-PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto]) ++AC_ARG_ENABLE(opencv, ++ [AS_HELP_STRING([--disable-opencv], ++ [disable OpenCV computer vision filter and example (default auto)])]) ++if test "${enable_opencv}" != "no" ++then ++ PKG_ENABLE_MODULES_VLC([OPENCV], ++ [opencv_example opencv_wrapper], ++ [opencv > 2.0], ++ (OpenCV (computer vision) filter), [auto]) ++fi + + + dnl diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch new file mode 100644 index 00000000..d05cf02b --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch @@ -0,0 +1,19 @@ +* tremor provides libvorbisidec, use it instead of libvorbisdec + +Upstream-status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/codec/Makefile.am +=================================================================== +--- vlc-2.2.1.orig/modules/codec/Makefile.am ++++ vlc-2.2.1/modules/codec/Makefile.am +@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora) + libtremor_plugin_la_SOURCES = codec/vorbis.c + libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor + libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' +-libtremor_plugin_la_LIBADD = -lvorbisdec -logg ++libtremor_plugin_la_LIBADD = -lvorbisidec -logg + EXTRA_LTLIBRARIES += libtremor_plugin.la + codec_LTLIBRARIES += $(LTLIBtremor) + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch new file mode 100644 index 00000000..145e1ab8 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch @@ -0,0 +1,279 @@ +* luaL_checkint and luaL_optint were deprecated in lua 5.3 +* replacement functions are luaL_checkinteger and luaL_optinteger + +Upstream-status: Pending + +Signed-off-by: Tim Orling + +Index: vlc-2.2.1/modules/lua/demux.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/demux.c ++++ vlc-2.2.1/modules/lua/demux.c +@@ -52,7 +52,7 @@ struct demux_sys_t + static int vlclua_demux_peek( lua_State *L ) + { + demux_t *p_demux = (demux_t *)vlclua_get_this( L ); +- int n = luaL_checkint( L, 1 ); ++ int n = luaL_checkinteger( L, 1 ); + const uint8_t *p_peek; + + int i_peek = stream_Peek( p_demux->s, &p_peek, n ); +@@ -67,7 +67,7 @@ static int vlclua_demux_read( lua_State + { + demux_t *p_demux = (demux_t *)vlclua_get_this( L ); + const uint8_t *p_read; +- int n = luaL_checkint( L, 1 ); ++ int n = luaL_checkinteger( L, 1 ); + int i_read = stream_Peek( p_demux->s, &p_read, n ); + + if( i_read > 0 ) +Index: vlc-2.2.1/modules/lua/libs/configuration.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/configuration.c ++++ vlc-2.2.1/modules/lua/libs/configuration.c +@@ -84,7 +84,7 @@ static int vlclua_config_set( lua_State + break; + + case VLC_VAR_INTEGER: +- config_PutInt( p_this, psz_name, luaL_checkint( L, 2 ) ); ++ config_PutInt( p_this, psz_name, luaL_checkinteger( L, 2 ) ); + break; + + case VLC_VAR_BOOL: +Index: vlc-2.2.1/modules/lua/libs/net.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/net.c ++++ vlc-2.2.1/modules/lua/libs/net.c +@@ -202,7 +202,7 @@ static int vlclua_net_listen_tcp( lua_St + { + vlc_object_t *p_this = vlclua_get_this( L ); + const char *psz_host = luaL_checkstring( L, 1 ); +- int i_port = luaL_checkint( L, 2 ); ++ int i_port = luaL_checkinteger( L, 2 ); + int *pi_fd = net_ListenTCP( p_this, psz_host, i_port ); + if( pi_fd == NULL ) + return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port ); +@@ -274,7 +274,7 @@ static int vlclua_net_connect_tcp( lua_S + { + vlc_object_t *p_this = vlclua_get_this( L ); + const char *psz_host = luaL_checkstring( L, 1 ); +- int i_port = luaL_checkint( L, 2 ); ++ int i_port = luaL_checkinteger( L, 2 ); + int i_fd = net_Connect( p_this, psz_host, i_port, SOCK_STREAM, IPPROTO_TCP ); + lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) ); + return 1; +@@ -282,26 +282,26 @@ static int vlclua_net_connect_tcp( lua_S + + static int vlclua_net_close( lua_State *L ) + { +- int i_fd = luaL_checkint( L, 1 ); ++ int i_fd = luaL_checkinteger( L, 1 ); + vlclua_fd_unmap_safe( L, i_fd ); + return 0; + } + + static int vlclua_net_send( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); + size_t i_len; + const char *psz_buffer = luaL_checklstring( L, 2, &i_len ); + +- i_len = luaL_optint( L, 3, i_len ); ++ i_len = luaL_optinteger( L, 3, i_len ); + lua_pushinteger( L, (fd != -1) ? send( fd, psz_buffer, i_len, 0 ) : -1 ); + return 1; + } + + static int vlclua_net_recv( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); +- size_t i_len = luaL_optint( L, 2, 1 ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); ++ size_t i_len = luaL_optinteger( L, 2, 1 ); + char psz_buffer[i_len]; + + ssize_t i_ret = (fd != -1) ? recv( fd, psz_buffer, i_len, 0 ) : -1; +@@ -382,19 +382,19 @@ static int vlclua_fd_open( lua_State *L + #ifndef _WIN32 + static int vlclua_fd_write( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); + size_t i_len; + const char *psz_buffer = luaL_checklstring( L, 2, &i_len ); + +- i_len = luaL_optint( L, 3, i_len ); ++ i_len = luaL_optinteger( L, 3, i_len ); + lua_pushinteger( L, (fd != -1) ? write( fd, psz_buffer, i_len ) : -1 ); + return 1; + } + + static int vlclua_fd_read( lua_State *L ) + { +- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) ); +- size_t i_len = luaL_optint( L, 2, 1 ); ++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) ); ++ size_t i_len = luaL_optinteger( L, 2, 1 ); + char psz_buffer[i_len]; + + ssize_t i_ret = (fd != -1) ? read( fd, psz_buffer, i_len ) : -1; +Index: vlc-2.2.1/modules/lua/libs/osd.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/osd.c ++++ vlc-2.2.1/modules/lua/libs/osd.c +@@ -67,7 +67,7 @@ static int vlclua_osd_icon( lua_State *L + { + const char *psz_icon = luaL_checkstring( L, 1 ); + int i_icon = vlc_osd_icon_from_string( psz_icon ); +- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL ); + if( !i_icon ) + return luaL_error( L, "\"%s\" is not a valid osd icon.", psz_icon ); + +@@ -114,9 +114,9 @@ static int vlc_osd_position_from_string( + static int vlclua_osd_message( lua_State *L ) + { + const char *psz_message = luaL_checkstring( L, 1 ); +- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL ); + const char *psz_position = luaL_optstring( L, 3, "top-right" ); +- mtime_t duration = luaL_optint( L, 4, 1000000 ); ++ mtime_t duration = luaL_optinteger( L, 4, 1000000 ); + + input_thread_t *p_input = vlclua_get_input_internal( L ); + if( p_input ) +@@ -154,10 +154,10 @@ static int vlc_osd_slider_type_from_stri + + static int vlclua_osd_slider( lua_State *L ) + { +- int i_position = luaL_checkint( L, 1 ); ++ int i_position = luaL_checkinteger( L, 1 ); + const char *psz_type = luaL_checkstring( L, 2 ); + int i_type = vlc_osd_slider_type_from_string( psz_type ); +- int i_chan = luaL_optint( L, 3, SPU_DEFAULT_CHANNEL ); ++ int i_chan = luaL_optinteger( L, 3, SPU_DEFAULT_CHANNEL ); + if( !i_type ) + return luaL_error( L, "\"%s\" is not a valid slider type.", + psz_type ); +@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register( + + static int vlclua_spu_channel_clear( lua_State *L ) + { +- int i_chan = luaL_checkint( L, 1 ); ++ int i_chan = luaL_checkinteger( L, 1 ); + input_thread_t *p_input = vlclua_get_input_internal( L ); + if( !p_input ) + return luaL_error( L, "Unable to find input." ); +Index: vlc-2.2.1/modules/lua/libs/playlist.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/playlist.c ++++ vlc-2.2.1/modules/lua/libs/playlist.c +@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_Sta + + static int vlclua_playlist_skip( lua_State * L ) + { +- int i_skip = luaL_checkint( L, 1 ); ++ int i_skip = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + playlist_Skip( p_playlist, i_skip ); + return 0; +@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_S + + static int vlclua_playlist_gotoitem( lua_State * L ) + { +- int i_id = luaL_checkint( L, 1 ); ++ int i_id = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + int i_ret = playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, +@@ -139,7 +139,7 @@ static int vlclua_playlist_gotoitem( lua + + static int vlclua_playlist_delete( lua_State * L ) + { +- int i_id = luaL_checkint( L, 1 ); ++ int i_id = luaL_checkinteger( L, 1 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id ); +@@ -155,8 +155,8 @@ static int vlclua_playlist_delete( lua_S + + static int vlclua_playlist_move( lua_State * L ) + { +- int i_item = luaL_checkint( L, 1 ); +- int i_target = luaL_checkint( L, 2 ); ++ int i_item = luaL_checkinteger( L, 1 ); ++ int i_target = luaL_checkinteger( L, 2 ); + playlist_t *p_playlist = vlclua_get_playlist_internal( L ); + PL_LOCK; + playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item ); +Index: vlc-2.2.1/modules/lua/libs/stream.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/stream.c ++++ vlc-2.2.1/modules/lua/libs/stream.c +@@ -101,7 +101,7 @@ static int vlclua_stream_read( lua_State + { + int i_read; + stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" ); +- int n = luaL_checkint( L, 2 ); ++ int n = luaL_checkinteger( L, 2 ); + uint8_t *p_read = malloc( n ); + if( !p_read ) return vlclua_error( L ); + +Index: vlc-2.2.1/modules/lua/libs/variables.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/variables.c ++++ vlc-2.2.1/modules/lua/libs/variables.c +@@ -103,7 +103,7 @@ static int vlclua_tovalue( lua_State *L, + val->b_bool = luaL_checkboolean( L, -1 ); + break; + case VLC_VAR_INTEGER: +- val->i_int = luaL_checkint( L, -1 ); ++ val->i_int = luaL_checkinteger( L, -1 ); + break; + case VLC_VAR_STRING: + val->psz_string = (char*)luaL_checkstring( L, -1 ); /* XXX: Beware, this only stays valid as long as (L,-1) stays in the stack */ +Index: vlc-2.2.1/modules/lua/libs/volume.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/volume.c ++++ vlc-2.2.1/modules/lua/libs/volume.c +@@ -48,7 +48,7 @@ + static int vlclua_volume_set( lua_State *L ) + { + playlist_t *p_this = vlclua_get_playlist_internal( L ); +- int i_volume = luaL_checkint( L, 1 ); ++ int i_volume = luaL_checkinteger( L, 1 ); + if( i_volume < 0 ) + i_volume = 0; + int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT ); +@@ -68,7 +68,7 @@ static int vlclua_volume_up( lua_State * + playlist_t *p_this = vlclua_get_playlist_internal( L ); + float volume; + +- playlist_VolumeUp( p_this, luaL_optint( L, 1, 1 ), &volume ); ++ playlist_VolumeUp( p_this, luaL_optinteger( L, 1, 1 ), &volume ); + lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) ); + return 1; + } +@@ -78,7 +78,7 @@ static int vlclua_volume_down( lua_State + playlist_t *p_this = vlclua_get_playlist_internal( L ); + float volume; + +- playlist_VolumeDown( p_this, luaL_optint( L, 1, 1 ), &volume ); ++ playlist_VolumeDown( p_this, luaL_optinteger( L, 1, 1 ), &volume ); + lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) ); + return 1; + } +Index: vlc-2.2.1/modules/lua/libs/win.c +=================================================================== +--- vlc-2.2.1.orig/modules/lua/libs/win.c ++++ vlc-2.2.1/modules/lua/libs/win.c +@@ -123,7 +123,7 @@ static int vlclua_console_init( lua_Stat + + static int vlclua_console_wait( lua_State *L ) + { +- int i_timeout = luaL_optint( L, 1, 0 ); ++ int i_timeout = luaL_optinteger( L, 1, 0 ); + DWORD status = WaitForSingleObject( GetConsole( L ), i_timeout ); + lua_pushboolean( L, status == WAIT_OBJECT_0 ); + return 1; diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch new file mode 100644 index 00000000..cb3ba71d --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch @@ -0,0 +1,293 @@ +From 427732a379893491eac27aeadff0e0b3e252d158 Mon Sep 17 00:00:00 2001 +From: Jean-Baptiste Kempf +Date: Mon, 31 Aug 2015 08:19:00 +0200 +Subject: [PATCH] Avcodec/swscale: use AV_PIX_FMT consistently +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +(cherry picked from commit faa7bd357b1f9e07a6ffbc451a188773fad7a275) +Signed-off-by: Rafaël Carré + +Conflicts: + modules/codec/avcodec/chroma.c + modules/codec/avcodec/video.c +--- + modules/codec/avcodec/chroma.c | 104 ++++++++++++++++++++--------------------- + modules/codec/avcodec/video.c | 10 ++-- + modules/video_chroma/swscale.c | 28 +++++------ + 3 files changed, 71 insertions(+), 71 deletions(-) + +diff --git a/modules/codec/avcodec/chroma.c b/modules/codec/avcodec/chroma.c +index 393364b..c31f93d 100644 +--- a/modules/codec/avcodec/chroma.c ++++ b/modules/codec/avcodec/chroma.c +@@ -62,77 +62,77 @@ static const struct + } chroma_table[] = + { + /* Planar YUV formats */ +- {VLC_CODEC_I444, PIX_FMT_YUV444P, 0, 0, 0 }, +- {VLC_CODEC_J444, PIX_FMT_YUVJ444P, 0, 0, 0 }, +- +- {VLC_CODEC_I440, PIX_FMT_YUV440P, 0, 0, 0 }, +- {VLC_CODEC_J440, PIX_FMT_YUVJ440P, 0, 0, 0 }, +- +- {VLC_CODEC_I422, PIX_FMT_YUV422P, 0, 0, 0 }, +- {VLC_CODEC_J422, PIX_FMT_YUVJ422P, 0, 0, 0 }, +- +- {VLC_CODEC_I420, PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_CODEC_YV12, PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_FOURCC('I','Y','U','V'), PIX_FMT_YUV420P, 0, 0, 0 }, +- {VLC_CODEC_J420, PIX_FMT_YUVJ420P, 0, 0, 0 }, +- {VLC_CODEC_I411, PIX_FMT_YUV411P, 0, 0, 0 }, +- {VLC_CODEC_I410, PIX_FMT_YUV410P, 0, 0, 0 }, +- {VLC_FOURCC('Y','V','U','9'), PIX_FMT_YUV410P, 0, 0, 0 }, +- +- {VLC_FOURCC('N','V','1','2'), PIX_FMT_NV12, 0, 0, 0 }, +- {VLC_FOURCC('N','V','2','1'), PIX_FMT_NV21, 0, 0, 0 }, +- +- {VLC_CODEC_I420_9L, PIX_FMT_YUV420P9LE, 0, 0, 0 }, +- {VLC_CODEC_I420_9B, PIX_FMT_YUV420P9BE, 0, 0, 0 }, +- {VLC_CODEC_I420_10L, PIX_FMT_YUV420P10LE, 0, 0, 0 }, +- {VLC_CODEC_I420_10B, PIX_FMT_YUV420P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I444, AV_PIX_FMT_YUV444P, 0, 0, 0 }, ++ {VLC_CODEC_J444, AV_PIX_FMT_YUVJ444P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I440, AV_PIX_FMT_YUV440P, 0, 0, 0 }, ++ {VLC_CODEC_J440, AV_PIX_FMT_YUVJ440P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I422, AV_PIX_FMT_YUV422P, 0, 0, 0 }, ++ {VLC_CODEC_J422, AV_PIX_FMT_YUVJ422P, 0, 0, 0 }, ++ ++ {VLC_CODEC_I420, AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_CODEC_YV12, AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_FOURCC('I','Y','U','V'), AV_PIX_FMT_YUV420P, 0, 0, 0 }, ++ {VLC_CODEC_J420, AV_PIX_FMT_YUVJ420P, 0, 0, 0 }, ++ {VLC_CODEC_I411, AV_PIX_FMT_YUV411P, 0, 0, 0 }, ++ {VLC_CODEC_I410, AV_PIX_FMT_YUV410P, 0, 0, 0 }, ++ {VLC_FOURCC('Y','V','U','9'), AV_PIX_FMT_YUV410P, 0, 0, 0 }, ++ ++ {VLC_FOURCC('N','V','1','2'), AV_PIX_FMT_NV12, 0, 0, 0 }, ++ {VLC_FOURCC('N','V','2','1'), AV_PIX_FMT_NV21, 0, 0, 0 }, ++ ++ {VLC_CODEC_I420_9L, AV_PIX_FMT_YUV420P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I420_10L, AV_PIX_FMT_YUV420P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I420_10B, AV_PIX_FMT_YUV420P10BE, 0, 0, 0 }, + #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51,13,0) +- {VLC_CODEC_I422_9L, PIX_FMT_YUV422P9LE, 0, 0, 0 }, +- {VLC_CODEC_I422_9B, PIX_FMT_YUV422P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I422_9L, AV_PIX_FMT_YUV422P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I422_9B, AV_PIX_FMT_YUV422P9BE, 0, 0, 0 }, + #endif +- {VLC_CODEC_I422_10L, PIX_FMT_YUV422P10LE, 0, 0, 0 }, +- {VLC_CODEC_I422_10B, PIX_FMT_YUV422P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I422_10L, AV_PIX_FMT_YUV422P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I422_10B, AV_PIX_FMT_YUV422P10BE, 0, 0, 0 }, + +- {VLC_CODEC_YUV420A, PIX_FMT_YUVA420P, 0, 0, 0 }, ++ {VLC_CODEC_YUV420A, AV_PIX_FMT_YUVA420P, 0, 0, 0 }, + #if LIBAVUTIL_VERSION_CHECK( 51, 45, 0, 74, 100 ) + {VLC_CODEC_YUV422A, AV_PIX_FMT_YUVA422P, 0, 0, 0 }, + #endif + +- {VLC_CODEC_I444_9L, PIX_FMT_YUV444P9LE, 0, 0, 0 }, +- {VLC_CODEC_I444_9B, PIX_FMT_YUV444P9BE, 0, 0, 0 }, +- {VLC_CODEC_I444_10L, PIX_FMT_YUV444P10LE, 0, 0, 0 }, +- {VLC_CODEC_I444_10B, PIX_FMT_YUV444P10BE, 0, 0, 0 }, +- {VLC_CODEC_I444_16L, PIX_FMT_YUV444P16LE, 0, 0, 0 }, +- {VLC_CODEC_I444_16B, PIX_FMT_YUV444P16BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_9L, AV_PIX_FMT_YUV444P9LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_9B, AV_PIX_FMT_YUV444P9BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_10L, AV_PIX_FMT_YUV444P10LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_10B, AV_PIX_FMT_YUV444P10BE, 0, 0, 0 }, ++ {VLC_CODEC_I444_16L, AV_PIX_FMT_YUV444P16LE, 0, 0, 0 }, ++ {VLC_CODEC_I444_16B, AV_PIX_FMT_YUV444P16BE, 0, 0, 0 }, + + /* Packed YUV formats */ +- {VLC_CODEC_YUYV, PIX_FMT_YUYV422, 0, 0, 0 }, +- {VLC_FOURCC('Y','U','Y','V'), PIX_FMT_YUYV422, 0, 0, 0 }, +- {VLC_CODEC_UYVY, PIX_FMT_UYVY422, 0, 0, 0 }, +- {VLC_FOURCC('Y','4','1','1'), PIX_FMT_UYYVYY411, 0, 0, 0 }, ++ {VLC_CODEC_YUYV, AV_PIX_FMT_YUYV422, 0, 0, 0 }, ++ {VLC_FOURCC('Y','U','Y','V'), AV_PIX_FMT_YUYV422, 0, 0, 0 }, ++ {VLC_CODEC_UYVY, AV_PIX_FMT_UYVY422, 0, 0, 0 }, ++ {VLC_FOURCC('Y','4','1','1'), AV_PIX_FMT_UYYVYY411, 0, 0, 0 }, + + /* Packed RGB formats */ +- VLC_RGB( VLC_FOURCC('R','G','B','4'), PIX_FMT_RGB4, PIX_FMT_BGR4, 0x10, 0x06, 0x01 ) +- VLC_RGB( VLC_FOURCC('R','G','B','8'), PIX_FMT_RGB8, PIX_FMT_BGR8, 0xC0, 0x38, 0x07 ) ++ VLC_RGB( VLC_FOURCC('R','G','B','4'), AV_PIX_FMT_RGB4, AV_PIX_FMT_BGR4, 0x10, 0x06, 0x01 ) ++ VLC_RGB( VLC_FOURCC('R','G','B','8'), AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, 0xC0, 0x38, 0x07 ) + +- VLC_RGB( VLC_CODEC_RGB15, PIX_FMT_RGB555, PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f ) +- VLC_RGB( VLC_CODEC_RGB16, PIX_FMT_RGB565, PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f ) +- VLC_RGB( VLC_CODEC_RGB24, PIX_FMT_BGR24, PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff ) ++ VLC_RGB( VLC_CODEC_RGB15, AV_PIX_FMT_RGB555, AV_PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f ) ++ VLC_RGB( VLC_CODEC_RGB16, AV_PIX_FMT_RGB565, AV_PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f ) ++ VLC_RGB( VLC_CODEC_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff ) + +- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32, PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff ) +- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32_1, PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 ) ++ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32, AV_PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff ) ++ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32_1, AV_PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 ) + + #ifdef AV_PIX_FMT_0BGR32 + VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_0BGR32, AV_PIX_FMT_0RGB32, 0x000000ff, 0x0000ff00, 0x00ff0000 ) + #endif + +- {VLC_CODEC_RGBA, PIX_FMT_RGBA, 0, 0, 0 }, +- {VLC_CODEC_ARGB, PIX_FMT_ARGB, 0, 0, 0 }, +- {VLC_CODEC_BGRA, PIX_FMT_BGRA, 0, 0, 0 }, +- {VLC_CODEC_GREY, PIX_FMT_GRAY8, 0, 0, 0}, ++ {VLC_CODEC_RGBA, AV_PIX_FMT_RGBA, 0, 0, 0 }, ++ {VLC_CODEC_ARGB, AV_PIX_FMT_ARGB, 0, 0, 0 }, ++ {VLC_CODEC_BGRA, AV_PIX_FMT_BGRA, 0, 0, 0 }, ++ {VLC_CODEC_GREY, AV_PIX_FMT_GRAY8, 0, 0, 0}, + + /* Paletized RGB */ +- {VLC_CODEC_RGBP, PIX_FMT_PAL8, 0, 0, 0}, ++ {VLC_CODEC_RGBP, AV_PIX_FMT_PAL8, 0, 0, 0}, + + #if LIBAVUTIL_VERSION_CHECK(51, 42, 0, 74,100) + {VLC_CODEC_GBR_PLANAR, AV_PIX_FMT_GBRP, 0, 0, 0 }, +@@ -201,5 +201,5 @@ int FindFfmpegChroma( vlc_fourcc_t fourcc ) + for( int i = 0; chroma_table[i].i_chroma != 0; i++ ) + if( chroma_table[i].i_chroma == fourcc ) + return chroma_table[i].i_chroma_id; +- return PIX_FMT_NONE; ++ return AV_PIX_FMT_NONE; + } +diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c +index c115db9..ae600e8 100644 +--- a/modules/codec/avcodec/video.c ++++ b/modules/codec/avcodec/video.c +@@ -1004,7 +1004,7 @@ static picture_t *lavc_dr_GetFrame(struct AVCodecContext *ctx, + if (GetVlcChroma(&dec->fmt_out.video, ctx->pix_fmt) != VLC_SUCCESS) + return NULL; + dec->fmt_out.i_codec = dec->fmt_out.video.i_chroma; +- if (ctx->pix_fmt == PIX_FMT_PAL8) ++ if (ctx->pix_fmt == AV_PIX_FMT_PAL8) + return NULL; + + int width = frame->width; +@@ -1180,7 +1180,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context) + if (GetVlcChroma(&p_dec->fmt_out.video, p_context->pix_fmt) != VLC_SUCCESS) + goto no_dr; + +- if (p_context->pix_fmt == PIX_FMT_PAL8) ++ if (p_context->pix_fmt == AV_PIX_FMT_PAL8) + goto no_dr; + + p_dec->fmt_out.i_codec = p_dec->fmt_out.video.i_chroma; +@@ -1215,7 +1215,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context) + goto no_dr; + } + +- if( p_context->pix_fmt == PIX_FMT_YUV422P ) ++ if( p_context->pix_fmt == AV_PIX_FMT_YUV422P ) + { + if( 2 * p_pic->p[1].i_pitch != p_pic->p[0].i_pitch || + 2 * p_pic->p[2].i_pitch != p_pic->p[0].i_pitch ) +@@ -1325,7 +1325,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, + + /* Enumerate available formats */ + bool can_hwaccel = false; +- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ ) ++ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ ) + { + const AVPixFmtDescriptor *dsc = av_pix_fmt_desc_get(pi_fmt[i]); + if (dsc == NULL) +@@ -1352,7 +1352,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context, + if( p_va == NULL ) + goto end; + +- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ ) ++ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ ) + { + if( p_va->pix_fmt != pi_fmt[i] ) + continue; +diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c +index 569e0f5..4e0ecf1 100644 +--- a/modules/video_chroma/swscale.c ++++ b/modules/video_chroma/swscale.c +@@ -257,35 +257,35 @@ static void FixParameters( int *pi_fmt, bool *pb_has_a, bool *pb_swap_uv, vlc_fo + switch( fmt ) + { + case VLC_CODEC_YUV422A: +- *pi_fmt = PIX_FMT_YUV422P; ++ *pi_fmt = AV_PIX_FMT_YUV422P; + *pb_has_a = true; + break; + case VLC_CODEC_YUV420A: +- *pi_fmt = PIX_FMT_YUV420P; ++ *pi_fmt = AV_PIX_FMT_YUV420P; + *pb_has_a = true; + break; + case VLC_CODEC_YUVA: +- *pi_fmt = PIX_FMT_YUV444P; ++ *pi_fmt = AV_PIX_FMT_YUV444P; + *pb_has_a = true; + break; + case VLC_CODEC_RGBA: +- *pi_fmt = PIX_FMT_BGR32; ++ *pi_fmt = AV_PIX_FMT_BGR32; + *pb_has_a = true; + break; + case VLC_CODEC_ARGB: +- *pi_fmt = PIX_FMT_BGR32_1; ++ *pi_fmt = AV_PIX_FMT_BGR32_1; + *pb_has_a = true; + break; + case VLC_CODEC_BGRA: +- *pi_fmt = PIX_FMT_RGB32; ++ *pi_fmt = AV_PIX_FMT_RGB32; + *pb_has_a = true; + break; + case VLC_CODEC_YV12: +- *pi_fmt = PIX_FMT_YUV420P; ++ *pi_fmt = AV_PIX_FMT_YUV420P; + *pb_swap_uv = true; + break; + case VLC_CODEC_YV9: +- *pi_fmt = PIX_FMT_YUV410P; ++ *pi_fmt = AV_PIX_FMT_YUV410P; + *pb_swap_uv = true; + break; + default: +@@ -314,7 +314,7 @@ static int GetParameters( ScalerConfiguration *p_cfg, + { + if( p_fmti->i_chroma == VLC_CODEC_YUVP && ALLOW_YUVP ) + { +- i_fmti = i_fmto = PIX_FMT_GRAY8; ++ i_fmti = i_fmto = AV_PIX_FMT_GRAY8; + i_sws_flags = SWS_POINT; + } + } +@@ -327,9 +327,9 @@ static int GetParameters( ScalerConfiguration *p_cfg, + * Without SWS_ACCURATE_RND the quality is really bad for some conversions */ + switch( i_fmto ) + { +- case PIX_FMT_ARGB: +- case PIX_FMT_RGBA: +- case PIX_FMT_ABGR: ++ case AV_PIX_FMT_ARGB: ++ case AV_PIX_FMT_RGBA: ++ case AV_PIX_FMT_ABGR: + i_sws_flags |= SWS_ACCURATE_RND; + break; + } +@@ -403,8 +403,8 @@ static int Init( filter_t *p_filter ) + const unsigned i_fmto_visible_width = p_fmto->i_visible_width * p_sys->i_extend_factor; + for( int n = 0; n < (cfg.b_has_a ? 2 : 1); n++ ) + { +- const int i_fmti = n == 0 ? cfg.i_fmti : PIX_FMT_GRAY8; +- const int i_fmto = n == 0 ? cfg.i_fmto : PIX_FMT_GRAY8; ++ const int i_fmti = n == 0 ? cfg.i_fmti : AV_PIX_FMT_GRAY8; ++ const int i_fmto = n == 0 ? cfg.i_fmto : AV_PIX_FMT_GRAY8; + struct SwsContext *ctx; + + ctx = sws_getContext( i_fmti_visible_width, p_fmti->i_visible_height, i_fmti, +-- +2.5.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch new file mode 100644 index 00000000..56744e7d --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch @@ -0,0 +1,45 @@ +From 6fa8a4a9bb64ff34328aae46acd600f8502b2c05 Mon Sep 17 00:00:00 2001 +From: Jean-Baptiste Kempf +Date: Mon, 31 Aug 2015 09:07:39 +0200 +Subject: [PATCH] SWSCALE: fix compilation with 4.x +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +(cherry picked from commit 2b23857c68622edda76b72b74aeb3d943ee277c9) +Signed-off-by: Rafaël Carré +--- + modules/video_chroma/swscale.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c +index 4e0ecf1..26d0d6f 100644 +--- a/modules/video_chroma/swscale.c ++++ b/modules/video_chroma/swscale.c +@@ -36,6 +36,7 @@ + #include + + #include ++#include + + #ifdef __APPLE__ + # include +@@ -235,6 +236,7 @@ static int GetSwsCpuMask(void) + { + int i_sws_cpu = 0; + ++#if LIBSWSCALE_VERSION_MAJOR < 4 + #if defined(__i386__) || defined(__x86_64__) + if( vlc_CPU_MMX() ) + i_sws_cpu |= SWS_CPU_CAPS_MMX; +@@ -248,6 +250,7 @@ static int GetSwsCpuMask(void) + if( vlc_CPU_ALTIVEC() ) + i_sws_cpu |= SWS_CPU_CAPS_ALTIVEC; + #endif ++#endif + + return i_sws_cpu; + } +-- +2.5.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb new file mode 100644 index 00000000..b5be04cb --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb @@ -0,0 +1,19 @@ +require ${BPN}.inc + +# work around build failure +EXTRA_OECONF += " --enable-libxml2=no" + +SRC_URI += "file://0001-enable-subdir-objects.patch \ + file://0002-glibc-does-not-provide-strlcpy.patch \ + file://0003-use-am-path-libgcrypt.patch \ + file://0004-modules-gui-qt4-out-of-tree-build.patch \ + file://0005-libpostproc-header-check.patch \ + file://0006-make-opencv-configurable.patch \ + file://0007-use-vorbisidec.patch \ + file://0008-fix-luaL-checkint.patch \ + file://0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch \ + file://0010-SWSCALE-fix-compilation-with-4.x.patch \ +" + +SRC_URI[md5sum] = "f98d60f0f59ef72b6e3407f2ff09bda6" +SRC_URI[sha256sum] = "9ad23128be16f9b40ed772961272cb0748ed8e4aa1bc79c129e589feebea5fb5" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch new file mode 100644 index 00000000..b623dbf3 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch @@ -0,0 +1,49 @@ +Upstream-Status: Backport + +Backport patch to fix CVE-2015-6749 from: + +https://trac.xiph.org/ticket/2212 + +Signed-off-by: Kai Kang +--- +From 04815d3e1bfae3a6cdfb2c25358a5a72b61299f7 Mon Sep 17 00:00:00 2001 +From: Mark Harris +Date: Sun, 30 Aug 2015 05:54:46 -0700 +Subject: [PATCH] oggenc: Fix large alloca on bad AIFF input + +Fixes #2212 +--- + oggenc/audio.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/oggenc/audio.c b/oggenc/audio.c +index 477da8c..4921fb9 100644 +--- a/oggenc/audio.c ++++ b/oggenc/audio.c +@@ -245,8 +245,8 @@ static int aiff_permute_matrix[6][6] = + int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + { + int aifc; /* AIFC or AIFF? */ +- unsigned int len; +- unsigned char *buffer; ++ unsigned int len, readlen; ++ unsigned char buffer[22]; + unsigned char buf2[8]; + aiff_fmt format; + aifffile *aiff = malloc(sizeof(aifffile)); +@@ -269,9 +269,9 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) + return 0; /* Weird common chunk */ + } + +- buffer = alloca(len); +- +- if(fread(buffer,1,len,in) < len) ++ readlen = len < sizeof(buffer) ? len : sizeof(buffer); ++ if(fread(buffer,1,readlen,in) < readlen || ++ (len > readlen && !seek_forward(in, len-readlen))) + { + fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n")); + return 0; +-- +2.5.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch new file mode 100644 index 00000000..111e98ac --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch @@ -0,0 +1,26 @@ +From: Petter Reinholdtsen +Date: Wed, 22 Oct 2014 13:25:21 +0200 +Subject: Fix format error blocking compilation with hardening + +Last-Update: 2014-10-22 +Forwarded: no + +Enabling hardening refuses to compile code with sprintf() calls +with no formatting string. Adjust the code to work with hardening. +--- + ogg123/status.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ogg123/status.c b/ogg123/status.c +index 92b8ff1..ccec389 100644 +--- a/ogg123/status.c ++++ b/ogg123/status.c +@@ -148,7 +148,7 @@ int print_statistics_line (stat_format_t stats[]) + + switch (stats->type) { + case stat_noarg: +- len += sprintf(str+len, stats->formatstr); ++ len += sprintf(str+len, "%s", stats->formatstr); + break; + case stat_intarg: + len += sprintf(str+len, stats->formatstr, stats->arg.intarg); diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb new file mode 100644 index 00000000..8e9914b4 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb @@ -0,0 +1,26 @@ +SUMMARY = "Vorbis Tools" +DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \ +that is free of intellectual property restrictions. vorbis-tools \ +include some command line applications to use the libraries." +HOMEPAGE = "http://www.vorbis.com/" +BUGTRACKER = "https://trac.xiph.org" +SECTION = "multimedia" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" + +DEPENDS = "libogg libvorbis" + +SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \ + file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \ + file://0004-Fix-format-error-blocking-compilation-with-hardening.patch \ + " + +SRC_URI[md5sum] = "567e0fb8d321b2cd7124f8208b8b90e6" +SRC_URI[sha256sum] = "a389395baa43f8e5a796c99daf62397e435a7e73531c9f44d9084055a05d22bc" + +inherit autotools pkgconfig gettext + +PACKAGECONFIG ??= "flac ogg123" +PACKAGECONFIG[flac] = ",--without-flac,flac,libflac" +PACKAGECONFIG[speex] = ",--without-speex,speex,speex" +PACKAGECONFIG[ogg123] = "--enable-ogg123,--disable-ogg123,libao curl" diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch new file mode 100644 index 00000000..7668df35 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch @@ -0,0 +1,29 @@ +From 4945dca11bc4ddec60bd858f45212dc8f39638e0 Mon Sep 17 00:00:00 2001 +From: Nicolas Dufresne +Date: Tue, 5 Jul 2016 18:07:45 -0400 +Subject: [PATCH 1/6] build: Protect against unsupported CPU types + +Signed-off-by: Tanu Kaskinen +Upstream-Status: Accepted [expected in 0.4] +--- + configure.ac | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6f9553b..f5304b8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -70,8 +70,9 @@ AS_CASE(["${host_cpu}"], + [ + HAVE_ARM=1 + ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" +- ] ++ ], + # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines ++ [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] + ) + AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) + AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) +-- +2.11.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch new file mode 100644 index 00000000..2e202b03 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch @@ -0,0 +1,30 @@ +From b5bda3431159b6505dcd069641c863018c4d4309 Mon Sep 17 00:00:00 2001 +From: Nicolas Dufresne +Date: Wed, 6 Jul 2016 15:18:15 -0400 +Subject: [PATCH 2/6] build: Add ARM 64bit support + +Signed-off-by: Tanu Kaskinen +Upstream-Status: Accepted [expected in 0.4] +--- + configure.ac | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/configure.ac b/configure.ac +index f5304b8..be20514 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -71,6 +71,11 @@ AS_CASE(["${host_cpu}"], + HAVE_ARM=1 + ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" + ], ++ [aarch64*], ++ [ ++ HAVE_NEON=1 ++ ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" ++ ], + # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines + [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] + ) +-- +2.11.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch new file mode 100644 index 00000000..82e270fa --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch @@ -0,0 +1,96 @@ +From 7722fb8a3189fea0f6381f02a0e4f63c847f0393 Mon Sep 17 00:00:00 2001 +From: Thomas Petazzoni +Date: Sat, 6 Aug 2016 11:02:43 +0200 +Subject: [PATCH 3/6] build: fix architecture detection + +The current architecture detection, based on the "host_cpu" part of the +tuple does not work properly for a number of reason: + + - The code assumes that if host_cpu starts with "arm" then ARM + instructions are available, which is incorrect. Indeed, Cortex-M + platforms can run Linux, they are ARM platforms (so host_cpu = arm), + but they don't support ARM instructions: they support only the + Thumb-2 instruction set. + + - The armv7 case is also not very useful, as it is not standard at all + to pass armv7 as host_cpu even if the host system is actually ARMv7 + based. + + - For the same reason, the armv8 case is not very useful: ARMv8 is + AArch64, and there is already a separate case to handle this + architecture. + +So, this commit moves away from a host_cpu based logic, and instead +tests using AC_CHECK_DECLS() the built-in definitions of the compiler: + + - If we have __ARM_ARCH_ISA_ARM defined, then it's an ARM processor + that supports the ARM instruction set (this allows to exclude Thumb-2 + only processors). + + - If we have __ARM_ARCH_7A__, then we have an ARMv7-A processor, and + we can enable the corresponding optimizations + + - Same for __aarch64__, __i386__ and __x86_64__. + +In addition, we remove the AC_MSG_ERROR() that makes the build fail for +all architectures but the ones that are explicitly supported. Indeed, +webrtc-audio-processing builds just fine for other architectures (tested +on MIPS), it's just that none of the architecture-specific optimizations +will be used. + +Signed-off-by: Thomas Petazzoni +Signed-off-by: Tanu Kaskinen +Upstream-Status: Accepted [expected in 0.4] +--- + configure.ac | 35 +++++++++++------------------------ + 1 file changed, 11 insertions(+), 24 deletions(-) + +diff --git a/configure.ac b/configure.ac +index be20514..e898014 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,30 +55,17 @@ AS_CASE(["${host}"], + ) + AC_SUBST(PLATFORM_CFLAGS) + +-AS_CASE(["${host_cpu}"], +- [i?86|x86_64], +- [ +- HAVE_X86=1 +- ], +- [armv7*|armv8*], +- [ +- HAVE_ARM=1 +- HAVE_ARMV7=1 +- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7" +- ], +- [arm*], +- [ +- HAVE_ARM=1 +- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" +- ], +- [aarch64*], +- [ +- HAVE_NEON=1 +- ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" +- ], +- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines +- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] +-) ++# Testing __ARM_ARCH_ISA_ARM since the code contains ARM instructions, ++# which don't work on Thumb-2 only platforms (ARMv7-M). ++AC_CHECK_DECLS([__ARM_ARCH_ISA_ARM], ++ [HAVE_ARM=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM"]) ++AC_CHECK_DECLS([__ARM_ARCH_7A__], ++ [HAVE_ARMV7=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM_V7"]) ++AC_CHECK_DECLS([__aarch64__], ++ [HAVE_NEON=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"]) ++AC_CHECK_DECLS([__i386__], [HAVE_X86=1]) ++AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1]) ++ + AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) + AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) + AM_CONDITIONAL(HAVE_ARMV7, [test "x${HAVE_ARMV7}" = "x1"]) +-- +2.11.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch new file mode 100644 index 00000000..c96f10ed --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch @@ -0,0 +1,41 @@ +From 0c332b7d94f8425c4f33344ddf406b6eea458861 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Mon, 8 May 2017 17:01:49 +0300 +Subject: [PATCH 4/6] typedefs.h: add support for 64-bit and big endian MIPS + +The 64-bit check is taken from the upstream webrtc project, the big +endian check is my own addition. + +Upstream-Status: Pending +Signed-off-by: Tanu Kaskinen +--- + webrtc/typedefs.h | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/webrtc/typedefs.h b/webrtc/typedefs.h +index d875490..d1b2f54 100644 +--- a/webrtc/typedefs.h ++++ b/webrtc/typedefs.h +@@ -41,9 +41,18 @@ + //#define WEBRTC_ARCH_ARMEL + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN +-#elif defined(__MIPSEL__) ++#elif defined(__MIPSEL__) || defined(__MIPSEB__) ++#define WEBRTC_ARCH_MIPS_FAMILY ++#if defined(__LP64__) ++#define WEBRTC_ARCH_64_BITS ++#else + #define WEBRTC_ARCH_32_BITS ++#endif ++#if defined(__MIPSEL__) + #define WEBRTC_ARCH_LITTLE_ENDIAN ++#else ++#define WEBRTC_ARCH_BIG_ENDIAN ++#endif + #elif defined(__pnacl__) + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN +-- +2.11.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0005-typedefs.h-add-support-for-PowerPC.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0005-typedefs.h-add-support-for-PowerPC.patch new file mode 100644 index 00000000..e16b57ec --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0005-typedefs.h-add-support-for-PowerPC.patch @@ -0,0 +1,28 @@ +From db5f570e928c8ca5b0b8dc702e1af0a57277f092 Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Mon, 3 Jul 2017 16:20:08 +0300 +Subject: [PATCH 5/6] typedefs.h: add support for PowerPC + +Upstream-Status: Pending +Signed-off-by: Tanu Kaskinen +--- + webrtc/typedefs.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/webrtc/typedefs.h b/webrtc/typedefs.h +index d1b2f54..6e34d9e 100644 +--- a/webrtc/typedefs.h ++++ b/webrtc/typedefs.h +@@ -53,6 +53,9 @@ + #else + #define WEBRTC_ARCH_BIG_ENDIAN + #endif ++#elif defined(__powerpc__) ++#define WEBRTC_ARCH_32_BITS ++#define WEBRTC_ARCH_BIG_ENDIAN + #elif defined(__pnacl__) + #define WEBRTC_ARCH_32_BITS + #define WEBRTC_ARCH_LITTLE_ENDIAN +-- +2.11.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0006-common_audio-implement-endianness-conversion-in-wav-.patch b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0006-common_audio-implement-endianness-conversion-in-wav-.patch new file mode 100644 index 00000000..5826ab00 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0006-common_audio-implement-endianness-conversion-in-wav-.patch @@ -0,0 +1,116 @@ +From 7d31da8ef93987000f297d435dbacaf7d436107b Mon Sep 17 00:00:00 2001 +From: Tanu Kaskinen +Date: Thu, 15 Jun 2017 18:38:30 +0300 +Subject: [PATCH 6/6] common_audio: implement endianness conversion in wav file + handling + +The code didn't build for big endian machines due to the missing +endianness conversions. + +Upstream-Status: Pending +Signed-off-by: Tanu Kaskinen +--- + webrtc/common_audio/wav_file.cc | 27 +++++++++++++++++++++------ + webrtc/common_audio/wav_header.cc | 32 +++++++++++++++++++++++++++++++- + 2 files changed, 52 insertions(+), 7 deletions(-) + +diff --git a/webrtc/common_audio/wav_file.cc b/webrtc/common_audio/wav_file.cc +index b14b620..e2f7738 100644 +--- a/webrtc/common_audio/wav_file.cc ++++ b/webrtc/common_audio/wav_file.cc +@@ -64,9 +64,6 @@ WavReader::~WavReader() { + } + + size_t WavReader::ReadSamples(size_t num_samples, int16_t* samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to big-endian when reading from WAV file" +-#endif + // There could be metadata after the audio; ensure we don't read it. + num_samples = std::min(rtc::checked_cast(num_samples), + num_samples_remaining_); +@@ -76,6 +73,13 @@ size_t WavReader::ReadSamples(size_t num_samples, int16_t* samples) { + RTC_CHECK(read == num_samples || feof(file_handle_)); + RTC_CHECK_LE(read, num_samples_remaining_); + num_samples_remaining_ -= rtc::checked_cast(read); ++ ++#ifdef WEBRTC_ARCH_BIG_ENDIAN ++ // Convert the read samples from little-endian to big-endian. ++ for (size_t i = 0; i < read; i++) ++ samples[i] = ((uint16_t) samples[i] >> 8) | ((uint16_t) samples[i] << 8); ++#endif ++ + return read; + } + +@@ -119,11 +123,22 @@ WavWriter::~WavWriter() { + } + + void WavWriter::WriteSamples(const int16_t* samples, size_t num_samples) { +-#ifndef WEBRTC_ARCH_LITTLE_ENDIAN +-#error "Need to convert samples to little-endian when writing to WAV file" +-#endif ++#ifdef WEBRTC_ARCH_BIG_ENDIAN ++ // Convert the samples from big-endian samples to little-endian. ++ int16_t* converted_samples = static_cast(malloc(num_samples * sizeof(*samples))); ++ RTC_CHECK(converted_samples) << "Out of memory."; ++ for (int i = 0; i < num_samples; i++) ++ converted_samples[i] = ++ ((uint16_t) samples[i] >> 8) | ((uint16_t) samples[i] << 8); ++ ++ const size_t written = ++ fwrite(converted_samples, sizeof(*converted_samples), num_samples, ++ file_handle_); ++ free(converted_samples); ++#else + const size_t written = + fwrite(samples, sizeof(*samples), num_samples, file_handle_); ++#endif + RTC_CHECK_EQ(num_samples, written); + num_samples_ += static_cast(written); + RTC_CHECK(written <= std::numeric_limits::max() || +diff --git a/webrtc/common_audio/wav_header.cc b/webrtc/common_audio/wav_header.cc +index 61cfffe..382bfc7 100644 +--- a/webrtc/common_audio/wav_header.cc ++++ b/webrtc/common_audio/wav_header.cc +@@ -129,7 +129,37 @@ static inline std::string ReadFourCC(uint32_t x) { + return std::string(reinterpret_cast(&x), 4); + } + #else +-#error "Write be-to-le conversion functions" ++static inline void WriteLE16(uint16_t* f, uint16_t x) { ++ *f = x >> 8 | x << 8; ++} ++static inline void WriteLE32(uint32_t* f, uint32_t x) { ++ *f = x >> 24 ++ | (x && 0xFF0000) >> 8 ++ | (x && 0xFF00) << 8 ++ | x << 24; ++} ++static inline void WriteFourCC(uint32_t* f, char a, char b, char c, char d) { ++ *f = static_cast(d) ++ | static_cast(c) << 8 ++ | static_cast(b) << 16 ++ | static_cast(a) << 24; ++} ++ ++static inline uint32_t ReadLE16(uint16_t x) { ++ return x >> 8 | x << 8; ++} ++ ++static inline uint32_t ReadLE32(uint32_t x) { ++ return x >> 24 ++ | (x && 0xFF0000) >> 8 ++ | (x && 0xFF00) << 8 ++ | x << 24; ++} ++ ++static inline std::string ReadFourCC(uint32_t x) { ++ x = ReadLE32(x); ++ return std::string(reinterpret_cast(&x), 4); ++} + #endif + + static inline uint32_t RiffChunkSize(uint32_t bytes_in_payload) { +-- +2.11.0 + diff --git a/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb new file mode 100644 index 00000000..2b0f7c68 --- /dev/null +++ b/external/meta-openembedded/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb @@ -0,0 +1,28 @@ +DESCRIPTION = "Audio processing bits of the WebRTC reference implementation" +HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/" +SECTION = "audio" + +DEPENDS_append_libc-musl = " libexecinfo" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \ + file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \ +" + +# Note that patch 3 effectively reverts patches 1 and 2. The only reason +# why patches 1 and 2 are included is that otherwise patch 3 wouldn't +# apply cleanly. +SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \ + file://0001-build-Protect-against-unsupported-CPU-types.patch \ + file://0002-build-Add-ARM-64bit-support.patch \ + file://0003-build-fix-architecture-detection.patch \ + file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \ + file://0005-typedefs.h-add-support-for-PowerPC.patch \ + file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \ +" + +SRC_URI[md5sum] = "336ae032f608e65808ac577cde0ab72c" +SRC_URI[sha256sum] = "756e291d4f557d88cd50c4fe3b8454ec238362d22cedb3e6173240d90f0a80fa" + +LDFLAGS_append_libc-musl = " -lexecinfo" +inherit autotools -- cgit 1.2.3-korg