Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/818284/?format=api
{ "id": 818284, "url": "http://patchwork.ozlabs.org/api/patches/818284/?format=api", "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20170925150112.5818-1-aduskett@gmail.com/", "project": { "id": 27, "url": "http://patchwork.ozlabs.org/api/projects/27/?format=api", "name": "Buildroot development", "link_name": "buildroot", "list_id": "buildroot.buildroot.org", "list_email": "buildroot@buildroot.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170925150112.5818-1-aduskett@gmail.com>", "list_archive_url": null, "date": "2017-09-25T15:01:12", "name": "[v2,1/1] gstreamer1-mm: new package", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "a090944c6d3508bed2b0966f54f4bef0db2217d0", "submitter": { "id": 69311, "url": "http://patchwork.ozlabs.org/api/people/69311/?format=api", "name": "Adam Duskett", "email": "Aduskett@gmail.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20170925150112.5818-1-aduskett@gmail.com/mbox/", "series": [ { "id": 4980, "url": "http://patchwork.ozlabs.org/api/series/4980/?format=api", "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=4980", "date": "2017-09-25T15:01:12", "name": "[v2,1/1] gstreamer1-mm: new package", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/4980/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/818284/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/818284/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<buildroot-bounces@busybox.net>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "buildroot@lists.busybox.net" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "buildroot@osuosl.org" ], "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=busybox.net\n\t(client-ip=140.211.166.138; helo=whitealder.osuosl.org;\n\tenvelope-from=buildroot-bounces@busybox.net;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"XjPpdIH4\"; dkim-atps=neutral" ], "Received": [ "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3y16k15xmZz9t67\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Sep 2017 01:01:45 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 6719D87D98;\n\tMon, 25 Sep 2017 15:01:42 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id ETKf7tdrZI8j; Mon, 25 Sep 2017 15:01:39 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 60B2587D2D;\n\tMon, 25 Sep 2017 15:01:39 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id BFE6B1C11CB\n\tfor <buildroot@lists.busybox.net>;\n\tMon, 25 Sep 2017 15:01:37 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id B2EE8864F9\n\tfor <buildroot@lists.busybox.net>;\n\tMon, 25 Sep 2017 15:01:37 +0000 (UTC)", "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id cYBApVgzrCHt for <buildroot@lists.busybox.net>;\n\tMon, 25 Sep 2017 15:01:36 +0000 (UTC)", "from mail-io0-f196.google.com (mail-io0-f196.google.com\n\t[209.85.223.196])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 252F5864C8\n\tfor <buildroot@buildroot.org>; Mon, 25 Sep 2017 15:01:36 +0000 (UTC)", "by mail-io0-f196.google.com with SMTP id 93so3129908iol.4\n\tfor <buildroot@buildroot.org>; Mon, 25 Sep 2017 08:01:36 -0700 (PDT)", "from localhost.localdomain (mail.codeblue.com. [65.183.183.198])\n\tby smtp.gmail.com with ESMTPSA id\n\tr186sm1094153itb.40.2017.09.25.08.01.34\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tMon, 25 Sep 2017 08:01:34 -0700 (PDT)" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id;\n\tbh=uzmDckX09VsM4BLk21YnVzJOjjpWuJSNRppebiAXJ+M=;\n\tb=XjPpdIH4oW+r9L8LuezNnI3jC8xiNFALR0UwP0Pkg7wORxtMjN9oOeu7YC+fWnACEa\n\tkQP8SvWk1t/+yQcwSAzO/TvmZBhGJYNclqPRdVahL7sJLt7dVGRD46TWD7U7uLXiQEKS\n\t5rl/uZcW6TQVfyFtJge2W5+15hxgEOqGOd0VO0mq4d4RBD705olU7j0qcJ9sRms29j/v\n\tVDaAVz72qz3INANMpYFgQ+KvKxtnG7DccKJtCYqpSzHRoUkFJGiyhSWF+ZztH7mWQEkl\n\tOdezHm2GEmJCgBB2Idrkwt9t4UJMcg80hBeUBXgzLIXsgo81IwoPRyuyKZU2rOMnoOqE\n\tcl/A==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=uzmDckX09VsM4BLk21YnVzJOjjpWuJSNRppebiAXJ+M=;\n\tb=W2254IFogX0SH7lfyy/0cEQ2zhNA/Hp/OJOgIKn7Sa/cqRpVaf3B2fSBkP5zNqgDos\n\tNR6TYp3JZD0h17XmWfTmApPDhM5FS1vW+tTxA9sLHhPrI+OWXSm0lU1QLIN290Cl9DGZ\n\tPTnc89UgWa3ufrdyIZYYmyEXuY1OFIbyIBKlQRYDG5DOq5hoIXhh9vqIpU9yRlC3Mq3q\n\tV32kvzJ1e8D57vSxQ9ed5tK4jxZd+9srsu+pT4Szuu2u8uYWvJjAOeln4SOYTsHhZR5M\n\tfPvEM/s7lnn70PPn9mgMU7iVRCMkDXjIgXlcMZekgv8EyKj9s6LcFxijUj8GcCJSz1BF\n\tb75g==", "X-Gm-Message-State": "AHPjjUjvoyrWNQxX/SuOi5DVzmw3nmuzh3teLSy4jiNyMdnHID9FVxhL\n\t87uj/xZ5P7xQDsUAHW/6vRH98+Zt", "X-Google-Smtp-Source": "AOwi7QCh5rnJYOt9pY09oiaCsYKvnzYr0JkPSast1+zpqvcIcM3CBiDH9+4ZRn+TksZeMT5ahgJVsQ==", "X-Received": "by 10.107.10.141 with SMTP id 13mr9576694iok.302.1506351694937; \n\tMon, 25 Sep 2017 08:01:34 -0700 (PDT)", "From": "Adam Duskett <aduskett@gmail.com>", "To": "buildroot@buildroot.org", "Date": "Mon, 25 Sep 2017 11:01:12 -0400", "Message-Id": "<20170925150112.5818-1-aduskett@gmail.com>", "X-Mailer": "git-send-email 2.13.5", "Cc": "Adam Duskett <aduskett@gmail.com>", "Subject": "[Buildroot] [PATCH v2 1/1] gstreamer1-mm: new package", "X-BeenThere": "buildroot@busybox.net", "X-Mailman-Version": "2.1.18-1", "Precedence": "list", "List-Id": "Discussion and development of buildroot <buildroot.busybox.net>", "List-Unsubscribe": "<http://lists.busybox.net/mailman/options/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=unsubscribe>", "List-Archive": "<http://lists.busybox.net/pipermail/buildroot/>", "List-Post": "<mailto:buildroot@busybox.net>", "List-Help": "<mailto:buildroot-request@busybox.net?subject=help>", "List-Subscribe": "<http://lists.busybox.net/mailman/listinfo/buildroot>,\n\t<mailto:buildroot-request@busybox.net?subject=subscribe>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "buildroot-bounces@busybox.net", "Sender": "\"buildroot\" <buildroot-bounces@busybox.net>" }, "content": "Gstreamermm provides C++ bindings for gstreamer.\n\nSigned-off-by: Adam Duskett <aduskett@gmail.com>\n---\nChanges v1 -> v2:\n - Changed the name of the package from gst1-mm to gstreamer1-mm (Arnout)\n - Added upstream author information to the patches (Arnout)\n - Changed the upstream repo from github to git.gnome.org (Arnout)\n - Added myself to the DEVELOPERS file.\n - Added --enable-unittests=no to the mk file, as the default is auto.\n\n\n DEVELOPERS | 1 +\n package/gstreamer1/Config.in | 1 +\n ...ock-auto-generate-some-audioclock-methods.patch | 68 +++++++\n .../gstreamer1-mm/0002-fix-iterator-build.patch | 207 +++++++++++++++++++++\n .../0003-remove-gstreamer-check-dependency.patch | 29 +++\n package/gstreamer1/gstreamer1-mm/Config.in | 18 ++\n .../gstreamer1/gstreamer1-mm/gstreamer1-mm.hash | 2 +\n package/gstreamer1/gstreamer1-mm/gstreamer1-mm.mk | 24 +++\n 8 files changed, 350 insertions(+)\n create mode 100644 package/gstreamer1/gstreamer1-mm/0001-gst-audioclock-auto-generate-some-audioclock-methods.patch\n create mode 100644 package/gstreamer1/gstreamer1-mm/0002-fix-iterator-build.patch\n create mode 100644 package/gstreamer1/gstreamer1-mm/0003-remove-gstreamer-check-dependency.patch\n create mode 100644 package/gstreamer1/gstreamer1-mm/Config.in\n create mode 100644 package/gstreamer1/gstreamer1-mm/gstreamer1-mm.hash\n create mode 100644 package/gstreamer1/gstreamer1-mm/gstreamer1-mm.mk", "diff": "diff --git a/DEVELOPERS b/DEVELOPERS\nindex e34802f2ba..0342b1cc41 100644\n--- a/DEVELOPERS\n+++ b/DEVELOPERS\n@@ -32,6 +32,7 @@ F:\tpackage/gstreamer1/gst1-rtsp-server/\n N:\tAdam Duskett <aduskett@gmail.com>\n F:\tpackage/audit/\n F:\tpackage/checkpolicy/\n+F:\tpackage/gstreamer1/gstreamer1-mm/\n F:\tpackage/gstreamer1/gst1-vaapi/\n F:\tpackage/janus-gateway/\n F:\tpackage/libressl/\ndiff --git a/package/gstreamer1/Config.in b/package/gstreamer1/Config.in\nindex aef75b55bf..a7b2a70d5b 100644\n--- a/package/gstreamer1/Config.in\n+++ b/package/gstreamer1/Config.in\n@@ -12,4 +12,5 @@ source \"package/gstreamer1/gst1-rtsp-server/Config.in\"\n source \"package/gstreamer1/gst1-validate/Config.in\"\n source \"package/gstreamer1/gst1-vaapi/Config.in\"\n source \"package/gstreamer1/gst-omx/Config.in\"\n+source \"package/gstreamer1/gstreamer1-mm/Config.in\"\n endif\ndiff --git a/package/gstreamer1/gstreamer1-mm/0001-gst-audioclock-auto-generate-some-audioclock-methods.patch b/package/gstreamer1/gstreamer1-mm/0001-gst-audioclock-auto-generate-some-audioclock-methods.patch\nnew file mode 100644\nindex 0000000000..6f35a62cee\n--- /dev/null\n+++ b/package/gstreamer1/gstreamer1-mm/0001-gst-audioclock-auto-generate-some-audioclock-methods.patch\n@@ -0,0 +1,68 @@\n+From 33d5ab0b12ee26823be155f766a4becdf1711b7c Mon Sep 17 00:00:00 2001\n+From: Marcin Kolny <marcin.kolny@gmail.com>\n+Date: Sat, 10 Jun 2017 15:11:22 +0100\n+Subject: [PATCH] Gst::AudioClock: auto generate some audioclock methods\n+\n+Those methods used to have object of GstClock type as a\n+first argument, so had to be wrapped manually. It has been\n+fixed inGStreamer (https://bugzilla.gnome.org/show_bug.cgi?id=756628)\n+in version 1.12.0\n+\n+https://bugzilla.gnome.org/show_bug.cgi?id=783628\n+Signed-off-by: Adam Duskett <aduskett@gmail.com>\n+[Upstream commit: https://git.gnome.org/browse/gstreamermm/commit/?id=167eeba7757027e5faf8cdb59030ca094af04763]\n+---\n+ gstreamer/gstreamermm/audioclock.cc | 30 +++++++++++++++---------------\n+ 1 file changed, 15 insertions(+), 15 deletions(-)\n+\n+diff --git a/gstreamer/gstreamermm/audioclock.cc b/gstreamer/gstreamermm/audioclock.cc\n+index 0bd4bc4..a2b18c4 100644\n+--- a/gstreamer/gstreamermm/audioclock.cc\n++++ b/gstreamer/gstreamermm/audioclock.cc\n+@@ -74,21 +74,6 @@ AudioClock::AudioClock(const Glib::ustring& name, const SlotGetTime& time_slot)\n+ gobj()->user_data = m_slot.get();\n+ }\n+ \n+-Gst::ClockTime AudioClock::adjust(Gst::ClockTime time)\n+-{\n+- return static_cast<Gst::ClockTime>(gst_audio_clock_adjust(GST_CLOCK_CAST(gobj()), static_cast<GstClockTime>(time)));\n+-}\n+-\n+-Gst::ClockTime AudioClock::get_time() const\n+-{\n+- return static_cast<Gst::ClockTime>(gst_audio_clock_get_time(GST_CLOCK_CAST(gobj())));\n+-}\n+-\n+-void AudioClock::invalidate()\n+-{\n+- gst_audio_clock_invalidate(GST_CLOCK_CAST(gobj()));\n+-}\n+-\n+ } //namespace Gst\n+ \n+ namespace\n+@@ -211,6 +196,21 @@ void AudioClock::reset(Gst::ClockTime time)\n+ gst_audio_clock_reset(gobj(), ((GstClockTime)(time)));\n+ }\n+ \n++Gst::ClockTime AudioClock::adjust(Gst::ClockTime time)\n++{\n++ return ((Gst::ClockTime)(gst_audio_clock_adjust(gobj(), ((GstClockTime)(time)))));\n++}\n++\n++Gst::ClockTime AudioClock::get_time() const\n++{\n++ return ((Gst::ClockTime)(gst_audio_clock_get_time(const_cast<GstAudioClock*>(gobj()))));\n++}\n++\n++void AudioClock::invalidate()\n++{\n++ gst_audio_clock_invalidate(gobj());\n++}\n++\n+ \n+ } // namespace Gst\n+ \n+-- \n+2.13.5\n+\ndiff --git a/package/gstreamer1/gstreamer1-mm/0002-fix-iterator-build.patch b/package/gstreamer1/gstreamer1-mm/0002-fix-iterator-build.patch\nnew file mode 100644\nindex 0000000000..75b5280265\n--- /dev/null\n+++ b/package/gstreamer1/gstreamer1-mm/0002-fix-iterator-build.patch\n@@ -0,0 +1,207 @@\n+From 70a44a8e489f08bddaa180016837d00f420f9e99 Mon Sep 17 00:00:00 2001\n+From: Marcin Kolny <marcin.kolny@gmail.com>\n+Date: Sun, 2 Jul 2017 13:48:29 +0100\n+Subject: [PATCH] Gst::Iterator: fix iterator build\n+\n+https://bugzilla.gnome.org/show_bug.cgi?id=783678\n+Signed-off-by: Adam Duskett <aduskett@gmail.com>\n+[Upstream commit: https://git.gnome.org/browse/gstreamermm/commit/?id=2a195b23bda7fef980a2dd00aedd9f1decab7a89]\n+---\n+ gstreamer/src/iterator.hg | 63 +++++++++++++++++++++++------------------------\n+ tests/Makefile.am | 2 ++\n+ tests/test-iterator.cc | 62 ++++++++++++++++++++++++++++++++++++++++++++++\n+ 3 files changed, 95 insertions(+), 32 deletions(-)\n+ create mode 100644 tests/test-iterator.cc\n+\n+diff --git a/gstreamer/src/iterator.hg b/gstreamer/src/iterator.hg\n+index 6f10417..f76c34d 100644\n+--- a/gstreamer/src/iterator.hg\n++++ b/gstreamer/src/iterator.hg\n+@@ -125,9 +125,6 @@ private:\n+ GstIterator* cobject_; // The underlying C object.\n+ bool take_ownership; // Whether to destroy C object with the wrapper.\n+ #endif /* DOXYGEN_SHOULD_SKIP_THIS */\n+-\n+-private:\n+- void swap(IteratorBase<CppType>& other);\n+ };\n+ \n+ /** A class used to retrieve multiple elements in a thread safe way.\n+@@ -243,18 +240,25 @@ template<class CppType>\n+ IteratorBase<CppType>::IteratorBase()\n+ : current(G_VALUE_INIT),\n+ current_result(Gst::ITERATOR_OK),\n+- cobject_(0),\n++ cobject_(nullptr),\n+ take_ownership(true)\n+ {\n+ }\n+ \n+ template<class CppType>\n+ IteratorBase<CppType>::IteratorBase(const IteratorBase<CppType>& other)\n+- : current(other.current),\n++ : current(G_VALUE_INIT),\n+ current_result(other.current_result),\n+- cobject_(const_cast<GstIterator*>(other.cobj())),\n+- take_ownership((other.cobj()) ? false : true)\n+-{}\n++ take_ownership(other.take_ownership)\n++{\n++ cobject_ = other.take_ownership ? gst_iterator_copy(other.cobject_) : other.cobject_;\n++\n++ if (G_IS_VALUE (&other.current))\n++ {\n++ g_value_init(¤t, G_VALUE_TYPE(&other.current));\n++ g_value_copy(&other.current, ¤t);\n++ }\n++}\n+ \n+ template<class CppType>\n+ IteratorBase<CppType>::IteratorBase(GstIterator* castitem, bool take_ownership)\n+@@ -267,8 +271,25 @@ IteratorBase<CppType>::IteratorBase(GstIterator* castitem, bool take_ownership)\n+ template<class CppType>\n+ IteratorBase<CppType>& IteratorBase<CppType>::operator=(const IteratorBase<CppType>& other)\n+ {\n+- IteratorBase temp(other);\n+- swap(temp);\n++ if (cobject_ && take_ownership)\n++ {\n++ gst_iterator_free(cobject_);\n++ }\n++\n++ if (G_IS_VALUE(¤t))\n++ {\n++ g_value_unset(¤t);\n++ }\n++\n++ current_result = other.current_result;\n++ cobject_ = other.take_ownership ? gst_iterator_copy(other.cobject_) : other.cobject_;\n++\n++ if (G_IS_VALUE (&other.current))\n++ {\n++ g_value_init(¤t, G_VALUE_TYPE(&other.current));\n++ g_value_copy(&other.current, ¤t);\n++ }\n++\n+ return *this;\n+ }\n+ \n+@@ -315,28 +336,6 @@ IteratorBase<CppType>::operator bool() const\n+ return (! G_VALUE_HOLDS_OBJECT(¤t));\n+ }\n+ \n+-template<class CppType>\n+-void IteratorBase<CppType>::swap(IteratorBase<CppType>& other)\n+-{\n+- GstIterator *const temp_obj = cobject_;\n+- cobject_ = other.cobject_;\n+- other.cobject_ = temp_obj;\n+-\n+- const bool temp_take_ownership = take_ownership;\n+- take_ownership = other.take_ownership;\n+- other.take_ownership = temp_take_ownership;\n+-\n+- GValue temp_current = G_VALUE_INIT;\n+- g_value_init(&temp_current, G_VALUE_TYPE(current));\n+- g_value_copy(¤t, &temp_current);\n+- g_value_copy(other.current, ¤t);\n+- g_value_copy(&temp_current, other.current);\n+-\n+- const IteratorResult temp_result = current_result;\n+- current_result = other.current_result;\n+- other.current_result = temp_result;\n+-}\n+-\n+ //virtual\n+ template<class CppType>\n+ IteratorBase<CppType>::~IteratorBase()\n+diff --git a/tests/Makefile.am b/tests/Makefile.am\n+index c734b62..1d931a9 100644\n+--- a/tests/Makefile.am\n++++ b/tests/Makefile.am\n+@@ -31,6 +31,7 @@ check_PROGRAMS = \\\n+ test-element \\\n+ test-ghostpad \\\n+ test-init \\\n++ test-iterator \\\n+ test-memory \\\n+ test-message \\\n+ test-miniobject \\\n+@@ -74,6 +75,7 @@ test_caps_SOURCES = $(TEST_GTEST_SOURCES) test-cap\n+ test_element_SOURCES = $(TEST_GTEST_SOURCES) test-element.cc\n+ test_ghostpad_SOURCES = $(TEST_GTEST_SOURCES) test-ghostpad.cc\n+ test_init_SOURCES = $(TEST_GTEST_SOURCES) test-init.cc\n++test_iterator_SOURCES = $(TEST_GTEST_SOURCES) test-iterator.cc\n+ test_memory_SOURCES = $(TEST_GTEST_SOURCES) test-memory.cc\n+ test_message_SOURCES = $(TEST_GTEST_SOURCES) test-message.cc\n+ test_miniobject_SOURCES = $(TEST_GTEST_SOURCES) test-miniobject.cc\n+diff --git a/tests/test-iterator.cc b/tests/test-iterator.cc\n+new file mode 100644\n+index 0000000..0a90a5b\n+--- /dev/null\n++++ b/tests/test-iterator.cc\n+@@ -0,0 +1,62 @@\n++#include \"mmtest.h\"\n++#include <gstreamermm.h>\n++\n++using namespace Gst;\n++using Glib::RefPtr;\n++\n++TEST(IteratorTest, AssignmentOperatorShouldCopyIterator)\n++{\n++ Glib::RefPtr<Gst::Element> element = Gst::ElementFactory::create_element(\"fakesink\");\n++\n++ Gst::Iterator<Gst::Pad> iter = element->iterate_pads();\n++ Gst::Iterator<Gst::Pad> iter2;\n++ iter2 = iter;\n++\n++ while (iter.next())\n++ {\n++ ASSERT_STREQ(\"sink\", iter->get_name().c_str());\n++ }\n++\n++ while(iter2.next())\n++ {\n++ ASSERT_STREQ(\"sink\", iter2->get_name().c_str());\n++ }\n++}\n++\n++\n++TEST(IteratorTest, BeginShouldResetIterator)\n++{\n++ Glib::RefPtr<Gst::Element> element = Gst::ElementFactory::create_element(\"fakesink\");\n++\n++ Gst::Iterator<Gst::Pad> iter = element->iterate_pads();\n++ \n++ while (iter.next())\n++ {\n++ ASSERT_STREQ(\"sink\", iter->get_name().c_str());\n++ }\n++\n++ iter.begin();\n++ while (iter.next())\n++ {\n++ ASSERT_STREQ(\"sink\", iter->get_name().c_str());\n++ }\n++}\n++\n++TEST(IteratorTest, CopyConstructorShouldCopyIteratorAndItsState)\n++{\n++ Glib::RefPtr<Gst::Element> element = Gst::ElementFactory::create_element(\"fakesink\");\n++\n++ Gst::Iterator<Gst::Pad> iter = element->iterate_pads();\n++\n++ while (iter.next())\n++ {\n++ ASSERT_STREQ(\"sink\", iter->get_name().c_str());\n++ }\n++\n++ ASSERT_FALSE(iter.next());\n++\n++ Gst::Iterator<Gst::Pad> iter2 = iter;\n++\n++ ASSERT_FALSE(iter.next());\n++}\n++\n+-- \n+2.13.5\ndiff --git a/package/gstreamer1/gstreamer1-mm/0003-remove-gstreamer-check-dependency.patch b/package/gstreamer1/gstreamer1-mm/0003-remove-gstreamer-check-dependency.patch\nnew file mode 100644\nindex 0000000000..70a05a6cdb\n--- /dev/null\n+++ b/package/gstreamer1/gstreamer1-mm/0003-remove-gstreamer-check-dependency.patch\n@@ -0,0 +1,29 @@\n+From f65960a21c76bcd1371a9d0d3b008731d02a0e5d Mon Sep 17 00:00:00 2001\n+From: Adam Duskett <aduskett@gmail.com>\n+Date: Thu, 31 Aug 2017 11:42:40 -0400\n+Subject: [PATCH] remove gstreamer-check dependency\n+\n+gstreamer-check is disabled by default in buildroot and itsn't required to\n+build gstreamermm. Remove the requirement from configure.\n+\n+Signed-off-by: Adam Duskett <aduskett@gmail.com>\n+---\n+ configure | 2 +-\n+ 1 file changed, 1 insertion(+), 1 deletion(-)\n+\n+diff --git a/configure b/configure\n+index de43442..c30bc4c 100755\n+--- a/configure\n++++ b/configure\n+@@ -16685,7 +16685,7 @@ fi\n+ # The format below is used so that the requirements appear nicely in the .pc\n+ # file.\n+ \n+-GSTREAMERMM_MODULES='giomm-2.4 >= 2.47.6 gstreamer-1.0 >= 1.8.0 gstreamer-base-1.0 >= 1.8.0 gstreamer-check-1.0 >= 1.8.0 gstreamer-controller-1.0 >= 1.8.0 gstreamer-net-1.0 >= 1.8.0 gstreamer-allocators-1.0 >= 1.8.0 gstreamer-app-1.0 >= 1.8.0 gstreamer-audio-1.0 >= 1.8.0 gstreamer-fft-1.0 >= 1.8.0 gstreamer-pbutils-1.0 >= 1.8.0 gstreamer-plugins-base-1.0 >= 1.8.0 gstreamer-riff-1.0 >= 1.8.0 gstreamer-rtp-1.0 >= 1.8.0 gstreamer-rtsp-1.0 >= 1.8.0 gstreamer-sdp-1.0 >= 1.8.0 gstreamer-tag-1.0 >= 1.8.0 gstreamer-video-1.0 >= 1.8.0'\n++GSTREAMERMM_MODULES='giomm-2.4 >= 2.47.6 gstreamer-1.0 >= 1.8.0 gstreamer-base-1.0 >= 1.8.0 gstreamer-controller-1.0 >= 1.8.0 gstreamer-net-1.0 >= 1.8.0 gstreamer-allocators-1.0 >= 1.8.0 gstreamer-app-1.0 >= 1.8.0 gstreamer-audio-1.0 >= 1.8.0 gstreamer-fft-1.0 >= 1.8.0 gstreamer-pbutils-1.0 >= 1.8.0 gstreamer-plugins-base-1.0 >= 1.8.0 gstreamer-riff-1.0 >= 1.8.0 gstreamer-rtp-1.0 >= 1.8.0 gstreamer-rtsp-1.0 >= 1.8.0 gstreamer-sdp-1.0 >= 1.8.0 gstreamer-tag-1.0 >= 1.8.0 gstreamer-video-1.0 >= 1.8.0'\n+ \n+ \n+ \n+-- \n+2.13.5\n+\ndiff --git a/package/gstreamer1/gstreamer1-mm/Config.in b/package/gstreamer1/gstreamer1-mm/Config.in\nnew file mode 100644\nindex 0000000000..a2915547ea\n--- /dev/null\n+++ b/package/gstreamer1/gstreamer1-mm/Config.in\n@@ -0,0 +1,18 @@\n+config BR2_PACKAGE_GSTREAMER1_MM\n+\tbool \"Gstreamer C++ bindings\"\n+\tselect BR2_PACKAGE_GST1_PLUGINS_BASE\n+\tselect BR2_PACKAGE_GLIBMM\n+\thelp\n+\t gstreamermm provides C++ bindings for the GStreamer streaming\n+\t multimedia library (http://gstreamer.freedesktop.org). With\n+\t gstreamermm it is possible to\tdevelop applications that work\n+\t with multimedia in C++.\n+\n+\t gstreamermm is developed over glibmm, libsigc++ and libxml++\n+\t and the functionalities they provide. This means that, among\n+\t other things, referencing and unreferencing of GObjects is\n+\t handled automatically via glibmm's automatic pointer class,\n+\t Glib::RefPtr, and libsigc++'s slots are used for callbacks and\n+\t signals.\n+\n+\t https://gstreamer.freedesktop.org/bindings/cplusplus.html\ndiff --git a/package/gstreamer1/gstreamer1-mm/gstreamer1-mm.hash b/package/gstreamer1/gstreamer1-mm/gstreamer1-mm.hash\nnew file mode 100644\nindex 0000000000..d10e002151\n--- /dev/null\n+++ b/package/gstreamer1/gstreamer1-mm/gstreamer1-mm.hash\n@@ -0,0 +1,2 @@\n+#From http://ftp.gnome.org/pub/gnome/sources/gstreamermm/1.8/gstreamermm-1.8.0.sha256sum\n+sha256 3ee3c1457ea2c32c1e17b784faa828f414ba27a9731532bf26d137a2ad999a44 gstreamermm-1.8.0.tar.xz\ndiff --git a/package/gstreamer1/gstreamer1-mm/gstreamer1-mm.mk b/package/gstreamer1/gstreamer1-mm/gstreamer1-mm.mk\nnew file mode 100644\nindex 0000000000..9bc4669ef1\n--- /dev/null\n+++ b/package/gstreamer1/gstreamer1-mm/gstreamer1-mm.mk\n@@ -0,0 +1,24 @@\n+################################################################################\n+#\n+# gstreamer1-mm\n+#\n+################################################################################\n+\n+GSTREAMER1_MM_VERSION_MAJOR = 1.8\n+GSTREAMER1_MM_VERSION = $(GSTREAMER1_MM_VERSION_MAJOR).0\n+GSTREAMER1_MM_SITE = http://ftp.gnome.org/pub/gnome/sources/gstreamermm/$(GSTREAMER1_MM_VERSION_MAJOR)\n+GSTREAMER1_MM_SOURCE = gstreamermm-$(GSTREAMER1_MM_VERSION).tar.xz\n+GSTREAMER1_MM_LICENSE = LGPL-2.1+\n+GSTREAMER1_MM_LICENSE_FILES = COPYING.LIB\n+GSTREAMER1_MM_INSTALL_STAGING = YES\n+GSTREAMER1_MM_DEPENDENCIES += \\\n+\tglibmm \\\n+\tgstreamer1 \\\n+\tgst1-plugins-base\n+\n+GSTREAMER1_MM_CONF_OPTS += \\\n+\t--disable-gl \\\n+\t--disable-plugins-bad \\\n+\t--enable-unittests=no\n+\n+$(eval $(autotools-package))\n", "prefixes": [ "v2", "1/1" ] }