Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
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
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(8) |
2
(4) |
3
(18) |
4
(13) |
5
(20) |
6
(92) |
7
(26) |
8
(21) |
9
(13) |
10
(42) |
11
(17) |
12
(15) |
13
(12) |
14
(21) |
15
|
16
(1) |
17
(3) |
18
(12) |
19
(8) |
20
(3) |
21
(8) |
22
(1) |
23
(4) |
24
(40) |
25
(3) |
26
(17) |
27
(1) |
28
(20) |
29
(12) |
30
(16) |
31
(90) |
|
|
|
|
|
From: <thiagoss@ke...> - 2009-08-12 22:24:39
|
Module: gst-plugins-bad Branch: master Commit: c83615fca957b2045087433fd5a2e13204253aa2 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c83615fca957b2045087433fd5a2e13204253aa2 Author: Thiago Santos <thiagoss@...> Date: Wed Aug 12 18:33:22 2009 -0300 asfmux: Do not mess up GstCollectData list asfmux was messing up with the GstCollectData list of its GstCollectPads when sorting the list inplace. This patch makes it copy the list before sorting it, leaving the GstCollectPads list as is. Fixes #591610 --- gst/asfmux/gstasfmux.c | 6 ++++-- gst/asfmux/gstasfmux.h | 3 --- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/gst/asfmux/gstasfmux.c b/gst/asfmux/gstasfmux.c index 83f5270..7f17169 100644 --- a/gst/asfmux/gstasfmux.c +++ b/gst/asfmux/gstasfmux.c @@ -1604,7 +1604,7 @@ gst_asf_mux_write_indexes (GstAsfMux * asfmux) /* write simple indexes for video medias */ ordered_pads = - g_slist_sort (asfmux->collect->data, + g_slist_sort (g_slist_copy (asfmux->collect->data), (GCompareFunc) stream_number_compare); for (walker = ordered_pads; walker; walker = g_slist_next (walker)) { GstAsfPad *pad = (GstAsfPad *) walker->data; @@ -1613,10 +1613,12 @@ gst_asf_mux_write_indexes (GstAsfMux * asfmux) if (ret != GST_FLOW_OK) { GST_ERROR_OBJECT (asfmux, "Failed to write simple index for stream %" G_GUINT16_FORMAT, (guint16) pad->stream_number); - return ret; + goto cleanup_and_return; } } } +cleanup_and_return: + g_slist_free (ordered_pads); return ret; } diff --git a/gst/asfmux/gstasfmux.h b/gst/asfmux/gstasfmux.h index 2b71fa3..4e13b36 100644 --- a/gst/asfmux/gstasfmux.h +++ b/gst/asfmux/gstasfmux.h @@ -139,9 +139,6 @@ struct _GstAsfMux /* pads */ GstPad *srcpad; - /* sinkpads, video first */ - GSList *sinkpads; - GstCollectPads *collect; GstPadEventFunction collect_event; }; |
From: <tester@ke...> - 2009-08-12 21:37:12
|
Module: gst-plugins-bad Branch: master Commit: 4f61f46f073a940b7fab47ae165b8816ff74770c URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=4f61f46f073a940b7fab47ae165b8816ff74770c Author: Olivier Crête <tester@...> Date: Wed Aug 12 12:23:30 2009 -0400 mimenc: USE GST_WRITE_*_LE macros --- ext/mimic/gstmimenc.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ext/mimic/gstmimenc.c b/ext/mimic/gstmimenc.c index e946209..ef60d20 100644 --- a/ext/mimic/gstmimenc.c +++ b/ext/mimic/gstmimenc.c @@ -378,15 +378,15 @@ gst_mimenc_create_tcp_header (GstMimEnc * mimenc, guint32 payload_size, GST_BUFFER_TIMESTAMP (buf_header) = timestamp; p[0] = 24; - *((guchar *) (p + 1)) = paused ? 1 : 0; - *((guint16 *) (p + 2)) = GUINT16_TO_LE (mimenc->width); - *((guint16 *) (p + 4)) = GUINT16_TO_LE (mimenc->height); - *((guint16 *) (p + 6)) = keyframe ? 1 : 0; - *((guint32 *) (p + 8)) = GUINT32_TO_LE (payload_size); - *((guint32 *) (p + 12)) = paused ? 0 : - GUINT32_TO_LE (GST_MAKE_FOURCC ('M', 'L', '2', '0')); - *((guint32 *) (p + 16)) = 0; - *((guint32 *) (p + 20)) = timestamp / GST_MSECOND; + p[1] = paused ? 1 : 0; + GST_WRITE_UINT16_LE (p + 2, mimenc->width); + GST_WRITE_UINT16_LE (p + 4, mimenc->height); + GST_WRITE_UINT16_LE (p + 6, keyframe ? 1 : 0); + GST_WRITE_UINT32_LE (p + 8, payload_size); + GST_WRITE_UINT16_LE (p + 12, paused ? 0 : + GST_MAKE_FOURCC ('M', 'L', '2', '0')); + GST_WRITE_UINT32_LE (p + 16, 0); + GST_WRITE_UINT32_LE (p + 20, timestamp / GST_MSECOND); return buf_header; } |
From: <tester@ke...> - 2009-08-12 21:37:10
|
Module: gst-plugins-bad Branch: master Commit: 6001c6b5c0e438b4bab21a2babc0bad6cf6630a9 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=6001c6b5c0e438b4bab21a2babc0bad6cf6630a9 Author: Olivier Crête <tester@...> Date: Wed Aug 12 12:21:33 2009 -0400 mimenc: Refuse to go playing in paused-mode without clock Only try to use the clock in if paused-mode is set and refuse to go playing in paused-mode without it. Fixes bug #591538 --- ext/mimic/gstmimenc.c | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ext/mimic/gstmimenc.c b/ext/mimic/gstmimenc.c index 4a65b9f..e946209 100644 --- a/ext/mimic/gstmimenc.c +++ b/ext/mimic/gstmimenc.c @@ -593,10 +593,19 @@ gst_mimenc_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PAUSED_TO_PLAYING: GST_OBJECT_LOCK (mimenc); mimenc->stop_paused_mode = FALSE; - if (mimenc->last_buffer == GST_CLOCK_TIME_NONE) - mimenc->last_buffer = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc)) - - GST_ELEMENT_CAST (mimenc)->base_time; paused_mode = mimenc->paused_mode; + if (paused_mode) { + if (!GST_ELEMENT_CLOCK (mimenc)) { + GST_OBJECT_UNLOCK (mimenc); + GST_ELEMENT_ERROR (mimenc, RESOURCE, FAILED, + ("Using paused-mode requires a clock, but no clock was provided" + " to the element"), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } + if (mimenc->last_buffer == GST_CLOCK_TIME_NONE) + mimenc->last_buffer = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc)) + - GST_ELEMENT_CAST (mimenc)->base_time; + } GST_OBJECT_UNLOCK (mimenc); if (paused_mode) { if (!gst_pad_start_task (mimenc->srcpad, paused_mode_task, mimenc)) { |
From: <tester@ke...> - 2009-08-12 21:08:31
|
Module: gst-plugins-bad Branch: master Commit: 0d697e8b58b10d41c20c8fbda87d9ed58291a8fb URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=0d697e8b58b10d41c20c8fbda87d9ed58291a8fb Author: Tim-Philipp Müller <tim.muller@...> Date: Tue Aug 11 16:23:20 2009 -0400 rtpdtmfsrc: Cleanup events on finalize Problem found by Laurent Glayal Fixes bug #591440 --- gst/dtmf/gstrtpdtmfsrc.c | 17 ++++++++++++++--- 1 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c index 738be59..cdaa202 100644 --- a/gst/dtmf/gstrtpdtmfsrc.c +++ b/gst/dtmf/gstrtpdtmfsrc.c @@ -302,6 +302,16 @@ gst_rtp_dtmf_src_class_init (GstRTPDTMFSrcClass * klass) } static void +gst_rtp_dtmf_src_event_free (GstRTPDTMFSrcEvent * event) +{ + if (event) { + g_free (event->payload); + event->payload = NULL; + g_free (event); + } +} + +static void gst_rtp_dtmf_src_init (GstRTPDTMFSrc * object, GstRTPDTMFSrcClass * g_class) { gst_base_src_set_format (GST_BASE_SRC (object), GST_FORMAT_TIME); @@ -315,7 +325,8 @@ gst_rtp_dtmf_src_init (GstRTPDTMFSrc * object, GstRTPDTMFSrcClass * g_class) object->interval = DEFAULT_PACKET_INTERVAL; object->packet_redundancy = DEFAULT_PACKET_REDUNDANCY; - object->event_queue = g_async_queue_new (); + object->event_queue = + g_async_queue_new_full ((GDestroyNotify) gst_rtp_dtmf_src_event_free); object->payload = NULL; GST_DEBUG_OBJECT (object, "init done"); @@ -997,7 +1008,7 @@ gst_rtp_dtmf_src_change_state (GstElement * element, GstStateChange transition) /* Flushing the event queue */ while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) - g_free (event); + gst_rtp_dtmf_src_event_free (event); no_preroll = TRUE; break; @@ -1018,7 +1029,7 @@ gst_rtp_dtmf_src_change_state (GstElement * element, GstStateChange transition) /* Flushing the event queue */ while ((event = g_async_queue_try_pop (dtmfsrc->event_queue)) != NULL) - g_free (event); + gst_rtp_dtmf_src_event_free (event); /* Indicate that we don't do PRE_ROLL */ break; |
From: <tester@ke...> - 2009-08-12 21:08:28
|
Module: gst-plugins-bad Branch: master Commit: 329b7b9849daf784afb6e43fdf2e5dd7ea396e7a URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=329b7b9849daf784afb6e43fdf2e5dd7ea396e7a Author: Olivier Crête <olivier.crete@...> Date: Tue Aug 11 16:39:42 2009 -0400 dtmf: Use GSlice for internal event structures --- gst/dtmf/gstdtmfsrc.c | 18 +++++++++--------- gst/dtmf/gstrtpdtmfsrc.c | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gst/dtmf/gstdtmfsrc.c b/gst/dtmf/gstdtmfsrc.c index 8595adf..4115395 100644 --- a/gst/dtmf/gstdtmfsrc.c +++ b/gst/dtmf/gstdtmfsrc.c @@ -482,7 +482,7 @@ gst_dtmf_src_add_start_event (GstDTMFSrc * dtmfsrc, gint event_number, gint event_volume) { - GstDTMFSrcEvent *event = g_malloc (sizeof (GstDTMFSrcEvent)); + GstDTMFSrcEvent *event = g_slice_new0 (GstDTMFSrcEvent); event->event_type = DTMF_EVENT_TYPE_START; event->sample = 0; event->event_number = CLAMP (event_number, MIN_EVENT, MAX_EVENT); @@ -495,7 +495,7 @@ static void gst_dtmf_src_add_stop_event (GstDTMFSrc * dtmfsrc) { - GstDTMFSrcEvent *event = g_malloc (sizeof (GstDTMFSrcEvent)); + GstDTMFSrcEvent *event = g_slice_new0 (GstDTMFSrcEvent); event->event_type = DTMF_EVENT_TYPE_STOP; event->sample = 0; event->event_number = 0; @@ -658,7 +658,7 @@ gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, break; } if (event) - g_free (event); + g_slice_free (GstDTMFSrcEvent, event); } else if (dtmfsrc->last_event->packet_count * dtmfsrc->interval >= MIN_DUTY_CYCLE) { event = g_async_queue_try_pop (dtmfsrc->event_queue); @@ -673,7 +673,7 @@ gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, case DTMF_EVENT_TYPE_STOP: gst_dtmf_src_set_stream_lock (dtmfsrc, FALSE); - g_free (dtmfsrc->last_event); + g_slice_free (GstDTMFSrcEvent, dtmfsrc->last_event); dtmfsrc->last_event = NULL; break; case DTMF_EVENT_TYPE_PAUSE_TASK: @@ -692,7 +692,7 @@ gst_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, break; } - g_free (event); + g_slice_free (GstDTMFSrcEvent, event); } } } while (dtmfsrc->last_event == NULL); @@ -748,7 +748,7 @@ paused: GST_DEBUG_OBJECT (dtmfsrc, "Stopping current event"); /* Don't forget to release the stream lock */ gst_dtmf_src_set_stream_lock (dtmfsrc, FALSE); - g_free (dtmfsrc->last_event); + g_slice_free (GstDTMFSrcEvent, dtmfsrc->last_event); dtmfsrc->last_event = NULL; } @@ -772,7 +772,7 @@ gst_dtmf_src_unlock (GstBaseSrc * src) GST_OBJECT_UNLOCK (dtmfsrc); GST_DEBUG_OBJECT (dtmfsrc, "Pushing the PAUSE_TASK event on unlock request"); - event = g_malloc (sizeof (GstDTMFSrcEvent)); + event = g_slice_new0 (GstDTMFSrcEvent); event->event_type = DTMF_EVENT_TYPE_PAUSE_TASK; g_async_queue_push (dtmfsrc->event_queue, event); @@ -875,7 +875,7 @@ gst_dtmf_src_change_state (GstElement * element, GstStateChange transition) event = g_async_queue_try_pop (dtmfsrc->event_queue); while (event != NULL) { - g_free (event); + g_slice_free (GstDTMFSrcEvent, event); event = g_async_queue_try_pop (dtmfsrc->event_queue); } no_preroll = TRUE; @@ -899,7 +899,7 @@ gst_dtmf_src_change_state (GstElement * element, GstStateChange transition) event = g_async_queue_try_pop (dtmfsrc->event_queue); while (event != NULL) { - g_free (event); + g_slice_free (GstDTMFSrcEvent, event); event = g_async_queue_try_pop (dtmfsrc->event_queue); } diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c index b41c0c4..65d0ce8 100644 --- a/gst/dtmf/gstrtpdtmfsrc.c +++ b/gst/dtmf/gstrtpdtmfsrc.c @@ -305,9 +305,9 @@ static void gst_rtp_dtmf_src_event_free (GstRTPDTMFSrcEvent * event) { if (event) { - g_free (event->payload); - event->payload = NULL; - g_free (event); + if (event->payload) + g_slice_free (GstRTPDTMFPayload, event->payload); + g_slice_free (GstRTPDTMFSrcEvent, event); } } @@ -568,10 +568,10 @@ gst_rtp_dtmf_src_add_start_event (GstRTPDTMFSrc * dtmfsrc, gint event_number, gint event_volume) { - GstRTPDTMFSrcEvent *event = g_malloc (sizeof (GstRTPDTMFSrcEvent)); + GstRTPDTMFSrcEvent *event = g_slice_new0 (GstRTPDTMFSrcEvent); event->event_type = RTP_DTMF_EVENT_TYPE_START; - event->payload = g_new0 (GstRTPDTMFPayload, 1); + event->payload = g_slice_new0 (GstRTPDTMFPayload); event->payload->event = CLAMP (event_number, MIN_EVENT, MAX_EVENT); event->payload->volume = CLAMP (event_volume, MIN_VOLUME, MAX_VOLUME); event->payload->duration = dtmfsrc->interval * dtmfsrc->clock_rate / 1000; @@ -583,7 +583,7 @@ static void gst_rtp_dtmf_src_add_stop_event (GstRTPDTMFSrc * dtmfsrc) { - GstRTPDTMFSrcEvent *event = g_new0 (GstRTPDTMFSrcEvent, 1); + GstRTPDTMFSrcEvent *event = g_slice_new0 (GstRTPDTMFSrcEvent); event->event_type = RTP_DTMF_EVENT_TYPE_STOP; g_async_queue_push (dtmfsrc->event_queue, event); @@ -816,7 +816,7 @@ send_last: /* Don't forget to release the stream lock */ gst_rtp_dtmf_src_set_stream_lock (dtmfsrc, FALSE); - g_free (dtmfsrc->payload); + g_slice_free (GstRTPDTMFPayload, dtmfsrc->payload); dtmfsrc->payload = NULL; dtmfsrc->last_packet = FALSE; @@ -1069,7 +1069,7 @@ gst_rtp_dtmf_src_unlock (GstBaseSrc * src) GST_OBJECT_UNLOCK (dtmfsrc); GST_DEBUG_OBJECT (dtmfsrc, "Pushing the PAUSE_TASK event on unlock request"); - event = g_new0 (GstRTPDTMFSrcEvent, 1); + event = g_slice_new0 (GstRTPDTMFSrcEvent); event->event_type = RTP_DTMF_EVENT_TYPE_PAUSE_TASK; g_async_queue_push (dtmfsrc->event_queue, event); |
From: <tester@ke...> - 2009-08-12 21:08:24
|
Module: gst-plugins-bad Branch: master Commit: a2ea288a0259c8c30bf8407b066d8edbdffdb954 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a2ea288a0259c8c30bf8407b066d8edbdffdb954 Author: Tim-Philipp Müller <tim.muller@...> Date: Tue Aug 11 16:23:20 2009 -0400 rtpdtmfsrc: Cleanup events on finalize Problem found by Laurent Glayal Fixes bug #591440 --- gst/dtmf/gstrtpdtmfsrc.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c index cdaa202..b41c0c4 100644 --- a/gst/dtmf/gstrtpdtmfsrc.c +++ b/gst/dtmf/gstrtpdtmfsrc.c @@ -583,7 +583,7 @@ static void gst_rtp_dtmf_src_add_stop_event (GstRTPDTMFSrc * dtmfsrc) { - GstRTPDTMFSrcEvent *event = g_malloc (sizeof (GstRTPDTMFSrcEvent)); + GstRTPDTMFSrcEvent *event = g_new0 (GstRTPDTMFSrcEvent, 1); event->event_type = RTP_DTMF_EVENT_TYPE_STOP; g_async_queue_push (dtmfsrc->event_queue, event); @@ -701,6 +701,7 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, gst_rtp_dtmf_src_set_stream_lock (dtmfsrc, TRUE); dtmfsrc->payload = event->payload; + event->payload = NULL; break; case RTP_DTMF_EVENT_TYPE_PAUSE_TASK: @@ -717,7 +718,7 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, break; } - g_free (event); + gst_rtp_dtmf_src_event_free (event); } else if (!dtmfsrc->first_packet && !dtmfsrc->last_packet && (dtmfsrc->timestamp - dtmfsrc->start_timestamp) / GST_MSECOND >= MIN_PULSE_DURATION) { @@ -755,7 +756,7 @@ gst_rtp_dtmf_src_create (GstBaseSrc * basesrc, guint64 offset, GST_OBJECT_UNLOCK (dtmfsrc); break; } - g_free (event); + gst_rtp_dtmf_src_event_free (event); } } } while (dtmfsrc->payload == NULL); @@ -1068,7 +1069,7 @@ gst_rtp_dtmf_src_unlock (GstBaseSrc * src) GST_OBJECT_UNLOCK (dtmfsrc); GST_DEBUG_OBJECT (dtmfsrc, "Pushing the PAUSE_TASK event on unlock request"); - event = g_malloc (sizeof (GstRTPDTMFSrcEvent)); + event = g_new0 (GstRTPDTMFSrcEvent, 1); event->event_type = RTP_DTMF_EVENT_TYPE_PAUSE_TASK; g_async_queue_push (dtmfsrc->event_queue, event); |
From: <tester@ke...> - 2009-08-12 21:08:23
|
Module: gst-plugins-bad Branch: master Commit: 402aad7e871ab242ef16c8c715c50e5a2c236f9a URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=402aad7e871ab242ef16c8c715c50e5a2c236f9a Author: Olivier Crête <olivier.crete@...> Date: Tue Aug 11 16:42:51 2009 -0400 dtmfsrc: Empty event queue on finalize --- gst/dtmf/gstdtmfsrc.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/gst/dtmf/gstdtmfsrc.c b/gst/dtmf/gstdtmfsrc.c index 4115395..7a1f14b 100644 --- a/gst/dtmf/gstdtmfsrc.c +++ b/gst/dtmf/gstdtmfsrc.c @@ -287,6 +287,12 @@ gst_dtmf_src_class_init (GstDTMFSrcClass * klass) gstbasesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_dtmf_src_negotiate); } +static void +event_free (GstDTMFSrcEvent * event) +{ + if (event) + g_slice_free (GstDTMFSrcEvent, event); +} static void gst_dtmf_src_init (GstDTMFSrc * dtmfsrc, GstDTMFSrcClass * g_class) @@ -297,7 +303,7 @@ gst_dtmf_src_init (GstDTMFSrc * dtmfsrc, GstDTMFSrcClass * g_class) dtmfsrc->interval = DEFAULT_PACKET_INTERVAL; - dtmfsrc->event_queue = g_async_queue_new (); + dtmfsrc->event_queue = g_async_queue_new_full ((GDestroyNotify) event_free); dtmfsrc->last_event = NULL; dtmfsrc->sample_rate = DEFAULT_SAMPLE_RATE; |
From: <bilboed@ke...> - 2009-08-12 17:02:54
|
Module: www Branch: master Commit: bc6ffe1c3b8db268f597e9dc9ac38aa65182357d URL: http://cgit.freedesktop.org/gstreamer/www/commit/?id=bc6ffe1c3b8db268f597e9dc9ac38aa65182357d Author: Edward Hervey <bilboed@...> Date: Wed Aug 12 19:11:45 2009 +0200 Fix news file (and website creation) --- src/htdocs/news/news.xml | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/src/htdocs/news/news.xml b/src/htdocs/news/news.xml index 6cf650e..945f3bc 100644 --- a/src/htdocs/news/news.xml +++ b/src/htdocs/news/news.xml @@ -3478,6 +3478,5 @@ or download tarballs for </p> </content> </item> -<item> </news> |
From: <bilboed@ke...> - 2009-08-12 16:23:56
|
Module: gnonlin Branch: master Commit: d3a7f660f81f4d2b08a1650b568eedea4b63c326 URL: http://cgit.freedesktop.org/gstreamer/gnonlin/commit/?id=d3a7f660f81f4d2b08a1650b568eedea4b63c326 Author: Edward Hervey <bilboed@...> Date: Wed Aug 12 18:32:19 2009 +0200 configure.ac: And back to development we go... --- configure.ac | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/configure.ac b/configure.ac index 9071f63..12b4ce7 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ(2.52) dnl initialize autoconf dnl when going to/from release please set the nano (fourth number) right ! dnl releases only do Wall, cvs and prerelease does Werror too -AC_INIT(GNonLin, 0.10.12, +AC_INIT(GNonLin, 0.10.12.1, http://gnonlin.sourceforge.net/, gnonlin) |
From: <bilboed@ke...> - 2009-08-12 16:23:54
|
Module: gnonlin Branch: master Commit: b785604f65f14c9d9514eaebc406dfd322c05f3f URL: http://cgit.freedesktop.org/gstreamer/gnonlin/commit/?id=b785604f65f14c9d9514eaebc406dfd322c05f3f Author: Edward Hervey <bilboed@...> Date: Wed Aug 12 18:31:36 2009 +0200 gnlcomposition: Drop incoming events when not entirely linked. Fixes #583145 --- gnl/gnlcomposition.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff --git a/gnl/gnlcomposition.c b/gnl/gnlcomposition.c index ae13b1c..df647f9 100644 --- a/gnl/gnlcomposition.c +++ b/gnl/gnlcomposition.c @@ -954,15 +954,18 @@ gnl_composition_event_handler (GstPad * ghostpad, GstEvent * event) break; } - /* FIXME : What should we do here if waitingpads != 0 ?? */ - /* Delay ? Ignore ? Refuse ? */ - if (res && comp->priv->ghostpad) { - GST_DEBUG_OBJECT (comp, "About to call gnl_event_pad_func()"); COMP_OBJECTS_LOCK (comp); - res = comp->priv->gnl_event_pad_func (comp->priv->ghostpad, event); + /* If the timeline isn't entirely reconstructed, we silently ignore the + * event. In the case of seeks the pipeline will already be correctly + * configured at this point*/ + if (comp->priv->waitingpads == 0) { + GST_DEBUG_OBJECT (comp, "About to call gnl_event_pad_func()"); + res = comp->priv->gnl_event_pad_func (comp->priv->ghostpad, event); + GST_DEBUG_OBJECT (comp, "Done calling gnl_event_pad_func() %d", res); + } else + gst_event_unref (event); COMP_OBJECTS_UNLOCK (comp); - GST_DEBUG_OBJECT (comp, "Done calling gnl_event_pad_func() %d", res); } gst_object_unref (comp); return res; |
From: <tpm@ke...> - 2009-08-12 15:53:38
|
Module: gst-plugins-bad Branch: master Commit: 5bc1290431fcab274219bb8055a4b35ea7b335cc URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=5bc1290431fcab274219bb8055a4b35ea7b335cc Author: Tim-Philipp Müller <tim.muller@...> Date: Wed Aug 12 10:28:32 2009 +0100 vdpau: blacklist for generic states test, and demote to GST_RANK_NONE These elements are not fit for autoplugging, so demoting to RANK_NONE. Also blacklisting for generic states test, since fixing these elements up to do some minimal error handling seems to be a bit more work. Partially fixes #591538. --- sys/vdpau/gstvdp.c | 8 +++++--- sys/vdpau/gstvdpdevice.c | 11 +++++++++-- tests/check/Makefile.am | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/sys/vdpau/gstvdp.c b/sys/vdpau/gstvdp.c index 5c52496..0cafbd6 100644 --- a/sys/vdpau/gstvdp.c +++ b/sys/vdpau/gstvdp.c @@ -12,12 +12,14 @@ static gboolean vdpau_init (GstPlugin * vdpau_plugin) { + /* Before giving these elements a rank again, make sure they pass at + * least the generic/states test when there's no device available */ gst_element_register (vdpau_plugin, "vdpaumpegdec", - GST_RANK_PRIMARY - 1, GST_TYPE_VDP_MPEG_DEC); + GST_RANK_NONE, GST_TYPE_VDP_MPEG_DEC); gst_element_register (vdpau_plugin, "vdpauvideoyuv", - GST_RANK_PRIMARY, GST_TYPE_VDP_VIDEO_YUV); + GST_RANK_NONE, GST_TYPE_VDP_VIDEO_YUV); gst_element_register (vdpau_plugin, "vdpauyuvvideo", - GST_RANK_PRIMARY, GST_TYPE_VDP_YUV_VIDEO); + GST_RANK_NONE, GST_TYPE_VDP_YUV_VIDEO); return TRUE; } diff --git a/sys/vdpau/gstvdpdevice.c b/sys/vdpau/gstvdpdevice.c index 4ed1b17..f4eb821 100644 --- a/sys/vdpau/gstvdpdevice.c +++ b/sys/vdpau/gstvdpdevice.c @@ -49,9 +49,16 @@ gst_vdp_device_finalize (GObject * object) { GstVdpDevice *device = (GstVdpDevice *) object; - device->vdp_device_destroy (device->device); - XCloseDisplay (device->display); + if (device->device != VDP_INVALID_HANDLE) { + device->vdp_device_destroy (device->device); + device->device = VDP_INVALID_HANDLE; + } + if (device->display) { + XCloseDisplay (device->display); + device->display = NULL; + } g_free (device->display_name); + device->display_name = NULL; G_OBJECT_CLASS (gst_vdp_device_parent_class)->finalize (object); } diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 3a2d92f..ac37ed7 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -13,7 +13,7 @@ TESTS_ENVIRONMENT = \ $(REGISTRY_ENVIRONMENT) \ GST_PLUGIN_SYSTEM_PATH= \ GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/../gst-ffmpeg/ext/ffmpeg:$(top_builddir)/../gst-plugins-good/gst:$(top_builddir)/../gst-plugins-good/sys:$(top_builddir)/../gst-plugins-good/ext:$(top_builddir)/../gst-plugins-ugly/gst:$(top_builddir)/../gst-plugins-ugly/sys:$(top_builddir)/../gst-plugins-ugly/ext:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \ - STATE_IGNORE_ELEMENTS="alsaspdifsink apexsink camerabin cdaudio dc1394src dccpclientsrc dccpclientsink dccpserversrc dccpserversink dvbsrc dvbbasebin dfbvideosink festival nassink rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc" + STATE_IGNORE_ELEMENTS="alsaspdifsink apexsink camerabin cdaudio dc1394src dccpclientsrc dccpclientsink dccpserversrc dccpserversink dvbsrc dvbbasebin dfbvideosink festival nassink rsndvdbin sdlaudiosink sdlvideosink vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv vdpaumpegdec" plugindir = $(libdir)/gstreamer-@...@ |
From: <mnauw@ke...> - 2009-08-12 11:41:32
|
Module: gst-plugins-base Branch: master Commit: 188d69844911491323385a7d5b1833778286aac0 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=188d69844911491323385a7d5b1833778286aac0 Author: Mark Nauwelaerts <mark.nauwelaerts@...> Date: Wed Aug 5 15:36:30 2009 +0200 decodebin2: avoid assertion failure on empty/NULL caps --- gst/playback/gstdecodebin2.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c index 1ad7cf6..045f051 100644 --- a/gst/playback/gstdecodebin2.c +++ b/gst/playback/gstdecodebin2.c @@ -1118,13 +1118,19 @@ unknown_type: if (src == dbin->typefind) { gchar *desc; - desc = gst_pb_utils_get_decoder_description (caps); - GST_ELEMENT_ERROR (dbin, STREAM, CODEC_NOT_FOUND, - (_("A %s plugin is required to play this stream, but not installed."), - desc), - ("No decoder to handle media type '%s'", - gst_structure_get_name (gst_caps_get_structure (caps, 0)))); - g_free (desc); + if (caps && !gst_caps_is_empty (caps)) { + desc = gst_pb_utils_get_decoder_description (caps); + GST_ELEMENT_ERROR (dbin, STREAM, CODEC_NOT_FOUND, + (_("A %s plugin is required to play this stream, " + "but not installed."), desc), + ("No decoder to handle media type '%s'", + gst_structure_get_name (gst_caps_get_structure (caps, 0)))); + g_free (desc); + } else { + GST_ELEMENT_ERROR (dbin, STREAM, TYPE_NOT_FOUND, + (_("Could not determine type of stream")), + ("Stream caps %" GST_PTR_FORMAT, caps)); + } } gst_element_post_message (GST_ELEMENT_CAST (dbin), |
From: <mnauw@ke...> - 2009-08-12 11:41:29
|
Module: gst-plugins-base Branch: master Commit: 87e67758440ad3ec8cccbc451b61842bb9aea980 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=87e67758440ad3ec8cccbc451b61842bb9aea980 Author: Mark Nauwelaerts <mark.nauwelaerts@...> Date: Wed Aug 5 15:38:32 2009 +0200 riff: align API doc of gst_riff_parse_chunk with reality --- gst-libs/gst/riff/riff-read.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/riff/riff-read.c b/gst-libs/gst/riff/riff-read.c index 28f4a80..4a43f99 100644 --- a/gst-libs/gst/riff/riff-read.c +++ b/gst-libs/gst/riff/riff-read.c @@ -113,11 +113,11 @@ too_small: * by the read size by this function. * @fourcc: fourcc (returned by this function0 of the chunk. * @chunk_data: buffer (returned by the function) containing the - * chunk data. + * chunk data, which may be NULL if chunksize == 0 * * Reads a single chunk. * - * Returns: the fourcc tag of this chunk, or FALSE on error + * Returns: FALSE on error, TRUE otherwise */ gboolean gst_riff_parse_chunk (GstElement * element, GstBuffer * buf, |
From: <slomo@ke...> - 2009-08-12 10:11:28
|
Module: gst-plugins-base Branch: master Commit: 3b4c35e319809ff8bdc00fb364e9140cb9a4c2d7 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=3b4c35e319809ff8bdc00fb364e9140cb9a4c2d7 Author: Sebastian Dröge <sebastian.droege@...> Date: Wed Aug 12 12:09:45 2009 +0200 typefindfunctions: Also detect SVG by the <svg> starting tag Not all SVG images have the DOCTYPE specified. --- gst/typefind/gsttypefindfunctions.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c index 88b7b21..e308826 100644 --- a/gst/typefind/gsttypefindfunctions.c +++ b/gst/typefind/gsttypefindfunctions.c @@ -1280,6 +1280,7 @@ static void svg_type_find (GstTypeFind * tf, gpointer unused) { static const gchar svg_doctype[] = "!DOCTYPE svg"; + static const gchar svg_tag[] = "<svg"; DataScanCtx c = { 0, NULL, 0 }; while (c.offset <= 1024) { @@ -1289,6 +1290,9 @@ svg_type_find (GstTypeFind * tf, gpointer unused) if (memcmp (svg_doctype, c.data, 12) == 0) { gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, SVG_CAPS); return; + } else if (memcmp (svg_tag, c.data, 4) == 0) { + gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, SVG_CAPS); + return; } data_scan_ctx_advance (tf, &c, 1); } |
From: <slomo@ke...> - 2009-08-12 08:58:21
|
Module: gst-ffmpeg Branch: master Commit: 6923de9378392b58cb600676d22cae80b54c68f3 URL: http://cgit.freedesktop.org/gstreamer/gst-ffmpeg/commit/?id=6923de9378392b58cb600676d22cae80b54c68f3 Author: Sebastian Dröge <sebastian.droege@...> Date: Wed Aug 12 10:57:18 2009 +0200 ffmpegdec: Don't use guintptr as it's new in GLib 2.18 Fixes bug #591469. --- ext/ffmpeg/gstffmpegdec.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ext/ffmpeg/gstffmpegdec.c b/ext/ffmpeg/gstffmpegdec.c index 30c761b..2c8f8e4 100644 --- a/ext/ffmpeg/gstffmpegdec.c +++ b/ext/ffmpeg/gstffmpegdec.c @@ -1659,10 +1659,10 @@ gst_ffmpegdec_video_frame (GstFFMpegDec * ffmpegdec, out_timestamp = gst_ts_handler_get_ts (ffmpegdec, &out_offset); /* Never do this at home... * 1) We know that ffmpegdec->context->reordered_opaque is 64-bit, and thus - * is capable of holding virtually anything (unless we're on 128-bit platform...) - * 2) guintptr is either 32-bit or 64-pit and always matches gpointer in size + * is capable of holding virtually anything including pointers + * (unless we're on 128-bit platform...) */ - *((guintptr *) & ffmpegdec->context->reordered_opaque) = + ffmpegdec->context->reordered_opaque = (gint64) GPOINTER_TO_SIZE (opaque_store (ffmpegdec, out_timestamp, out_offset)); /* now decode the frame */ @@ -1689,10 +1689,10 @@ gst_ffmpegdec_video_frame (GstFFMpegDec * ffmpegdec, /* recuperate the reordered timestamp */ if (!opaque_find (ffmpegdec, - GSIZE_TO_POINTER (*((guintptr *) & ffmpegdec-> + GSIZE_TO_POINTER (*((gsize *) & ffmpegdec-> picture->reordered_opaque)), &out_pts, &out_offset)) { GST_DEBUG_OBJECT (ffmpegdec, "Failed to find opaque %p", - *((guintptr *) & ffmpegdec->picture->reordered_opaque)); + *((gsize *) & ffmpegdec->picture->reordered_opaque)); out_pts = -1; out_offset = GST_BUFFER_OFFSET_NONE; } else { |