aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gstreamer
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2010-12-16 09:54:50 +0100
committerKoen Kooi <koen@openembedded.org>2010-12-16 09:56:35 +0100
commit6ee127712faefc3c496e01d219840634400b6f07 (patch)
treea725c156b23a28a326e365642b2dfcba08e3aa6e /recipes/gstreamer
parentf8dacd8b6803b41a8657c87e6964f39504a96700 (diff)
downloadopenembedded-6ee127712faefc3c496e01d219840634400b6f07.tar.gz
gstreamer 0.10.31: add patch for query buffer api
Signed-off-by: Koen Kooi <koen@openembedded.org>
Diffstat (limited to 'recipes/gstreamer')
-rw-r--r--recipes/gstreamer/gstreamer/query-buffers.patch810
-rw-r--r--recipes/gstreamer/gstreamer_0.10.31.bb4
2 files changed, 814 insertions, 0 deletions
diff --git a/recipes/gstreamer/gstreamer/query-buffers.patch b/recipes/gstreamer/gstreamer/query-buffers.patch
new file mode 100644
index 0000000000..c34932facf
--- /dev/null
+++ b/recipes/gstreamer/gstreamer/query-buffers.patch
@@ -0,0 +1,810 @@
+From 45ef073f7c7748376f11ae2dea372eea6dc3a04a Mon Sep 17 00:00:00 2001
+From: Rob Clark <rob@ti.com>
+Date: Wed, 19 May 2010 15:48:09 -0500
+Subject: [PATCH] add GstQueryBuffers query
+
+This query is used by buffer allocator, for example a video sink element,
+to find out any minimum buffer requirements of upstream elements that uses
+pad_alloc() to allocate buffers. For example, some cameras may have need
+for additional padding/boarder around the frame (for vstab), or some video
+decoders may have requirements for a certain minimum number of buffers (so
+they can hold refs to reference-frames)
+---
+ gst/gstquark.c | 3 +-
+ gst/gstquark.c.BACKUP.9714.c | 74 +++++++++++++++++++++
+ gst/gstquark.c.BASE.9714.c | 69 +++++++++++++++++++
+ gst/gstquark.c.LOCAL.9714.c | 69 +++++++++++++++++++
+ gst/gstquark.c.REMOTE.9714.c | 70 ++++++++++++++++++++
+ gst/gstquark.c.orig | 74 +++++++++++++++++++++
+ gst/gstquark.h | 7 ++-
+ gst/gstquark.h.orig | 148 ++++++++++++++++++++++++++++++++++++++++++
+ gst/gstquery.c | 141 ++++++++++++++++++++++++++++++++++++++++
+ gst/gstquery.h | 16 ++++-
+ 10 files changed, 668 insertions(+), 3 deletions(-)
+ create mode 100644 gst/gstquark.c.BACKUP.9714.c
+ create mode 100644 gst/gstquark.c.BASE.9714.c
+ create mode 100644 gst/gstquark.c.LOCAL.9714.c
+ create mode 100644 gst/gstquark.c.REMOTE.9714.c
+ create mode 100644 gst/gstquark.c.orig
+ create mode 100644 gst/gstquark.h.orig
+
+diff --git a/gst/gstquark.c b/gst/gstquark.c
+index 4073eb4..58badca 100644
+--- a/gst/gstquark.c
++++ b/gst/gstquark.c
+@@ -49,7 +49,8 @@ static const gchar *_quark_strings[] = {
+ "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
+ "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
+ "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
+- "quality", "processed", "dropped", "buffering-ranges"
++ "quality", "processed", "dropped", "buffering-ranges", "GstQueryBuffers",
++ "caps", "count", "width", "height"
+ };
+
+ GQuark _priv_gst_quark_table[GST_QUARK_MAX];
+diff --git a/gst/gstquark.c.BACKUP.9714.c b/gst/gstquark.c.BACKUP.9714.c
+new file mode 100644
+index 0000000..e1fc9b1
+--- /dev/null
++++ b/gst/gstquark.c.BACKUP.9714.c
+@@ -0,0 +1,74 @@
++/* GStreamer
++ * Copyright (C) 2006 Jan Schmidt <thaytan@noraisin.net>
++ *
++ * gstquark.c: Registered quarks for the _priv_gst_quark_table, private to
++ * GStreamer
++ *
++ * 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.
++ */
++
++#include "gst_private.h"
++#include "gstquark.h"
++
++/* These strings must match order and number declared in the GstQuarkId
++ * enum in gstquark.h! */
++static const gchar *_quark_strings[] = {
++ "format", "current", "duration", "rate",
++ "seekable", "segment-start", "segment-end",
++ "src_format", "src_value", "dest_format", "dest_value",
++ "start_format", "start_value", "stop_format", "stop_value",
++ "gerror", "debug", "buffer-percent", "buffering-mode",
++ "avg-in-rate", "avg-out-rate", "buffering-left",
++ "estimated-total", "old-state", "new-state", "pending-state",
++ "clock", "ready", "position", "new-base-time", "live", "min-latency",
++ "max-latency", "busy", "type", "owner", "update", "applied-rate",
++ "start", "stop", "minsize", "maxsize", "async", "proportion",
++ "diff", "timestamp", "flags", "cur-type", "cur", "stop-type",
++ "latency", "uri", "object", "taglist", "GstEventNewsegment",
++ "GstEventBufferSize", "GstEventQOS", "GstEventSeek", "GstEventLatency",
++ "GstMessageError", "GstMessageWarning", "GstMessageInfo",
++ "GstMessageBuffering", "GstMessageState", "GstMessageClockProvide",
++ "GstMessageClockLost", "GstMessageNewClock", "GstMessageStructureChange",
++ "GstMessageSegmentStart", "GstMessageSegmentDone", "GstMessageDuration",
++ "GstMessageAsyncStart", "GstMessageRequestState", "GstMessageStreamStatus",
++ "GstQueryPosition", "GstQueryDuration", "GstQueryLatency", "GstQueryConvert",
++ "GstQuerySegment", "GstQuerySeeking", "GstQueryFormats", "GstQueryBuffering",
++ "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
++ "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
++ "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
++<<<<<<< HEAD
++ "quality", "processed", "dropped", "buffering-ranges"
++=======
++ "quality", "processed", "dropped", "GstQueryBuffers", "caps", "count",
++ "width", "height"
++>>>>>>> 1ff1ed7... add GstQueryBuffers query
++};
++
++GQuark _priv_gst_quark_table[GST_QUARK_MAX];
++
++void
++_priv_gst_quarks_initialize (void)
++{
++ gint i;
++
++ if (G_N_ELEMENTS (_quark_strings) != GST_QUARK_MAX)
++ g_warning ("the quark table is not consistent! %d != %d",
++ (int) G_N_ELEMENTS (_quark_strings), GST_QUARK_MAX);
++
++ for (i = 0; i < GST_QUARK_MAX; i++) {
++ _priv_gst_quark_table[i] = g_quark_from_static_string (_quark_strings[i]);
++ }
++}
+diff --git a/gst/gstquark.c.BASE.9714.c b/gst/gstquark.c.BASE.9714.c
+new file mode 100644
+index 0000000..a4253a9
+--- /dev/null
++++ b/gst/gstquark.c.BASE.9714.c
+@@ -0,0 +1,69 @@
++/* GStreamer
++ * Copyright (C) 2006 Jan Schmidt <thaytan@noraisin.net>
++ *
++ * gstquark.c: Registered quarks for the _priv_gst_quark_table, private to
++ * GStreamer
++ *
++ * 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.
++ */
++
++#include "gst_private.h"
++#include "gstquark.h"
++
++/* These strings must match order and number declared in the GstQuarkId
++ * enum in gstquark.h! */
++static const gchar *_quark_strings[] = {
++ "format", "current", "duration", "rate",
++ "seekable", "segment-start", "segment-end",
++ "src_format", "src_value", "dest_format", "dest_value",
++ "start_format", "start_value", "stop_format", "stop_value",
++ "gerror", "debug", "buffer-percent", "buffering-mode",
++ "avg-in-rate", "avg-out-rate", "buffering-left",
++ "estimated-total", "old-state", "new-state", "pending-state",
++ "clock", "ready", "position", "new-base-time", "live", "min-latency",
++ "max-latency", "busy", "type", "owner", "update", "applied-rate",
++ "start", "stop", "minsize", "maxsize", "async", "proportion",
++ "diff", "timestamp", "flags", "cur-type", "cur", "stop-type",
++ "latency", "uri", "object", "taglist", "GstEventNewsegment",
++ "GstEventBufferSize", "GstEventQOS", "GstEventSeek", "GstEventLatency",
++ "GstMessageError", "GstMessageWarning", "GstMessageInfo",
++ "GstMessageBuffering", "GstMessageState", "GstMessageClockProvide",
++ "GstMessageClockLost", "GstMessageNewClock", "GstMessageStructureChange",
++ "GstMessageSegmentStart", "GstMessageSegmentDone", "GstMessageDuration",
++ "GstMessageAsyncStart", "GstMessageRequestState", "GstMessageStreamStatus",
++ "GstQueryPosition", "GstQueryDuration", "GstQueryLatency", "GstQueryConvert",
++ "GstQuerySegment", "GstQuerySeeking", "GstQueryFormats", "GstQueryBuffering",
++ "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
++ "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
++ "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
++ "quality", "processed", "dropped"
++};
++
++GQuark _priv_gst_quark_table[GST_QUARK_MAX];
++
++void
++_priv_gst_quarks_initialize (void)
++{
++ gint i;
++
++ if (G_N_ELEMENTS (_quark_strings) != GST_QUARK_MAX)
++ g_warning ("the quark table is not consistent! %d != %d",
++ (int) G_N_ELEMENTS (_quark_strings), GST_QUARK_MAX);
++
++ for (i = 0; i < GST_QUARK_MAX; i++) {
++ _priv_gst_quark_table[i] = g_quark_from_static_string (_quark_strings[i]);
++ }
++}
+diff --git a/gst/gstquark.c.LOCAL.9714.c b/gst/gstquark.c.LOCAL.9714.c
+new file mode 100644
+index 0000000..4073eb4
+--- /dev/null
++++ b/gst/gstquark.c.LOCAL.9714.c
+@@ -0,0 +1,69 @@
++/* GStreamer
++ * Copyright (C) 2006 Jan Schmidt <thaytan@noraisin.net>
++ *
++ * gstquark.c: Registered quarks for the _priv_gst_quark_table, private to
++ * GStreamer
++ *
++ * 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.
++ */
++
++#include "gst_private.h"
++#include "gstquark.h"
++
++/* These strings must match order and number declared in the GstQuarkId
++ * enum in gstquark.h! */
++static const gchar *_quark_strings[] = {
++ "format", "current", "duration", "rate",
++ "seekable", "segment-start", "segment-end",
++ "src_format", "src_value", "dest_format", "dest_value",
++ "start_format", "start_value", "stop_format", "stop_value",
++ "gerror", "debug", "buffer-percent", "buffering-mode",
++ "avg-in-rate", "avg-out-rate", "buffering-left",
++ "estimated-total", "old-state", "new-state", "pending-state",
++ "clock", "ready", "position", "new-base-time", "live", "min-latency",
++ "max-latency", "busy", "type", "owner", "update", "applied-rate",
++ "start", "stop", "minsize", "maxsize", "async", "proportion",
++ "diff", "timestamp", "flags", "cur-type", "cur", "stop-type",
++ "latency", "uri", "object", "taglist", "GstEventNewsegment",
++ "GstEventBufferSize", "GstEventQOS", "GstEventSeek", "GstEventLatency",
++ "GstMessageError", "GstMessageWarning", "GstMessageInfo",
++ "GstMessageBuffering", "GstMessageState", "GstMessageClockProvide",
++ "GstMessageClockLost", "GstMessageNewClock", "GstMessageStructureChange",
++ "GstMessageSegmentStart", "GstMessageSegmentDone", "GstMessageDuration",
++ "GstMessageAsyncStart", "GstMessageRequestState", "GstMessageStreamStatus",
++ "GstQueryPosition", "GstQueryDuration", "GstQueryLatency", "GstQueryConvert",
++ "GstQuerySegment", "GstQuerySeeking", "GstQueryFormats", "GstQueryBuffering",
++ "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
++ "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
++ "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
++ "quality", "processed", "dropped", "buffering-ranges"
++};
++
++GQuark _priv_gst_quark_table[GST_QUARK_MAX];
++
++void
++_priv_gst_quarks_initialize (void)
++{
++ gint i;
++
++ if (G_N_ELEMENTS (_quark_strings) != GST_QUARK_MAX)
++ g_warning ("the quark table is not consistent! %d != %d",
++ (int) G_N_ELEMENTS (_quark_strings), GST_QUARK_MAX);
++
++ for (i = 0; i < GST_QUARK_MAX; i++) {
++ _priv_gst_quark_table[i] = g_quark_from_static_string (_quark_strings[i]);
++ }
++}
+diff --git a/gst/gstquark.c.REMOTE.9714.c b/gst/gstquark.c.REMOTE.9714.c
+new file mode 100644
+index 0000000..7277593
+--- /dev/null
++++ b/gst/gstquark.c.REMOTE.9714.c
+@@ -0,0 +1,70 @@
++/* GStreamer
++ * Copyright (C) 2006 Jan Schmidt <thaytan@noraisin.net>
++ *
++ * gstquark.c: Registered quarks for the _priv_gst_quark_table, private to
++ * GStreamer
++ *
++ * 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.
++ */
++
++#include "gst_private.h"
++#include "gstquark.h"
++
++/* These strings must match order and number declared in the GstQuarkId
++ * enum in gstquark.h! */
++static const gchar *_quark_strings[] = {
++ "format", "current", "duration", "rate",
++ "seekable", "segment-start", "segment-end",
++ "src_format", "src_value", "dest_format", "dest_value",
++ "start_format", "start_value", "stop_format", "stop_value",
++ "gerror", "debug", "buffer-percent", "buffering-mode",
++ "avg-in-rate", "avg-out-rate", "buffering-left",
++ "estimated-total", "old-state", "new-state", "pending-state",
++ "clock", "ready", "position", "new-base-time", "live", "min-latency",
++ "max-latency", "busy", "type", "owner", "update", "applied-rate",
++ "start", "stop", "minsize", "maxsize", "async", "proportion",
++ "diff", "timestamp", "flags", "cur-type", "cur", "stop-type",
++ "latency", "uri", "object", "taglist", "GstEventNewsegment",
++ "GstEventBufferSize", "GstEventQOS", "GstEventSeek", "GstEventLatency",
++ "GstMessageError", "GstMessageWarning", "GstMessageInfo",
++ "GstMessageBuffering", "GstMessageState", "GstMessageClockProvide",
++ "GstMessageClockLost", "GstMessageNewClock", "GstMessageStructureChange",
++ "GstMessageSegmentStart", "GstMessageSegmentDone", "GstMessageDuration",
++ "GstMessageAsyncStart", "GstMessageRequestState", "GstMessageStreamStatus",
++ "GstQueryPosition", "GstQueryDuration", "GstQueryLatency", "GstQueryConvert",
++ "GstQuerySegment", "GstQuerySeeking", "GstQueryFormats", "GstQueryBuffering",
++ "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
++ "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
++ "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
++ "quality", "processed", "dropped", "GstQueryBuffers", "caps", "count",
++ "width", "height"
++};
++
++GQuark _priv_gst_quark_table[GST_QUARK_MAX];
++
++void
++_priv_gst_quarks_initialize (void)
++{
++ gint i;
++
++ if (G_N_ELEMENTS (_quark_strings) != GST_QUARK_MAX)
++ g_warning ("the quark table is not consistent! %d != %d",
++ (int) G_N_ELEMENTS (_quark_strings), GST_QUARK_MAX);
++
++ for (i = 0; i < GST_QUARK_MAX; i++) {
++ _priv_gst_quark_table[i] = g_quark_from_static_string (_quark_strings[i]);
++ }
++}
+diff --git a/gst/gstquark.c.orig b/gst/gstquark.c.orig
+new file mode 100644
+index 0000000..e1fc9b1
+--- /dev/null
++++ b/gst/gstquark.c.orig
+@@ -0,0 +1,74 @@
++/* GStreamer
++ * Copyright (C) 2006 Jan Schmidt <thaytan@noraisin.net>
++ *
++ * gstquark.c: Registered quarks for the _priv_gst_quark_table, private to
++ * GStreamer
++ *
++ * 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.
++ */
++
++#include "gst_private.h"
++#include "gstquark.h"
++
++/* These strings must match order and number declared in the GstQuarkId
++ * enum in gstquark.h! */
++static const gchar *_quark_strings[] = {
++ "format", "current", "duration", "rate",
++ "seekable", "segment-start", "segment-end",
++ "src_format", "src_value", "dest_format", "dest_value",
++ "start_format", "start_value", "stop_format", "stop_value",
++ "gerror", "debug", "buffer-percent", "buffering-mode",
++ "avg-in-rate", "avg-out-rate", "buffering-left",
++ "estimated-total", "old-state", "new-state", "pending-state",
++ "clock", "ready", "position", "new-base-time", "live", "min-latency",
++ "max-latency", "busy", "type", "owner", "update", "applied-rate",
++ "start", "stop", "minsize", "maxsize", "async", "proportion",
++ "diff", "timestamp", "flags", "cur-type", "cur", "stop-type",
++ "latency", "uri", "object", "taglist", "GstEventNewsegment",
++ "GstEventBufferSize", "GstEventQOS", "GstEventSeek", "GstEventLatency",
++ "GstMessageError", "GstMessageWarning", "GstMessageInfo",
++ "GstMessageBuffering", "GstMessageState", "GstMessageClockProvide",
++ "GstMessageClockLost", "GstMessageNewClock", "GstMessageStructureChange",
++ "GstMessageSegmentStart", "GstMessageSegmentDone", "GstMessageDuration",
++ "GstMessageAsyncStart", "GstMessageRequestState", "GstMessageStreamStatus",
++ "GstQueryPosition", "GstQueryDuration", "GstQueryLatency", "GstQueryConvert",
++ "GstQuerySegment", "GstQuerySeeking", "GstQueryFormats", "GstQueryBuffering",
++ "GstQueryURI", "GstEventStep", "GstMessageStepDone", "amount", "flush",
++ "intermediate", "GstMessageStepStart", "active", "eos", "sink-message",
++ "message", "GstMessageQOS", "running-time", "stream-time", "jitter",
++<<<<<<< HEAD
++ "quality", "processed", "dropped", "buffering-ranges"
++=======
++ "quality", "processed", "dropped", "GstQueryBuffers", "caps", "count",
++ "width", "height"
++>>>>>>> 1ff1ed7... add GstQueryBuffers query
++};
++
++GQuark _priv_gst_quark_table[GST_QUARK_MAX];
++
++void
++_priv_gst_quarks_initialize (void)
++{
++ gint i;
++
++ if (G_N_ELEMENTS (_quark_strings) != GST_QUARK_MAX)
++ g_warning ("the quark table is not consistent! %d != %d",
++ (int) G_N_ELEMENTS (_quark_strings), GST_QUARK_MAX);
++
++ for (i = 0; i < GST_QUARK_MAX; i++) {
++ _priv_gst_quark_table[i] = g_quark_from_static_string (_quark_strings[i]);
++ }
++}
+diff --git a/gst/gstquark.h b/gst/gstquark.h
+index c95d9cd..f4c8e0f 100644
+--- a/gst/gstquark.h
++++ b/gst/gstquark.h
+@@ -127,8 +127,13 @@ typedef enum _GstQuarkId
+ GST_QUARK_PROCESSED = 98,
+ GST_QUARK_DROPPED = 99,
+ GST_QUARK_BUFFERING_RANGES = 100,
++ GST_QUARK_QUERY_BUFFERS = 101,
++ GST_QUARK_CAPS = 102,
++ GST_QUARK_COUNT = 103,
++ GST_QUARK_WIDTH = 104,
++ GST_QUARK_HEIGHT = 105,
+
+- GST_QUARK_MAX = 101
++ GST_QUARK_MAX = 106
+ } GstQuarkId;
+
+ extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
+diff --git a/gst/gstquark.h.orig b/gst/gstquark.h.orig
+new file mode 100644
+index 0000000..1662daf
+--- /dev/null
++++ b/gst/gstquark.h.orig
+@@ -0,0 +1,148 @@
++/* GStreamer
++ * Copyright (C) 2006 Jan Schmidt <thaytan@noraisin.net>
++ *
++ * gstquark.h: Private header for storing quark info
++ *
++ * 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.
++ */
++
++#ifndef __GST_QUARK_H__
++#define __GST_QUARK_H__
++
++/* These enums need to match the number and order
++ * of strings declared in _quark_table, in gstquark.c */
++typedef enum _GstQuarkId
++{
++ GST_QUARK_FORMAT = 0,
++ GST_QUARK_CURRENT = 1,
++ GST_QUARK_DURATION = 2,
++ GST_QUARK_RATE = 3,
++ GST_QUARK_SEEKABLE = 4,
++ GST_QUARK_SEGMENT_START = 5,
++ GST_QUARK_SEGMENT_END = 6,
++ GST_QUARK_SRC_FORMAT = 7,
++ GST_QUARK_SRC_VALUE = 8,
++ GST_QUARK_DEST_FORMAT = 9,
++ GST_QUARK_DEST_VALUE = 10,
++ GST_QUARK_START_FORMAT = 11,
++ GST_QUARK_START_VALUE = 12,
++ GST_QUARK_STOP_FORMAT = 13,
++ GST_QUARK_STOP_VALUE = 14,
++ GST_QUARK_GERROR = 15,
++ GST_QUARK_DEBUG = 16,
++ GST_QUARK_BUFFER_PERCENT = 17,
++ GST_QUARK_BUFFERING_MODE = 18,
++ GST_QUARK_AVG_IN_RATE = 19,
++ GST_QUARK_AVG_OUT_RATE = 20,
++ GST_QUARK_BUFFERING_LEFT = 21,
++ GST_QUARK_ESTIMATED_TOTAL = 22,
++ GST_QUARK_OLD_STATE = 23,
++ GST_QUARK_NEW_STATE = 24,
++ GST_QUARK_PENDING_STATE = 25,
++ GST_QUARK_CLOCK = 26,
++ GST_QUARK_READY = 27,
++ GST_QUARK_POSITION = 28,
++ GST_QUARK_NEW_BASE_TIME = 29,
++ GST_QUARK_LIVE = 30,
++ GST_QUARK_MIN_LATENCY = 31,
++ GST_QUARK_MAX_LATENCY = 32,
++ GST_QUARK_BUSY = 33,
++ GST_QUARK_TYPE = 34,
++ GST_QUARK_OWNER = 35,
++ GST_QUARK_UPDATE = 36,
++ GST_QUARK_APPLIED_RATE = 37,
++ GST_QUARK_START = 38,
++ GST_QUARK_STOP = 39,
++ GST_QUARK_MINSIZE = 40,
++ GST_QUARK_MAXSIZE = 41,
++ GST_QUARK_ASYNC = 42,
++ GST_QUARK_PROPORTION = 43,
++ GST_QUARK_DIFF = 44,
++ GST_QUARK_TIMESTAMP = 45,
++ GST_QUARK_FLAGS = 46,
++ GST_QUARK_CUR_TYPE = 47,
++ GST_QUARK_CUR = 48,
++ GST_QUARK_STOP_TYPE = 49,
++ GST_QUARK_LATENCY = 50,
++ GST_QUARK_URI = 51,
++ GST_QUARK_OBJECT = 52,
++ GST_QUARK_TAGLIST = 53,
++ GST_QUARK_EVENT_NEWSEGMENT = 54,
++ GST_QUARK_EVENT_BUFFER_SIZE = 55,
++ GST_QUARK_EVENT_QOS = 56,
++ GST_QUARK_EVENT_SEEK = 57,
++ GST_QUARK_EVENT_LATENCY = 58,
++ GST_QUARK_MESSAGE_ERROR = 59,
++ GST_QUARK_MESSAGE_WARNING = 60,
++ GST_QUARK_MESSAGE_INFO = 61,
++ GST_QUARK_MESSAGE_BUFFERING = 62,
++ GST_QUARK_MESSAGE_STATE = 63,
++ GST_QUARK_MESSAGE_CLOCK_PROVIDE = 64,
++ GST_QUARK_MESSAGE_CLOCK_LOST = 65,
++ GST_QUARK_MESSAGE_NEW_CLOCK = 66,
++ GST_QUARK_MESSAGE_STRUCTURE_CHANGE = 67,
++ GST_QUARK_MESSAGE_SEGMENT_START = 68,
++ GST_QUARK_MESSAGE_SEGMENT_DONE = 69,
++ GST_QUARK_MESSAGE_DURATION = 70,
++ GST_QUARK_MESSAGE_ASYNC_START = 71,
++ GST_QUARK_MESSAGE_REQUEST_STATE = 72,
++ GST_QUARK_MESSAGE_STREAM_STATUS = 73,
++ GST_QUARK_QUERY_POSITION = 74,
++ GST_QUARK_QUERY_DURATION = 75,
++ GST_QUARK_QUERY_LATENCY = 76,
++ GST_QUARK_QUERY_CONVERT = 77,
++ GST_QUARK_QUERY_SEGMENT = 78,
++ GST_QUARK_QUERY_SEEKING = 79,
++ GST_QUARK_QUERY_FORMATS = 80,
++ GST_QUARK_QUERY_BUFFERING = 81,
++ GST_QUARK_QUERY_URI = 82,
++ GST_QUARK_EVENT_STEP = 83,
++ GST_QUARK_MESSAGE_STEP_DONE = 84,
++ GST_QUARK_AMOUNT = 85,
++ GST_QUARK_FLUSH = 86,
++ GST_QUARK_INTERMEDIATE = 87,
++ GST_QUARK_MESSAGE_STEP_START = 88,
++ GST_QUARK_ACTIVE = 89,
++ GST_QUARK_EOS = 90,
++ GST_QUARK_EVENT_SINK_MESSAGE = 91,
++ GST_QUARK_MESSAGE = 92,
++ GST_QUARK_MESSAGE_QOS = 93,
++ GST_QUARK_RUNNING_TIME = 94,
++ GST_QUARK_STREAM_TIME = 95,
++ GST_QUARK_JITTER = 96,
++ GST_QUARK_QUALITY = 97,
++ GST_QUARK_PROCESSED = 98,
++ GST_QUARK_DROPPED = 99,
++<<<<<<< HEAD
++ GST_QUARK_BUFFERING_RANGES = 100,
++
++ GST_QUARK_MAX = 101
++=======
++ GST_QUARK_QUERY_BUFFERS = 100,
++ GST_QUARK_CAPS = 101,
++ GST_QUARK_COUNT = 102,
++ GST_QUARK_WIDTH = 103,
++ GST_QUARK_HEIGHT = 104,
++
++ GST_QUARK_MAX = 105
++>>>>>>> 1ff1ed7... add GstQueryBuffers query
++} GstQuarkId;
++
++extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
++
++#define GST_QUARK(q) _priv_gst_quark_table[GST_QUARK_##q]
++
++#endif
+diff --git a/gst/gstquery.c b/gst/gstquery.c
+index 44ffa59..86e9f38 100644
+--- a/gst/gstquery.c
++++ b/gst/gstquery.c
+@@ -94,6 +94,7 @@ static GstQueryTypeDefinition standard_definitions[] = {
+ {GST_QUERY_BUFFERING, "buffering", "Buffering status", 0},
+ {GST_QUERY_CUSTOM, "custom", "Custom query", 0},
+ {GST_QUERY_URI, "uri", "URI of the source or sink", 0},
++ {GST_QUERY_BUFFERS, "buffers", "Minimum buffer requirements", 0},
+ {0, NULL, NULL, 0}
+ };
+
+@@ -1480,3 +1481,143 @@ gst_query_parse_uri (GstQuery * query, gchar ** uri)
+ *uri = g_value_dup_string (gst_structure_id_get_value (structure,
+ GST_QUARK (URI)));
+ }
++
++/**
++ * gst_query_new_buffers:
++ * @caps: the #GstCaps for the buffers that are going to be allocated
++ *
++ * Constructs a new buffer requirements query object to query buffer
++ * requirements for a particular caps. Use gst_query_unref() when done
++ * with it.
++ *
++ * Returns: A #GstQuery
++ */
++GstQuery *
++gst_query_new_buffers (GstCaps * caps)
++{
++ GstQuery *query;
++ GstStructure *structure;
++
++ /* XXX could add size here, for linear (non YUV/RGB) buffers? But I'm not
++ * entirely sure what is the use-case for that.. it should be easy enough
++ * to add more optional reply fields later
++ */
++ structure = gst_structure_id_new (GST_QUARK (QUERY_BUFFERS),
++ GST_QUARK (CAPS), GST_TYPE_CAPS, caps,
++ GST_QUARK (COUNT), G_TYPE_INT, -1,
++ GST_QUARK (WIDTH), G_TYPE_INT, -1,
++ GST_QUARK (HEIGHT), G_TYPE_INT, -1, NULL);
++
++ query = gst_query_new (GST_QUERY_BUFFERS, structure);
++
++ return query;
++}
++
++/**
++ * gst_query_set_buffers_count:
++ * @count: minimum number of buffers required
++ *
++ * Answer a buffers query by setting the minimum number of buffers required.
++ * If there is no minimum buffer count requirement, don't set this field in
++ * the query.
++ */
++void
++gst_query_set_buffers_count (GstQuery * query, gint count)
++{
++ GstStructure *structure;
++
++ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
++
++ structure = gst_query_get_structure (query);
++ gst_structure_id_set (structure, GST_QUARK (COUNT), G_TYPE_INT, count, NULL);
++}
++
++/**
++ * gst_query_set_buffers_dimensions:
++ * @width: minimum buffer width
++ * @height: minimum buffer height
++ *
++ * Answer a buffers query by setting the minimum buffer dimensions required.
++ * If there is no minimum buffer dimensions (beyond the width/height specified
++ * in the #GstCaps), don't set this field in the query.
++ */
++void
++gst_query_set_buffers_dimensions (GstQuery * query, gint width, gint height)
++{
++ GstStructure *structure;
++
++ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
++
++ structure = gst_query_get_structure (query);
++ gst_structure_id_set (structure,
++ GST_QUARK (WIDTH), G_TYPE_INT, width,
++ GST_QUARK (HEIGHT), G_TYPE_INT, height, NULL);
++}
++
++/**
++ * gst_query_parse_buffers_caps:
++ * @query: a #GstQuery
++ * @caps: the storage for the #GstCaps pointer, or NULL
++ *
++ * Parse a buffers query.
++ */
++void
++gst_query_parse_buffers_caps (GstQuery * query, const GstCaps ** caps)
++{
++ GstStructure *structure;
++
++ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
++
++ structure = gst_query_get_structure (query);
++ if (caps)
++ *caps = gst_value_get_caps (gst_structure_id_get_value (structure,
++ GST_QUARK (CAPS)));
++}
++
++/**
++ * gst_query_parse_buffers_count:
++ * @query: a #GstQuery
++ * @count: the storage for minimum number of buffers, or NULL
++ *
++ * Parse a buffers query answer to see the minimum number of buffers
++ * required. A returned value of -1 means there is no minimum requirement
++ */
++void
++gst_query_parse_buffers_count (GstQuery * query, gint * count)
++{
++ GstStructure *structure;
++
++ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
++
++ structure = gst_query_get_structure (query);
++ if (count)
++ *count = g_value_get_int (gst_structure_id_get_value (structure,
++ GST_QUARK (COUNT)));
++}
++
++/**
++ * gst_query_parse_buffers_dimensions:
++ * @query: a #GstQuery
++ * @width: the storage for minimum width, or NULL
++ * @height: the storage for minimum height, or NULL
++ *
++ * Parse a buffers query answer to see the minimum buffer dimensions required.
++ * A returned value of -1 for either dimension means there is no minimum
++ * requirement in that axis
++ */
++void
++gst_query_parse_buffers_dimensions (GstQuery * query, gint * width,
++ gint * height)
++{
++ GstStructure *structure;
++
++ g_return_if_fail (GST_QUERY_TYPE (query) == GST_QUERY_BUFFERS);
++
++ structure = gst_query_get_structure (query);
++ if (width)
++ *width = g_value_get_int (gst_structure_id_get_value (structure,
++ GST_QUARK (WIDTH)));
++ if (height)
++ *height = g_value_get_int (gst_structure_id_get_value (structure,
++ GST_QUARK (HEIGHT)));
++}
+diff --git a/gst/gstquery.h b/gst/gstquery.h
+index 0284a29..e95d85b 100644
+--- a/gst/gstquery.h
++++ b/gst/gstquery.h
+@@ -31,6 +31,7 @@
+ #include <gst/gstminiobject.h>
+ #include <gst/gststructure.h>
+ #include <gst/gstformat.h>
++#include <gst/gstcaps.h>
+
+ G_BEGIN_DECLS
+
+@@ -51,6 +52,9 @@ G_BEGIN_DECLS
+ * @GST_QUERY_CUSTOM: a custom application or element defined query. Since
+ * 0.10.22.
+ * @GST_QUERY_URI: query the URI of the source or sink. Since 0.10.22.
++ * @GST_QUERY_BUFFERS: query the upstream users of pad_alloc()'d buffers to
++ * find any particular requirements about buffer size (padding) or numbers of
++ * buffers. Since ?.?.?.
+ *
+ * Standard predefined Query types
+ */
+@@ -69,7 +73,8 @@ typedef enum {
+ GST_QUERY_FORMATS,
+ GST_QUERY_BUFFERING,
+ GST_QUERY_CUSTOM,
+- GST_QUERY_URI
++ GST_QUERY_URI,
++ GST_QUERY_BUFFERS
+ } GstQueryType;
+
+ /**
+@@ -332,6 +337,15 @@ GstQuery * gst_query_new_uri (void);
+ void gst_query_parse_uri (GstQuery *query, gchar **uri);
+ void gst_query_set_uri (GstQuery *query, const gchar *uri);
+
++/* buffer requirements query */
++GstQuery * gst_query_new_buffers (GstCaps * caps);
++void gst_query_set_buffers_count (GstQuery * query, gint count);
++void gst_query_set_buffers_dimensions (GstQuery * query, gint width, gint height);
++void gst_query_parse_buffers_caps (GstQuery * query, const GstCaps ** caps);
++void gst_query_parse_buffers_count (GstQuery * query, gint * count);
++void gst_query_parse_buffers_dimensions (GstQuery * query, gint * width, gint * height);
++
++
+ G_END_DECLS
+
+ #endif /* __GST_QUERY_H__ */
+--
+1.6.6.1
+
diff --git a/recipes/gstreamer/gstreamer_0.10.31.bb b/recipes/gstreamer/gstreamer_0.10.31.bb
index 05969c3fcd..4084e42eec 100644
--- a/recipes/gstreamer/gstreamer_0.10.31.bb
+++ b/recipes/gstreamer/gstreamer_0.10.31.bb
@@ -1,7 +1,11 @@
require gstreamer.inc
+PR = "r1"
+
SRC_URI[archive.md5sum] = "a21fb08bdb578d972c7c14e77da8fbb6"
SRC_URI[archive.sha256sum] = "7f737e6d047c1ebeb4e1e0725fc377c5d9f12ee89186de7960be3cbba709ab84"
+SRC_URI += "file://query-buffers.patch"
+
EXTRA_OECONF += "ac_cv_func_register_printf_function=no"