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
(13) |
2
(79) |
3
(96) |
4
(5) |
5
(8) |
6
(45) |
7
(63) |
8
(120) |
9
(7) |
10
(6) |
11
(27) |
12
(10) |
13
(24) |
14
(8) |
15
(35) |
16
(9) |
17
(36) |
18
(28) |
19
(24) |
20
(28) |
21
(32) |
22
(15) |
23
(11) |
24
(4) |
25
(7) |
26
(22) |
27
(7) |
28
(7) |
29
(42) |
30
(10) |
31
(32) |
|
From: <alessandro@ke...> - 2010-12-01 22:24:01
|
Module: gst-plugins-bad Branch: master Commit: 536a30f2df2b732e75f443fa86451aa804f2021a URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=536a30f2df2b732e75f443fa86451aa804f2021a Author: Alessandro Decina <alessandro.d@...> Date: Wed Dec 1 23:21:33 2010 +0100 applemedia: don't use the deprecated g_strcasecmp function. Replace g_strcasecmp with g_ascii_strcasecmp. --- sys/applemedia/miovideosrc.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/applemedia/miovideosrc.c b/sys/applemedia/miovideosrc.c index 8e44960..a2d1fa6 100644 --- a/sys/applemedia/miovideosrc.c +++ b/sys/applemedia/miovideosrc.c @@ -481,10 +481,10 @@ gst_mio_video_src_open_device (GstMIOVideoSrc * self) gboolean match; if (self->device_uid != NULL) { - match = g_strcasecmp (gst_mio_video_device_get_uid (device), + match = g_ascii_strcasecmp (gst_mio_video_device_get_uid (device), self->device_uid) == 0; } else if (self->device_name != NULL) { - match = g_strcasecmp (gst_mio_video_device_get_name (device), + match = g_ascii_strcasecmp (gst_mio_video_device_get_name (device), self->device_name) == 0; } else if (self->device_index >= 0) { match = device_idx == self->device_index; |
From: <alessandro@ke...> - 2010-12-01 22:24:00
|
Module: gst-plugins-bad Branch: master Commit: aae72680bd7dbd80c609d4ba43511744fe878465 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=aae72680bd7dbd80c609d4ba43511744fe878465 Author: Alessandro Decina <alessandro.d@...> Date: Wed Dec 1 23:20:36 2010 +0100 Fix compiler warnings with gcc 4.2.1 on OSX. --- gst/pcapparse/gstpcapparse.c | 2 +- sys/applemedia/mioapi.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/gst/pcapparse/gstpcapparse.c b/gst/pcapparse/gstpcapparse.c index 640bbe3..2d3436c 100644 --- a/gst/pcapparse/gstpcapparse.c +++ b/gst/pcapparse/gstpcapparse.c @@ -330,7 +330,7 @@ gst_pcap_parse_scan_frame (GstPcapParse * self, const guint8 * buf, gint buf_size, const guint8 ** payload, gint * payload_size) { - const guint8 *buf_ip; + const guint8 *buf_ip = 0; const guint8 *buf_udp; guint16 eth_type; guint8 b; diff --git a/sys/applemedia/mioapi.c b/sys/applemedia/mioapi.c index f3357b0..81b38e9 100644 --- a/sys/applemedia/mioapi.c +++ b/sys/applemedia/mioapi.c @@ -24,6 +24,8 @@ #define MIO_FRAMEWORK_PATH "/System/Library/PrivateFrameworks/" \ "CoreMediaIOServices.framework/CoreMediaIOServices" +GType gst_mio_api_get_type (void); + G_DEFINE_TYPE (GstMIOApi, gst_mio_api, GST_TYPE_DYN_API); static void |
From: <tpm@ke...> - 2010-12-01 21:22:21
|
Module: gst-plugins-good Branch: refs/tags/RELEASE-0.10.26 Tag: 9a3e7e68ee6bdbd6f8ee1a2ad201f24fbc191eab URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/tag/?id=9a3e7e68ee6bdbd6f8ee1a2ad201f24fbc191eab Tagger: Tim-Philipp Müller <tim.muller@...> Date: Wed Dec 1 21:15:35 2010 +0000 Release 0.10.26 |
From: <tpm@ke...> - 2010-12-01 21:22:08
|
Module: gst-plugins-good Branch: master Commit: 1d2056adc637a14c1060a282abf111c1452e7f9c URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=1d2056adc637a14c1060a282abf111c1452e7f9c Author: Tim-Philipp Müller <tim.muller@...> Date: Wed Dec 1 21:15:09 2010 +0000 Release 0.10.26 --- ChangeLog | 2287 +++++++++++++++++++- NEWS | 124 ++- RELEASE | 193 ++- configure.ac | 6 +- docs/plugins/gst-plugins-good-plugins.args | 12 +- docs/plugins/gst-plugins-good-plugins.hierarchy | 6 +- docs/plugins/gst-plugins-good-plugins.interfaces | 47 +- .../plugins/gst-plugins-good-plugins.prerequisites | 3 +- docs/plugins/inspect/plugin-1394.xml | 4 +- docs/plugins/inspect/plugin-aasink.xml | 4 +- docs/plugins/inspect/plugin-alaw.xml | 4 +- docs/plugins/inspect/plugin-alpha.xml | 4 +- docs/plugins/inspect/plugin-alphacolor.xml | 4 +- docs/plugins/inspect/plugin-annodex.xml | 4 +- docs/plugins/inspect/plugin-apetag.xml | 4 +- docs/plugins/inspect/plugin-audiofx.xml | 4 +- docs/plugins/inspect/plugin-auparse.xml | 4 +- docs/plugins/inspect/plugin-autodetect.xml | 4 +- docs/plugins/inspect/plugin-avi.xml | 4 +- docs/plugins/inspect/plugin-cacasink.xml | 4 +- docs/plugins/inspect/plugin-cairo.xml | 4 +- docs/plugins/inspect/plugin-cutter.xml | 4 +- docs/plugins/inspect/plugin-debug.xml | 4 +- docs/plugins/inspect/plugin-deinterlace.xml | 4 +- docs/plugins/inspect/plugin-dv.xml | 4 +- docs/plugins/inspect/plugin-efence.xml | 4 +- docs/plugins/inspect/plugin-effectv.xml | 4 +- docs/plugins/inspect/plugin-equalizer.xml | 4 +- docs/plugins/inspect/plugin-esdsink.xml | 4 +- docs/plugins/inspect/plugin-flac.xml | 4 +- docs/plugins/inspect/plugin-flv.xml | 4 +- docs/plugins/inspect/plugin-flxdec.xml | 4 +- docs/plugins/inspect/plugin-gconfelements.xml | 4 +- docs/plugins/inspect/plugin-gdkpixbuf.xml | 4 +- docs/plugins/inspect/plugin-goom.xml | 4 +- docs/plugins/inspect/plugin-goom2k1.xml | 4 +- docs/plugins/inspect/plugin-gstrtpmanager.xml | 4 +- docs/plugins/inspect/plugin-halelements.xml | 4 +- docs/plugins/inspect/plugin-icydemux.xml | 4 +- docs/plugins/inspect/plugin-id3demux.xml | 4 +- docs/plugins/inspect/plugin-imagefreeze.xml | 4 +- docs/plugins/inspect/plugin-interleave.xml | 4 +- docs/plugins/inspect/plugin-jpeg.xml | 4 +- docs/plugins/inspect/plugin-level.xml | 4 +- docs/plugins/inspect/plugin-matroska.xml | 4 +- docs/plugins/inspect/plugin-mulaw.xml | 4 +- docs/plugins/inspect/plugin-multifile.xml | 4 +- docs/plugins/inspect/plugin-multipart.xml | 4 +- docs/plugins/inspect/plugin-navigationtest.xml | 4 +- docs/plugins/inspect/plugin-oss4.xml | 4 +- docs/plugins/inspect/plugin-ossaudio.xml | 4 +- docs/plugins/inspect/plugin-png.xml | 4 +- docs/plugins/inspect/plugin-pulseaudio.xml | 4 +- docs/plugins/inspect/plugin-quicktime.xml | 4 +- docs/plugins/inspect/plugin-replaygain.xml | 4 +- docs/plugins/inspect/plugin-rtp.xml | 46 +- docs/plugins/inspect/plugin-rtsp.xml | 4 +- docs/plugins/inspect/plugin-shapewipe.xml | 4 +- docs/plugins/inspect/plugin-shout2send.xml | 2 +- docs/plugins/inspect/plugin-smpte.xml | 4 +- docs/plugins/inspect/plugin-soup.xml | 4 +- docs/plugins/inspect/plugin-spectrum.xml | 4 +- docs/plugins/inspect/plugin-speex.xml | 4 +- docs/plugins/inspect/plugin-taglib.xml | 4 +- docs/plugins/inspect/plugin-udp.xml | 4 +- docs/plugins/inspect/plugin-video4linux2.xml | 4 +- docs/plugins/inspect/plugin-videobox.xml | 4 +- docs/plugins/inspect/plugin-videocrop.xml | 4 +- docs/plugins/inspect/plugin-videofilter.xml | 4 +- docs/plugins/inspect/plugin-videomixer.xml | 4 +- docs/plugins/inspect/plugin-wavenc.xml | 4 +- docs/plugins/inspect/plugin-wavpack.xml | 4 +- docs/plugins/inspect/plugin-wavparse.xml | 4 +- docs/plugins/inspect/plugin-ximagesrc.xml | 4 +- docs/plugins/inspect/plugin-y4menc.xml | 4 +- gst-plugins-good.doap | 11 + win32/common/config.h | 10 +- 77 files changed, 2773 insertions(+), 234 deletions(-) Diff: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/diff/?id=1d2056adc637a14c1060a282abf111c1452e7f9c |
From: <mnauw@ke...> - 2010-12-01 14:34:36
|
Module: gst-plugins-bad Branch: master Commit: ce6d8b6d932b82719b971105c409ef91806aa725 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=ce6d8b6d932b82719b971105c409ef91806aa725 Author: Mark Nauwelaerts <mark.nauwelaerts@...> Date: Wed Dec 1 15:28:53 2010 +0100 ac3parse: use proper EAC-3 caps --- gst/audioparsers/gstac3parse.c | 22 ++++++++++++++++------ gst/audioparsers/gstac3parse.h | 1 + 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/gst/audioparsers/gstac3parse.c b/gst/audioparsers/gstac3parse.c index f2ca0c6..2ce112b 100644 --- a/gst/audioparsers/gstac3parse.c +++ b/gst/audioparsers/gstac3parse.c @@ -148,13 +148,14 @@ static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-ac3, framed = (boolean) true, " " channels = (int) [ 1, 6 ], rate = (int) [ 32000, 48000 ]; " - "audio/ac3, framed = (boolean) true, " + "audio/x-eac3, framed = (boolean) true, " " channels = (int) [ 1, 6 ], rate = (int) [ 32000, 48000 ] ")); static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, GST_STATIC_CAPS ("audio/x-ac3, framed = (boolean) false; " + "audio/x-eac3, framed = (boolean) false; " "audio/ac3, framed = (boolean) false ")); static void gst_ac3_parse_finalize (GObject * object); @@ -206,6 +207,7 @@ gst_ac3_parse_reset (GstAc3Parse * ac3parse) { ac3parse->channels = -1; ac3parse->sample_rate = -1; + ac3parse->eac = FALSE; } static void @@ -347,7 +349,8 @@ gst_ac3_parse_frame_header_eac3 (GstAc3Parse * ac3parse, GstBuffer * buf, static gboolean gst_ac3_parse_frame_header (GstAc3Parse * parse, GstBuffer * buf, - guint * framesize, guint * rate, guint * chans, guint * blocks, guint * sid) + guint * framesize, guint * rate, guint * chans, guint * blocks, + guint * sid, gboolean * eac) { GstBitReader bits = GST_BIT_READER_INIT_FROM_BUFFER (buf); guint16 sync; @@ -365,9 +368,13 @@ gst_ac3_parse_frame_header (GstAc3Parse * parse, GstBuffer * buf, GST_LOG_OBJECT (parse, "bsid = %d", bsid); if (bsid <= 10) { + if (eac) + *eac = FALSE; return gst_ac3_parse_frame_header_ac3 (parse, buf, framesize, rate, chans, blocks, sid); } else if (bsid <= 16) { + if (eac) + *eac = TRUE; return gst_ac3_parse_frame_header_eac3 (parse, buf, framesize, rate, chans, blocks, sid); } else { @@ -407,7 +414,7 @@ gst_ac3_parse_check_valid_frame (GstBaseParse * parse, GstBuffer * buf, /* make sure the values in the frame header look sane */ if (!gst_ac3_parse_frame_header (ac3parse, buf, framesize, NULL, NULL, - NULL, NULL)) { + NULL, NULL, NULL)) { *skipsize = off + 2; return FALSE; } @@ -448,9 +455,10 @@ gst_ac3_parse_parse_frame (GstBaseParse * parse, GstBuffer * buf) { GstAc3Parse *ac3parse = GST_AC3_PARSE (parse); guint fsize, rate, chans, blocks, sid; + gboolean eac; if (!gst_ac3_parse_frame_header (ac3parse, buf, &fsize, &rate, &chans, - &blocks, &sid)) + &blocks, &sid, &eac)) goto broken_header; GST_LOG_OBJECT (parse, "size: %u, rate: %u, chans: %u", fsize, rate, chans); @@ -460,8 +468,9 @@ gst_ac3_parse_parse_frame (GstBaseParse * parse, GstBuffer * buf) GST_BUFFER_FLAG_SET (buf, GST_BASE_PARSE_BUFFER_FLAG_NO_FRAME); } - if (G_UNLIKELY (ac3parse->sample_rate != rate || ac3parse->channels != chans)) { - GstCaps *caps = gst_caps_new_simple ("audio/x-ac3", + if (G_UNLIKELY (ac3parse->sample_rate != rate || ac3parse->channels != chans + || ac3parse->eac != ac3parse->eac)) { + GstCaps *caps = gst_caps_new_simple (eac ? "audio/x-eac3" : "audio/x-ac3", "framed", G_TYPE_BOOLEAN, TRUE, "rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, chans, NULL); gst_buffer_set_caps (buf, caps); @@ -470,6 +479,7 @@ gst_ac3_parse_parse_frame (GstBaseParse * parse, GstBuffer * buf) ac3parse->sample_rate = rate; ac3parse->channels = chans; + ac3parse->eac = eac; gst_base_parse_set_frame_props (parse, rate, 256 * blocks, 2, 2); } diff --git a/gst/audioparsers/gstac3parse.h b/gst/audioparsers/gstac3parse.h index 302d646..724b56f 100644 --- a/gst/audioparsers/gstac3parse.h +++ b/gst/audioparsers/gstac3parse.h @@ -53,6 +53,7 @@ struct _GstAc3Parse { /*< private >*/ gint sample_rate; gint channels; + gboolean eac; }; /** |
From: <ds@ke...> - 2010-12-01 02:59:44
|
Module: gst-plugins-bad Branch: master Commit: a55a94e72bad8375738e5af3a19253701d525b56 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a55a94e72bad8375738e5af3a19253701d525b56 Author: David Schleef <ds@...> Date: Sat Oct 9 17:39:36 2010 -0700 Add a schroenc test --- tests/check/Makefile.am | 7 ++ tests/check/elements/schroenc.c | 172 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 179 insertions(+), 0 deletions(-) diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index 28a562a..fd7bf11 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -76,6 +76,12 @@ else check_ofa = endif +if USE_SCHRO +check_schro=elements/schroenc +else +check_schro= +endif + if USE_TIMIDITY check_timidity=elements/timidity else @@ -159,6 +165,7 @@ check_PROGRAMS = \ pipelines/mxf \ $(check_mimic) \ elements/rtpmux \ + $(check_schro) \ elements/valve \ $(check_vp8) \ $(check_zbar) \ diff --git a/tests/check/elements/schroenc.c b/tests/check/elements/schroenc.c new file mode 100644 index 0000000..ef594cd --- /dev/null +++ b/tests/check/elements/schroenc.c @@ -0,0 +1,172 @@ +/* GStreamer + * + * Copyright (c) 2010 Sebastian Dröge <sebastian.droege@...> + * Copyright (c) 2010 David Schleef <ds@...> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include <gst/check/gstcheck.h> + +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-dirac, " + "width = (int) [1, MAX], " + "height = (int) [1, MAX], " "framerate = (fraction) [0, MAX]")); + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-raw-yuv, " + "format = (fourcc) I420, " + "width = (int) [1, MAX], " + "height = (int) [1, MAX], " "framerate = (fraction) [0, MAX]")); + +static GstPad *sinkpad, *srcpad; + +static GstElement * +setup_schroenc (const gchar * src_caps_str) +{ + GstElement *schroenc; + GstCaps *srccaps = NULL; + GstBus *bus; + + if (src_caps_str) { + srccaps = gst_caps_from_string (src_caps_str); + fail_unless (srccaps != NULL); + } + + schroenc = gst_check_setup_element ("schroenc"); + fail_unless (schroenc != NULL); + srcpad = gst_check_setup_src_pad (schroenc, &srctemplate, srccaps); + sinkpad = gst_check_setup_sink_pad (schroenc, &sinktemplate, NULL); + gst_pad_set_active (srcpad, TRUE); + gst_pad_set_active (sinkpad, TRUE); + + bus = gst_bus_new (); + gst_element_set_bus (schroenc, bus); + + fail_unless (gst_element_set_state (schroenc, + GST_STATE_PLAYING) != GST_STATE_CHANGE_FAILURE, + "could not set to playing"); + + if (srccaps) + gst_caps_unref (srccaps); + + buffers = NULL; + return schroenc; +} + +static void +cleanup_schroenc (GstElement * schroenc) +{ + GstBus *bus; + + /* Free parsed buffers */ + gst_check_drop_buffers (); + + bus = GST_ELEMENT_BUS (schroenc); + gst_bus_set_flushing (bus, TRUE); + gst_object_unref (bus); + + gst_pad_set_active (srcpad, FALSE); + gst_pad_set_active (sinkpad, FALSE); + gst_check_teardown_src_pad (schroenc); + gst_check_teardown_sink_pad (schroenc); + gst_check_teardown_element (schroenc); +} + +GST_START_TEST (test_encode_simple) +{ + GstElement *schroenc; + GstBuffer *buffer; + gint i; + GList *l; + GstCaps *outcaps; + + schroenc = + setup_schroenc + ("video/x-raw-yuv,format=(fourcc)I420,width=(int)320,height=(int)240,framerate=(fraction)25/1"); + + g_object_set (schroenc, "queue-depth", 10, NULL); + + fail_unless (gst_pad_push_event (srcpad, gst_event_new_new_segment (FALSE, + 1.0, GST_FORMAT_TIME, 0, gst_util_uint64_scale (20, GST_SECOND, + 25), 0))); + + buffer = gst_buffer_new_and_alloc (320 * 240 + 2 * 160 * 120); + memset (GST_BUFFER_DATA (buffer), 0, GST_BUFFER_SIZE (buffer)); + gst_buffer_set_caps (buffer, GST_PAD_CAPS (srcpad)); + + for (i = 0; i < 20; i++) { + GST_BUFFER_TIMESTAMP (buffer) = gst_util_uint64_scale (i, GST_SECOND, 25); + GST_BUFFER_DURATION (buffer) = gst_util_uint64_scale (1, GST_SECOND, 25); + fail_unless (gst_pad_push (srcpad, gst_buffer_ref (buffer)) == GST_FLOW_OK); + } + + gst_buffer_unref (buffer); + + /* Only 5 buffers are allowed to be queued now */ + fail_unless (g_list_length (buffers) > 10); + + fail_unless (gst_pad_push_event (srcpad, gst_event_new_eos ())); + + + /* All buffers must be there now */ + fail_unless_equals_int (g_list_length (buffers), 20); + + outcaps = + gst_caps_from_string + ("video/x-dirac,width=(int)320,height=(int)240,framerate=(fraction)25/1"); + + for (l = buffers, i = 0; l; l = l->next, i++) { + buffer = l->data; + + if (i == 0) + fail_if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)); + +#if 0 + fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (buffer), + gst_util_uint64_scale (i, GST_SECOND, 25)); +#endif + fail_unless_equals_uint64 (GST_BUFFER_DURATION (buffer), + gst_util_uint64_scale (1, GST_SECOND, 25)); + + fail_unless (gst_caps_can_intersect (GST_BUFFER_CAPS (buffer), outcaps)); + } + + gst_caps_unref (outcaps); + + cleanup_schroenc (schroenc); +} + +GST_END_TEST; + +static Suite * +schroenc_suite (void) +{ + Suite *s = suite_create ("schroenc"); + TCase *tc_chain = tcase_create ("general"); + + suite_add_tcase (s, tc_chain); + + tcase_add_test (tc_chain, test_encode_simple); + + return s; +} + +GST_CHECK_MAIN (schroenc); |
From: <ds@ke...> - 2010-12-01 02:59:44
|
Module: gst-plugins-bad Branch: master Commit: 159e2768d6729aea2caffb14a6f56a7055d4879f URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=159e2768d6729aea2caffb14a6f56a7055d4879f Author: David Schleef <ds@...> Date: Sat Nov 27 20:13:38 2010 -0800 Fix pad template memleaks Pad templates returned by gst_static_pad_template_get() were not being unreffed. --- ext/dirac/gstdiracdec.cc | 16 +++++++--------- gst/liveadder/liveadder.c | 7 ++----- gst/mpegpsmux/mpegpsmux.c | 5 ++--- gst/pnm/gstpnmdec.c | 7 ++----- gst/pnm/gstpnmenc.c | 8 ++------ 5 files changed, 15 insertions(+), 28 deletions(-) diff --git a/ext/dirac/gstdiracdec.cc b/ext/dirac/gstdiracdec.cc index 597735b..486eab0 100644 --- a/ext/dirac/gstdiracdec.cc +++ b/ext/dirac/gstdiracdec.cc @@ -140,14 +140,13 @@ gst_diracdec_init (GstDiracDec * diracdec) /* create the sink and src pads */ diracdec->sinkpad = - gst_pad_new_from_template (gst_static_pad_template_get - (&gst_diracdec_sink_pad_template), "sink"); + gst_pad_new_from_static_template (&gst_diracdec_sink_pad_template, + "sink"); gst_pad_set_chain_function (diracdec->sinkpad, gst_diracdec_chain); gst_element_add_pad (GST_ELEMENT (diracdec), diracdec->sinkpad); diracdec->srcpad = - gst_pad_new_from_template (gst_static_pad_template_get - (&gst_diracdec_src_pad_template), "src"); + gst_pad_new_from_static_template (&gst_diracdec_src_pad_template, "src"); gst_pad_use_explicit_caps (diracdec->srcpad); gst_element_add_pad (GST_ELEMENT (diracdec), diracdec->srcpad); @@ -258,16 +257,15 @@ gst_diracdec_chain (GstPad * pad, GstData * _data) diracdec->decoder->seq_params.width, diracdec->decoder->seq_params.height, (gdouble) fps_num / (gdouble) fps_denom, - gst_diracdec_chroma_to_fourcc (diracdec->decoder-> - seq_params.chroma))) { + gst_diracdec_chroma_to_fourcc (diracdec->decoder->seq_params. + chroma))) { GST_ELEMENT_ERROR (diracdec, CORE, NEGOTIATION, (NULL), ("Failed to set caps to %dx%d @ %d fps (format=" GST_FOURCC_FORMAT "/%d)", diracdec->decoder->seq_params.width, diracdec->decoder->seq_params.height, diracdec->decoder->seq_params.frame_rate, - gst_diracdec_chroma_to_fourcc (diracdec->decoder-> - seq_params.chroma), - diracdec->decoder->seq_params.chroma)); + gst_diracdec_chroma_to_fourcc (diracdec->decoder->seq_params. + chroma), diracdec->decoder->seq_params.chroma)); c = FALSE; break; } diff --git a/gst/liveadder/liveadder.c b/gst/liveadder/liveadder.c index f92b372..df6cda5 100644 --- a/gst/liveadder/liveadder.c +++ b/gst/liveadder/liveadder.c @@ -191,11 +191,8 @@ gst_live_adder_class_init (GstLiveAdderClass * klass) static void gst_live_adder_init (GstLiveAdder * adder, GstLiveAdderClass * klass) { - GstPadTemplate *template; - - template = gst_static_pad_template_get (&gst_live_adder_src_template); - adder->srcpad = gst_pad_new_from_template (template, "src"); - gst_object_unref (template); + adder->srcpad = + gst_pad_new_from_static_template (&gst_live_adder_src_template, "src"); gst_pad_set_getcaps_function (adder->srcpad, GST_DEBUG_FUNCPTR (gst_pad_proxy_getcaps)); gst_pad_set_setcaps_function (adder->srcpad, diff --git a/gst/mpegpsmux/mpegpsmux.c b/gst/mpegpsmux/mpegpsmux.c index 70f0213..d64fb35 100644 --- a/gst/mpegpsmux/mpegpsmux.c +++ b/gst/mpegpsmux/mpegpsmux.c @@ -140,9 +140,8 @@ mpegpsmux_class_init (MpegPsMuxClass * klass) static void mpegpsmux_init (MpegPsMux * mux, MpegPsMuxClass * g_class) { - mux->srcpad = - gst_pad_new_from_template (gst_static_pad_template_get - (&mpegpsmux_src_factory), "src"); + mux->srcpad = gst_pad_new_from_static_template (&mpegpsmux_src_factory, + "src"); gst_pad_use_fixed_caps (mux->srcpad); gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad); diff --git a/gst/pnm/gstpnmdec.c b/gst/pnm/gstpnmdec.c index 060af2d..394e86d 100644 --- a/gst/pnm/gstpnmdec.c +++ b/gst/pnm/gstpnmdec.c @@ -295,14 +295,11 @@ gst_pnmdec_init (GstPnmdec * s, GstPnmdecClass * klass) GstPad *pad; pad = - gst_pad_new_from_template (gst_static_pad_template_get - (&gst_pnmdec_sink_pad_template), "sink"); + gst_pad_new_from_static_template (&gst_pnmdec_sink_pad_template, "sink"); gst_pad_set_chain_function (pad, gst_pnmdec_chain); gst_element_add_pad (GST_ELEMENT (s), pad); - pad = - gst_pad_new_from_template (gst_static_pad_template_get - (&gst_pnmdec_src_pad_template), "src"); + pad = gst_pad_new_from_static_template (&gst_pnmdec_src_pad_template, "src"); gst_element_add_pad (GST_ELEMENT (s), pad); } diff --git a/gst/pnm/gstpnmenc.c b/gst/pnm/gstpnmenc.c index a197e6f..53bd4a3 100644 --- a/gst/pnm/gstpnmenc.c +++ b/gst/pnm/gstpnmenc.c @@ -216,17 +216,13 @@ gst_pnmenc_init (GstPnmenc * s, GstPnmencClass * klass) { GstPad *pad; - pad = - gst_pad_new_from_template (gst_static_pad_template_get - (&sink_pad_template), "sink"); + pad = gst_pad_new_from_static_template (&sink_pad_template, "sink"); gst_pad_set_setcaps_function (pad, gst_pnmenc_setcaps_func_sink); gst_pad_set_chain_function (pad, gst_pnmenc_chain); gst_pad_use_fixed_caps (pad); gst_element_add_pad (GST_ELEMENT (s), pad); - s->src = - gst_pad_new_from_template (gst_static_pad_template_get - (&src_pad_template), "src"); + s->src = gst_pad_new_from_static_template (&src_pad_template, "src"); gst_element_add_pad (GST_ELEMENT (s), s->src); } |
From: <ds@ke...> - 2010-12-01 02:44:34
|
Module: gst-plugins-bad Branch: master Commit: 4eee2dc95d4ae84462426e9487c2a70b07de01a7 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=4eee2dc95d4ae84462426e9487c2a70b07de01a7 Author: David Schleef <ds@...> Date: Tue Nov 30 18:43:24 2010 -0800 vp8enc: Readd setting of granulepos Revert parts of last patch that removed setting of granulepos. oggmux still requires correct granulepos in incoming packet. --- ext/vp8/gstvp8enc.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/ext/vp8/gstvp8enc.c b/ext/vp8/gstvp8enc.c index 1253a39..b705102 100644 --- a/ext/vp8/gstvp8enc.c +++ b/ext/vp8/gstvp8enc.c @@ -961,6 +961,13 @@ gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, encoder->keyframe_distance++; } + GST_BUFFER_OFFSET_END (buf) = + _to_granulepos (frame->presentation_frame_number + 1, 0, + encoder->keyframe_distance); + GST_BUFFER_OFFSET (buf) = + gst_util_uint64_scale (frame->presentation_frame_number + 1, + GST_SECOND * state->fps_d, state->fps_n); + ret = gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); if (ret != GST_FLOW_OK) { GST_WARNING_OBJECT (encoder, "flow error %d", ret); |
From: <ds@ke...> - 2010-12-01 02:34:59
|
Module: gst-plugins-bad Branch: master Commit: 01574dc012495522170a97c1902ca18e6038785e URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=01574dc012495522170a97c1902ca18e6038785e Author: David Schleef <ds@...> Date: Mon Nov 29 20:21:31 2010 -0800 vp8enc: Don't override timestamps set by base class Because the base class does it correctly. Fixes: #635720, #625558. --- ext/vp8/gstvp8enc.c | 20 -------------------- 1 files changed, 0 insertions(+), 20 deletions(-) diff --git a/ext/vp8/gstvp8enc.c b/ext/vp8/gstvp8enc.c index 3121623..1253a39 100644 --- a/ext/vp8/gstvp8enc.c +++ b/ext/vp8/gstvp8enc.c @@ -934,10 +934,6 @@ gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, encoder->keyframe_distance++; } - GST_BUFFER_TIMESTAMP (buf) = gst_video_state_get_timestamp (state, - &GST_BASE_VIDEO_CODEC (base_video_encoder)->segment, - frame->presentation_frame_number); - GST_BUFFER_DURATION (buf) = 0; GST_BUFFER_OFFSET_END (buf) = _to_granulepos (frame->presentation_frame_number + 1, inv_count, encoder->keyframe_distance); @@ -965,22 +961,6 @@ gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, encoder->keyframe_distance++; } - GST_BUFFER_TIMESTAMP (buf) = gst_video_state_get_timestamp (state, - &GST_BASE_VIDEO_CODEC (base_video_encoder)->segment, - frame->presentation_frame_number); - GST_BUFFER_DURATION (buf) = - gst_video_state_get_timestamp (state, - &GST_BASE_VIDEO_CODEC (base_video_encoder)->segment, - frame->presentation_frame_number + 1) - GST_BUFFER_TIMESTAMP (buf); - GST_BUFFER_OFFSET_END (buf) = - _to_granulepos (frame->presentation_frame_number + 1, 0, - encoder->keyframe_distance); - GST_BUFFER_OFFSET (buf) = - gst_util_uint64_scale (frame->presentation_frame_number + 1, - GST_SECOND * state->fps_d, state->fps_n); - - gst_buffer_set_caps (buf, GST_BASE_VIDEO_CODEC (base_video_encoder)->caps); - ret = gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); if (ret != GST_FLOW_OK) { GST_WARNING_OBJECT (encoder, "flow error %d", ret); |
From: <ds@ke...> - 2010-12-01 01:29:24
|
Module: gst-plugins-good Branch: master Commit: b27d93a84a3f7c2474c91479a5554de0fa1b1a29 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=b27d93a84a3f7c2474c91479a5554de0fa1b1a29 Author: David Schleef <ds@...> Date: Tue Nov 30 15:28:50 2010 -0800 deinterlace: analyse RFF fields in correct order Code was repeating the second field, not the first. Fixes: #636179. --- gst/deinterlace/gstdeinterlace.c | 21 ++++++++++++--------- 1 files changed, 12 insertions(+), 9 deletions(-) diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index d27c851..7d235e4 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -840,22 +840,25 @@ gst_deinterlace_push_history (GstDeinterlace * self, GstBuffer * buffer) timestamp = GST_BUFFER_TIMESTAMP (buffer); GST_BUFFER_TIMESTAMP (field1) = timestamp; GST_BUFFER_TIMESTAMP (field2) = timestamp + self->field_duration; - if (repeated) - GST_BUFFER_TIMESTAMP (field2) += self->field_duration; if (repeated) { - self->field_history[0].buf = field2; - self->field_history[0].flags = field2_flags; - self->field_history[1].buf = gst_buffer_ref (field1); - GST_BUFFER_TIMESTAMP (self->field_history[1].buf) += self->field_duration; - self->field_history[1].flags = field1_flags; self->field_history[2].buf = field1; self->field_history[2].flags = field1_flags; + + self->field_history[1].buf = field2; + self->field_history[1].flags = field2_flags; + + self->field_history[0].buf = + gst_buffer_make_metadata_writable (gst_buffer_ref (field1)); + GST_BUFFER_TIMESTAMP (self->field_history[0].buf) += + 2 * self->field_duration; + self->field_history[0].flags = field1_flags; } else if (!onefield) { - self->field_history[0].buf = field2; - self->field_history[0].flags = field2_flags; self->field_history[1].buf = field1; self->field_history[1].flags = field1_flags; + + self->field_history[0].buf = field2; + self->field_history[0].flags = field2_flags; } else { /* onefield */ self->field_history[0].buf = field1; self->field_history[0].flags = field1_flags; |