You can subscribe to this list here.
| 2000 |
Jan
(16) |
Feb
(60) |
Mar
(22) |
Apr
(14) |
May
(24) |
Jun
(20) |
Jul
(15) |
Aug
(55) |
Sep
(39) |
Oct
(27) |
Nov
(33) |
Dec
(53) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(186) |
Feb
(87) |
Mar
(153) |
Apr
(186) |
May
(316) |
Jun
(376) |
Jul
(84) |
Aug
(135) |
Sep
(251) |
Oct
(327) |
Nov
(78) |
Dec
(1619) |
| 2002 |
Jan
(828) |
Feb
(500) |
Mar
(314) |
Apr
(310) |
May
(306) |
Jun
(361) |
Jul
(320) |
Aug
(136) |
Sep
(427) |
Oct
(285) |
Nov
(248) |
Dec
(344) |
| 2003 |
Jan
(469) |
Feb
(215) |
Mar
(148) |
Apr
(310) |
May
(303) |
Jun
(227) |
Jul
(315) |
Aug
(158) |
Sep
(191) |
Oct
(325) |
Nov
(479) |
Dec
(417) |
| 2004 |
Jan
(529) |
Feb
(445) |
Mar
(550) |
Apr
(380) |
May
(385) |
Jun
(263) |
Jul
(393) |
Aug
(186) |
Sep
(138) |
Oct
(272) |
Nov
(254) |
Dec
(259) |
| 2005 |
Jan
(310) |
Feb
(234) |
Mar
(171) |
Apr
(316) |
May
(364) |
Jun
(381) |
Jul
(420) |
Aug
(489) |
Sep
(663) |
Oct
(735) |
Nov
(839) |
Dec
(403) |
| 2006 |
Jan
(340) |
Feb
(445) |
Mar
(433) |
Apr
(451) |
May
(438) |
Jun
(312) |
Jul
(315) |
Aug
(283) |
Sep
(290) |
Oct
(243) |
Nov
(195) |
Dec
(182) |
| 2007 |
Jan
(278) |
Feb
(256) |
Mar
(318) |
Apr
(250) |
May
(286) |
Jun
(249) |
Jul
(226) |
Aug
(179) |
Sep
(265) |
Oct
(234) |
Nov
(244) |
Dec
(272) |
| 2008 |
Jan
(414) |
Feb
(379) |
Mar
(206) |
Apr
(308) |
May
(422) |
Jun
(350) |
Jul
(205) |
Aug
(349) |
Sep
(127) |
Oct
(306) |
Nov
(359) |
Dec
(236) |
| 2009 |
Jan
(326) |
Feb
(453) |
Mar
(684) |
Apr
(702) |
May
(1106) |
Jun
(774) |
Jul
(441) |
Aug
(561) |
Sep
(603) |
Oct
(824) |
Nov
(539) |
Dec
(347) |
| 2010 |
Jan
(470) |
Feb
(448) |
Mar
(845) |
Apr
(512) |
May
(428) |
Jun
(893) |
Jul
(347) |
Aug
(350) |
Sep
(689) |
Oct
(456) |
Nov
(254) |
Dec
(860) |
| 2011 |
Jan
(763) |
Feb
(106) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <gk...@ke...> - 2011-02-10 14:44:40
|
Module: qt-gstreamer Branch: master Commit: b7bb93466a1b16a4b1f074dd640db7460b334e9c URL: http://cgit.freedesktop.org/gstreamer/qt-gstreamer/commit/?id=b7bb93466a1b16a4b1f074dd640db7460b334e9c Author: George Kiagiadakis <geo...@co...> Date: Sun Feb 6 15:09:46 2011 +0200 Add Pad::setActive. On the application side, this is useful for adding new ghost pads on a running bin. --- src/QGst/pad.cpp | 5 +++++ src/QGst/pad.h | 2 ++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/src/QGst/pad.cpp b/src/QGst/pad.cpp index 7662b2a..92fafa5 100644 --- a/src/QGst/pad.cpp +++ b/src/QGst/pad.cpp @@ -95,6 +95,11 @@ bool Pad::isActive() const return gst_pad_is_active(object<GstPad>()); } +bool Pad::setActive(bool active) +{ + return gst_pad_set_active(object<GstPad>(), active); +} + bool Pad::isBlocked() const { return gst_pad_is_blocked(object<GstPad>()); diff --git a/src/QGst/pad.h b/src/QGst/pad.h index 41ba8a1..01435f5 100644 --- a/src/QGst/pad.h +++ b/src/QGst/pad.h @@ -55,6 +55,8 @@ public: bool setCaps(const CapsPtr & caps); bool isActive() const; + bool setActive(bool active); + bool isBlocked() const; bool isBlocking() const; bool setBlocked(bool blocked); |
|
From: <gk...@ke...> - 2011-02-10 14:44:37
|
Module: qt-gstreamer Branch: master Commit: 8f882443a0c2b4229fc12efaafc4b7988eb7e2cc URL: http://cgit.freedesktop.org/gstreamer/qt-gstreamer/commit/?id=8f882443a0c2b4229fc12efaafc4b7988eb7e2cc Author: George Kiagiadakis <geo...@co...> Date: Wed Feb 2 21:07:45 2011 +0200 Add a qHash(const RefPointer<T> &) function to resolve ambiguity when using a RefPointer in a QHash. --- src/QGlib/refpointer.h | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/QGlib/refpointer.h b/src/QGlib/refpointer.h index 5fd707f..4061731 100644 --- a/src/QGlib/refpointer.h +++ b/src/QGlib/refpointer.h @@ -25,6 +25,7 @@ #include <cstddef> #include <boost/type_traits.hpp> #include <boost/utility/enable_if.hpp> +#include <QtCore/QHash> namespace QGlib { @@ -486,6 +487,13 @@ struct GetTypeImpl< RefPointer<T> > inline operator Type() { return GetType<T>(); } }; +/*! \relates QGlib::RefPointer */ +template <typename T> +inline uint qHash(const RefPointer<T> & ptr) +{ + return qHash(static_cast<typename T::CType*>(ptr)); } +} //namespace QGlib + #endif |
|
From: <gk...@ke...> - 2011-02-10 14:44:35
|
Module: qt-gstreamer Branch: master Commit: 30228fa052c0ad18175323bd6c53189beffcd9c0 URL: http://cgit.freedesktop.org/gstreamer/qt-gstreamer/commit/?id=30228fa052c0ad18175323bd6c53189beffcd9c0 Author: George Kiagiadakis <geo...@co...> Date: Wed Feb 2 20:37:42 2011 +0200 Begin 0.10.2 development. --- CMakeLists.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 33aef5c..6a9d97d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8) enable_testing() set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) -set(QTGSTREAMER_VERSION 0.10.1) +set(QTGSTREAMER_VERSION 0.10.1.1) option(QTGSTREAMER_STATIC "Build QtGStreamer as a static library" OFF) option(QTGSTREAMER_TESTS "Build QtGStreamer's tests" OFF) |
|
From: <tp...@ke...> - 2011-02-10 13:47:04
|
Module: gstreamer Branch: master Commit: 166be8d7f15b9263e294dcc953d1e645172cc4f6 URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=166be8d7f15b9263e294dcc953d1e645172cc4f6 Author: Tim-Philipp Müller <tim...@co...> Date: Thu Feb 10 13:46:08 2011 +0000 docs: fix some typos in the bufferpool draft --- docs/design/draft-bufferpool.txt | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/design/draft-bufferpool.txt b/docs/design/draft-bufferpool.txt index 8ad1ba1..72d3a61 100644 --- a/docs/design/draft-bufferpool.txt +++ b/docs/design/draft-bufferpool.txt @@ -78,7 +78,7 @@ GstBufferPool returned to the pool. The default implementation of the bufferpool is able to allocate buffers - from main memmory with arbirary alignment and padding/prefix. + from main memory with arbitrary alignment and padding/prefix. Custom implementations of the bufferpool can override the allocation and free algorithms of the buffers from the pool. This should allow for @@ -102,7 +102,7 @@ GstPad This function should return a bufferpool object with the GstBufferPoolConfig set to the desired parameters of the buffers that will be handled by the given pad. This function can only be called on a sinkpad and - will usualy be called by the peer srcpad with the convenience method: + will usually be called by the peer srcpad with the convenience method: GstBufferPool * gst_pad_peer_query_bufferpool (GstPad * pad); @@ -220,8 +220,8 @@ of a caps change), alignment or number of buffers. need to create a new bufferpool for the new configuration while we let the old pool drain. - Implementations can choose to reuse the same bufferpool object and wait for the - drain to finish before reconfiguring the pool. + Implementations can choose to reuse the same bufferpool object and wait for + the drain to finish before reconfiguring the pool. The element that wants to renegotiate a new bufferpool uses exactly the same algorithm as when it first started. @@ -238,8 +238,8 @@ of a caps change), alignment or number of buffers. caps. A RECONFIGURE event tags each pad it travels on as needing reconfiguration. - The next buffer allocation will then require the renegotiation or reconfiguration - of a pool. + The next buffer allocation will then require the renegotiation or + reconfiguration of a pool. If downstream has specified a RENEGOTIATE flag, it must be prepared to received NOT_NEGOTIATED results when allocating buffers, which instructs @@ -337,7 +337,7 @@ Use cases 3 frames, the next call to gst_buffer_pool_acquire_buffer() will block (assuming the GST_BUFFER_POOL_FLAG_WAIT is specified). - When the queues pushes out buffers and the sink has rendered them, the + When the queue has pushed out a buffer and the sink has rendered it, the refcount of the buffer reaches 0 and the buffer is recycled in the pool. This will wake up the videotestsrc that was blocked, waiting for more buffers and will make it produce the next buffer. |
|
From: <tp...@ke...> - 2011-02-10 10:20:52
|
Module: gstreamer Branch: master Commit: 2d37f06ce89e3ff4f000e3a17e8cb15bc15c84aa URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=2d37f06ce89e3ff4f000e3a17e8cb15bc15c84aa Author: Tim-Philipp Müller <tim...@co...> Date: Thu Feb 10 10:19:38 2011 +0000 events: fix g-i annotation for gst_event_new_tag() which takes ownership of the tag list --- gst/gstevent.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/gst/gstevent.c b/gst/gstevent.c index 6d2cc8b..c407fed 100644 --- a/gst/gstevent.c +++ b/gst/gstevent.c @@ -683,7 +683,8 @@ gst_event_parse_new_segment_full (GstEvent * event, gboolean * update, /** * gst_event_new_tag: - * @taglist: metadata list. The event will take ownership of @taglist. + * @taglist: (transfer full): metadata list. The event will take ownership + * of the taglist. * * Generates a metadata tag event from the given @taglist. * @@ -703,6 +704,9 @@ gst_event_new_tag (GstTagList * taglist) * @taglist: (out) (transfer none): pointer to metadata list * * Parses a tag @event and stores the results in the given @taglist location. + * No reference to the taglist will be returned, it remains valid only until + * the @event is freed. Don't modify or free the taglist, make a copy if you + * want to modify it or store it for later use. */ void gst_event_parse_tag (GstEvent * event, GstTagList ** taglist) @@ -1194,6 +1198,7 @@ gst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount, * * Since: 0.10.26 */ +/* FIXME 0.11: take ownership of msg for consistency? */ GstEvent * gst_event_new_sink_message (GstMessage * msg) { |
|
From: <mn...@ke...> - 2011-02-09 15:29:37
|
Module: gst-plugins-good Branch: master Commit: 9de84b45bcbd43e2e96b0287355f5695bc911280 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9de84b45bcbd43e2e96b0287355f5695bc911280 Author: Mark Nauwelaerts <mar...@co...> Date: Wed Feb 9 16:22:47 2011 +0100 matroskademux: properly resume cluster scanning ... rather than getting offset tracking messed up, and then likely failing a subsequent assert. --- gst/matroska/matroska-demux.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index 4541b44..f1b2b78 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -2353,13 +2353,13 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos) GST_DEBUG_OBJECT (demux, "read buffer size %d at offset %" G_GINT64_FORMAT, GST_BUFFER_SIZE (buf), newpos); gst_byte_reader_init_from_buffer (&reader, buf); - cluster_pos = 0; resume: cluster_pos = gst_byte_reader_masked_scan_uint32 (&reader, 0xffffffff, - GST_MATROSKA_ID_CLUSTER, cluster_pos, - GST_BUFFER_SIZE (buf) - cluster_pos); + GST_MATROSKA_ID_CLUSTER, 0, gst_byte_reader_get_remaining (&reader)); if (cluster_pos >= 0) { newpos += cluster_pos; + /* prepare resuming at next byte */ + gst_byte_reader_skip (&reader, cluster_pos + 1); GST_DEBUG_OBJECT (demux, "found cluster ebml id at offset %" G_GINT64_FORMAT, newpos); /* extra checks whether we really sync'ed to a cluster: @@ -2399,7 +2399,7 @@ gst_matroska_demux_search_cluster (GstMatroskaDemux * demux, gint64 * pos) goto resume; } else { /* partial cluster id may have been in tail of buffer */ - newpos += MAX (GST_BUFFER_SIZE (buf), 4) - 3; + newpos += MAX (gst_byte_reader_get_remaining (&reader), 4) - 3; gst_buffer_unref (buf); buf = NULL; } |
|
From: <wt...@ke...> - 2011-02-09 15:28:02
|
Module: gstreamer Branch: master Commit: 654a9484efa625721cc8bbdb34340a1512cc6d92 URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=654a9484efa625721cc8bbdb34340a1512cc6d92 Author: Wim Taymans <wim...@co...> Date: Wed Feb 9 16:22:04 2011 +0100 design: add draft for first ideas for a bufferpool feature Add a first draft with some ideas and use cases for the implementation for bufferpools. The purpose is to be able to make elements negotiate their buffer requirements as well as provide an infrastructure to preallocate and reuse buffers in an easy way. --- docs/design/draft-bufferpool.txt | 415 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 415 insertions(+), 0 deletions(-) Diff: http://cgit.freedesktop.org/gstreamer/gstreamer/diff/?id=654a9484efa625721cc8bbdb34340a1512cc6d92 |
|
From: <en...@ke...> - 2011-02-09 13:32:15
|
Module: gstreamer Branch: master Commit: 306c09e1b20f6f0226ceb3b9fca19f4b1dd3ffdf URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=306c09e1b20f6f0226ceb3b9fca19f4b1dd3ffdf Author: Stefan Kost <en...@us...> Date: Wed Feb 9 15:23:13 2011 +0200 docs: clarify the NOMINAL_BITRATE docs Tell that its a target bitrate and actual values might be different. --- gst/gsttaglist.h | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h index f4bef9c..f9be499 100644 --- a/gst/gsttaglist.h +++ b/gst/gsttaglist.h @@ -667,7 +667,8 @@ gboolean gst_tag_list_get_buffer_index (const GstTagList * list, /** * GST_TAG_NOMINAL_BITRATE: * - * nominal bitrate in bits/s (unsigned integer) + * nominal bitrate in bits/s (unsigned integer). The actual bitrate might be + * different from this target bitrate. */ #define GST_TAG_NOMINAL_BITRATE "nominal-bitrate" /** |
|
From: <tp...@ke...> - 2011-02-09 11:52:56
|
Module: gst-python Branch: master Commit: c95985640f68f46235a5829227684a6aa3f9d615 URL: http://cgit.freedesktop.org/gstreamer/gst-python/commit/?id=c95985640f68f46235a5829227684a6aa3f9d615 Author: Arun Raghavan <aru...@co...> Date: Mon Jan 24 18:13:55 2011 +0530 codegen: Respect ignore-type for miniobjects https://bugzilla.gnome.org/show_bug.cgi?id=640410 --- codegen/codegen.py | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/codegen/codegen.py b/codegen/codegen.py index 9b01260..740199d 100644 --- a/codegen/codegen.py +++ b/codegen/codegen.py @@ -1461,6 +1461,8 @@ def write_registers(parser, overrides, fp): #TODO: register mini-objects miniobjects = parser.miniobjects[:] for obj in miniobjects: + if overrides.is_type_ignored(obj.c_name): + continue bases = [] if obj.parent != None: bases.append(obj.parent) |
|
From: <tp...@ke...> - 2011-02-09 11:52:55
|
Module: gst-python Branch: master Commit: 93fd2d4f43ced070fbb1b8a0e4d33d23601957d5 URL: http://cgit.freedesktop.org/gstreamer/gst-python/commit/?id=93fd2d4f43ced070fbb1b8a0e4d33d23601957d5 Author: Arun Raghavan <aru...@co...> Date: Mon Jan 24 18:14:16 2011 +0530 codegen: Handle empty lines in overrides gracefully Without this, having an empty line in an override will cause codegen to unceremoniously choke to death. https://bugzilla.gnome.org/show_bug.cgi?id=640341 --- codegen/override.py | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/codegen/override.py b/codegen/override.py index fde8f4f..c5932ee 100644 --- a/codegen/override.py +++ b/codegen/override.py @@ -101,6 +101,8 @@ class Overrides: else: line = buffer ; rest = '' words = string.split(line) + if len(words) == 0: + return command = words[0] if (command == 'ignore' or command == 'ignore-' + sys.platform): |
|
From: <tp...@ke...> - 2011-02-09 11:52:55
|
Module: gst-python Branch: master Commit: 4514c29b9a8f654474d4959e076746a1ee82a6d7 URL: http://cgit.freedesktop.org/gstreamer/gst-python/commit/?id=4514c29b9a8f654474d4959e076746a1ee82a6d7 Author: Tim-Philipp Müller <tim...@co...> Date: Wed Feb 9 09:40:17 2011 +0000 gst-0.10.31.ignore: fix build against core 0.10.30 --- gst/gst-0.10.31.ignore | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/gst/gst-0.10.31.ignore b/gst/gst-0.10.31.ignore index d0b44e9..b324ae4 100644 --- a/gst/gst-0.10.31.ignore +++ b/gst/gst-0.10.31.ignore @@ -9,6 +9,8 @@ ignore gst_element_factory_list_is_type gst_element_factory_list_get_elements gst_element_factory_list_filter + gst_element_factory_get_documentation_uri + gst_element_factory_get_icon_name gst_plugin_Feature_rank_compare_func gst_query_add_buffering_range gst_query_get_n_buffering_ranges @@ -21,4 +23,4 @@ ignore %% ignore-type GstDateTime -%% \ No newline at end of file +%% |
|
From: <en...@ke...> - 2011-02-09 11:43:47
|
Module: gst-plugins-bad Branch: master Commit: fa45b1fe2d6a2613a3972b10d9595558cd521607 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=fa45b1fe2d6a2613a3972b10d9595558cd521607 Author: Luciana Fujii Pontello <lu...@fu...> Date: Fri Feb 4 01:00:55 2011 -0200 camerabin: Always take photo when preview-caps is set When filename is not set, but preview-caps is set, take the photo and send its preview. --- gst/camerabin/gstcamerabin.c | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-) diff --git a/gst/camerabin/gstcamerabin.c b/gst/camerabin/gstcamerabin.c index 8267500..5704513 100644 --- a/gst/camerabin/gstcamerabin.c +++ b/gst/camerabin/gstcamerabin.c @@ -1816,6 +1816,10 @@ gst_camerabin_have_img_buffer (GstPad * pad, GstMiniObject * obj, GST_LOG ("got buffer %p with size %d", buffer, GST_BUFFER_SIZE (buffer)); + if (camera->preview_caps) { + gst_camerabin_send_preview (camera, buffer); + } + /* Image filename should be set by now */ if (g_str_equal (camera->filename->str, "")) { GST_DEBUG_OBJECT (camera, "filename not set, dropping buffer"); @@ -1824,10 +1828,6 @@ gst_camerabin_have_img_buffer (GstPad * pad, GstMiniObject * obj, goto done; } - if (camera->preview_caps) { - gst_camerabin_send_preview (camera, buffer); - } - gst_camerabin_rewrite_tags (camera); /* Send a custom event which tells the filename to image queue */ @@ -4045,11 +4045,14 @@ gst_camerabin_capture_start (GstCameraBin * camera) } } - if (g_str_equal (camera->filename->str, "")) { - GST_ELEMENT_ERROR (camera, CORE, FAILED, - ("set filename before starting capture"), (NULL)); - return; - } + /* We need a filename unless it's a photo and preview_caps is set */ + + if (g_str_equal (camera->filename->str, "")) + if (camera->active_bin == camera->vidbin || !camera->preview_caps) { + GST_ELEMENT_ERROR (camera, CORE, FAILED, + ("set filename before starting capture"), (NULL)); + return; + } g_mutex_lock (camera->capture_mutex); if (camera->capturing) { |
|
From: <en...@ke...> - 2011-02-09 11:43:47
|
Module: gst-plugins-bad Branch: master Commit: 2522a672a9a841a44ff4e0b20c7372092fd61010 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=2522a672a9a841a44ff4e0b20c7372092fd61010 Author: Luciana Fujii Pontello <lu...@fu...> Date: Wed Jan 26 11:49:48 2011 -0200 camerabin: Events with select-all in input-selector When select-all was set, input-selector wasn't handling upstream events. Now input-selector forwards the event to all of its sink pads. This changes the input-selector internal to camerabin until it is replaced with a better solution. --- gst/camerabin/gstinputselector.c | 39 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) diff --git a/gst/camerabin/gstinputselector.c b/gst/camerabin/gstinputselector.c index 75ecab1..ef4e236 100644 --- a/gst/camerabin/gstinputselector.c +++ b/gst/camerabin/gstinputselector.c @@ -1076,15 +1076,54 @@ gst_input_selector_event (GstPad * pad, GstEvent * event) { gboolean res = FALSE; GstPad *otherpad; + GstInputSelector *sel; + GstIterator *iter; + gboolean done; + gpointer nextpad; + sel = GST_INPUT_SELECTOR (gst_pad_get_parent (pad)); otherpad = gst_input_selector_get_linked_pad (pad, TRUE); if (otherpad) { res = gst_pad_push_event (otherpad, event); gst_object_unref (otherpad); + } else if (sel->select_all) { + + /* If select-all is set, we should push the event to all pads. + * The result will be TRUE if the push works for any of the pads, even if a + * push fails. This is coherent with the way camerabin uses input-selector, + * but might not be for other uses of it. */ + + iter = gst_element_iterate_sink_pads (GST_ELEMENT (sel)); + + done = FALSE; + while (!done) { + switch (gst_iterator_next (iter, &nextpad)) { + case GST_ITERATOR_OK: + res |= gst_pad_push_event (nextpad, gst_event_ref (event)); + gst_object_unref (nextpad); + break; + case GST_ITERATOR_RESYNC: + gst_iterator_resync (iter); + break; + case GST_ITERATOR_ERROR: + GST_WARNING_OBJECT (sel, + "Wrong parameters when retrieving sink pads"); + done = TRUE; + break; + case GST_ITERATOR_DONE: + done = TRUE; + break; + } + } + gst_event_unref (event); + gst_iterator_free (iter); } else gst_event_unref (event); + + gst_object_unref (sel); + return res; } |
|
From: <bi...@ke...> - 2011-02-09 10:23:02
|
Module: gst-editing-services Branch: master Commit: 762c447936762988b1d87e380cb93ad0681a7d47 URL: http://cgit.freedesktop.org/gstreamer/gst-editing-services/commit/?id=762c447936762988b1d87e380cb93ad0681a7d47 Author: Edward Hervey <edw...@co...> Date: Wed Feb 9 11:21:02 2011 +0100 TimelineObject: Store GParamSpec for height and layer --- ges/ges-timeline-object.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ges/ges-timeline-object.c b/ges/ges-timeline-object.c index eb694f2..7d017e9 100644 --- a/ges/ges-timeline-object.c +++ b/ges/ges-timeline-object.c @@ -226,21 +226,22 @@ ges_timeline_object_class_init (GESTimelineObjectClass * klass) * * The span of layer priorities which this object occupies. */ - + properties[PROP_HEIGHT] = g_param_spec_uint ("height", "Height", + "The span of priorities this object occupies", 0, G_MAXUINT, 1, + G_PARAM_READABLE); g_object_class_install_property (object_class, PROP_HEIGHT, - g_param_spec_uint ("height", "Height", - "The span of priorities this object occupies", 0, G_MAXUINT, 1, - G_PARAM_READABLE)); + properties[PROP_HEIGHT]); - /* GESSimpleTimelineLayer:layer + /** + * GESTimelineObject:layer * * The GESTimelineLayer where this object is being used. */ - + properties[PROP_LAYER] = g_param_spec_object ("layer", "Layer", + "The GESTimelineLayer where this object is being used.", + GES_TYPE_TIMELINE_LAYER, G_PARAM_READABLE); g_object_class_install_property (object_class, PROP_LAYER, - g_param_spec_object ("layer", "Layer", - "The GESTimelineLayer where this object is being used.", - GES_TYPE_TIMELINE_LAYER, G_PARAM_READABLE)); + properties[PROP_LAYER]); klass->need_fill_track = TRUE; } |
|
From: <mn...@ke...> - 2011-02-08 17:07:20
|
Module: gst-plugins-bad Branch: master Commit: edb15598ed566f37d90129492a86341badee0672 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=edb15598ed566f37d90129492a86341badee0672 Author: Mark Nauwelaerts <mar...@co...> Date: Mon Feb 7 22:47:34 2011 +0100 directdrawsink: avoid rendering to invalid area Based on patch by Havard Graff <hav...@ta...> Fixes #594280. --- sys/directdraw/gstdirectdrawsink.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/sys/directdraw/gstdirectdrawsink.c b/sys/directdraw/gstdirectdrawsink.c index 15f79d1..3b8967f 100644 --- a/sys/directdraw/gstdirectdrawsink.c +++ b/sys/directdraw/gstdirectdrawsink.c @@ -904,6 +904,19 @@ gst_directdraw_sink_show_frame (GstBaseSink * bsink, GstBuffer * buf) GetClientRect (ddrawsink->video_window, &destsurf_rect); OffsetRect (&destsurf_rect, dest_surf_point.x, dest_surf_point.y); + /* Check to see if we have an area to draw to. + * When the window is minimized, it will trigger the + * "IDirectDrawSurface7_Blt (object's offscreen surface)" warning, + * with a msg that the rectangle is invalid */ + if (destsurf_rect.right <= destsurf_rect.left || + destsurf_rect.bottom <= destsurf_rect.top) { + GST_OBJECT_UNLOCK (ddrawsink); + GST_DEBUG_OBJECT (ddrawsink, "invalid rendering window rectangle " + "(%ld, %ld), (%ld, %ld)", destsurf_rect.left, destsurf_rect.top, + destsurf_rect.right, destsurf_rect.bottom); + goto beach; + } + if (ddrawsink->keep_aspect_ratio) { /* center image to dest image keeping aspect ratio */ src_rect.top = 0; @@ -1004,6 +1017,7 @@ gst_directdraw_sink_show_frame (GstBaseSink * bsink, GstBuffer * buf) "returned %s", DDErrorString (hRes)); } +beach: return GST_FLOW_OK; } |
|
From: <mn...@ke...> - 2011-02-08 17:07:19
|
Module: gst-plugins-bad Branch: master Commit: f96dab44cf2391c30abf76f5598e0f8557c7d549 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=f96dab44cf2391c30abf76f5598e0f8557c7d549 Author: Mark Nauwelaerts <mar...@co...> Date: Mon Feb 7 23:17:55 2011 +0100 directdrawsink: avoid aspect-ratio borders overlying other windows Fixes #632056. --- sys/directdraw/gstdirectdrawsink.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/directdraw/gstdirectdrawsink.c b/sys/directdraw/gstdirectdrawsink.c index 3b8967f..05c8136 100644 --- a/sys/directdraw/gstdirectdrawsink.c +++ b/sys/directdraw/gstdirectdrawsink.c @@ -821,9 +821,11 @@ gst_directdraw_sink_draw_borders (GstDirectDrawSink * ddrawsink, RECT dst_rect) OffsetRect (&win_rect, win_point.x, win_point.y); /* We acquire a drawing context */ - if (IDirectDrawSurface7_GetDC (ddrawsink->primary_surface, &hdc) == DD_OK) { + if ((hdc = GetDC (ddrawsink->video_window))) { HBRUSH brush = CreateSolidBrush (RGB (0, 0, 0)); + /* arrange for logical coordinates that match screen coordinates */ + SetWindowOrgEx (hdc, win_point.x, win_point.y, NULL); /* Left border */ if (dst_rect.left > win_rect.left) { fill_rect.left = win_rect.left; @@ -857,7 +859,7 @@ gst_directdraw_sink_draw_borders (GstDirectDrawSink * ddrawsink, RECT dst_rect) FillRect (hdc, &fill_rect, brush); } DeleteObject (brush); - IDirectDrawSurface7_ReleaseDC (ddrawsink->primary_surface, hdc); + ReleaseDC (ddrawsink->video_window, hdc); } } |
|
From: <bi...@ke...> - 2011-02-08 15:43:46
|
Module: gst-editing-services Branch: master Commit: 857142a15d3a351ee4a0d621a55bd812ee26576c URL: http://cgit.freedesktop.org/gstreamer/gst-editing-services/commit/?id=857142a15d3a351ee4a0d621a55bd812ee26576c Author: Vincent Penquerc'h <vin...@co...> Date: Mon Feb 7 12:19:18 2011 +0000 ges: Check that the gnonlin elements are present at initialization time This avoids hanging with no obvious cause later when they're not. https://bugzilla.gnome.org/show_bug.cgi?id=641246 --- ges/ges.c | 28 +++++++++++++++++++++++++++- ges/ges.h | 2 +- tools/ges-launch.c | 5 ++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/ges/ges.c b/ges/ges.c index 3631bde..f5b9231 100644 --- a/ges/ges.c +++ b/ges/ges.c @@ -22,6 +22,10 @@ #include <gst/controller/gstcontroller.h> #include "ges-internal.h" +#define GES_GNONLIN_VERSION_NEEDED_MAJOR 0 +#define GES_GNONLIN_VERSION_NEEDED_MINOR 10 +#define GES_GNONLIN_VERSION_NEEDED_MICRO 16 + GST_DEBUG_CATEGORY (_ges_debug); /** @@ -29,6 +33,22 @@ GST_DEBUG_CATEGORY (_ges_debug); * @short_description: Initialization. */ +static gboolean +ges_check_gnonlin_availability (void) +{ + gboolean ret = TRUE; + if (!gst_default_registry_check_feature_version ("gnlcomposition", + GES_GNONLIN_VERSION_NEEDED_MAJOR, GES_GNONLIN_VERSION_NEEDED_MINOR, + GES_GNONLIN_VERSION_NEEDED_MICRO)) { + GST_ERROR + ("GNonLin plugins not found, or not at least version %u.%u.%u", + GES_GNONLIN_VERSION_NEEDED_MAJOR, + GES_GNONLIN_VERSION_NEEDED_MINOR, GES_GNONLIN_VERSION_NEEDED_MICRO); + ret = FALSE; + } + return ret; +} + /** * ges_init: * @@ -36,7 +56,7 @@ GST_DEBUG_CATEGORY (_ges_debug); * GES. */ -void +gboolean ges_init (void) { /* initialize debugging category */ @@ -52,7 +72,13 @@ ges_init (void) GES_TYPE_TIMELINE_STANDARD_TRANSITION; GES_TYPE_TIMELINE_OVERLAY; + /* check the gnonlin elements are available */ + if (!ges_check_gnonlin_availability ()) + return FALSE; + /* TODO: user-defined types? */ GST_DEBUG ("GStreamer Editing Services initialized"); + + return TRUE; } diff --git a/ges/ges.h b/ges/ges.h index fdfc59b..b600f7c 100644 --- a/ges/ges.h +++ b/ges/ges.h @@ -63,7 +63,7 @@ G_BEGIN_DECLS -void ges_init (void); +gboolean ges_init (void); G_END_DECLS diff --git a/tools/ges-launch.c b/tools/ges-launch.c index dfaaa4f..7169d47 100644 --- a/tools/ges-launch.c +++ b/tools/ges-launch.c @@ -435,7 +435,10 @@ main (int argc, gchar ** argv) } /* Initialize the GStreamer Editing Services */ - ges_init (); + if (!ges_init ()) { + g_printerr ("Error initializing GES\n"); + exit (1); + } if (list_transitions) { print_transition_list (); |
|
From: <thi...@ke...> - 2011-02-08 14:50:48
|
Module: gst-plugins-bad Branch: master Commit: 15366355a4caa34481cab7bdfd0385b44dfad866 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=15366355a4caa34481cab7bdfd0385b44dfad866 Author: Thiago Santos <thi...@co...> Date: Tue Feb 8 11:24:59 2011 -0300 wrappercamerabinsrc: Do not re-set the clock if it is null Avoids not needed work and doesn't assert when trying to unref the null reference --- gst/camerabin2/gstwrappercamerabinsrc.c | 53 ++++++++++++++++-------------- 1 files changed, 28 insertions(+), 25 deletions(-) diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index bfe8c47..8114794 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -185,34 +185,37 @@ gst_wrapper_camera_bin_reset_video_src_caps (GstWrapperCameraBinSrc * self, GST_DEBUG_OBJECT (self, "Bringing source up"); gst_element_sync_state_with_parent (self->src_vid_src); - gst_element_set_clock (self->src_vid_src, clock); - gst_element_set_base_time (self->src_vid_src, base_time); - - if (GST_IS_BIN (self->src_vid_src)) { - GstIterator *it = gst_bin_iterate_elements (GST_BIN (self->src_vid_src)); - gpointer item = NULL; - gboolean done = FALSE; - while (!done) { - switch (gst_iterator_next (it, &item)) { - case GST_ITERATOR_OK: - gst_element_set_base_time (GST_ELEMENT (item), base_time); - gst_object_unref (item); - break; - case GST_ITERATOR_RESYNC: - gst_iterator_resync (it); - break; - case GST_ITERATOR_ERROR: - done = TRUE; - break; - case GST_ITERATOR_DONE: - done = TRUE; - break; + if (clock) { + gst_element_set_clock (self->src_vid_src, clock); + gst_element_set_base_time (self->src_vid_src, base_time); + + if (GST_IS_BIN (self->src_vid_src)) { + GstIterator *it = + gst_bin_iterate_elements (GST_BIN (self->src_vid_src)); + gpointer item = NULL; + gboolean done = FALSE; + while (!done) { + switch (gst_iterator_next (it, &item)) { + case GST_ITERATOR_OK: + gst_element_set_base_time (GST_ELEMENT (item), base_time); + gst_object_unref (item); + break; + case GST_ITERATOR_RESYNC: + gst_iterator_resync (it); + break; + case GST_ITERATOR_ERROR: + done = TRUE; + break; + case GST_ITERATOR_DONE: + done = TRUE; + break; + } } + gst_iterator_free (it); } - gst_iterator_free (it); - } - gst_object_unref (clock); + gst_object_unref (clock); + } } } |
|
From: <en...@ke...> - 2011-02-08 08:32:33
|
Module: gst-plugins-good Branch: master Commit: a86bab66893bb1a3323a756410573c117b8219ef URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=a86bab66893bb1a3323a756410573c117b8219ef Author: Stefan Kost <en...@us...> Date: Tue Feb 8 10:07:43 2011 +0200 id3demux: ensure a taglist before adding the container tag In the case of id3v1 also don't return NULL on empty tags, but also create a new taglist and add the container tag for consistency. --- gst/id3demux/gstid3demux.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gst/id3demux/gstid3demux.c b/gst/id3demux/gstid3demux.c index 9368504..e915242 100644 --- a/gst/id3demux/gstid3demux.c +++ b/gst/id3demux/gstid3demux.c @@ -25,7 +25,7 @@ * id3demux accepts data streams with either (or both) ID3v2 regions at the * start, or ID3v1 at the end. The mime type of the data between the tag blocks * is detected using typefind functions, and the appropriate output mime type - * set on outgoing buffers. + * set on outgoing buffers. * * The element is only able to read ID3v1 tags from a seekable stream, because * they are at the end of the stream. That is, when get_range mode is supported @@ -183,6 +183,8 @@ gst_id3demux_parse_tag (GstTagDemux * demux, GstBuffer * buffer, res = id3demux_read_id3v2_tag (buffer, tag_size, tags); if (G_LIKELY (res == ID3TAGS_READ_TAG)) { + if (*tags == NULL) + *tags = gst_tag_list_new (); gst_id3demux_add_container_format (*tags); return GST_TAG_DEMUX_RESULT_OK; } else { @@ -191,9 +193,8 @@ gst_id3demux_parse_tag (GstTagDemux * demux, GstBuffer * buffer, } else { *tags = gst_tag_list_new_from_id3v1 (GST_BUFFER_DATA (buffer)); - if (G_UNLIKELY (*tags == NULL)) - return GST_TAG_DEMUX_RESULT_BROKEN_TAG; - + if (*tags == NULL) + *tags = gst_tag_list_new (); gst_id3demux_add_container_format (*tags); *tag_size = ID3V1_TAG_SIZE; return GST_TAG_DEMUX_RESULT_OK; |
|
From: <mn...@ke...> - 2011-02-07 19:06:35
|
Module: gst-plugins-ugly Branch: master Commit: dbdf9761055001f07957353dc0b468fb7e192d40 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=dbdf9761055001f07957353dc0b468fb7e192d40 Author: Mark Nauwelaerts <mar...@co...> Date: Mon Feb 7 19:58:45 2011 +0100 amrwbdec: avoid stalling on invalid frame Skip 1 byte indicating invalid frame type index rather than stalling on it indefinitely until EOS. Fixes #639715. --- ext/amrwbdec/amrwbdec.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ext/amrwbdec/amrwbdec.c b/ext/amrwbdec/amrwbdec.c index bbaf33b..51f759d 100644 --- a/ext/amrwbdec/amrwbdec.c +++ b/ext/amrwbdec/amrwbdec.c @@ -63,7 +63,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_amrwbdec_debug); static const unsigned char block_size[16] = { 18, 24, 33, 37, 41, 47, 51, 59, 61, - 6, 6, 0, 0, 0, 1, 1 + 6, 0, 0, 0, 0, 1, 1 }; static gboolean gst_amrwbdec_event (GstPad * pad, GstEvent * event); @@ -285,7 +285,13 @@ gst_amrwbdec_chain (GstPad * pad, GstBuffer * buffer) GST_DEBUG_OBJECT (amrwbdec, "mode %d, block %d", mode, block); - if (!block || gst_adapter_available (amrwbdec->adapter) < block) + if (!block) { + GST_LOG_OBJECT (amrwbdec, "skipping byte"); + gst_adapter_flush (amrwbdec->adapter, 1); + continue; + } + + if (gst_adapter_available (amrwbdec->adapter) < block) break; /* the library seems to write into the source data, hence the copy. */ |
|
From: <mn...@ke...> - 2011-02-07 19:00:40
|
Module: gst-plugins-bad Branch: master Commit: c85e8e8015b7239df7819fc2eaa0a21158f1e250 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c85e8e8015b7239df7819fc2eaa0a21158f1e250 Author: Mark Nauwelaerts <mar...@co...> Date: Mon Sep 6 14:10:11 2010 +0200 amrparse: a valid amr-wb frame should not have reserved frame type index See #639715. --- gst/audioparsers/gstamrparse.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gst/audioparsers/gstamrparse.c b/gst/audioparsers/gstamrparse.c index a668817..42481a2 100644 --- a/gst/audioparsers/gstamrparse.c +++ b/gst/audioparsers/gstamrparse.c @@ -64,7 +64,7 @@ static const gint block_size_nb[16] = { 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0 }; static const gint block_size_wb[16] = - { 17, 23, 32, 36, 40, 46, 50, 58, 60, 5, 5, 0, 0, 0, 0, 0 }; + { 17, 23, 32, 36, 40, 46, 50, 58, 60, 5, -1, -1, -1, -1, 0, 0 }; /* AMR has a "hardcoded" framerate of 50fps */ #define AMR_FRAMES_PER_SECOND 50 @@ -307,8 +307,9 @@ gst_amrparse_check_valid_frame (GstBaseParse * parse, * to contain a valid header as well (and there is enough data to * perform this check) */ - if (GST_BASE_PARSE_FRAME_SYNC (frame) || GST_BASE_PARSE_FRAME_DRAIN (frame) - || (dsize > fsize && (data[fsize] & 0x83) == 0)) { + if (fsize && + (GST_BASE_PARSE_FRAME_SYNC (frame) || GST_BASE_PARSE_FRAME_DRAIN (frame) + || (dsize > fsize && (data[fsize] & 0x83) == 0))) { *framesize = fsize; return TRUE; } |
|
From: <mn...@ke...> - 2011-02-07 16:53:59
|
Module: gst-plugins-base Branch: master Commit: b2389c2108b6f643e4c0879d22059530d4d734c5 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=b2389c2108b6f643e4c0879d22059530d4d734c5 Author: Mark Nauwelaerts <mar...@co...> Date: Wed Feb 2 16:49:04 2011 +0100 tagdemux: also push cached events downstream when operating in pull mode Otherwise, having 2 tagdemux in a row followed by an element operating in pull mode will make the second tagdemux implictly eat the first tagdemux' tag event(s). Fixes (part of) #641047. --- gst-libs/gst/tag/gsttagdemux.c | 41 +++++++++++++++++++++++++++------------ 1 files changed, 28 insertions(+), 13 deletions(-) diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c index fdc09b8..8bb3314 100644 --- a/gst-libs/gst/tag/gsttagdemux.c +++ b/gst-libs/gst/tag/gsttagdemux.c @@ -156,6 +156,7 @@ static GstStateChangeReturn gst_tag_demux_change_state (GstElement * element, static gboolean gst_tag_demux_pad_query (GstPad * pad, GstQuery * query); static const GstQueryType *gst_tag_demux_get_query_types (GstPad * pad); static gboolean gst_tag_demux_get_upstream_size (GstTagDemux * tagdemux); +static void gst_tag_demux_send_pending_events (GstTagDemux * tagdemux); static void gst_tag_demux_send_tag_event (GstTagDemux * tagdemux); static gboolean gst_tag_demux_send_new_segment (GstTagDemux * tagdemux); @@ -668,8 +669,6 @@ gst_tag_demux_chain (GstPad * pad, GstBuffer * buf) return GST_FLOW_UNEXPECTED; } if (outbuf) { - GList *events; - if (G_UNLIKELY (demux->priv->srcpad == NULL)) { gst_buffer_unref (outbuf); return GST_FLOW_ERROR; @@ -685,17 +684,7 @@ gst_tag_demux_chain (GstPad * pad, GstBuffer * buf) } /* send any pending events we cached */ - GST_OBJECT_LOCK (demux); - events = demux->priv->pending_events; - demux->priv->pending_events = NULL; - GST_OBJECT_UNLOCK (demux); - - while (events != NULL) { - GST_DEBUG_OBJECT (demux->priv->srcpad, "sending cached %s event: %" - GST_PTR_FORMAT, GST_EVENT_TYPE_NAME (events->data), events->data); - gst_pad_push_event (demux->priv->srcpad, GST_EVENT (events->data)); - events = g_list_delete_link (events, events); - } + gst_tag_demux_send_pending_events (demux); /* Send our own pending tag event */ if (demux->priv->send_tag_event) { @@ -1333,6 +1322,13 @@ gst_tag_demux_src_getrange (GstPad * srcpad, { GstTagDemux *demux = GST_TAG_DEMUX (GST_PAD_PARENT (srcpad)); + /* downstream in pull mode won't miss a newsegment event, + * but it likely appreciates other (tag) events */ + if (demux->priv->need_newseg) { + gst_tag_demux_send_pending_events (demux); + demux->priv->need_newseg = FALSE; + } + if (demux->priv->send_tag_event) { gst_tag_demux_send_tag_event (demux); demux->priv->send_tag_event = FALSE; @@ -1419,6 +1415,25 @@ gst_tag_demux_get_query_types (GstPad * pad) } static void +gst_tag_demux_send_pending_events (GstTagDemux * demux) +{ + GList *events; + + /* send any pending events we cached */ + GST_OBJECT_LOCK (demux); + events = demux->priv->pending_events; + demux->priv->pending_events = NULL; + GST_OBJECT_UNLOCK (demux); + + while (events != NULL) { + GST_DEBUG_OBJECT (demux->priv->srcpad, "sending cached %s event: %" + GST_PTR_FORMAT, GST_EVENT_TYPE_NAME (events->data), events->data); + gst_pad_push_event (demux->priv->srcpad, GST_EVENT (events->data)); + events = g_list_delete_link (events, events); + } +} + +static void gst_tag_demux_send_tag_event (GstTagDemux * demux) { /* FIXME: what's the correct merge mode? Docs need to tell... */ |
|
From: <mn...@ke...> - 2011-02-07 13:54:31
|
Module: gst-plugins-bad Branch: master Commit: d6d48cfb7091b2bcfd8e4dba3a7eaafce668b1f0 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=d6d48cfb7091b2bcfd8e4dba3a7eaafce668b1f0 Author: Mark Nauwelaerts <mar...@co...> Date: Mon Feb 7 14:05:34 2011 +0100 configure.ac: set GST_LIB_LDFLAGS Aligns GST_LIB_LDFLAGS with e.g. -base to arrange for proper exports in libs. --- configure.ac | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/configure.ac b/configure.ac index 3da8244..5819cb3 100644 --- a/configure.ac +++ b/configure.ac @@ -1691,6 +1691,13 @@ dnl whatevertarget_LIBS and -L flags here affect the rest of the linking GST_ALL_LDFLAGS="-no-undefined" AC_SUBST(GST_ALL_LDFLAGS) +dnl GST_LIB_LDFLAGS +dnl linker flags shared by all libraries +dnl LDFLAGS modifier defining exported symbols from built libraries +dnl (export _gst_foo but not __gst_foo) +GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*" +AC_SUBST(GST_LIB_LDFLAGS) + dnl this really should only contain flags, not libs - they get added before dnl whatevertarget_LIBS and -L flags here affect the rest of the linking GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS" |
|
From: <en...@ke...> - 2011-02-07 09:29:43
|
Module: gst-plugins-bad Branch: master Commit: 4915493932ef5b4767c0772f180fd48413288950 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=4915493932ef5b4767c0772f180fd48413288950 Author: Stefan Kost <en...@us...> Date: Wed Jan 12 17:13:07 2011 +0200 camerabin-tests: fix lookup of UI files These are uninstalled examples. Pass $srcdir to cpp to build the correct location for the UI file. --- tests/examples/camerabin/Makefile.am | 4 ++-- tests/examples/camerabin/gst-camera.c | 12 +++--------- tests/examples/camerabin2/Makefile.am | 2 +- tests/examples/camerabin2/gst-camera2.c | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/tests/examples/camerabin/Makefile.am b/tests/examples/camerabin/Makefile.am index 5898a0c..9d74d91 100644 --- a/tests/examples/camerabin/Makefile.am +++ b/tests/examples/camerabin/Makefile.am @@ -21,7 +21,7 @@ gst_camera_LDADD = \ noinst_DATA = $(GST_CAMERABIN_UI_FILES) -INCLUDES = -DCAMERA_APPS_UIDIR=\""$(uidir)"\" +INCLUDES = -DCAMERA_APPS_UIDIR=\""$(srcdir)"\" else GST_CAMERABIN_GTK_EXAMPLES = @@ -29,7 +29,7 @@ endif gst_camera_perf_SOURCES = gst-camera-perf.c gst_camera_perf_CFLAGS = $(GST_CFLAGS) -gst_camera_perf_LDADD = $(GST_LIBS) +gst_camera_perf_LDADD = $(GST_LIBS) if HAVE_X11 diff --git a/tests/examples/camerabin/gst-camera.c b/tests/examples/camerabin/gst-camera.c index eded8bb..57ff706 100644 --- a/tests/examples/camerabin/gst-camera.c +++ b/tests/examples/camerabin/gst-camera.c @@ -65,8 +65,7 @@ gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a) #define PREVIEW_TIME_MS (2 * 1000) #define N_BURST_IMAGES 10 -#define DEFAULT_UI_FILE "gst-camera.ui" -#define SHARED_UI_FILE CAMERA_APPS_UIDIR"/"DEFAULT_UI_FILE +#define UI_FILE CAMERA_APPS_UIDIR G_DIR_SEPARATOR_S "gst-camera.ui" /* Names of default elements */ #define CAMERA_APP_VIDEOSRC "v4l2src" @@ -762,7 +761,7 @@ set_metadata (void) /* for more information about image metadata tags, see: * http://webcvs.freedesktop.org/gstreamer/gst-plugins-bad/tests/icles/metadata_editor.c * and for the mapping: - * http://webcvs.freedesktop.org/gstreamer/gst-plugins-bad/ext/metadata/metadata_mapping.htm?view=co + * http://webcvs.freedesktop.org/gstreamer/gst-plugins-bad/ext/metadata/metadata_mapping.htm?view=co */ GstTagSetter *setter = GST_TAG_SETTER (gst_camera_bin); @@ -1622,14 +1621,9 @@ static gboolean ui_create (void) { GError *error = NULL; - const gchar *uifile = DEFAULT_UI_FILE; - - if (!g_file_test (uifile, G_FILE_TEST_EXISTS)) { - uifile = SHARED_UI_FILE; - } builder = gtk_builder_new (); - if (!gtk_builder_add_from_file (builder, uifile, &error)) { + if (!gtk_builder_add_from_file (builder, UI_FILE, &error)) { g_warning ("Couldn't load builder file: %s", error->message); g_error_free (error); goto done; diff --git a/tests/examples/camerabin2/Makefile.am b/tests/examples/camerabin2/Makefile.am index 781f201..5fa7534 100644 --- a/tests/examples/camerabin2/Makefile.am +++ b/tests/examples/camerabin2/Makefile.am @@ -21,7 +21,7 @@ gst_camera2_LDADD = \ noinst_DATA = $(GST_CAMERABIN_UI_FILES) -INCLUDES = -DCAMERA_APPS_UIDIR=\""$(uidir)"\" +INCLUDES = -DCAMERA_APPS_UIDIR=\""$(srcdir)"\" else GST_CAMERABIN_GTK_EXAMPLES = diff --git a/tests/examples/camerabin2/gst-camera2.c b/tests/examples/camerabin2/gst-camera2.c index 42b6e07..14e3be1 100644 --- a/tests/examples/camerabin2/gst-camera2.c +++ b/tests/examples/camerabin2/gst-camera2.c @@ -37,7 +37,7 @@ #include <gdk/gdkx.h> #include <gdk/gdkkeysyms.h> -#define UI_FILE "gst-camera2.ui" +#define UI_FILE CAMERA_APPS_UIDIR G_DIR_SEPARATOR_S "gst-camera2.ui" static GstElement *camera; static GtkBuilder *builder; |
|
From: <bi...@ke...> - 2011-02-06 11:09:33
|
Module: gst-python Branch: master Commit: 7672946935ab669f4b39cce7e2be67dc98c21f64 URL: http://cgit.freedesktop.org/gstreamer/gst-python/commit/?id=7672946935ab669f4b39cce7e2be67dc98c21f64 Author: Edward Hervey <bi...@bi...> Date: Sun Feb 6 12:08:14 2011 +0100 pbutils: Specify which string variables can be NULL Without this you can't pass None to the various methods/constructors --- gst/pbutils.defs | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gst/pbutils.defs b/gst/pbutils.defs index 14fb9ec..76c7ac3 100644 --- a/gst/pbutils.defs +++ b/gst/pbutils.defs @@ -378,7 +378,7 @@ (c-name "gst_encoding_profile_set_name") (return-type "none") (parameters - '("const-gchar*" "name") + '("const-gchar*" "name" (null-ok) (default "NULL")) ) ) @@ -387,7 +387,7 @@ (c-name "gst_encoding_profile_set_description") (return-type "none") (parameters - '("const-gchar*" "description") + '("const-gchar*" "description" (null-ok) (default "NULL")) ) ) @@ -405,7 +405,7 @@ (c-name "gst_encoding_profile_set_preset") (return-type "none") (parameters - '("const-gchar*" "preset") + '("const-gchar*" "preset" (null-ok) (default "NULL")) ) ) @@ -414,7 +414,7 @@ (c-name "gst_encoding_profile_set_restriction") (return-type "none") (parameters - '("GstCaps*" "restriction") + '("GstCaps*" "restriction" (null-ok) (default "NULL")) ) ) @@ -454,7 +454,7 @@ (parameters '("const-gchar*" "targetname") '("const-gchar*" "profilename") - '("const-gchar*" "category") + '("const-gchar*" "category" (null-ok) (default "NULL")) ) ) @@ -487,10 +487,10 @@ (is-constructor-of "GstEncodingContainerProfile") (return-type "GstEncodingContainerProfile*") (parameters - '("const-gchar*" "name") - '("const-gchar*" "description") + '("const-gchar*" "name" (null-ok) (default "NULL")) + '("const-gchar*" "description" (null-ok) (default "NULL")) '("GstCaps*" "format") - '("const-gchar*" "preset") + '("const-gchar*" "preset"(null-ok) (default "NULL")) ) ) @@ -500,7 +500,7 @@ (return-type "GstEncodingVideoProfile*") (parameters '("GstCaps*" "format") - '("const-gchar*" "preset") + '("const-gchar*" "preset" (null-ok) (default "NULL")) '("GstCaps*" "restriction") '("guint" "presence") ) @@ -512,7 +512,7 @@ (return-type "GstEncodingAudioProfile*") (parameters '("GstCaps*" "format") - '("const-gchar*" "preset") + '("const-gchar*" "preset" (null-ok) (default "NULL")) '("GstCaps*" "restriction") '("guint" "presence") ) |