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: <tp...@ke...> - 2011-01-25 10:09:44
|
Module: www Branch: master Commit: 41ed5613e0bcab4d279a0382c17ccbec930b42b6 URL: http://cgit.freedesktop.org/gstreamer/www/commit/?id=41ed5613e0bcab4d279a0382c17ccbec930b42b6 Author: Tim-Philipp Müller <tim...@co...> Date: Tue Jan 25 10:07:16 2011 +0000 entities.gst: define qt-gstreamer-stable entity now that release is out It's used in the modules section. --- src/htdocs/entities.gst | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/htdocs/entities.gst b/src/htdocs/entities.gst index 369f067..463cfb3 100644 --- a/src/htdocs/entities.gst +++ b/src/htdocs/entities.gst @@ -12,7 +12,7 @@ <!ENTITY gst-rtsp-server-version-stable "0.10.8"> <!ENTITY gnonlin-version-stable "0.10.17"> <!ENTITY gst-editing-services-version-stable "0.10.1"> -<!-- <!ENTITY qt-gstreamer-version-stable "0.10.1"> --> +<!ENTITY qt-gstreamer-version-stable "0.10.1"> <!ENTITY gst-version-devel "git master"> <!ENTITY gst-plugins-base-version-devel "git master"> |
|
From: <tp...@ke...> - 2011-01-25 09:36:36
|
Module: www Branch: master Commit: 14f9eb26adbe0c0b7757cb9120bd1b0aa0901689 URL: http://cgit.freedesktop.org/gstreamer/www/commit/?id=14f9eb26adbe0c0b7757cb9120bd1b0aa0901689 Author: Tim-Philipp Müller <tim...@co...> Date: Tue Jan 25 09:35:53 2011 +0000 Add .htaccess that rewrites www.gstreamer.net URIs to gstreamer.freedesktop.org --- src/htdocs/.htaccess | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/htdocs/.htaccess b/src/htdocs/.htaccess new file mode 100644 index 0000000..d6e18d2 --- /dev/null +++ b/src/htdocs/.htaccess @@ -0,0 +1,6 @@ +Options +FollowSymLinks + +RewriteEngine On + +RewriteCond %{HTTP_HOST} ^(www\.)?gstreamer\.net$ [NC] +RewriteRule .* http://gstreamer.freedesktop.org%{REQUEST_URI} [R=301,L] |
|
From: <thi...@ke...> - 2011-01-25 02:56:53
|
Module: gst-plugins-bad Branch: master Commit: a875342c54c470c75e53f9a30b810b7af859813e URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a875342c54c470c75e53f9a30b810b7af859813e Author: Thiago Santos <thi...@co...> Date: Mon Jan 24 23:32:30 2011 -0300 rsvgoverlay: Do not segfault on unexistent files When passing an unexistent file to rsvgoverlay it would crash because the svg loading would fail without setting an error. This patch makes it check if the handle was actually created and logs an error in case it didn't. Maybe it should post an error to the bus, but the previous error handling didn't, so I just followed the same logic. --- ext/rsvg/gstrsvgoverlay.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ext/rsvg/gstrsvgoverlay.c b/ext/rsvg/gstrsvgoverlay.c index 60fd167..2a5bdc1 100644 --- a/ext/rsvg/gstrsvgoverlay.c +++ b/ext/rsvg/gstrsvgoverlay.c @@ -126,10 +126,14 @@ gst_rsvg_overlay_set_svg_data (GstRsvgOverlay * overlay, const gchar * data, else overlay->handle = rsvg_handle_new_from_data ((guint8 *) data, size, &error); - if (error) { - GST_ERROR_OBJECT (overlay, "Cannot read SVG data: %s\n%s", - error->message, data); - g_error_free (error); + if (error || overlay->handle == NULL) { + if (error) { + GST_ERROR_OBJECT (overlay, "Cannot read SVG data: %s\n%s", + error->message, data); + g_error_free (error); + } else { + GST_ERROR_OBJECT (overlay, "Cannot read SVG data: %s", data); + } } else { /* Get SVG dimension. */ RsvgDimensionData svg_dimension; |
|
From: <thi...@ke...> - 2011-01-24 21:52:59
|
Module: gst-plugins-bad Branch: master Commit: 97789fa5bcb9ed48ca2aaacbc7e5ee7da84b8e99 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=97789fa5bcb9ed48ca2aaacbc7e5ee7da84b8e99 Author: Thiago Santos <thi...@co...> Date: Mon Jan 24 18:37:12 2011 -0300 examples: camerabin: add timing printing for preview image Measure and print the time taken to generate preview image. And fix a typo --- tests/examples/camerabin/gst-camerabin-test.c | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/examples/camerabin/gst-camerabin-test.c b/tests/examples/camerabin/gst-camerabin-test.c index ad8e6d2..6286b25 100644 --- a/tests/examples/camerabin/gst-camerabin-test.c +++ b/tests/examples/camerabin/gst-camerabin-test.c @@ -183,6 +183,8 @@ static gchar *preview_caps_name = NULL; static Display *display = NULL; static Window window = 0; +GTimer *timer = NULL; + /* * Prototypes */ @@ -266,14 +268,14 @@ sync_bus_callback (GstBus * bus, GstMessage * message, gpointer data) size = GST_BUFFER_SIZE (buf); preview_filename = g_strdup_printf ("test_vga.rgb"); caps_string = gst_caps_to_string (GST_BUFFER_CAPS (buf)); - g_print ("writing buffer to %s, buffer caps: %s\n", - preview_filename, caps_string); + g_print ("writing buffer to %s, elapsed: %.2fs, buffer caps: %s\n", + preview_filename, g_timer_elapsed (timer, NULL), caps_string); g_free (caps_string); f = g_fopen (preview_filename, "w"); if (f) { written = fwrite (data_buf, size, 1, f); if (!written) { - g_print ("errro writing file\n"); + g_print ("error writing file\n"); } fclose (f); } else { @@ -668,6 +670,7 @@ run_pipeline (gpointer user_data) g_object_set (camera_bin, "zoom", zoom / 100.0f, NULL); capture_count++; + g_timer_start (timer); g_signal_emit_by_name (camera_bin, "capture-start", 0); @@ -808,6 +811,8 @@ main (int argc, char *argv[]) if (filename->len == 0) filename = g_string_append (filename, "."); + timer = g_timer_new (); + /* init */ if (setup_pipeline ()) { loop = g_main_loop_new (NULL, FALSE); @@ -830,6 +835,7 @@ main (int argc, char *argv[]) g_free (src_csp); g_free (src_format); g_free (target_times); + g_timer_destroy (timer); if (window) XDestroyWindow (display, window); |
|
From: <thi...@ke...> - 2011-01-24 21:52:59
|
Module: gst-plugins-bad Branch: master Commit: 25062fc384635ac0a2457406c140518dc84802c3 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=25062fc384635ac0a2457406c140518dc84802c3 Author: Thiago Santos <thi...@co...> Date: Mon Jan 24 18:36:58 2011 -0300 wrappercamerabinsrc: Remove unused macro --- gst/camerabin2/gstwrappercamerabinsrc.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index faac60b..afcd951 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -42,7 +42,6 @@ enum PROP_PREVIEW_CAPS }; -#define CAMERABIN_DEFAULT_VF_CAPS "video/x-raw-yuv,format=(fourcc)I420" #define DEFAULT_POST_PREVIEWS TRUE /* Using "bilinear" as default zoom method */ |
|
From: <mn...@ke...> - 2011-01-24 21:36:13
|
Module: gst-plugins-good Branch: master Commit: 9f7570f132fa3bd38a2c5ae3ef5b5d7071fc382a URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f7570f132fa3bd38a2c5ae3ef5b5d7071fc382a Author: Mark Nauwelaerts <mar...@co...> Date: Mon Jan 10 12:34:22 2011 +0100 qtdemux: support some more mpeg-4 fourcc variants --- gst/qtdemux/qtdemux.c | 14 +++++++++++--- gst/qtdemux/qtdemux_fourcc.h | 2 ++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 209f9e2..2076ba9 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -4689,12 +4689,15 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer, } case FOURCC_mp4v: case FOURCC_MP4V: + case FOURCC_fmp4: + case FOURCC_FMP4: { const guint8 *buf; guint32 version; int tlen; - GST_DEBUG_OBJECT (qtdemux, "parsing in mp4v"); + GST_DEBUG_OBJECT (qtdemux, "parsing in %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (fourcc)); version = QT_UINT32 (buffer + 16); GST_DEBUG_OBJECT (qtdemux, "version %08x", version); if (1 || version == 0x00000000) { @@ -6439,13 +6442,17 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) } case FOURCC_mp4v: case FOURCC_MP4V: + case FOURCC_fmp4: + case FOURCC_FMP4: { GNode *glbl; - GST_DEBUG_OBJECT (qtdemux, "found mp4v"); + GST_DEBUG_OBJECT (qtdemux, "found %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (fourcc)); /* codec data might be in glbl extension atom */ - glbl = qtdemux_tree_get_child_by_type (mp4v, FOURCC_glbl); + glbl = mp4v ? + qtdemux_tree_get_child_by_type (mp4v, FOURCC_glbl) : NULL; if (glbl) { guint8 *data; GstBuffer *buf; @@ -6463,6 +6470,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) gst_buffer_unref (buf); } } + break; } case FOURCC_mjp2: { diff --git a/gst/qtdemux/qtdemux_fourcc.h b/gst/qtdemux/qtdemux_fourcc.h index d7875cc..29ad155 100644 --- a/gst/qtdemux/qtdemux_fourcc.h +++ b/gst/qtdemux/qtdemux_fourcc.h @@ -75,6 +75,8 @@ G_BEGIN_DECLS #define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a') #define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v') #define FOURCC_MP4V GST_MAKE_FOURCC('M','P','4','V') +#define FOURCC_fmp4 GST_MAKE_FOURCC('f','m','p','4') +#define FOURCC_FMP4 GST_MAKE_FOURCC('F','M','P','4') #define FOURCC_glbl GST_MAKE_FOURCC('g','l','b','l') #define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e') #define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l') |
|
From: <mn...@ke...> - 2011-01-24 21:36:11
|
Module: gst-plugins-good Branch: master Commit: 68fc03fd76059c525cdb287ff51170737febbb52 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=68fc03fd76059c525cdb287ff51170737febbb52 Author: Mark Nauwelaerts <mar...@co...> Date: Tue Jan 18 14:48:04 2011 +0100 matroskademux: pull mode should always report seekable ... as it no longer requires an index, but can seek by scanning as well. --- gst/matroska/matroska-demux.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index 7bca5d1..4541b44 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -2071,7 +2071,7 @@ gst_matroska_demux_query (GstMatroskaDemux * demux, GstPad * pad, /* assuming we'll be able to get an index ... */ seekable = demux->seekable; } else { - seekable = ! !demux->index; + seekable = TRUE; } gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, |
|
From: <mn...@ke...> - 2011-01-24 21:36:11
|
Module: gst-plugins-good Branch: master Commit: 662ec520ae6a3f411741695a546193f454ce3dc6 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=662ec520ae6a3f411741695a546193f454ce3dc6 Author: Mark Nauwelaerts <mar...@co...> Date: Mon Jan 10 12:34:03 2011 +0100 qtdemux: simplify retrieving stsd child entry atom --- gst/qtdemux/qtdemux.c | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-) diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 01701a2..209f9e2 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -6328,13 +6328,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) esds = NULL; pasp = NULL; - mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_mp4v); - if (!mp4v) - mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_MP4V); - /* H264 is MPEG-4 after all, - * and qt seems to put MPEG-4 stuff in there as well */ - if (!mp4v) - mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_avc1); + /* pick 'the' stsd child */ + mp4v = qtdemux_tree_get_child_by_type (stsd, fourcc); if (mp4v) { esds = qtdemux_tree_get_child_by_type (mp4v, FOURCC_esds); pasp = qtdemux_tree_get_child_by_type (mp4v, FOURCC_pasp); |
|
From: <thi...@ke...> - 2011-01-24 21:16:57
|
Module: gst-plugins-bad Branch: master Commit: 10830c9544b4856fc39497f84df818662946274d URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=10830c9544b4856fc39497f84df818662946274d Author: Lasse Laukkanen <las...@di...> Date: Wed Jan 12 16:26:19 2011 +0200 examples: camerabin: Don't set default values for GstPhotography interface settings Don't set any default values for source element GstPhotography interface settings, source elements should have sane defaults themselves. Also, setting scene-mode is tricky as it is a superset of other GstPhotography settings. This might cause problem with defaults e.g. setting scene-mode to 'night' may configure flash-mode as 'on' by definition, and after that we don't want to override this flash-mode setting with gst-camerabin-test default value. Moreover, user needs have an option to set scene mode first and then force some individual setting to a different value from the scene-mode definition. https://bugzilla.gnome.org/show_bug.cgi?id=639841 --- tests/examples/camerabin/gst-camerabin-test.c | 71 ++++++++++++++++--------- 1 files changed, 46 insertions(+), 25 deletions(-) diff --git a/tests/examples/camerabin/gst-camerabin-test.c b/tests/examples/camerabin/gst-camerabin-test.c index 6ebd1e2..ad8e6d2 100644 --- a/tests/examples/camerabin/gst-camerabin-test.c +++ b/tests/examples/camerabin/gst-camerabin-test.c @@ -136,15 +136,6 @@ static gint view_framerate_num = 2825; static gint view_framerate_den = 100; static gboolean no_xwindow = FALSE; -/* photography interface command line options */ -static gfloat ev_compensation = 0.0; -static gint aperture = 0; -static gint flash_mode = 0; -static gint scene_mode = 6; -static gint64 exposure = 0; -static gint iso_speed = 0; -static gint wb_mode = 0; -static gint color_mode = 0; static gint mode = 1; static gint flags = 0x4f; static gboolean mute = FALSE; @@ -154,6 +145,24 @@ static gint capture_time = 10; static gint capture_count = 0; static gint capture_total = 1; +/* photography interface command line options */ +#define EV_COMPENSATION_NONE -G_MAXFLOAT +#define APERTURE_NONE -G_MAXINT +#define FLASH_MODE_NONE -G_MAXINT +#define SCENE_MODE_NONE -G_MAXINT +#define EXPOSURE_NONE -G_MAXINT64 +#define ISO_SPEED_NONE -G_MAXINT +#define WHITE_BALANCE_MODE_NONE -G_MAXINT +#define COLOR_TONE_MODE_NONE -G_MAXINT +static gfloat ev_compensation = EV_COMPENSATION_NONE; +static gint aperture = APERTURE_NONE; +static gint flash_mode = FLASH_MODE_NONE; +static gint scene_mode = SCENE_MODE_NONE; +static gint64 exposure = EXPOSURE_NONE; +static gint iso_speed = ISO_SPEED_NONE; +static gint wb_mode = WHITE_BALANCE_MODE_NONE; +static gint color_mode = COLOR_TONE_MODE_NONE; + /* audio capsfilter options */ static gint audio_bitrate = 128000; static gint audio_samplerate = 48000; @@ -634,14 +643,24 @@ run_pipeline (gpointer user_data) if (video_source) { if (GST_IS_ELEMENT (video_source) && gst_element_implements_interface (video_source, GST_TYPE_PHOTOGRAPHY)) { - g_object_set (video_source, "ev-compensation", ev_compensation, NULL); - g_object_set (video_source, "aperture", aperture, NULL); - g_object_set (video_source, "flash-mode", flash_mode, NULL); - g_object_set (video_source, "scene-mode", scene_mode, NULL); - g_object_set (video_source, "exposure", exposure, NULL); - g_object_set (video_source, "iso-speed", iso_speed, NULL); - g_object_set (video_source, "white-balance-mode", wb_mode, NULL); - g_object_set (video_source, "colour-tone-mode", color_mode, NULL); + /* Set GstPhotography interface options. If option not given as + command-line parameter use default of the source element. */ + if (scene_mode != SCENE_MODE_NONE) + g_object_set (video_source, "scene-mode", scene_mode, NULL); + if (ev_compensation != EV_COMPENSATION_NONE) + g_object_set (video_source, "ev-compensation", ev_compensation, NULL); + if (aperture != APERTURE_NONE) + g_object_set (video_source, "aperture", aperture, NULL); + if (flash_mode != FLASH_MODE_NONE) + g_object_set (video_source, "flash-mode", flash_mode, NULL); + if (exposure != EXPOSURE_NONE) + g_object_set (video_source, "exposure", exposure, NULL); + if (iso_speed != ISO_SPEED_NONE) + g_object_set (video_source, "iso-speed", iso_speed, NULL); + if (wb_mode != WHITE_BALANCE_MODE_NONE) + g_object_set (video_source, "white-balance-mode", wb_mode, NULL); + if (color_mode != COLOR_TONE_MODE_NONE) + g_object_set (video_source, "colour-tone-mode", color_mode, NULL); } g_object_unref (video_source); } @@ -669,27 +688,29 @@ main (int argc, char *argv[]) GOptionEntry options[] = { {"ev-compensation", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_STRING, &ev_option, - "EV compensation (-2.5..2.5, default = 0)", NULL}, + "EV compensation for source element GstPhotography interface", NULL}, {"aperture", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &aperture, - "Aperture (size of lens opening, default = 0 (auto))", NULL}, + "Aperture (size of lens opening) for source element GstPhotography interface", + NULL}, {"flash-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &flash_mode, - "Flash mode (default = 0 (auto))", NULL}, + "Flash mode for source element GstPhotography interface", NULL}, {"scene-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &scene_mode, - "Scene mode (default = 6 (auto))", NULL}, + "Scene mode for source element GstPhotography interface", NULL}, {"exposure", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT64, &exposure, - "Exposure (default = 0 (auto))", NULL}, + "Exposure time (in ms) for source element GstPhotography interface", + NULL}, {"iso-speed", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &iso_speed, - "ISO speed (default = 0 (auto))", NULL}, + "ISO speed for source element GstPhotography interface", NULL}, {"white-balance-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &wb_mode, - "White balance mode (default = 0 (auto))", NULL}, + "White balance mode for source element GstPhotography interface", NULL}, {"colour-tone-mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &color_mode, - "Colour tone mode (default = 0 (auto))", NULL}, + "Colour tone mode for source element GstPhotography interface", NULL}, {"directory", '\0', 0, G_OPTION_ARG_STRING, &fn_option, "Directory for capture file(s) (default is current directory)", NULL}, {"mode", '\0', G_OPTION_FLAG_OPTIONAL_ARG, G_OPTION_ARG_INT, &mode, |
|
From: <thi...@ke...> - 2011-01-24 21:16:56
|
Module: gst-plugins-bad Branch: master Commit: a791f5070cdc1b29c4c0415c2c74cf8d6d5ced65 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a791f5070cdc1b29c4c0415c2c74cf8d6d5ced65 Author: Thiago Santos <thi...@co...> Date: Mon Jan 24 17:46:49 2011 -0300 wrappercamerabinsrc: Check the start time of buffers Be careful when trying to create a newsegment event to avoid start times of -1 from invalid buffer timestamps --- gst/camerabin2/gstwrappercamerabinsrc.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index 9437b9a..faac60b 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -217,10 +217,15 @@ gst_wrapper_camera_bin_src_vidsrc_probe (GstPad * pad, GstBuffer * buffer, if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_DONE) { /* NOP */ } else if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_STARTING) { + gint64 start = 0; + + if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buffer))) + start = GST_BUFFER_TIMESTAMP (buffer); + /* send the newseg */ GST_DEBUG_OBJECT (self, "Starting video recording, pushing newsegment"); gst_pad_push_event (pad, gst_event_new_new_segment (FALSE, 1.0, - GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (buffer), -1, 0)); + GST_FORMAT_TIME, start, -1, 0)); self->video_rec_status = GST_VIDEO_RECORDING_STATUS_RUNNING; /* post preview */ |
|
From: <sl...@ke...> - 2011-01-24 19:01:36
|
Module: gst-plugins-base Branch: master Commit: d144f7a3a56edd1588d094b7c7ef85eddc695b80 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=d144f7a3a56edd1588d094b7c7ef85eddc695b80 Author: Vincent Penquerc'h <vin...@co...> Date: Fri Jan 21 14:56:28 2011 +0000 oggmux: cleanup Remove a pointless string concatentation, and fix an off-by-one in packetno in a log. https://bugzilla.gnome.org/show_bug.cgi?id=640189 --- ext/ogg/gstoggmux.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c index bab9442..11a6792 100644 --- a/ext/ogg/gstoggmux.c +++ b/ext/ogg/gstoggmux.c @@ -781,7 +781,7 @@ gst_ogg_mux_queue_pads (GstOggMux * ogg_mux) buf = NULL; } else { GST_DEBUG_OBJECT (ogg_mux, - "got data buffer in control state, switching " "to data mode"); + "got data buffer in control state, switching to data mode"); /* this is a data buffer so switch to data state */ pad->state = GST_OGG_PAD_STATE_DATA; } @@ -1106,7 +1106,7 @@ gst_ogg_mux_send_headers (GstOggMux * mux) if (hwalk == NULL) { GST_LOG_OBJECT (mux, "flushing page as packet %" G_GUINT64_FORMAT " is first or " - "last packet", pad->packetno); + "last packet", packet.packetno); while (ogg_stream_flush (&pad->stream, &page)) { GstBuffer *hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE); |
|
From: <sl...@ke...> - 2011-01-24 18:55:04
|
Module: gst-plugins-base Branch: master Commit: 7caf9e5e81ab9846918729b32e6e653fb80c6e14 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=7caf9e5e81ab9846918729b32e6e653fb80c6e14 Author: Vincent Penquerc'h <vin...@co...> Date: Mon Jan 24 11:45:21 2011 +0000 typefind: add detection for windows icon files to get them out of the way Some of them can otherwise be misdetected for MPEG audio. https://bugzilla.gnome.org/show_bug.cgi?id=620364 --- gst/typefind/gsttypefindfunctions.c | 44 +++++++++++++++++++++++++++++++++++ 1 files changed, 44 insertions(+), 0 deletions(-) diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c index 373df08..afdff15 100644 --- a/gst/typefind/gsttypefindfunctions.c +++ b/gst/typefind/gsttypefindfunctions.c @@ -3869,6 +3869,48 @@ xdgmime_typefind (GstTypeFind * find, gpointer user_data) } #endif /* USE_GIO */ +/*** Windows icon typefinder (to avoid false positives mostly) ***/ + +static void +windows_icon_typefind (GstTypeFind * find, gpointer user_data) +{ + guint8 *data; + gint64 datalen; + guint16 type, nimages; + gint32 size, offset; + + datalen = gst_type_find_get_length (find); + if ((data = gst_type_find_peek (find, 0, 6)) == NULL) + return; + + /* header - simple and not enough to rely on it alone */ + if (GST_READ_UINT16_LE (data) != 0) + return; + type = GST_READ_UINT16_LE (data + 2); + if (type != 1 && type != 2) + return; + nimages = GST_READ_UINT16_LE (data + 4); + if (nimages == 0) /* we can assume we can't have an empty image file ? */ + return; + + /* first image */ + if (data[6 + 3] != 0) + return; + if (type == 1) { + guint16 planes = GST_READ_UINT16_LE (data + 6 + 4); + if (planes > 1) + return; + } + size = GST_READ_UINT32_LE (data + 6 + 8); + offset = GST_READ_UINT32_LE (data + 6 + 12); + if (offset < 0 || size <= 0 || size >= datalen || offset >= datalen + || size + offset > datalen) + return; + + gst_type_find_suggest_simple (find, GST_TYPE_FIND_NEARLY_CERTAIN, + "image/vnd.microsoft.icon", NULL); +} + /*** generic typefind for streams that have some data at a specific position***/ typedef struct { @@ -4332,6 +4374,8 @@ plugin_init (GstPlugin * plugin) GST_TYPE_FIND_LIKELY); TYPE_FIND_REGISTER_START_WITH (plugin, "application/x-yuv4mpeg", GST_RANK_SECONDARY, y4m_exts, "YUV4MPEG2 ", 10, GST_TYPE_FIND_LIKELY); + TYPE_FIND_REGISTER (plugin, "image/vnd.microsoft.icon", GST_RANK_MARGINAL, + windows_icon_typefind, NULL, NULL, NULL, NULL); #ifdef USE_GIO TYPE_FIND_REGISTER (plugin, "xdgmime-base", GST_RANK_MARGINAL, |
|
From: <sl...@ke...> - 2011-01-24 18:52:43
|
Module: gstreamer Branch: master Commit: eea239f47caa206b4bfdd879433fdbd018136cd2 URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=eea239f47caa206b4bfdd879433fdbd018136cd2 Author: Cai Yuanqing <ckj...@gm...> Date: Tue Jan 25 00:20:34 2011 +0800 design docs: fix 2 typos in part-MT-refcounting --- docs/design/part-MT-refcounting.txt | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/design/part-MT-refcounting.txt b/docs/design/part-MT-refcounting.txt index a6e6529..8886072 100644 --- a/docs/design/part-MT-refcounting.txt +++ b/docs/design/part-MT-refcounting.txt @@ -55,7 +55,7 @@ Shared data structures and writability: The advantage of this method is that no reader/writers locks are needed. all threads can concurrently read but writes happen locally on a new copy. In most cases _get_writable() can avoid a real copy because the calling method is the - only one holding a reference, wich makes read/writes very cheap. + only one holding a reference, which makes read/write very cheap. The drawback is that sometimes 1 needless copy can be done. This would happen when N threads call _get_writable() at the same time, all seeing that N @@ -193,7 +193,7 @@ Objects disposed it has to unset itself as the parent of the object before disposing itself, else the child object holds a parent pointer to invalid memory. - The responsibilites for an object that sinks other objects are summarised as: + The responsibilities for an object that sinks other objects are summarised as: - taking ownership of the object - call _object_set_parent() to set itself as the object parent, this call |
|
From: <sl...@ke...> - 2011-01-24 18:48:18
|
Module: gst-plugins-bad Branch: master Commit: c3d05d6006ed78d0d470ab7bbe9436fd43c60d5e URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c3d05d6006ed78d0d470ab7bbe9436fd43c60d5e Author: Vincent Penquerc'h <vin...@co...> Date: Tue Jan 11 15:52:03 2011 +0000 dvdspu: don't write clipped lines to the output buffer We may not increment the output pointer, but it'll still be just off the end of the allocated area. https://bugzilla.gnome.org/show_bug.cgi?id=602847 --- gst/dvdspu/gstspu-vobsub-render.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/gst/dvdspu/gstspu-vobsub-render.c b/gst/dvdspu/gstspu-vobsub-render.c index 30de0eb..0605408 100644 --- a/gst/dvdspu/gstspu-vobsub-render.c +++ b/gst/dvdspu/gstspu-vobsub-render.c @@ -515,10 +515,11 @@ gstspu_vobsub_render (GstDVDSpu * dvdspu, GstBuffer * buf) /* Render odd line */ state->vobsub.comp_last_x_ptr = state->vobsub.comp_last_x + 1; gstspu_vobsub_render_line (state, planes, &state->vobsub.cur_offsets[1]); - /* Blend the accumulated UV compositing buffers onto the output */ - gstspu_vobsub_blend_comp_buffers (state, planes); if (!clip) { + /* Blend the accumulated UV compositing buffers onto the output */ + gstspu_vobsub_blend_comp_buffers (state, planes); + /* Update all the output pointers */ planes[0] += state->Y_stride; planes[1] += state->UV_stride; |
|
From: <sl...@ke...> - 2011-01-24 18:45:18
|
Module: gst-plugins-ugly Branch: master Commit: 904d0b9b603adb2b9afad2a29e7351e6b737df15 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=904d0b9b603adb2b9afad2a29e7351e6b737df15 Author: Yang Xichuan <xic...@ti...> Date: Wed Jan 12 16:48:57 2011 +0800 xingmux: Use FALSE instead of 0 as return value for a function returning gboolean Fixes bug #639291. --- gst/mpegaudioparse/gstxingmux.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/gst/mpegaudioparse/gstxingmux.c b/gst/mpegaudioparse/gstxingmux.c index e3ee891..4f19d57 100644 --- a/gst/mpegaudioparse/gstxingmux.c +++ b/gst/mpegaudioparse/gstxingmux.c @@ -165,7 +165,7 @@ parse_header (guint32 header, guint * ret_size, guint * ret_spf, bitrate = (header >> 12) & 0xF; bitrate = mp3types_bitrates[lsf][layer - 1][bitrate] * 1000; if (bitrate == 0) - return 0; + return FALSE; samplerate = (header >> 10) & 0x3; samplerate = mp3types_freqs[lsf + mpg25][samplerate]; |
|
From: <sl...@ke...> - 2011-01-24 18:45:17
|
Module: gst-plugins-ugly Branch: master Commit: 7e6125fc8f1d077a13b874a4bf615e5ccde9eb19 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-ugly/commit/?id=7e6125fc8f1d077a13b874a4bf615e5ccde9eb19 Author: Vincent Penquerc'h <vin...@co...> Date: Thu Jan 6 18:29:06 2011 +0000 mpegstream: increase allowable gap between streams The new delay is three times as much as the old one, and just happens to let me properly decode my "Princess Mononoke" DVD, on which dvdreadsrc was chocking before at 5:11. While there, merge the constants used in two places into a define. https://bugzilla.gnome.org/show_bug.cgi?id=539708 --- gst/mpegstream/gstdvddemux.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/gst/mpegstream/gstdvddemux.c b/gst/mpegstream/gstdvddemux.c index 8faadea..4c53fbf 100644 --- a/gst/mpegstream/gstdvddemux.c +++ b/gst/mpegstream/gstdvddemux.c @@ -32,6 +32,8 @@ */ #define PTM_DISCONT_ADJUST (0.3 * GST_SECOND) #define INITIAL_END_PTM (-1) +#define MAX_GAP ( 3 * GST_SECOND / 2 ) +#define MAX_GAP_TOLERANCE ( GST_SECOND / 20 ) GST_DEBUG_CATEGORY_STATIC (gstdvddemux_debug); #define GST_CAT_DEFAULT (gstdvddemux_debug) @@ -439,8 +441,8 @@ gst_dvd_demux_handle_dvd_event (GstDVDDemux * dvd_demux, GstEvent * event) gst_element_no_more_pads (GST_ELEMENT (dvd_demux)); /* Keep video/audio/subtitle pads within 1/2 sec of the SCR */ - mpeg_demux->max_gap = GST_SECOND / 2; - mpeg_demux->max_gap_tolerance = GST_SECOND / 20; + mpeg_demux->max_gap = MAX_GAP; + mpeg_demux->max_gap_tolerance = MAX_GAP_TOLERANCE; } else { GST_DEBUG_OBJECT (dvd_demux, "dvddemux Forwarding DVD event %s to all pads", event_type); @@ -1179,8 +1181,8 @@ gst_dvd_demux_reset (GstDVDDemux * dvd_demux) dvd_demux->mpeg_version = 0; /* Reset max_gap handling */ - mpeg_demux->max_gap = 0.5 * GST_SECOND; - mpeg_demux->max_gap_tolerance = 0.05 * GST_SECOND; + mpeg_demux->max_gap = MAX_GAP; + mpeg_demux->max_gap_tolerance = MAX_GAP_TOLERANCE; } static void |
|
From: <sl...@ke...> - 2011-01-24 18:40:16
|
Module: gst-plugins-base Branch: master Commit: 7cfa18545c8ed361a8d89f308764e226d13e737f URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=7cfa18545c8ed361a8d89f308764e226d13e737f Author: Sreerenj Balachandran <sre...@no...> Date: Mon Jan 17 15:11:15 2011 +0200 oggdemux: Remove dead code --- ext/ogg/gstoggdemux.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index f25dbe3..c011665 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -1765,7 +1765,6 @@ gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain, /* first add the pads */ for (i = 0; i < chain->streams->len; i++) { GstOggPad *pad; - GstStructure *structure; pad = g_array_index (chain->streams, GstOggPad *, i); @@ -1783,8 +1782,6 @@ gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain, GST_DEBUG_OBJECT (ogg, "adding pad %" GST_PTR_FORMAT, pad); - structure = gst_caps_get_structure (GST_PAD_CAPS (pad), 0); - /* activate first */ gst_pad_set_active (GST_PAD_CAST (pad), TRUE); |
|
From: <sl...@ke...> - 2011-01-24 18:40:14
|
Module: gst-plugins-base Branch: master Commit: cb9607632f86a28ee7fe649efd279ca07edf4844 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=cb9607632f86a28ee7fe649efd279ca07edf4844 Author: Yang Xichuan <xic...@ti...> Date: Tue Jan 11 15:10:42 2011 +0800 oggparse: Make gst_ogg_parse_submit_buffer() safe By not passing zero-sized buffers to ogg_sync_buffer() and checking the return values of libogg functions. Fixes bug #639136. --- ext/ogg/gstoggparse.c | 30 +++++++++++++++++++++--------- 1 files changed, 21 insertions(+), 9 deletions(-) diff --git a/ext/ogg/gstoggparse.c b/ext/ogg/gstoggparse.c index e05c054..87eea1f 100644 --- a/ext/ogg/gstoggparse.c +++ b/ext/ogg/gstoggparse.c @@ -281,29 +281,41 @@ gst_ogg_parse_dispose (GObject * object) G_OBJECT_CLASS (parent_class)->dispose (object); } -/* submit the given buffer to the ogg sync. - * - * Returns the number of bytes submited. - */ -static gint +/* submit the given buffer to the ogg sync */ +static GstFlowReturn gst_ogg_parse_submit_buffer (GstOggParse * ogg, GstBuffer * buffer) { guint size; guint8 *data; gchar *oggbuffer; + GstFlowReturn ret = GST_FLOW_OK; size = GST_BUFFER_SIZE (buffer); data = GST_BUFFER_DATA (buffer); - /* We now have a buffer, submit it to the ogg sync layer */ + GST_DEBUG_OBJECT (ogg, "submitting %u bytes", size); + if (G_UNLIKELY (size == 0)) + goto done; + oggbuffer = ogg_sync_buffer (&ogg->sync, size); + if (G_UNLIKELY (oggbuffer == NULL)) { + GST_ELEMENT_ERROR (ogg, STREAM, DECODE, + (NULL), ("failed to get ogg sync buffer")); + ret = GST_FLOW_ERROR; + goto done; + } + memcpy (oggbuffer, data, size); - ogg_sync_wrote (&ogg->sync, size); + if (G_UNLIKELY (ogg_sync_wrote (&ogg->sync, size) < 0)) { + GST_ELEMENT_ERROR (ogg, STREAM, DECODE, + (NULL), ("failed to write %d bytes to the sync buffer", size)); + ret = GST_FLOW_ERROR; + } - /* We've copied all the neccesary data, so we're done with the buffer */ +done: gst_buffer_unref (buffer); - return size; + return ret; } static void |
|
From: <sl...@ke...> - 2011-01-24 18:40:14
|
Module: gst-plugins-base Branch: master Commit: 876bf233fb69903b393c8f5e02b49da4066eb333 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=876bf233fb69903b393c8f5e02b49da4066eb333 Author: Lane Brooks <di...@gm...> Date: Tue Jan 11 18:18:34 2011 +0100 textoverlay: Add support for vertical center alignment Fixes bug #639159. --- ext/pango/gsttextoverlay.c | 4 ++++ ext/pango/gsttextoverlay.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletions(-) diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c index 915a59c..c09de83 100644 --- a/ext/pango/gsttextoverlay.c +++ b/ext/pango/gsttextoverlay.c @@ -216,6 +216,7 @@ gst_text_overlay_valign_get_type (void) {GST_TEXT_OVERLAY_VALIGN_BOTTOM, "bottom", "bottom"}, {GST_TEXT_OVERLAY_VALIGN_TOP, "top", "top"}, {GST_TEXT_OVERLAY_VALIGN_POS, "position", "position"}, + {GST_TEXT_OVERLAY_VALIGN_CENTER, "center", "center"}, {0, NULL, NULL}, }; @@ -1798,6 +1799,9 @@ gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame) ypos = (gint) (overlay->height * overlay->ypos) - height / 2; ypos = CLAMP (ypos, 0, overlay->height - height); break; + case GST_TEXT_OVERLAY_VALIGN_CENTER: + ypos = (overlay->height - height) / 2; + break; default: ypos = overlay->ypad; break; diff --git a/ext/pango/gsttextoverlay.h b/ext/pango/gsttextoverlay.h index 5fddf3a..10dd947 100644 --- a/ext/pango/gsttextoverlay.h +++ b/ext/pango/gsttextoverlay.h @@ -35,7 +35,8 @@ typedef enum { GST_TEXT_OVERLAY_VALIGN_BASELINE, GST_TEXT_OVERLAY_VALIGN_BOTTOM, GST_TEXT_OVERLAY_VALIGN_TOP, - GST_TEXT_OVERLAY_VALIGN_POS + GST_TEXT_OVERLAY_VALIGN_POS, + GST_TEXT_OVERLAY_VALIGN_CENTER } GstTextOverlayVAlign; /** |
|
From: <thi...@ke...> - 2011-01-24 18:28:07
|
Module: gst-plugins-base Branch: master Commit: 254088344cf4588c32bb1ecabb94798ce0e229fe URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=254088344cf4588c32bb1ecabb94798ce0e229fe Author: Thiago Santos <thi...@co...> Date: Mon Jan 24 15:21:10 2011 -0300 tag: xmp: Move static variable to local function Variable was being written to and could cause crashes if multiple elements were parsing xmp at the same time. Moving it to local scope solves the problem. --- gst-libs/gst/tag/gstxmptag.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gst-libs/gst/tag/gstxmptag.c b/gst-libs/gst/tag/gstxmptag.c index 758b977..2697f40 100644 --- a/gst-libs/gst/tag/gstxmptag.c +++ b/gst-libs/gst/tag/gstxmptag.c @@ -957,15 +957,6 @@ struct _GstXmpNamespaceMap const gchar *original_ns; gchar *gstreamer_ns; }; -static GstXmpNamespaceMap ns_map[] = { - {"dc", NULL}, - {"exif", NULL}, - {"tiff", NULL}, - {"xap", NULL}, - {"photoshop", NULL}, - {"Iptc4xmpCore", NULL}, - {NULL, NULL} -}; /* parsing */ @@ -1153,6 +1144,16 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer) XmpTag *last_xmp_tag = NULL; GSList *pending_tags = NULL; + GstXmpNamespaceMap ns_map[] = { + {"dc", NULL}, + {"exif", NULL}, + {"tiff", NULL}, + {"xap", NULL}, + {"photoshop", NULL}, + {"Iptc4xmpCore", NULL}, + {NULL, NULL} + }; + xmp_tags_initialize (); g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL); |
|
From: <sl...@ke...> - 2011-01-24 18:16:33
|
Module: gstreamer Branch: master Commit: 3d858ccc18ef5c62df86f7c64c743544f53e82a9 URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=3d858ccc18ef5c62df86f7c64c743544f53e82a9 Author: Yang Xichuan <xic...@ti...> Date: Mon Jan 24 17:46:15 2011 +0800 design docs: part-gstbin.txt fix typo Signed-off-by: Yang Xichuan <xic...@ti...> --- docs/design/part-gstbin.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/docs/design/part-gstbin.txt b/docs/design/part-gstbin.txt index 6cd911f..0309cca 100644 --- a/docs/design/part-gstbin.txt +++ b/docs/design/part-gstbin.txt @@ -35,7 +35,7 @@ operations on itself to all of its children. This includes: - state changes - index get/set - - clock gst/set + - clock get/set The state change distribution is the most complex and is explained in part-states.txt. |
|
From: <sl...@ke...> - 2011-01-24 18:16:32
|
Module: gstreamer Branch: master Commit: 4b88f6048a374e38567b794cd6ef20707007242c URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=4b88f6048a374e38567b794cd6ef20707007242c Author: Vincent Penquerc'h <vin...@co...> Date: Wed Jan 19 15:48:26 2011 +0000 design docs: fix a few typos and a thinko --- docs/design/part-block.txt | 2 +- docs/design/part-bufferlist.txt | 2 +- docs/design/part-clocks.txt | 2 +- docs/design/part-element-sink.txt | 2 +- docs/design/part-overview.txt | 6 +++--- docs/design/part-preroll.txt | 2 +- docs/design/part-push-pull.txt | 2 +- docs/design/part-scheduling.txt | 6 +++--- docs/design/part-seeking.txt | 12 ++++++------ docs/design/part-segments.txt | 2 +- docs/design/part-states.txt | 8 ++++---- docs/design/part-streams.txt | 4 ++-- docs/design/part-synchronisation.txt | 2 +- 13 files changed, 26 insertions(+), 26 deletions(-) Diff: http://cgit.freedesktop.org/gstreamer/gstreamer/diff/?id=4b88f6048a374e38567b794cd6ef20707007242c |
|
From: <sl...@ke...> - 2011-01-24 18:16:32
|
Module: gstreamer Branch: master Commit: 8163e51bad606f0143b8460624222b6da005fce0 URL: http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=8163e51bad606f0143b8460624222b6da005fce0 Author: Sebastian Dröge <seb...@co...> Date: Tue Jan 11 17:43:57 2011 +0100 clock: API: Add function to re-init periodic GstClockIDs --- docs/gst/gstreamer-sections.txt | 1 + gst/gstclock.c | 26 +++++++++++++++++++++++++- gst/gstclock.h | 4 ++++ win32/common/libgstreamer.def | 1 + 4 files changed, 31 insertions(+), 1 deletions(-) diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 5d63c48..0693472 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -405,6 +405,7 @@ gst_clock_get_time gst_clock_new_single_shot_id gst_clock_new_periodic_id gst_clock_single_shot_id_reinit +gst_clock_periodic_id_reinit gst_clock_get_internal_time gst_clock_adjust_unlocked gst_clock_unadjust_unlocked diff --git a/gst/gstclock.c b/gst/gstclock.c index 9583396..dd71e19 100644 --- a/gst/gstclock.c +++ b/gst/gstclock.c @@ -209,7 +209,7 @@ gst_clock_entry_new (GstClock * clock, GstClockTime time, return (GstClockID) entry; } -/* WARNING : Does not modify the refoucnt +/* WARNING : Does not modify the refcount * WARNING : Do not use if a pending clock operation is happening on that entry */ static gboolean gst_clock_entry_reinit (GstClock * clock, GstClockEntry * entry, @@ -251,6 +251,30 @@ gst_clock_single_shot_id_reinit (GstClock * clock, GstClockID id, } /** + * gst_clock_periodic_id_reinit: + * @clock: a #GstClock + * @id: a #GstClockID + * @start_time: the requested start time + * @interval: the requested interval + * + * Reinitializes the provided periodic @id to the provided start time and + * interval. Does not modify the reference count. + * + * Returns: %TRUE if the GstClockID could be reinitialized to the provided + * @time, else %FALSE. + * + * Since: 0.10.33 + * + */ +gboolean +gst_clock_periodic_id_reinit (GstClock * clock, GstClockID id, + GstClockTime start_time, GstClockTime interval) +{ + return gst_clock_entry_reinit (clock, (GstClockEntry *) id, start_time, + interval, GST_CLOCK_ENTRY_PERIODIC); +} + +/** * gst_clock_id_ref: * @id: The #GstClockID to ref * diff --git a/gst/gstclock.h b/gst/gstclock.h index 2d11aee..cc1ed09 100644 --- a/gst/gstclock.h +++ b/gst/gstclock.h @@ -560,6 +560,10 @@ void gst_clock_id_unschedule (GstClockID id); gboolean gst_clock_single_shot_id_reinit (GstClock * clock, GstClockID id, GstClockTime time); +gboolean gst_clock_periodic_id_reinit (GstClock * clock, + GstClockID id, + GstClockTime start_time, + GstClockTime interval); G_END_DECLS diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def index b17fc97..eef40de 100644 --- a/win32/common/libgstreamer.def +++ b/win32/common/libgstreamer.def @@ -220,6 +220,7 @@ EXPORTS gst_clock_id_wait_async_full gst_clock_new_periodic_id gst_clock_new_single_shot_id + gst_clock_periodic_id_reinit gst_clock_return_get_type gst_clock_set_calibration gst_clock_set_master |
|
From: <thi...@ke...> - 2011-01-24 18:03:21
|
Module: gst-plugins-bad Branch: master Commit: a90f8210bbea2101be0baba0c4474f85a3d8f10b URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a90f8210bbea2101be0baba0c4474f85a3d8f10b Author: Thiago Santos <thi...@co...> Date: Tue Jan 11 10:29:48 2011 -0300 tests: camerabin2: Add preview image to tests Adds tests for checking that preview images are posted with the correct caps on tests --- tests/check/elements/camerabin2.c | 107 ++++++++++++++++++++++++++++++++++++- 1 files changed, 106 insertions(+), 1 deletions(-) diff --git a/tests/check/elements/camerabin2.c b/tests/check/elements/camerabin2.c index 5a6fc7c..93e3cf3 100644 --- a/tests/check/elements/camerabin2.c +++ b/tests/check/elements/camerabin2.c @@ -169,6 +169,9 @@ static GstElement *camera; static GMainLoop *main_loop; guint32 test_id = 0; +static GstBuffer *preview_buffer; +static GstCaps *preview_caps; + /* helper function for filenames */ static const gchar * make_test_file_name (const gchar * base_name, gint num) @@ -240,6 +243,18 @@ capture_bus_cb (GstBus * bus, GstMessage * message, gpointer data) GST_INFO ("image captured"); g_object_get (camera, "ready-for-capture", &ready, NULL); fail_if (!ready, "not ready for capture"); + } else if (st && gst_structure_has_name (st, + GST_BASE_CAMERA_SRC_PREVIEW_MESSAGE_NAME)) { + GstBuffer *buf; + const GValue *value; + + value = gst_structure_get_value (st, "buffer"); + fail_unless (value != NULL); + buf = gst_value_get_buffer (value); + + if (preview_buffer) + gst_buffer_unref (preview_buffer); + preview_buffer = gst_buffer_ref (buf); } break; } @@ -247,6 +262,16 @@ capture_bus_cb (GstBus * bus, GstMessage * message, gpointer data) } static void +check_preview_image (void) +{ + fail_unless (preview_buffer != NULL); + if (preview_caps) { + fail_unless (gst_caps_can_intersect (GST_BUFFER_CAPS (preview_buffer), + preview_caps)); + } +} + +static void setup_wrappercamerabinsrc_videotestsrc (void) { GstBus *bus; @@ -266,9 +291,13 @@ setup_wrappercamerabinsrc_videotestsrc (void) src = gst_element_factory_make ("wrappercamerabinsrc", NULL); testsrc = gst_element_factory_make ("videotestsrc", NULL); + preview_caps = gst_caps_new_simple ("video/x-raw-rgb", "width", G_TYPE_INT, + 320, "height", G_TYPE_INT, 240, NULL); + g_object_set (G_OBJECT (testsrc), "is-live", TRUE, "peer-alloc", FALSE, NULL); g_object_set (G_OBJECT (src), "video-src", testsrc, NULL); - g_object_set (G_OBJECT (camera), "camera-src", src, NULL); + g_object_set (G_OBJECT (camera), "camera-src", src, "preview-caps", + preview_caps, NULL); gst_object_unref (src); gst_object_unref (testsrc); @@ -291,6 +320,19 @@ teardown (void) if (camera) gst_check_teardown_element (camera); + camera = NULL; + + if (main_loop) + g_main_loop_unref (main_loop); + main_loop = NULL; + + if (preview_caps) + gst_caps_unref (preview_caps); + preview_caps = NULL; + + if (preview_buffer) + gst_buffer_unref (preview_buffer); + preview_buffer = NULL; GST_INFO ("done"); } @@ -405,6 +447,9 @@ GST_START_TEST (test_single_image_capture) g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); g_main_loop_run (main_loop); + /* check that we got a preview image */ + check_preview_image (); + gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (IMAGE_FILENAME, 0, NULL, 0, 0); } @@ -448,6 +493,8 @@ GST_START_TEST (test_multiple_image_captures) g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); g_main_loop_run (main_loop); + + check_preview_image (); } g_usleep (G_USEC_PER_SEC * 3); @@ -487,6 +534,8 @@ GST_START_TEST (test_single_video_recording) g_signal_emit_by_name (camera, "stop-capture", NULL); + check_preview_image (); + gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); check_file_validity (VIDEO_FILENAME, 0, NULL, 0, 0); @@ -535,6 +584,8 @@ GST_START_TEST (test_multiple_video_recordings) g_main_loop_run (main_loop); g_signal_emit_by_name (camera, "stop-capture", NULL); + check_preview_image (); + g_timeout_add_seconds (1, (GSourceFunc) g_main_loop_quit, main_loop); g_main_loop_run (main_loop); } @@ -578,6 +629,8 @@ GST_START_TEST (test_image_video_cycle) g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); g_main_loop_run (main_loop); + check_preview_image (); + /* now go to video */ g_object_set (camera, "mode", 2, NULL); g_signal_emit_by_name (camera, "start-capture", NULL); @@ -586,6 +639,8 @@ GST_START_TEST (test_image_video_cycle) g_main_loop_run (main_loop); g_signal_emit_by_name (camera, "stop-capture", NULL); + check_preview_image (); + /* wait for capture to finish */ g_usleep (G_USEC_PER_SEC); } @@ -600,6 +655,54 @@ GST_START_TEST (test_image_video_cycle) GST_END_TEST; + +GST_START_TEST (test_image_capture_previews) +{ + gint i; + gint widths[] = { 800, 640, 1280 }; + gint heights[] = { 600, 480, 1024 }; + + if (!camera) + return; + + /* set still image mode */ + g_object_set (camera, "mode", 1, + "location", make_test_file_name (IMAGE_FILENAME, -1), NULL); + + if (gst_element_set_state (GST_ELEMENT (camera), GST_STATE_PLAYING) == + GST_STATE_CHANGE_FAILURE) { + GST_WARNING ("setting camerabin to PLAYING failed"); + gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); + gst_object_unref (camera); + camera = NULL; + } + fail_unless (camera != NULL); + GST_INFO ("starting capture"); + + for (i = 0; i < 3; i++) { + GstCaps *caps; + + caps = gst_caps_new_simple ("video/x-raw-rgb", "width", G_TYPE_INT, + widths[i], "height", G_TYPE_INT, heights[i], NULL); + + g_object_set (camera, "preview-caps", caps, NULL); + gst_caps_replace (&preview_caps, caps); + gst_caps_unref (caps); + + g_signal_emit_by_name (camera, "start-capture", NULL); + + g_timeout_add_seconds (3, (GSourceFunc) g_main_loop_quit, main_loop); + g_main_loop_run (main_loop); + + check_preview_image (); + } + + gst_element_set_state (GST_ELEMENT (camera), GST_STATE_NULL); +} + +GST_END_TEST; + + GST_START_TEST (test_supported_caps) { GstCaps *padcaps = NULL; @@ -693,6 +796,8 @@ camerabin_suite (void) GST_WARNING ("Skipping image capture test because -good 0.10.27 is " "needed"); tcase_add_test (tc_basic, test_multiple_video_recordings); + + tcase_add_test (tc_basic, test_image_capture_previews); } end: |
|
From: <thi...@ke...> - 2011-01-24 18:03:21
|
Module: gst-plugins-bad Branch: master Commit: ccb1960a4208dcab514f1c9799642beb31951950 URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=ccb1960a4208dcab514f1c9799642beb31951950 Author: Thiago Santos <thi...@co...> Date: Tue Jan 11 09:12:24 2011 -0300 camerabin2: Add a property to select the encoding profile Adds a video-profile to allow selecting which encoding profile to use for video recordings --- gst/camerabin2/gstcamerabin2.c | 27 ++++++++++++++++++++++----- gst/camerabin2/gstcamerabin2.h | 3 ++- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/gst/camerabin2/gstcamerabin2.c b/gst/camerabin2/gstcamerabin2.c index a9810da..178f7cc 100644 --- a/gst/camerabin2/gstcamerabin2.c +++ b/gst/camerabin2/gstcamerabin2.c @@ -50,7 +50,6 @@ #endif #include <gst/basecamerabinsrc/gstbasecamerasrc.h> -#include <gst/pbutils/encoding-profile.h> #include "gstcamerabin2.h" GST_DEBUG_CATEGORY_STATIC (gst_camera_bin_debug); @@ -69,7 +68,8 @@ enum PROP_IMAGE_CAPTURE_CAPS, PROP_VIDEO_CAPTURE_CAPS, PROP_POST_PREVIEWS, - PROP_PREVIEW_CAPS + PROP_PREVIEW_CAPS, + PROP_VIDEO_ENCODING_PROFILE }; enum @@ -345,6 +345,12 @@ gst_camera_bin_class_init (GstCameraBinClass * klass) "The caps of the preview image to be posted", GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (object_class, PROP_VIDEO_ENCODING_PROFILE, + gst_param_spec_mini_object ("video-profile", "Video Profile", + "The GstEncodingProfile to use for video recording", + GST_TYPE_ENCODING_PROFILE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** * GstCameraBin::capture-start: * @camera: the camera bin element @@ -421,7 +427,7 @@ gst_camera_bin_create_elements (GstCameraBin * camera) camera->imagebin = gst_element_factory_make ("imagecapturebin", "imagebin"); g_object_set (camera->videosink, "async", FALSE, NULL); - { + if (camera->video_profile == NULL) { GstEncodingContainerProfile *prof; GstCaps *caps; @@ -437,9 +443,10 @@ gst_camera_bin_create_elements (GstCameraBin * camera) GST_WARNING_OBJECT (camera, "Failed to create encoding profiles"); } gst_caps_unref (caps); - g_object_set (camera->encodebin, "profile", prof, NULL); - gst_encoding_profile_unref (prof); + + camera->video_profile = (GstEncodingProfile *) prof; } + g_object_set (camera->encodebin, "profile", camera->video_profile, NULL); camera->videobin_queue = gst_element_factory_make ("queue", "videobin-queue"); @@ -672,6 +679,10 @@ gst_camera_bin_set_property (GObject * object, guint prop_id, "preview-caps")) g_object_set (camera->src, "preview-caps", camera->preview_caps, NULL); break; + case PROP_VIDEO_ENCODING_PROFILE: + camera->video_profile = + (GstEncodingProfile *) gst_value_dup_mini_object (value); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -754,6 +765,12 @@ gst_camera_bin_get_property (GObject * object, guint prop_id, if (camera->preview_caps) gst_value_set_caps (value, camera->preview_caps); break; + case PROP_VIDEO_ENCODING_PROFILE: + if (camera->video_profile) { + gst_value_set_mini_object (value, + (GstMiniObject *) camera->video_profile); + } + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; diff --git a/gst/camerabin2/gstcamerabin2.h b/gst/camerabin2/gstcamerabin2.h index 8802a55..8534674 100644 --- a/gst/camerabin2/gstcamerabin2.h +++ b/gst/camerabin2/gstcamerabin2.h @@ -20,6 +20,7 @@ #define _GST_CAMERA_BIN_H_ #include <gst/gst.h> +#include <gst/pbutils/encoding-profile.h> G_BEGIN_DECLS @@ -41,7 +42,6 @@ struct _GstCameraBin GstElement *user_src; gulong src_capture_notify_id; - //GstElement *videobin; GstElement *encodebin; GstElement *videosink; GstElement *videobin_queue; @@ -64,6 +64,7 @@ struct _GstCameraBin gchar *image_location; gboolean post_previews; GstCaps *preview_caps; + GstEncodingProfile *video_profile; gboolean elements_created; }; |