diff options
author | Carlos Rafael Giani <dv@pseudoterminal.org> | 2015-11-05 09:32:06 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-11-16 11:39:34 +0000 |
commit | 8360f23bca2c3e95493ac706ec343479dd3b08dc (patch) | |
tree | 4ddc5fb284f6f682ce49f975ecc4633ea5af2dfd /meta/recipes-multimedia/gstreamer/gstreamer1.0 | |
parent | 8800033523f0ffdd7067d7d62e94fc1c5b4e8d72 (diff) | |
download | poky-8360f23bca2c3e95493ac706ec343479dd3b08dc.tar.gz |
gstreamer1.0: upgrade to version 1.6.1
Removed patches which either were backports or accepted and integrated
(From OE-Core rev: 6fa5cddbe9ceaa21a0f3ef7fe134257b47039505)
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia/gstreamer/gstreamer1.0')
4 files changed, 0 insertions, 322 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch deleted file mode 100644 index 8213c4b8b5..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | From 81fecd367b016e5ac4fb0c04b84da5c474f30da6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Peter Urbanec <git.user@urbanec.net> | ||
3 | Date: Fri, 27 Feb 2015 01:16:58 +1100 | ||
4 | Subject: [PATCH 1/1] gstinfo: Shorten __FILE__ on all platforms. | ||
5 | |||
6 | This is useful not only for MSVC, but also with gcc/Linux when doing | ||
7 | cross-compilation builds and out-of-tree builds. | ||
8 | |||
9 | Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=745213] | ||
10 | |||
11 | Signed-off-by: Peter Urbanec <git.user@urbanec.net> | ||
12 | --- | ||
13 | gst/gstinfo.c | 11 ++++------- | ||
14 | 1 file changed, 4 insertions(+), 7 deletions(-) | ||
15 | |||
16 | diff --git a/gst/gstinfo.c b/gst/gstinfo.c | ||
17 | index b2a3005..8b61d09 100644 | ||
18 | --- a/gst/gstinfo.c | ||
19 | +++ b/gst/gstinfo.c | ||
20 | @@ -444,7 +444,6 @@ gst_debug_log (GstDebugCategory * category, GstDebugLevel level, | ||
21 | va_end (var_args); | ||
22 | } | ||
23 | |||
24 | -#ifdef G_OS_WIN32 | ||
25 | /* based on g_basename(), which we can't use because it was deprecated */ | ||
26 | static inline const gchar * | ||
27 | gst_path_basename (const gchar * file_name) | ||
28 | @@ -467,7 +466,6 @@ gst_path_basename (const gchar * file_name) | ||
29 | |||
30 | return file_name; | ||
31 | } | ||
32 | -#endif | ||
33 | |||
34 | /** | ||
35 | * gst_debug_log_valist: | ||
36 | @@ -497,12 +495,11 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level, | ||
37 | g_return_if_fail (function != NULL); | ||
38 | g_return_if_fail (format != NULL); | ||
39 | |||
40 | - /* The predefined macro __FILE__ is always the exact path given to the | ||
41 | - * compiler with MSVC, which may or may not be the basename. We work | ||
42 | - * around it at runtime to improve the readability. */ | ||
43 | -#ifdef G_OS_WIN32 | ||
44 | + /* The predefined macro __FILE__ can be an absolute path in some build | ||
45 | + * environments, such as MSVC or out-of-tree cross-compiles. This may | ||
46 | + * be significantly longer than the filename. We work around it at | ||
47 | + * runtime to improve the readability. */ | ||
48 | file = gst_path_basename (file); | ||
49 | -#endif | ||
50 | |||
51 | message.message = NULL; | ||
52 | message.format = format; | ||
53 | -- | ||
54 | 2.3.0 | ||
55 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch deleted file mode 100644 index 1505cbefcb..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0002-basesink-Fix-QoS-lateness-checking-if-subclass-imple.patch +++ /dev/null | |||
@@ -1,70 +0,0 @@ | |||
1 | From 6914566ed6a89c96973a578aa5ecd01ee68cdcfd Mon Sep 17 00:00:00 2001 | ||
2 | From: Jian <Jian.Li@freescale.com> | ||
3 | Date: Thu, 14 May 2015 15:49:43 +0800 | ||
4 | Subject: [PATCH] basesink: Fix QoS/lateness checking if subclass implements | ||
5 | prepare/prepare_list vfuncs | ||
6 | MIME-Version: 1.0 | ||
7 | Content-Type: text/plain; charset=UTF-8 | ||
8 | Content-Transfer-Encoding: 8bit | ||
9 | |||
10 | In basesink functions gst_base_sink_chain_unlocked(), below code is used to | ||
11 | checking if buffer is late before doing prepare call to save some effort: | ||
12 | if (syncable && do_sync) | ||
13 | late = | ||
14 | gst_base_sink_is_too_late (basesink, obj, rstart, rstop, | ||
15 | GST_CLOCK_EARLY, 0, FALSE); | ||
16 | |||
17 | if (G_UNLIKELY (late)) | ||
18 | goto dropped; | ||
19 | |||
20 | But this code has problem, it should calculate jitter based on current media | ||
21 | clock, rather than just passing 0. I found it will drop all the frames when | ||
22 | rewind in slow speed, such as -2X. | ||
23 | |||
24 | https://bugzilla.gnome.org/show_bug.cgi?id=749258 | ||
25 | |||
26 | Upstream-Status: Backport [1.5.1] | ||
27 | --- | ||
28 | libs/gst/base/gstbasesink.c | 26 ++++++++++++++++++++++---- | ||
29 | 1 file changed, 22 insertions(+), 4 deletions(-) | ||
30 | |||
31 | diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c | ||
32 | index a505695..5fb2d6a 100644 | ||
33 | --- a/libs/gst/base/gstbasesink.c | ||
34 | +++ b/libs/gst/base/gstbasesink.c | ||
35 | @@ -3369,10 +3369,28 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, | ||
36 | if (G_UNLIKELY (stepped)) | ||
37 | goto dropped; | ||
38 | |||
39 | - if (syncable && do_sync) | ||
40 | - late = | ||
41 | - gst_base_sink_is_too_late (basesink, obj, rstart, rstop, | ||
42 | - GST_CLOCK_EARLY, 0, FALSE); | ||
43 | + if (syncable && do_sync) { | ||
44 | + GstClock *clock; | ||
45 | + | ||
46 | + GST_OBJECT_LOCK (basesink); | ||
47 | + clock = GST_ELEMENT_CLOCK (basesink); | ||
48 | + if (clock && GST_STATE (basesink) == GST_STATE_PLAYING) { | ||
49 | + GstClockTime base_time; | ||
50 | + GstClockTime stime; | ||
51 | + GstClockTime now; | ||
52 | + | ||
53 | + base_time = GST_ELEMENT_CAST (basesink)->base_time; | ||
54 | + stime = base_time + gst_base_sink_adjust_time (basesink, rstart); | ||
55 | + now = gst_clock_get_time (clock); | ||
56 | + GST_OBJECT_UNLOCK (basesink); | ||
57 | + | ||
58 | + late = | ||
59 | + gst_base_sink_is_too_late (basesink, obj, rstart, rstop, | ||
60 | + GST_CLOCK_EARLY, GST_CLOCK_DIFF (stime, now), FALSE); | ||
61 | + } else { | ||
62 | + GST_OBJECT_UNLOCK (basesink); | ||
63 | + } | ||
64 | + } | ||
65 | |||
66 | if (G_UNLIKELY (late)) | ||
67 | goto dropped; | ||
68 | -- | ||
69 | 1.7.9.5 | ||
70 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch deleted file mode 100755 index d682ee60c4..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0003-basesink-Shouldn-t-drop-buffer-when-sync-false.patch +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | From 73df2b5c0aea58015788f5a94a3ec65296a688d3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Song Bing <b06498@freescale.com> | ||
3 | Date: Thu, 2 Jul 2015 14:32:21 +0800 | ||
4 | Subject: [PATCH] basesink: Shouldn't drop buffer when sync=false | ||
5 | |||
6 | Shouldn't drop buffer when sync=false | ||
7 | |||
8 | Upstream-Status: Accepted | ||
9 | |||
10 | https://bugzilla.gnome.org/show_bug.cgi?id=751819 | ||
11 | --- | ||
12 | libs/gst/base/gstbasesink.c | 2 +- | ||
13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c | ||
16 | index d44e8fc..cd759ac 100644 | ||
17 | --- a/libs/gst/base/gstbasesink.c | ||
18 | +++ b/libs/gst/base/gstbasesink.c | ||
19 | @@ -3423,7 +3423,7 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad, | ||
20 | if (G_UNLIKELY (stepped)) | ||
21 | goto dropped; | ||
22 | |||
23 | - if (syncable && do_sync) { | ||
24 | + if (syncable && do_sync && gst_base_sink_get_sync (basesink)) { | ||
25 | GstClock *clock; | ||
26 | |||
27 | GST_OBJECT_LOCK (basesink); | ||
28 | -- | ||
29 | 1.7.9.5 | ||
30 | |||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch deleted file mode 100755 index f50ce6ff2e..0000000000 --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0/inputselector-sticky-events-haven-t-send-out-when-ac-1-4-1.patch +++ /dev/null | |||
@@ -1,167 +0,0 @@ | |||
1 | From 83bed90c306ed3185d48febf6441177d638f7341 Mon Sep 17 00:00:00 2001 | ||
2 | From: Song Bing <b06498@freescale.com> | ||
3 | Date: Wed, 24 Dec 2014 10:13:51 +0800 | ||
4 | Subject: [PATCH] inputselector: sticky events haven't send out when active | ||
5 | track reach EOS | ||
6 | |||
7 | EOS event hasn't been send to down-element. The resolution is block EOS event | ||
8 | of inactive pad, send the event after the pad actived. | ||
9 | |||
10 | https://bugzilla.gnome.org/show_bug.cgi?id=740949 | ||
11 | |||
12 | Upstream-Status: Backport [1.5.1] | ||
13 | |||
14 | Signed-off-by: Song Bing <b06498@freescale.com> | ||
15 | --- | ||
16 | plugins/elements/gstinputselector.c | 58 ++++++++++++++++++++++++++--------- | ||
17 | plugins/elements/gstinputselector.h | 1 + | ||
18 | 2 files changed, 45 insertions(+), 14 deletions(-) | ||
19 | |||
20 | diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c | ||
21 | index fb50802..4461f7c 100644 | ||
22 | --- a/plugins/elements/gstinputselector.c | ||
23 | +++ b/plugins/elements/gstinputselector.c | ||
24 | @@ -440,6 +440,17 @@ gst_selector_pad_iterate_linked_pads (GstPad * pad, GstObject * parent) | ||
25 | } | ||
26 | |||
27 | static gboolean | ||
28 | +gst_input_selector_eos_wait (GstInputSelector * self, GstSelectorPad * pad) | ||
29 | +{ | ||
30 | + while (!self->eos && !self->flushing && !pad->flushing) { | ||
31 | + /* we can be unlocked here when we are shutting down (flushing) or when we | ||
32 | + * get unblocked */ | ||
33 | + GST_INPUT_SELECTOR_WAIT (self); | ||
34 | + } | ||
35 | + return self->flushing; | ||
36 | +} | ||
37 | + | ||
38 | +static gboolean | ||
39 | gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) | ||
40 | { | ||
41 | gboolean res = TRUE; | ||
42 | @@ -486,6 +497,7 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) | ||
43 | case GST_EVENT_FLUSH_START: | ||
44 | /* Unblock the pad if it's waiting */ | ||
45 | selpad->flushing = TRUE; | ||
46 | + sel->eos = FALSE; | ||
47 | GST_INPUT_SELECTOR_BROADCAST (sel); | ||
48 | break; | ||
49 | case GST_EVENT_FLUSH_STOP: | ||
50 | @@ -523,21 +535,12 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event) | ||
51 | case GST_EVENT_EOS: | ||
52 | selpad->eos = TRUE; | ||
53 | |||
54 | - if (forward) { | ||
55 | - selpad->eos_sent = TRUE; | ||
56 | - } else { | ||
57 | - GstSelectorPad *active_selpad; | ||
58 | - | ||
59 | - /* If the active sinkpad is in EOS state but EOS | ||
60 | - * was not sent downstream this means that the pad | ||
61 | - * got EOS before it was set as active pad and that | ||
62 | - * the previously active pad got EOS after it was | ||
63 | - * active | ||
64 | - */ | ||
65 | - active_selpad = GST_SELECTOR_PAD (active_sinkpad); | ||
66 | - forward = (active_selpad->eos && !active_selpad->eos_sent); | ||
67 | - active_selpad->eos_sent = TRUE; | ||
68 | + if (!forward) { | ||
69 | + /* blocked until active the sind pad or flush */ | ||
70 | + gst_input_selector_eos_wait (sel, selpad); | ||
71 | + forward = TRUE; | ||
72 | } | ||
73 | + selpad->eos_sent = TRUE; | ||
74 | GST_DEBUG_OBJECT (pad, "received EOS"); | ||
75 | break; | ||
76 | case GST_EVENT_GAP:{ | ||
77 | @@ -676,6 +679,12 @@ gst_input_selector_wait_running_time (GstInputSelector * sel, | ||
78 | gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (selpad)); | ||
79 | active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad); | ||
80 | |||
81 | + if (sel->eos) { | ||
82 | + GST_DEBUG_OBJECT (sel, "Not waiting because inputselector reach EOS."); | ||
83 | + GST_INPUT_SELECTOR_UNLOCK (sel); | ||
84 | + return FALSE; | ||
85 | + } | ||
86 | + | ||
87 | if (seg->format != GST_FORMAT_TIME) { | ||
88 | GST_DEBUG_OBJECT (selpad, | ||
89 | "Not waiting because we don't have a TIME segment"); | ||
90 | @@ -971,6 +980,12 @@ gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) | ||
91 | GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); | ||
92 | |||
93 | GST_INPUT_SELECTOR_LOCK (sel); | ||
94 | + if (sel->eos) { | ||
95 | + GST_DEBUG_OBJECT (pad, "inputselector eos."); | ||
96 | + GST_INPUT_SELECTOR_UNLOCK (sel); | ||
97 | + goto eos; | ||
98 | + } | ||
99 | + | ||
100 | /* wait or check for flushing */ | ||
101 | if (gst_input_selector_wait (sel, selpad)) { | ||
102 | GST_INPUT_SELECTOR_UNLOCK (sel); | ||
103 | @@ -1151,6 +1166,13 @@ flushing: | ||
104 | res = GST_FLOW_FLUSHING; | ||
105 | goto done; | ||
106 | } | ||
107 | +eos: | ||
108 | + { | ||
109 | + GST_DEBUG_OBJECT (pad, "We are eos, discard buffer %p", buf); | ||
110 | + gst_buffer_unref (buf); | ||
111 | + res = GST_FLOW_EOS; | ||
112 | + goto done; | ||
113 | + } | ||
114 | } | ||
115 | |||
116 | static void gst_input_selector_dispose (GObject * object); | ||
117 | @@ -1309,6 +1331,7 @@ gst_input_selector_init (GstInputSelector * sel) | ||
118 | g_mutex_init (&sel->lock); | ||
119 | g_cond_init (&sel->cond); | ||
120 | sel->blocked = FALSE; | ||
121 | + sel->eos = FALSE; | ||
122 | |||
123 | /* lets give a change for downstream to do something on | ||
124 | * active-pad change before we start pushing new buffers */ | ||
125 | @@ -1377,6 +1400,11 @@ gst_input_selector_set_active_pad (GstInputSelector * self, GstPad * pad) | ||
126 | GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT, | ||
127 | self->active_sinkpad); | ||
128 | |||
129 | + if (old != new && new->eos && !new->eos_sent) { | ||
130 | + self->eos = TRUE; | ||
131 | + GST_INPUT_SELECTOR_BROADCAST (self); | ||
132 | + } | ||
133 | + | ||
134 | return TRUE; | ||
135 | } | ||
136 | |||
137 | @@ -1771,6 +1799,7 @@ gst_input_selector_change_state (GstElement * element, | ||
138 | switch (transition) { | ||
139 | case GST_STATE_CHANGE_READY_TO_PAUSED: | ||
140 | GST_INPUT_SELECTOR_LOCK (self); | ||
141 | + self->eos = FALSE; | ||
142 | self->blocked = FALSE; | ||
143 | self->flushing = FALSE; | ||
144 | GST_INPUT_SELECTOR_UNLOCK (self); | ||
145 | @@ -1779,6 +1808,7 @@ gst_input_selector_change_state (GstElement * element, | ||
146 | /* first unlock before we call the parent state change function, which | ||
147 | * tries to acquire the stream lock when going to ready. */ | ||
148 | GST_INPUT_SELECTOR_LOCK (self); | ||
149 | + self->eos = TRUE; | ||
150 | self->blocked = FALSE; | ||
151 | self->flushing = TRUE; | ||
152 | GST_INPUT_SELECTOR_BROADCAST (self); | ||
153 | diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h | ||
154 | index 96c680f..9bf924f 100644 | ||
155 | --- a/plugins/elements/gstinputselector.h | ||
156 | +++ b/plugins/elements/gstinputselector.h | ||
157 | @@ -77,6 +77,7 @@ struct _GstInputSelector { | ||
158 | GMutex lock; | ||
159 | GCond cond; | ||
160 | gboolean blocked; | ||
161 | + gboolean eos; | ||
162 | gboolean flushing; | ||
163 | }; | ||
164 | |||
165 | -- | ||
166 | 1.7.9.5 | ||
167 | |||