get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/827600/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 827600,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/827600/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/buildroot/patch/20171018131702.1710-1-Adamduskett@outlook.com/",
    "project": {
        "id": 27,
        "url": "http://patchwork.ozlabs.org/api/1.2/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": "<20171018131702.1710-1-Adamduskett@outlook.com>",
    "list_archive_url": null,
    "date": "2017-10-18T13:17:02",
    "name": "[v3,1/1] gstreamer1-mm: new package",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "ee694d46a1874711bad40b0ad297960248bdef8e",
    "submitter": {
        "id": 69311,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/69311/?format=api",
        "name": "Adam Duskett",
        "email": "Aduskett@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/buildroot/patch/20171018131702.1710-1-Adamduskett@outlook.com/mbox/",
    "series": [
        {
            "id": 8900,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/8900/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/buildroot/list/?series=8900",
            "date": "2017-10-18T13:17:02",
            "name": "[v3,1/1] gstreamer1-mm: new package",
            "version": 3,
            "mbox": "http://patchwork.ozlabs.org/series/8900/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/827600/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/827600/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.133; helo=hemlock.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=\"FIZcHdqq\"; dkim-atps=neutral"
        ],
        "Received": [
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\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 3yHCJr5N4Nz9t5Q\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 19 Oct 2017 00:17:16 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 6839D88510;\n\tWed, 18 Oct 2017 13:17:14 +0000 (UTC)",
            "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id mCVeY-fST813; Wed, 18 Oct 2017 13:17:09 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 43C9E88514;\n\tWed, 18 Oct 2017 13:17:09 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id A9D611BFEBE\n\tfor <buildroot@lists.busybox.net>;\n\tWed, 18 Oct 2017 13:17:07 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id A06C1878DB\n\tfor <buildroot@lists.busybox.net>;\n\tWed, 18 Oct 2017 13:17:07 +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 b_0gK12rFuhC for <buildroot@lists.busybox.net>;\n\tWed, 18 Oct 2017 13:17:06 +0000 (UTC)",
            "from mail-yw0-f196.google.com (mail-yw0-f196.google.com\n\t[209.85.161.196])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 05B138330B\n\tfor <buildroot@buildroot.org>; Wed, 18 Oct 2017 13:17:06 +0000 (UTC)",
            "by mail-yw0-f196.google.com with SMTP id w2so477301ywa.9\n\tfor <buildroot@buildroot.org>; Wed, 18 Oct 2017 06:17:05 -0700 (PDT)",
            "from aduskett.duskett\n\t(2600-6c4a-767f-ff91-be5f-f4ff-feef-f9a2.dhcp6.chtrptr.net.\n\t[2600:6c4a:767f:ff91:be5f:f4ff:feef:f9a2])\n\tby smtp.gmail.com with ESMTPSA id\n\tf8sm5659949ywh.6.2017.10.18.06.17.03\n\t(version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);\n\tWed, 18 Oct 2017 06:17:04 -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=iahAbo+X1JLhMVenCz/O8heOypYzIhdZ25IouZNurCI=;\n\tb=FIZcHdqqshPc69po2+dQzuTJ57mGJr93PiBHLElnhtODuh7TyQldFIIukdRLOXvaso\n\tRI4dQLaIWmofryxqVjdAktBc8OnO1LxPedfnhAlPRnGQCK7KJQcwMpsIHvLX64n9Saqf\n\ttmer+kPnQgc/VOQvjEphp9M+9GSvYLAMRLwA5QBDIqiGoocEOTUMKTvqnMTH9AjDOHJm\n\tn8cgc75xnssHtr0mPKouz09jJfqqxsDNz1QIwmwgsGxj9LA9Y8LFJqJlxDZOnyPaS6Tk\n\tcqvP54X6xg3zQwD2NWZOKV4leYe5iQPHlGMWHLJAvGr/fT5kKXqj4LYik7QLoKhc9fRz\n\tbC9Q==",
        "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=iahAbo+X1JLhMVenCz/O8heOypYzIhdZ25IouZNurCI=;\n\tb=P6Ffq5haZWT0KI7KQopbTcZXZZHBlysR90u6CaMW83wuCbClF0s1v8dNPH7gXExM4K\n\tB8CfHON5VmKufMCpbNLEugINdPOA8aUrgKRmd4flEQONeu7nEm7BcguRTenWGuyWCrln\n\tk9v6uj2M7v3AZ3OVEf9D2mSzTXN7RRUL0oPlTLM4quXx3FY4C3e4WeEfrWXO1ykQTka4\n\toba4hCvKfhWYlUiLG/v0rRI5gj1MD8drZIxsxYUAUvpfd8QRWq42pWUvNh4Nq8fk9iFe\n\t1vmRHFG4zqDbqHvVcao0+iqrm1tOUy6PswYGWnWF81oaeVOC93tKOOYTbgj2MT4Aec+I\n\tRx0g==",
        "X-Gm-Message-State": "AMCzsaVVtrSOhcu1llPZVT5Rc9cetVXWVk2crN2WnYKxS/GOjPLC+V+8\n\tEFPXzM90w5vgvLyCpncY/eOJ+R2S",
        "X-Google-Smtp-Source": "ABhQp+Q3DA8qEsjNEh/QnUN2Elr/rPcALm79uqI9nOVgb51fwwJ2W9d5+Ch+uTAbA7VBq1BKwky5vg==",
        "X-Received": "by 10.129.80.4 with SMTP id e4mr1379646ywb.119.1508332624713;\n\tWed, 18 Oct 2017 06:17:04 -0700 (PDT)",
        "From": "Adam Duskett <aduskett@gmail.com>",
        "X-Google-Original-From": "Adam Duskett <Adamduskett@outlook.com>",
        "To": "buildroot@buildroot.org",
        "Date": "Wed, 18 Oct 2017 09:17:02 -0400",
        "Message-Id": "<20171018131702.1710-1-Adamduskett@outlook.com>",
        "X-Mailer": "git-send-email 2.13.6",
        "Cc": "Adam Duskett <Adamduskett@outlook.com>",
        "Subject": "[Buildroot] [PATCH v3 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 <Adamduskett@outlook.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\nChanges v2 -> v3:\n  - Added proper dependencies.\n  - Added depenency explination.\n  - Changed \"Gstreamer C++ bindings\" to \"gstreamer1-mm\"\n  - Moved package selection to right below gstreamer1 selection in\n    menuconfig.\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         |  28 +++\n .../gstreamer1/gstreamer1-mm/gstreamer1-mm.hash    |   2 +\n package/gstreamer1/gstreamer1-mm/gstreamer1-mm.mk  |  24 +++\n 8 files changed, 360 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 dd19a0a4d0..0e3c477866 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..76c32bc6c6 100644\n--- a/package/gstreamer1/Config.in\n+++ b/package/gstreamer1/Config.in\n@@ -2,6 +2,7 @@\n source \"package/gstreamer1/gstreamer1/Config.in\"\n \n if BR2_PACKAGE_GSTREAMER1\n+source \"package/gstreamer1/gstreamer1-mm/Config.in\"\n source \"package/gstreamer1/gst1-plugins-base/Config.in\"\n source \"package/gstreamer1/gst1-plugins-good/Config.in\"\n source \"package/gstreamer1/gst1-plugins-bad/Config.in\"\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(&current, G_VALUE_TYPE(&other.current));\n++    g_value_copy(&other.current, &current);\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(&current))\n++  {\n++    g_value_unset(&current);\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(&current, G_VALUE_TYPE(&other.current));\n++    g_value_copy(&other.current, &current);\n++  }\n++\n+   return *this;\n+ }\n+ \n+@@ -315,28 +336,6 @@ IteratorBase<CppType>::operator bool() const\n+   return (! G_VALUE_HOLDS_OBJECT(&current));\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(&current, &temp_current);\n+-  g_value_copy(other.current, &current);\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..33052c943e\n--- /dev/null\n+++ b/package/gstreamer1/gstreamer1-mm/Config.in\n@@ -0,0 +1,28 @@\n+config BR2_PACKAGE_GSTREAMER1_MM\n+\tbool \"gstreamer1-mm\"\n+\tdepends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # glibmm\n+\tdepends on BR2_INSTALL_LIBSTDCPP # glibmm\n+\tdepends on BR2_USE_WCHAR # libglib2\n+\tdepends on BR2_TOOLCHAIN_HAS_THREADS # libglib2\n+\tdepends on BR2_USE_MMU # libglib2\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\n+\n+comment \"gstreamer1-mm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8\"\n+\tdepends on BR2_USE_MMU\n+\tdepends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \\\n+\t\t|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS\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": [
        "v3",
        "1/1"
    ]
}