diff options
author | Daniel Diaz <ddiaz@ti.com> | 2011-01-28 16:18:14 -0600 |
---|---|---|
committer | Daniel Diaz <ddiaz@ti.com> | 2011-02-22 17:17:35 -0600 |
commit | 58f018e97baf251ee35f8c4b0d91b32303e37cd9 (patch) | |
tree | f51d6ac49b95c2c054a2a3e50eb8d2d731818ac2 /media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch | |
parent | Add ebuild for gst-plugins-good. (diff) | |
download | pandaboard-58f018e97baf251ee35f8c4b0d91b32303e37cd9.tar.gz pandaboard-58f018e97baf251ee35f8c4b0d91b32303e37cd9.tar.bz2 pandaboard-58f018e97baf251ee35f8c4b0d91b32303e37cd9.zip |
Add ebuild for gst-plugins-v4l2.
This includes TI patches for v4l2sink. This ebuild requires the
modified eclass for gst-plugins-good.
Signed-off-by: Daniel Diaz <ddiaz@ti.com>
Diffstat (limited to 'media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch')
-rw-r--r-- | media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch new file mode 100644 index 0000000..3384de7 --- /dev/null +++ b/media-plugins/gst-plugins-v4l2/files/gst-0.10.27-0011-v4l2sink-fix-issue-seen-with-autoconvert.patch @@ -0,0 +1,49 @@ +From 4e319948c62aafd5339c38d065fd8dbfa5a09ced Mon Sep 17 00:00:00 2001 +From: Rob Clark <rob@ti.com> +Date: Thu, 13 Jan 2011 09:43:08 -0600 +Subject: [PATCH 11/11] v4l2sink: fix issue seen with autoconvert + +In this scenario _set_caps() will get called earlier than _buffer_alloc() +so we need to not override the number of buffers in the case that the +upstream element answers the query about number of requested buffers. +--- + sys/v4l2/gstv4l2sink.c | 6 ++++-- + 1 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c +index feafe7a..ca6ae15 100644 +--- a/sys/v4l2/gstv4l2sink.c ++++ b/sys/v4l2/gstv4l2sink.c +@@ -881,6 +881,8 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps) + + gst_query_parse_buffers_count (query, &min_buffers); + ++ GST_DEBUG_OBJECT (v4l2sink, "min_buffers=%d", min_buffers); ++ + /* XXX need to account for some buffers used by queue, etc.. probably + * queue should handle query, pass on to sink pad, and then add some + * number of buffers to the min, so this value is dynamic depending +@@ -888,10 +890,10 @@ gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps) + */ + if (min_buffers != -1) { + min_buffers += 3 + v4l2sink->min_queued_bufs; ++ v4l2sink->num_buffers_can_change = FALSE; + } + + if (min_buffers > v4l2sink->num_buffers) { +- v4l2sink->num_buffers_can_change = FALSE; + v4l2sink->num_buffers = min_buffers; + } + +@@ -972,7 +974,7 @@ gst_v4l2sink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size, + * than four buffers: + */ + if (!strcmp ("omap_vout", driver)) { +- if (v4l2sink->num_buffers > 4) { ++ if (v4l2sink->num_buffers_can_change && v4l2sink->num_buffers > 4) { + v4l2sink->num_buffers = 4; + GST_DEBUG_OBJECT (v4l2sink, + "limiting to 4 buffers to work-around omap_vout driver bug"); +-- +1.7.1 + |