From 40273cf2d3bb9966d942f34735cf56537b5bed43 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 13:49:01 +0300 Subject: [PATCH 01/23] video.c: use g_assert_not_reached() for logical error here. This will help to detect them closer to the source if they ever happen. --- gst-libs/gst/video/video.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c index 1cceec5fd1..db61f54a8c 100644 --- a/gst-libs/gst/video/video.c +++ b/gst-libs/gst/video/video.c @@ -658,10 +658,10 @@ gst_video_format_new_caps_raw (GstVideoFormat format) blue_mask = GST_VIDEO_COMP1_MASK_15_INT; break; default: - return NULL; + g_assert_not_reached (); } } else if (bpp != 8) { - return NULL; + g_assert_not_reached (); } caps = gst_caps_new_simple ("video/x-raw-rgb", From 6e12954c6807b31281b97e7bd9be28398ff185e4 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 13:50:59 +0300 Subject: [PATCH 02/23] video.c: use a break and a final warning instead of early returns Use breaks for case branches instead of return 0. We don't expect these to happen anyway. Thus have a warning before the final return to make it easier to see when things go out of sync. --- gst-libs/gst/video/video.c | 44 ++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c index db61f54a8c..a419bd6745 100644 --- a/gst-libs/gst/video/video.c +++ b/gst-libs/gst/video/video.c @@ -1744,7 +1744,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) * (GST_ROUND_UP_2 (height) / 2); } - return 0; + break; case GST_VIDEO_FORMAT_YV12: /* same as I420, but components 1+2 swapped */ if (component == 0) return 0; @@ -1755,7 +1755,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) * (GST_ROUND_UP_2 (height) / 2); } - return 0; + break; case GST_VIDEO_FORMAT_YUY2: if (component == 0) return 0; @@ -1763,7 +1763,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 1; if (component == 2) return 3; - return 0; + break; case GST_VIDEO_FORMAT_YVYU: if (component == 0) return 0; @@ -1771,7 +1771,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 3; if (component == 2) return 1; - return 0; + break; case GST_VIDEO_FORMAT_UYVY: if (component == 0) return 1; @@ -1779,7 +1779,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 0; if (component == 2) return 2; - return 0; + break; case GST_VIDEO_FORMAT_AYUV: if (component == 0) return 1; @@ -1789,7 +1789,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 3; if (component == 3) return 0; - return 0; + break; case GST_VIDEO_FORMAT_RGBx: case GST_VIDEO_FORMAT_RGBA: if (component == 0) @@ -1800,7 +1800,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 2; if (component == 3) return 3; - return 0; + break; case GST_VIDEO_FORMAT_BGRx: case GST_VIDEO_FORMAT_BGRA: if (component == 0) @@ -1811,7 +1811,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 0; if (component == 3) return 3; - return 0; + break; case GST_VIDEO_FORMAT_xRGB: case GST_VIDEO_FORMAT_ARGB: if (component == 0) @@ -1822,7 +1822,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 3; if (component == 3) return 0; - return 0; + break; case GST_VIDEO_FORMAT_xBGR: case GST_VIDEO_FORMAT_ABGR: if (component == 0) @@ -1833,7 +1833,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 1; if (component == 3) return 0; - return 0; + break; case GST_VIDEO_FORMAT_RGB: case GST_VIDEO_FORMAT_v308: if (component == 0) @@ -1842,7 +1842,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 1; if (component == 2) return 2; - return 0; + break; case GST_VIDEO_FORMAT_BGR: if (component == 0) return 2; @@ -1850,7 +1850,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 1; if (component == 2) return 0; - return 0; + break; case GST_VIDEO_FORMAT_Y41B: if (component == 0) return 0; @@ -1859,7 +1859,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, if (component == 2) return (GST_ROUND_UP_4 (width) + (GST_ROUND_UP_16 (width) / 4)) * height; - return 0; + break; case GST_VIDEO_FORMAT_Y42B: if (component == 0) return 0; @@ -1867,7 +1867,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return GST_ROUND_UP_4 (width) * height; if (component == 2) return (GST_ROUND_UP_4 (width) + (GST_ROUND_UP_8 (width) / 2)) * height; - return 0; + break; case GST_VIDEO_FORMAT_Y444: return GST_ROUND_UP_4 (width) * height * component; case GST_VIDEO_FORMAT_v210: @@ -1881,7 +1881,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 2; if (component == 2) return 6; - return 0; + break; case GST_VIDEO_FORMAT_NV12: if (component == 0) return 0; @@ -1889,6 +1889,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height); if (component == 2) return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height) + 1; + break; case GST_VIDEO_FORMAT_NV21: if (component == 0) return 0; @@ -1896,6 +1897,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height) + 1; if (component == 2) return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height); + break; case GST_VIDEO_FORMAT_GRAY8: case GST_VIDEO_FORMAT_GRAY16_BE: case GST_VIDEO_FORMAT_GRAY16_LE: @@ -1920,6 +1922,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, 2 * GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) * (GST_ROUND_UP_2 (height) / 2); } + break; case GST_VIDEO_FORMAT_RGB8_PALETTED: return 0; case GST_VIDEO_FORMAT_YUV9: @@ -1932,7 +1935,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) / 4) * (GST_ROUND_UP_4 (height) / 4); } - return 0; + break; case GST_VIDEO_FORMAT_YVU9: if (component == 0) return 0; @@ -1943,7 +1946,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, } if (component == 2) return GST_ROUND_UP_4 (width) * height; - return 0; + break; case GST_VIDEO_FORMAT_IYU1: if (component == 0) return 1; @@ -1951,6 +1954,7 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 0; if (component == 2) return 4; + break; case GST_VIDEO_FORMAT_ARGB64: case GST_VIDEO_FORMAT_AYUV64: if (component == 0) @@ -1961,10 +1965,12 @@ gst_video_format_get_component_offset (GstVideoFormat format, return 6; if (component == 3) return 0; - return 0; + break; default: - return 0; + break; } + GST_WARNING ("unhandled format %d or component %d", format, component); + return 0; } /** From b91b12b6396a1c665fcf3e188b46a8416473accc Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 13:53:06 +0300 Subject: [PATCH 03/23] whitespace: trim trailing whitespace --- gst-libs/gst/video/video.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c index a419bd6745..c048c4fa73 100644 --- a/gst-libs/gst/video/video.c +++ b/gst-libs/gst/video/video.c @@ -31,7 +31,7 @@ * * * - * This library contains some helper functions and includes the + * This library contains some helper functions and includes the * videosink and videofilter base classes. * * @@ -53,7 +53,7 @@ static GstVideoFormat gst_video_format_from_rgb16_masks (int red_mask, * * A convenience function to retrieve a GValue holding the framerate * from the caps on a pad. - * + * * The pad needs to have negotiated caps containing a framerate property. * * Returns: NULL if the pad has no configured caps or the configured caps @@ -106,7 +106,7 @@ gst_video_frame_rate (GstPad * pad) * * Inspect the caps of the provided pad and retrieve the width and height of * the video frames it is configured for. - * + * * The pad needs to have negotiated caps containing width and height properties. * * Returns: TRUE if the width and height could be retrieved. @@ -158,13 +158,13 @@ gst_video_get_size (GstPad * pad, gint * width, gint * height) * @display_par_n: Numerator of the pixel aspect ratio of the display device * @display_par_d: Denominator of the pixel aspect ratio of the display device * - * Given the Pixel Aspect Ratio and size of an input video frame, and the - * pixel aspect ratio of the intended display device, calculates the actual + * Given the Pixel Aspect Ratio and size of an input video frame, and the + * pixel aspect ratio of the intended display device, calculates the actual * display ratio the video will be rendered with. * - * Returns: A boolean indicating success and a calculated Display Ratio in the - * dar_n and dar_d parameters. - * The return value is FALSE in the case of integer overflow or other error. + * Returns: A boolean indicating success and a calculated Display Ratio in the + * dar_n and dar_d parameters. + * The return value is FALSE in the case of integer overflow or other error. * * Since: 0.10.7 */ @@ -276,7 +276,7 @@ gst_video_parse_caps_color_matrix (GstCaps * caps) * halfway-sited vertically), "jpeg" for JPEG and Theora style * chroma siting (halfway-sited both horizontally and vertically). * Other chroma site values are possible, but uncommon. - * + * * When no chroma site is specified in the caps, it should be assumed * to be "mpeg2". * @@ -954,7 +954,7 @@ gst_video_format_to_fourcc (GstVideoFormat format) * @blue_mask: blue bit mask * * Converts red, green, blue bit masks into the corresponding - * #GstVideoFormat. + * #GstVideoFormat. * * Since: 0.10.16 * @@ -1193,7 +1193,7 @@ gst_video_format_is_gray (GstVideoFormat format) /** * gst_video_format_has_alpha: * @format: a #GstVideoFormat - * + * * Returns TRUE or FALSE depending on if the video format provides an * alpha channel. * @@ -1255,7 +1255,7 @@ gst_video_format_has_alpha (GstVideoFormat format) /** * gst_video_format_get_component_depth: * @format: a #GstVideoFormat - * + * * Returns the number of bits used to encode an individual pixel of * a given component. Typically this is 8, although higher and lower * values are possible for some formats. From 70a982e7ba7bd298ae12afbbaeeac983af9346d1 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 14:00:04 +0300 Subject: [PATCH 04/23] xmptag: an uint value can't be <0 --- gst-libs/gst/tag/gstxmptag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst-libs/gst/tag/gstxmptag.c b/gst-libs/gst/tag/gstxmptag.c index a85ccf47fb..3a331f6f04 100644 --- a/gst-libs/gst/tag/gstxmptag.c +++ b/gst-libs/gst/tag/gstxmptag.c @@ -844,7 +844,7 @@ deserialize_xmp_rating (XmpTag * xmptag, GstTagList * taglist, return; } - if (value < 0 || value > 100) { + if (value > 100) { GST_WARNING ("Unsupported Rating tag %u (should be from 0 to 100), " "ignoring", value); return; From f466c5e1cac122eb1c562161aebbe3956cb19775 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 14:01:29 +0300 Subject: [PATCH 05/23] xmptag: have the default branch as the last one --- gst-libs/gst/tag/gstxmptag.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst-libs/gst/tag/gstxmptag.c b/gst-libs/gst/tag/gstxmptag.c index 3a331f6f04..d91ab33ea2 100644 --- a/gst-libs/gst/tag/gstxmptag.c +++ b/gst-libs/gst/tag/gstxmptag.c @@ -162,10 +162,10 @@ xmp_tag_get_type_name (XmpTag * xmptag) switch (xmptag->type) { case GstXmpTagTypeSeq: return "rdf:Seq"; - default: - g_assert_not_reached (); case GstXmpTagTypeBag: return "rdf:Bag"; + default: + g_assert_not_reached (); } } From a2d622ab0322a4665c93a7bfa1b8d62cc97bdbc2 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 14:07:38 +0300 Subject: [PATCH 06/23] xmptag: remove late check We deref the pointer two lines before already and besides this internal function should not be called with this parameter=NULL. --- gst-libs/gst/tag/gstxmptag.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst-libs/gst/tag/gstxmptag.c b/gst-libs/gst/tag/gstxmptag.c index d91ab33ea2..920007ebbc 100644 --- a/gst-libs/gst/tag/gstxmptag.c +++ b/gst-libs/gst/tag/gstxmptag.c @@ -1073,7 +1073,7 @@ read_one_tag (GstTagList * list, XmpTag * xmptag, g_return_if_fail (tag != NULL); - if (xmptag && xmptag->deserialize) { + if (xmptag->deserialize) { xmptag->deserialize (xmptag, list, tag, xmptag->tag_name, v, pending_tags); return; } From 61032e7470c012fa055b0086b4e006d013ed434e Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 14:45:23 +0300 Subject: [PATCH 07/23] docs: update xmp api docs Add missing section. Add new section to main-sgml. Add missing function. --- docs/libs/gst-plugins-base-libs-docs.sgml | 1 + docs/libs/gst-plugins-base-libs-sections.txt | 22 +++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/libs/gst-plugins-base-libs-docs.sgml b/docs/libs/gst-plugins-base-libs-docs.sgml index 54df8dba20..0c60e22364 100644 --- a/docs/libs/gst-plugins-base-libs-docs.sgml +++ b/docs/libs/gst-plugins-base-libs-docs.sgml @@ -189,6 +189,7 @@ + diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index 15bd466856..3f9de325f9 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -1786,6 +1786,8 @@ gst_tag_list_add_id3_image gst/tag/tag.h gst_tag_list_from_xmp_buffer gst_tag_list_to_xmp_buffer +gst_tag_list_to_xmp_buffer_full +gst_tag_xmp_list_schemas @@ -1820,7 +1822,6 @@ gst_tag_demux_result_get_type
gsttaglanguagecodes gst/tag/tag.h - gst_tag_get_language_codes gst_tag_get_language_name gst_tag_get_language_code @@ -1829,6 +1830,25 @@ gst_tag_get_language_code_iso_639_2B gst_tag_get_language_code_iso_639_2T
+
+gsttagxmpwriter +gst_tag_xmp_writer_add_all_schemas +gst_tag_xmp_writer_add_schema +gst_tag_xmp_writer_has_schema +gst_tag_xmp_writer_remove_schema +gst_tag_xmp_writer_remove_all_schemas +gst_tag_xmp_writer_tag_list_to_xmp_buffer + +GstTagXmpWriter +GstTagXmpWriterInterface +GST_TYPE_TAG_XMP_WRITER +GST_TAG_XMP_WRITER +GST_TAG_XMP_WRITER_INTERFACE +GST_IS_TAG_XMP_WRITER +GST_IS_TAG_XMP_WRITER_INTERFACE +GST_TAG_XMP_WRITER_GET_INTERFACE +
+ # base utils
From d6ea8d5cb33dd86f82b02601dac46830386a7f79 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 14:53:26 +0300 Subject: [PATCH 08/23] docs: fix docs for new api Some parameters where wrong, first line missed the ':' and return docs where broken. --- gst-libs/gst/audio/gstaudioiec61937.c | 26 ++++++++++++++------------ gst-libs/gst/audio/gstaudioiec61937.h | 7 ------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/gst-libs/gst/audio/gstaudioiec61937.c b/gst-libs/gst/audio/gstaudioiec61937.c index caf150d2e8..9ad787b3d9 100644 --- a/gst-libs/gst/audio/gstaudioiec61937.c +++ b/gst-libs/gst/audio/gstaudioiec61937.c @@ -22,11 +22,11 @@ /** * SECTION:gstaudioiec61937 * @short_description: Utility functions for IEC 61937 payloading + * @since: 0.10.35 * * This module contains some helper functions for encapsulating various * audio formats in IEC 61937 headers and padding. * - * Since: 0.10.35 */ #ifdef HAVE_CONFIG_H @@ -60,12 +60,14 @@ caps_get_string_field (const GstCaps * caps, const gchar * field) } /** - * gst_audio_iec61937_frame_size - * @type: the type of data to be payloaded as a #GstBufferFormatType + * gst_audio_iec61937_frame_size: + * @spec: the ringbufer spec * - * Returns 0 if the given @type is not supported or cannot be payloaded, else - * returns the size of the buffer expected by gst_audio_iec61937_payload() for - * payloading @type. + * Calculated the size of the buffer expected by gst_audio_iec61937_payload() for + * payloading type from @spec. + * + * Returns: the size or 0 if the given @type is not supported or cannot be + * payloaded. * * Since: 0.10.35 */ @@ -128,19 +130,19 @@ gst_audio_iec61937_frame_size (const GstRingBufferSpec * spec) } /** - * gst_audio_iec61937_payload + * gst_audio_iec61937_payload: * @src: a buffer containing the data to payload * @src_n: size of @src in bytes * @dst: the destination buffer to store the payloaded contents in. Should not * overlap with @src * @dst_n: size of @dst in bytes - * @type: the type of data in @src + * @spec: the ringbufer spec for @src * - * Payloads @src in the form specified by IEC 61937 for @type and stores - * the result in @dst. @src must contain exactly one frame of data and the - * frame is not checked for errors. + * Payloads @src in the form specified by IEC 61937 for the type from @spec and + * stores the result in @dst. @src must contain exactly one frame of data and + * the frame is not checked for errors. * - * Returns: transfer-full: #TRUE if the payloading was successful, #FALSE + * Returns: transfer-full: %TRUE if the payloading was successful, %FALSE * otherwise. * * Since: 0.10.35 diff --git a/gst-libs/gst/audio/gstaudioiec61937.h b/gst-libs/gst/audio/gstaudioiec61937.h index 52da245870..b33297a8eb 100644 --- a/gst-libs/gst/audio/gstaudioiec61937.h +++ b/gst-libs/gst/audio/gstaudioiec61937.h @@ -18,13 +18,6 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ -/** - * SECTION:gstaudioiec61937 - * @short_description: Utility functions for IEC 61937 payloading - * - * This module contains some helper functions for encapsulating various - * audio formats in IEC 61937 headers and padding. - */ #ifndef __GST_AUDIO_IEC61937_H__ #define __GST_AUDIO_IEC61937_H__ From 762bb236fa0ccb9d9b4cf91416dcb9f92b36e2d2 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 15:02:27 +0300 Subject: [PATCH 09/23] docs: fixup appsrc/sink api docs --- docs/libs/gst-plugins-base-libs-sections.txt | 4 +- gst-libs/gst/app/gstappsink.c | 54 +++++++------------- gst-libs/gst/app/gstappsrc.c | 51 +++++++----------- gst/app/gstapp.c | 26 ++++++++++ 4 files changed, 65 insertions(+), 70 deletions(-) diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index 3f9de325f9..2509d8d44d 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -3,7 +3,6 @@ gstappsrc appsrc gst/app/gstappsrc.h -GstAppSrc GstAppStreamType gst_app_src_set_caps gst_app_src_get_caps @@ -36,6 +35,7 @@ GST_IS_APP_BUFFER GST_IS_APP_BUFFER_CLASS GST_TYPE_APP_BUFFER +GstAppSrc GstAppSrcPrivate GstAppBuffer GstAppBufferClass @@ -48,7 +48,6 @@ gst_app_buffer_new gstappsink appsink gst/app/gstappsink.h -GstAppSink gst_app_sink_set_caps gst_app_sink_get_caps gst_app_sink_is_eos @@ -64,6 +63,7 @@ gst_app_sink_pull_buffer_list GstAppSinkCallbacks gst_app_sink_set_callbacks +GstAppSink GstAppSinkPrivate GstAppSinkClass GST_APP_SINK diff --git a/gst-libs/gst/app/gstappsink.c b/gst-libs/gst/app/gstappsink.c index 07a3989c86..39e3defecb 100644 --- a/gst-libs/gst/app/gstappsink.c +++ b/gst-libs/gst/app/gstappsink.c @@ -17,22 +17,6 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ - -/** - * SECTION:element-appsink - * - * Appsink is a sink plugin that supports many different methods for making - * the application get a handle on the GStreamer data in a pipeline. Unlike - * most GStreamer elements, Appsink provides external API functions. - * - * For the documentation of the API, please see the - * libgstapp section in - * the GStreamer Plugins Base Libraries documentation. - * - * Since: 0.10.22 - */ - - /** * SECTION:gstappsink * @short_description: Easy way for applications to extract buffers from a @@ -303,10 +287,10 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * GstAppSink::new-preroll: * @appsink: the appsink element that emited the signal * - * Signal that a new preroll buffer is available. + * Signal that a new preroll buffer is available. * * This signal is emited from the steaming thread and only when the - * "emit-signals" property is %TRUE. + * "emit-signals" property is %TRUE. * * The new preroll buffer can be retrieved with the "pull-preroll" action * signal or gst_app_sink_pull_preroll() either from this signal callback @@ -326,7 +310,7 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * Signal that a new buffer is available. * * This signal is emited from the steaming thread and only when the - * "emit-signals" property is %TRUE. + * "emit-signals" property is %TRUE. * * The new buffer can be retrieved with the "pull-buffer" action * signal or gst_app_sink_pull_buffer() either from this signal callback @@ -346,7 +330,7 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * Signal that a new bufferlist is available. * * This signal is emited from the steaming thread and only when the - * "emit-signals" property is %TRUE. + * "emit-signals" property is %TRUE. * * The new buffer can be retrieved with the "pull-buffer-list" action * signal or gst_app_sink_pull_buffer_list() either from this signal callback @@ -376,10 +360,10 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * when calling gst_app_sink_pull_buffer() or the "pull-buffer" action signal. * * If an EOS event was received before any buffers, this function returns - * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. * * This function blocks until a preroll buffer or EOS is received or the appsink - * element is set to the READY/NULL state. + * element is set to the READY/NULL state. * * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS. */ @@ -393,11 +377,11 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * @appsink: the appsink element to emit this signal on * * This function blocks until a buffer or EOS becomes available or the appsink - * element is set to the READY/NULL state. + * element is set to the READY/NULL state. * * This function will only return buffers when the appsink is in the PLAYING * state. All rendered buffers will be put in a queue so that the application - * can pull buffers at its own rate. + * can pull buffers at its own rate. * * Note that when the application does not pull buffers fast enough, the * queued buffers could consume a lot of memory, especially when dealing with @@ -405,7 +389,7 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * the "drop" and "max-buffers" properties. * * If an EOS event was received before any buffers, this function returns - * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. * * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS. */ @@ -419,11 +403,11 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * @appsink: the appsink element to emit this signal on * * This function blocks until a buffer list or EOS becomes available or the appsink - * element is set to the READY/NULL state. + * element is set to the READY/NULL state. * * This function will only return bufferlists when the appsink is in the PLAYING * state. All rendered bufferlists will be put in a queue so that the application - * can pull bufferlists at its own rate. + * can pull bufferlists at its own rate. * * Note that when the application does not pull bufferlists fast enough, the * queued bufferlists could consume a lot of memory, especially when dealing with @@ -431,7 +415,7 @@ gst_app_sink_class_init (GstAppSinkClass * klass) * the "drop" and "max-buffers" properties. * * If an EOS event was received before any buffers, this function returns - * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. * * Returns: a #GstBufferList or NULL when the appsink is stopped or EOS. */ @@ -948,7 +932,7 @@ not_started: * Set the capabilities on the appsink element. This function takes * a copy of the caps structure. After calling this method, the sink will only * accept caps that match @caps. If @caps is non-fixed, you must check the caps - * on the buffers to get the actual used caps. + * on the buffers to get the actual used caps. * * Since: 0.10.22 */ @@ -1233,10 +1217,10 @@ gst_app_sink_get_drop (GstAppSink * appsink) * when calling gst_app_sink_pull_buffer(). * * If an EOS event was received before any buffers, this function returns - * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. * * This function blocks until a preroll buffer or EOS is received or the appsink - * element is set to the READY/NULL state. + * element is set to the READY/NULL state. * * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS. * @@ -1295,7 +1279,7 @@ not_started: * @appsink: a #GstAppSink * * This function blocks until a buffer or EOS becomes available or the appsink - * element is set to the READY/NULL state. + * element is set to the READY/NULL state. * * This function will only return buffers when the appsink is in the PLAYING * state. All rendered buffers will be put in a queue so that the application @@ -1304,7 +1288,7 @@ not_started: * especially when dealing with raw video frames. * * If an EOS event was received before any buffers, this function returns - * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. * * Returns: a #GstBuffer or NULL when the appsink is stopped or EOS. * @@ -1323,7 +1307,7 @@ gst_app_sink_pull_buffer (GstAppSink * appsink) * @appsink: a #GstAppSink * * This function blocks until a buffer list or EOS becomes available or the - * appsink element is set to the READY/NULL state. + * appsink element is set to the READY/NULL state. * * This function will only return buffer lists when the appsink is in the * PLAYING state. All rendered buffer lists will be put in a queue so that @@ -1333,7 +1317,7 @@ gst_app_sink_pull_buffer (GstAppSink * appsink) * video frames. * * If an EOS event was received before any buffer lists, this function returns - * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. + * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition. * * Returns: a #GstBufferList or NULL when the appsink is stopped or EOS. */ diff --git a/gst-libs/gst/app/gstappsrc.c b/gst-libs/gst/app/gstappsrc.c index f051711e26..fb72c29db5 100644 --- a/gst-libs/gst/app/gstappsrc.c +++ b/gst-libs/gst/app/gstappsrc.c @@ -17,21 +17,6 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ - -/** - * SECTION:element-appsrc - * - * The appsrc element can be used by applications to insert data into a - * GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides - * external API functions. - * - * For the documentation of the API, please see the - * libgstapp section in the - * GStreamer Plugins Base Libraries documentation. - * - * Since: 0.10.22 - */ - /** * SECTION:gstappsrc * @short_description: Easy way for applications to inject buffers into a @@ -95,7 +80,7 @@ * For the stream and seekable modes, setting this property is optional but * recommended. * - * When the application is finished pushing data into appsrc, it should call + * When the application is finished pushing data into appsrc, it should call * gst_app_src_end_of_stream() or emit the end-of-stream action signal. After * this call, no more buffers can be pushed into appsrc until a flushing seek * happened or the state of the appsrc has gone through READY. @@ -490,7 +475,7 @@ gst_app_src_class_init (GstAppSrcClass * klass) * GstAppSrc::end-of-stream: * @appsrc: the appsrc * - * Notify @appsrc that no more buffer are available. + * Notify @appsrc that no more buffer are available. */ gst_app_src_signals[SIGNAL_END_OF_STREAM] = g_signal_new ("end-of-stream", G_TYPE_FROM_CLASS (klass), @@ -1083,7 +1068,7 @@ seek_error: * a copy of the caps structure. After calling this method, the source will * only produce caps that match @caps. @caps must be fixed and the caps on the * buffers must match the caps or left NULL. - * + * * Since: 0.10.22 */ void @@ -1116,7 +1101,7 @@ gst_app_src_set_caps (GstAppSrc * appsrc, const GstCaps * caps) * Get the configured caps on @appsrc. * * Returns: the #GstCaps produced by the source. gst_caps_unref() after usage. - * + * * Since: 0.10.22 */ GstCaps * @@ -1144,8 +1129,8 @@ gst_app_src_get_caps (GstAppSrc * appsrc) * @size: the size to set * * Set the size of the stream in bytes. A value of -1 means that the size is - * not known. - * + * not known. + * * Since: 0.10.22 */ void @@ -1168,10 +1153,10 @@ gst_app_src_set_size (GstAppSrc * appsrc, gint64 size) * @appsrc: a #GstAppSrc * * Get the size of the stream in bytes. A value of -1 means that the size is - * not known. + * not known. * * Returns: the size of the stream previously set with gst_app_src_set_size(); - * + * * Since: 0.10.22 */ gint64 @@ -1200,8 +1185,8 @@ gst_app_src_get_size (GstAppSrc * appsrc) * Set the stream type on @appsrc. For seekable streams, the "seek" signal must * be connected to. * - * A stream_type stream - * + * A stream_type stream + * * Since: 0.10.22 */ void @@ -1227,7 +1212,7 @@ gst_app_src_set_stream_type (GstAppSrc * appsrc, GstAppStreamType type) * with gst_app_src_set_stream_type(). * * Returns: the stream type. - * + * * Since: 0.10.22 */ GstAppStreamType @@ -1256,7 +1241,7 @@ gst_app_src_get_stream_type (GstAppSrc * appsrc) * Set the maximum amount of bytes that can be queued in @appsrc. * After the maximum amount of bytes are queued, @appsrc will emit the * "enough-data" signal. - * + * * Since: 0.10.22 */ void @@ -1285,7 +1270,7 @@ gst_app_src_set_max_bytes (GstAppSrc * appsrc, guint64 max) * Get the maximum amount of bytes that can be queued in @appsrc. * * Returns: The maximum amount of bytes that can be queued. - * + * * Since: 0.10.22 */ guint64 @@ -1339,7 +1324,7 @@ gst_app_src_set_latencies (GstAppSrc * appsrc, gboolean do_min, guint64 min, * * Configure the @min and @max latency in @src. If @min is set to -1, the * default latency calculations for pseudo-live sources will be used. - * + * * Since: 0.10.22 */ void @@ -1355,7 +1340,7 @@ gst_app_src_set_latency (GstAppSrc * appsrc, guint64 min, guint64 max) * @max: the min latency * * Retrieve the min and max latencies in @min and @max respectively. - * + * * Since: 0.10.22 */ void @@ -1531,7 +1516,7 @@ eos: * Returns: #GST_FLOW_OK when the buffer was successfuly queued. * #GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING. * #GST_FLOW_UNEXPECTED when EOS occured. - * + * * Since: 0.10.22 */ GstFlowReturn @@ -1557,7 +1542,7 @@ gst_app_src_push_buffer_action (GstAppSrc * appsrc, GstBuffer * buffer) * * Returns: #GST_FLOW_OK when the EOS was successfuly queued. * #GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING. - * + * * Since: 0.10.22 */ GstFlowReturn @@ -1570,7 +1555,7 @@ gst_app_src_end_of_stream (GstAppSrc * appsrc) priv = appsrc->priv; g_mutex_lock (priv->mutex); - /* can't accept buffers when we are flushing. We can accept them when we are + /* can't accept buffers when we are flushing. We can accept them when we are * EOS although it will not do anything. */ if (priv->flushing) goto flushing; diff --git a/gst/app/gstapp.c b/gst/app/gstapp.c index 098fbdd209..ca54ae4bc6 100644 --- a/gst/app/gstapp.c +++ b/gst/app/gstapp.c @@ -16,6 +16,32 @@ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ +/** + * SECTION:element-appsrc + * + * The appsrc element can be used by applications to insert data into a + * GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides + * external API functions. + * + * For the documentation of the API, please see the + * libgstapp section in the + * GStreamer Plugins Base Libraries documentation. + * + * Since: 0.10.22 + */ +/** + * SECTION:element-appsink + * + * Appsink is a sink plugin that supports many different methods for making + * the application get a handle on the GStreamer data in a pipeline. Unlike + * most GStreamer elements, Appsink provides external API functions. + * + * For the documentation of the API, please see the + * libgstapp section in + * the GStreamer Plugins Base Libraries documentation. + * + * Since: 0.10.22 + */ #ifdef HAVE_CONFIG_H #include "config.h" From 089fdb77921fe420c9194712d995c46271427c8d Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 15:08:24 +0300 Subject: [PATCH 10/23] docs: fixup audio-library docs --- gst-libs/gst/audio/gstaudioclock.h | 3 +-- gst-libs/gst/audio/gstaudiofilter.h | 1 - gst-libs/gst/audio/gstaudiosrc.h | 1 - gst-libs/gst/audio/multichannel.h | 4 ++++ 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/gst-libs/gst/audio/gstaudioclock.h b/gst-libs/gst/audio/gstaudioclock.h index fb50bcf6b9..906c80243f 100644 --- a/gst-libs/gst/audio/gstaudioclock.h +++ b/gst-libs/gst/audio/gstaudioclock.h @@ -60,14 +60,13 @@ typedef GstClockTime (*GstAudioClockGetTimeFunc) (GstClock *clock, gpointer user /** * GstAudioClock: - * @clock: parent #GstSystemClock * * Opaque #GstAudioClock. */ struct _GstAudioClock { GstSystemClock clock; - /* --- protected --- */ + /*< protected >*/ GstAudioClockGetTimeFunc func; gpointer user_data; diff --git a/gst-libs/gst/audio/gstaudiofilter.h b/gst-libs/gst/audio/gstaudiofilter.h index c311c9790d..2fe5da5839 100644 --- a/gst-libs/gst/audio/gstaudiofilter.h +++ b/gst-libs/gst/audio/gstaudiofilter.h @@ -47,7 +47,6 @@ typedef struct _GstAudioFilterClass GstAudioFilterClass; /** * GstAudioFilter: - * @basetransform: Element parent class * * Base class for audio filters with the same format for input and output. * diff --git a/gst-libs/gst/audio/gstaudiosrc.h b/gst-libs/gst/audio/gstaudiosrc.h index d3b714dd44..3caa98e664 100644 --- a/gst-libs/gst/audio/gstaudiosrc.h +++ b/gst-libs/gst/audio/gstaudiosrc.h @@ -40,7 +40,6 @@ typedef struct _GstAudioSrcClass GstAudioSrcClass; /** * GstAudioSrc: - * @element: parent class * * Base class for simple audio sources. */ diff --git a/gst-libs/gst/audio/multichannel.h b/gst-libs/gst/audio/multichannel.h index 2d9685d629..3a3efe3d79 100644 --- a/gst-libs/gst/audio/multichannel.h +++ b/gst-libs/gst/audio/multichannel.h @@ -42,6 +42,9 @@ G_BEGIN_DECLS * @GST_AUDIO_CHANNEL_POSITION_NONE: used for position-less channels, e.g. * from a sound card that records 1024 channels; mutually exclusive with * any other channel position + * @GST_AUDIO_CHANNEL_POSITION_INVALID: invalid position + * + * Audio channel positions. */ typedef enum { GST_AUDIO_CHANNEL_POSITION_INVALID = -1, @@ -74,6 +77,7 @@ typedef enum { * are defined or all positions are undefined, but can't mix'n'match */ GST_AUDIO_CHANNEL_POSITION_NONE, + /*< private >*/ /* don't use - counter */ GST_AUDIO_CHANNEL_POSITION_NUM } GstAudioChannelPosition; From 8db7c1221ee83eb2dfb84505b767a233c46fa3e9 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 15:21:59 +0300 Subject: [PATCH 11/23] convertframe: fix docs Fixup paramter mismatch between func and prototype. Add missing parameter docs. --- gst-libs/gst/video/convertframe.c | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/gst-libs/gst/video/convertframe.c b/gst-libs/gst/video/convertframe.c index c04f2cacca..58dc426258 100644 --- a/gst-libs/gst/video/convertframe.c +++ b/gst-libs/gst/video/convertframe.c @@ -235,7 +235,7 @@ link_failed: * @buf: a #GstBuffer * @to_caps: the #GstCaps to convert to * @timeout: the maximum amount of time allowed for the processing. - * @err: pointer to a #GError. Can be %NULL. + * @error: pointer to a #GError. Can be %NULL. * * Converts a raw video buffer into the specified output caps. * @@ -251,11 +251,11 @@ link_failed: */ GstBuffer * gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps, - GstClockTime timeout, GError ** err) + GstClockTime timeout, GError ** error) { GstMessage *msg; GstBuffer *result = NULL; - GError *error = NULL; + GError *err = NULL; GstBus *bus; GstCaps *from_caps, *to_caps_copy = NULL; GstFlowReturn ret; @@ -279,8 +279,7 @@ gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps, } pipeline = - build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, - &error); + build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err); if (!pipeline) goto no_pipeline; @@ -318,14 +317,14 @@ gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps, case GST_MESSAGE_ERROR:{ gchar *dbg = NULL; - gst_message_parse_error (msg, &error, &dbg); - if (error) { - GST_ERROR ("Could not convert video frame: %s", error->message); - GST_DEBUG ("%s [debug: %s]", error->message, GST_STR_NULL (dbg)); - if (err) - *err = error; + gst_message_parse_error (msg, &err, &dbg); + if (err) { + GST_ERROR ("Could not convert video frame: %s", err->message); + GST_DEBUG ("%s [debug: %s]", err->message, GST_STR_NULL (dbg)); + if (error) + *error = err; else - g_error_free (error); + g_error_free (err); } g_free (dbg); break; @@ -337,8 +336,8 @@ gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps, gst_message_unref (msg); } else { GST_ERROR ("Could not convert video frame: timeout during conversion"); - if (err) - *err = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_FAILED, + if (error) + *error = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_FAILED, "Could not convert video frame: timeout during conversion"); } @@ -354,10 +353,10 @@ no_pipeline: { gst_caps_unref (to_caps_copy); - if (err) - *err = error; + if (error) + *error = err; else - g_error_free (error); + g_error_free (err); return NULL; } @@ -577,6 +576,7 @@ done: * @to_caps: the #GstCaps to convert to * @timeout: the maximum amount of time allowed for the processing. * @callback: %GstVideoConvertFrameCallback that will be called after conversion. + * @user_data: extra data that will be passed to the @callback * @destroy_notify: %GDestroyNotify to be called after @user_data is not needed anymore * * Converts a raw video buffer into the specified output caps. From 3dc49871383cbf7f8ac2e07dcb583591668fbe57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 23 May 2011 15:51:14 +0200 Subject: [PATCH 12/23] subparse: Interprete typefind strings passed to GRegex as raw bytes instead of valid UTF8 --- gst/subparse/gstsubparse.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c index 7bf0f2d3f5..2cc6b56e34 100644 --- a/gst/subparse/gstsubparse.c +++ b/gst/subparse/gstsubparse.c @@ -1238,7 +1238,8 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype) switch (regtype) { case GST_SUB_PARSE_REGEX_MDVDSUB: result = - (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}", 0, 0, &gerr); + (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}", G_REGEX_RAW, 0, + &gerr); if (result == NULL) { g_warning ("Compilation of mdvd regex failed: %s", gerr->message); g_error_free (gerr); @@ -1248,7 +1249,7 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype) result = (gpointer) g_regex_new ("^([ 0-9]){0,3}[0-9]\\s*(\x0d)?\x0a" "[ 0-9][0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]" " +--> +([ 0-9])?[0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]", - 0, 0, &gerr); + G_REGEX_RAW, 0, &gerr); if (result == NULL) { g_warning ("Compilation of subrip regex failed: %s", gerr->message); g_error_free (gerr); @@ -1256,7 +1257,7 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype) break; case GST_SUB_PARSE_REGEX_DKS: result = (gpointer) g_regex_new ("^\\[[0-9]+:[0-9]+:[0-9]+\\].*", - 0, 0, &gerr); + G_REGEX_RAW, 0, &gerr); if (result == NULL) { g_warning ("Compilation of dks regex failed: %s", gerr->message); g_error_free (gerr); From 2c7cdbc2ca1f6e70056d583349f5d1224a6a0720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 23 May 2011 16:02:20 +0200 Subject: [PATCH 13/23] subparse: Compile the typefind regex with optimization to speed up matching --- gst/subparse/gstsubparse.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c index 2cc6b56e34..a8aaaed7b6 100644 --- a/gst/subparse/gstsubparse.c +++ b/gst/subparse/gstsubparse.c @@ -1238,8 +1238,8 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype) switch (regtype) { case GST_SUB_PARSE_REGEX_MDVDSUB: result = - (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}", G_REGEX_RAW, 0, - &gerr); + (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}", + G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr); if (result == NULL) { g_warning ("Compilation of mdvd regex failed: %s", gerr->message); g_error_free (gerr); @@ -1249,7 +1249,7 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype) result = (gpointer) g_regex_new ("^([ 0-9]){0,3}[0-9]\\s*(\x0d)?\x0a" "[ 0-9][0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]" " +--> +([ 0-9])?[0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]", - G_REGEX_RAW, 0, &gerr); + G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr); if (result == NULL) { g_warning ("Compilation of subrip regex failed: %s", gerr->message); g_error_free (gerr); @@ -1257,7 +1257,7 @@ gst_sub_parse_data_format_autodetect_regex_once (GstSubParseRegex regtype) break; case GST_SUB_PARSE_REGEX_DKS: result = (gpointer) g_regex_new ("^\\[[0-9]+:[0-9]+:[0-9]+\\].*", - G_REGEX_RAW, 0, &gerr); + G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr); if (result == NULL) { g_warning ("Compilation of dks regex failed: %s", gerr->message); g_error_free (gerr); From c867f677c0813c3dfe8a204c3bd339837d42a167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 23 May 2011 16:02:34 +0200 Subject: [PATCH 14/23] subparse: Try to typefind even if conversion to UTF8 failed Fixes bug #600043. --- gst/subparse/gstsubparse.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c index a8aaaed7b6..eaf03c337a 100644 --- a/gst/subparse/gstsubparse.c +++ b/gst/subparse/gstsubparse.c @@ -1791,12 +1791,7 @@ gst_subparse_type_find (GstTypeFind * tf, gpointer private) } } converted_str = gst_convert_to_utf8 (str, 128, enc, &tmp, &err); - if (converted_str == NULL) { - GST_DEBUG ("Charset conversion failed: %s", err->message); - g_error_free (err); - g_free (str); - return; - } else { + if (converted_str != NULL) { g_free (str); str = converted_str; } From dad50ad1fecfadfd0dd74dfe66259458cffeb9c2 Mon Sep 17 00:00:00 2001 From: Thijs Vermeir Date: Fri, 19 Feb 2010 12:54:18 +0100 Subject: [PATCH 15/23] baseaudiosink: recalibrate clock on setcaps Because the spec for the ringbuffer can change when changing the caps, we must recalibrate the clock. https://bugzilla.gnome.org/show_bug.cgi?id=610443 --- gst-libs/gst/audio/gstbaseaudiosink.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c index 53267db8cf..fea7a8e273 100644 --- a/gst-libs/gst/audio/gstbaseaudiosink.c +++ b/gst-libs/gst/audio/gstbaseaudiosink.c @@ -727,6 +727,7 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps) GstBaseAudioSink *sink = GST_BASE_AUDIO_SINK (bsink); GstRingBufferSpec *spec; GstClockTime now; + GstClockTime crate_num, crate_denom; if (!sink->ringbuffer) return FALSE; @@ -765,6 +766,13 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps) gst_ring_buffer_activate (sink->ringbuffer, TRUE); } + /* due to possible changes in the spec file we should recalibrate the clock */ + gst_clock_get_calibration (sink->provided_clock, NULL, NULL, + &crate_num, &crate_denom); + gst_clock_set_calibration (sink->provided_clock, + gst_clock_get_internal_time (sink->provided_clock), now, crate_num, + crate_denom); + /* calculate actual latency and buffer times. * FIXME: In 0.11, store the latency_time internally in ns */ spec->latency_time = gst_util_uint64_scale (spec->segsize, From 6bee2cb4eecb8e9db4da63b0e538b20a87bf90fe Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 22:58:22 +0300 Subject: [PATCH 16/23] docs: add missing documentation for various pieces --- gst-libs/gst/audio/gstringbuffer.h | 47 +++++++++++++++++++ gst-libs/gst/cdda/gstcddabasesrc.h | 11 +++++ gst-libs/gst/interfaces/colorbalance.h | 12 +++++ gst-libs/gst/interfaces/colorbalancechannel.h | 9 +++- gst-libs/gst/interfaces/mixer.h | 7 +++ gst-libs/gst/interfaces/mixeroptions.h | 7 ++- gst-libs/gst/interfaces/navigation.h | 24 ++++++++-- gst-libs/gst/interfaces/tuner.h | 20 ++++++++ gst-libs/gst/video/gstvideofilter.h | 6 +++ gst-libs/gst/video/gstvideosink.h | 10 ++-- 10 files changed, 141 insertions(+), 12 deletions(-) diff --git a/gst-libs/gst/audio/gstringbuffer.h b/gst-libs/gst/audio/gstringbuffer.h index c38381c947..b09863cd76 100644 --- a/gst-libs/gst/audio/gstringbuffer.h +++ b/gst-libs/gst/audio/gstringbuffer.h @@ -116,6 +116,53 @@ typedef enum GST_BUFTYPE_MPEG4_AAC, } GstBufferFormatType; +/** + * GstBufferFormat: + * @GST_UNKNOWN: unspecified + * @GST_S8: integer signed 8 bit + * @GST_U8: integer unsigned 8 bit + * @GST_S16_LE: integer signed 16 bit little endian + * @GST_S16_BE: integer signed 16 bit big endian + * @GST_U16_LE: integer unsigned 16 bit little endian + * @GST_U16_BE: integer unsigned 16 bit big endian + * @GST_S24_LE: integer signed 24 bit little endian + * @GST_S24_BE: integer signed 24 bit big endian + * @GST_U24_LE: integer unsigned 24 bit little endian + * @GST_U24_BE: integer unsigned 24 bit big endian + * @GST_S32_LE: integer signed 32 bit little endian + * @GST_S32_BE: integer signed 32 bit big endian + * @GST_U32_LE: integer unsigned 32 bit little endian + * @GST_U32_BE: integer unsigned 32 bit big endian + * @GST_S24_3LE: integer signed 24 bit little endian packed in 3 bytes + * @GST_S24_3BE: integer signed 24 bit big endian packed in 3 bytes + * @GST_U24_3LE: integer unsigned 24 bit little endian packed in 3 bytes + * @GST_U24_3BE: integer unsigned 24 bit big endian packed in 3 bytes + * @GST_S20_3LE: integer signed 20 bit little endian packed in 3 bytes + * @GST_S20_3BE: integer signed 20 bit big endian packed in 3 bytes + * @GST_U20_3LE: integer unsigned 20 bit little endian packed in 3 bytes + * @GST_U20_3BE: integer unsigned 20 bit big endian packed in 3 bytes + * @GST_S18_3LE: integer signed 18 bit little endian packed in 3 bytes + * @GST_S18_3BE: integer signed 18 bit big endian packed in 3 bytes + * @GST_U18_3LE: integer unsigned 18 bit little endian packed in 3 bytes + * @GST_U18_3BE: integer unsigned 18 bit big endian packed in 3 bytes + * @GST_FLOAT32_LE: floating 32 bit little endian + * @GST_FLOAT32_BE: floating 32 bit big endian + * @GST_FLOAT64_LE: floating 64 bit little endian + * @GST_FLOAT64_BE: floating 64 bit big endian + * @GST_MU_LAW: mu-law + * @GST_A_LAW: a-law + * @GST_IMA_ADPCM: ima adpcm + * @GST_MPEG: mpeg audio (but not aac) + * @GST_GSM: gsm + * @GST_IEC958: IEC958 frames + * @GST_AC3: ac3 + * @GST_EAC3: eac3 + * @GST_DTS: dts + * @GST_MPEG2_AAC: mpeg-2 aac + * @GST_MPEG4_AAC: mpeg-4 aac + * + * The detailed format of the samples in the ringbuffer. + */ typedef enum { GST_UNKNOWN, diff --git a/gst-libs/gst/cdda/gstcddabasesrc.h b/gst-libs/gst/cdda/gstcddabasesrc.h index b4c6f8e15e..b754e43010 100644 --- a/gst-libs/gst/cdda/gstcddabasesrc.h +++ b/gst-libs/gst/cdda/gstcddabasesrc.h @@ -115,6 +115,17 @@ struct _GstCddaBaseSrc { gpointer _gst_reserved2[GST_PADDING/2]; }; +/** + * GstCddaBaseSrcClass: + * @pushsrc_class: the parent class + * @open: opening the device + * @close: closing the device + * @read_sector: reading a sector + * @get_default_device: getting the default device + * @probe_devices: probing possible devices + * + * Cdda source base class. + */ struct _GstCddaBaseSrcClass { GstPushSrcClass pushsrc_class; diff --git a/gst-libs/gst/interfaces/colorbalance.h b/gst-libs/gst/interfaces/colorbalance.h index 2be7db6c35..62771b5027 100644 --- a/gst-libs/gst/interfaces/colorbalance.h +++ b/gst-libs/gst/interfaces/colorbalance.h @@ -66,6 +66,17 @@ typedef enum GST_COLOR_BALANCE_SOFTWARE } GstColorBalanceType; +/** + * GstColorBalanceClass: + * @klass: the parent interface + * @balance_type: implementation type + * @list_channels: list handled channels + * @set_value: set a channel value + * @get_value: get a channel value + * @value_changed: default handler for value changed notification + * + * Color-balance interface. + */ struct _GstColorBalanceClass { GTypeInterface klass; @@ -85,6 +96,7 @@ struct _GstColorBalanceClass { GstColorBalanceChannel *channel, gint value); + /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; diff --git a/gst-libs/gst/interfaces/colorbalancechannel.h b/gst-libs/gst/interfaces/colorbalancechannel.h index f279f38ac6..22a2a7f3b9 100644 --- a/gst-libs/gst/interfaces/colorbalancechannel.h +++ b/gst-libs/gst/interfaces/colorbalancechannel.h @@ -57,7 +57,13 @@ struct _GstColorBalanceChannel { gint max_value; }; - +/** + * GstColorBalanceChannelClass: + * @parent: the parent interface + * @value_changed: default handler for value changed notification + * + * Color-balance channel class. + */ struct _GstColorBalanceChannelClass { GObjectClass parent; @@ -65,6 +71,7 @@ struct _GstColorBalanceChannelClass { void (* value_changed) (GstColorBalanceChannel *channel, gint value); + /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; diff --git a/gst-libs/gst/interfaces/mixer.h b/gst-libs/gst/interfaces/mixer.h index ae3e830285..71c8f7542f 100644 --- a/gst-libs/gst/interfaces/mixer.h +++ b/gst-libs/gst/interfaces/mixer.h @@ -47,6 +47,13 @@ G_BEGIN_DECLS typedef struct _GstMixer GstMixer; typedef struct _GstMixerClass GstMixerClass; +/** + * GstMixerType: + * @GST_MIXER_HARDWARE: mixing is implemented with dedicated hardware. + * @GST_MIXER_SOFTWARE: mixing is implemented via software processing. + * + * Mixer classification. + */ typedef enum { GST_MIXER_HARDWARE, diff --git a/gst-libs/gst/interfaces/mixeroptions.h b/gst-libs/gst/interfaces/mixeroptions.h index 2724da59d5..9b65bb1003 100644 --- a/gst-libs/gst/interfaces/mixeroptions.h +++ b/gst-libs/gst/interfaces/mixeroptions.h @@ -49,22 +49,25 @@ typedef struct _GstMixerOptionsClass GstMixerOptionsClass; /** * GstMixerOptions: - * @parent: Parent object * @values: List of option strings. Do not access this member directly, * always use gst_mixer_options_get_values() instead. + * + * Mixer control object. */ struct _GstMixerOptions { GstMixerTrack parent; + /*< public >*/ /* list of strings (do not access directly) (FIXME 0.11: make private) */ GList *values; + /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; /** * GstMixerOptionsClass: - * @parent: Parent class + * @parent: the parent interface * @get_values: Optional implementation of gst_mixer_options_get_values(). * (Since: 0.10.18) */ diff --git a/gst-libs/gst/interfaces/navigation.h b/gst-libs/gst/interfaces/navigation.h index cf7f7b9778..b4eaca5f5d 100644 --- a/gst-libs/gst/interfaces/navigation.h +++ b/gst-libs/gst/interfaces/navigation.h @@ -39,12 +39,20 @@ G_BEGIN_DECLS typedef struct _GstNavigation GstNavigation; typedef struct _GstNavigationInterface GstNavigationInterface; +/** + * GstNavigationInterface: + * @g_iface: the parent interface + * @send_event: sending a navigation event + * + * Color-balance interface. + */ struct _GstNavigationInterface { GTypeInterface g_iface; /* virtual functions */ void (*send_event) (GstNavigation *navigation, GstStructure *structure); - + + /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; @@ -109,7 +117,7 @@ typedef enum { GST_NAVIGATION_COMMAND_MENU5 = 5, GST_NAVIGATION_COMMAND_MENU6 = 6, GST_NAVIGATION_COMMAND_MENU7 = 7, - + GST_NAVIGATION_COMMAND_LEFT = 20, GST_NAVIGATION_COMMAND_RIGHT = 21, GST_NAVIGATION_COMMAND_UP = 22, @@ -130,6 +138,14 @@ typedef enum { #define GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU GST_NAVIGATION_COMMAND_MENU7 /* Queries */ +/** + * GstNavigationQueryType: + * @GST_NAVIGATION_QUERY_INVALID: invalid query + * @GST_NAVIGATION_QUERY_COMMANDS: command query + * @GST_NAVIGATION_QUERY_ANGLES: viewing angle query + * + * Tyoes of navigation interface queries. + */ typedef enum { GST_NAVIGATION_QUERY_INVALID = 0, @@ -245,9 +261,9 @@ gboolean gst_navigation_event_parse_command (GstEvent *event, /* interface virtual function wrappers */ void gst_navigation_send_event (GstNavigation *navigation, GstStructure *structure); -void gst_navigation_send_key_event (GstNavigation *navigation, +void gst_navigation_send_key_event (GstNavigation *navigation, const char *event, const char *key); -void gst_navigation_send_mouse_event (GstNavigation *navigation, +void gst_navigation_send_mouse_event (GstNavigation *navigation, const char *event, int button, double x, double y); void gst_navigation_send_command (GstNavigation *navigation, GstNavigationCommand command); diff --git a/gst-libs/gst/interfaces/tuner.h b/gst-libs/gst/interfaces/tuner.h index e7ca24e69f..c728135b85 100644 --- a/gst-libs/gst/interfaces/tuner.h +++ b/gst-libs/gst/interfaces/tuner.h @@ -45,6 +45,25 @@ G_BEGIN_DECLS typedef struct _GstTuner GstTuner; typedef struct _GstTunerClass GstTunerClass; +/** + * GstTunerClass: + * @klass: the parent interface + * @list_channels: list available channels + * @set_channel: set to a channel + * @get_channel: return the current channel + * @list_norms: list available norms + * @set_norm: set a norm + * @get_norm: return the current norm + * @set_frequency: set the frequency + * @get_frequency: return the current frequency + * @signal_strength: get the signal strength + * @channel_changed: default handler for channel changed notification + * @norm_changed: default handler for norm changed notification + * @frequency_changed: default handler for frequency changed notification + * @signal_changed: default handler for signal-strength changed notification + * + * Tuner interface. + */ struct _GstTunerClass { GTypeInterface klass; @@ -80,6 +99,7 @@ struct _GstTunerClass { GstTunerChannel *channel, gint signal); + /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; diff --git a/gst-libs/gst/video/gstvideofilter.h b/gst-libs/gst/video/gstvideofilter.h index 1c02061c15..bb0183e47c 100644 --- a/gst-libs/gst/video/gstvideofilter.h +++ b/gst-libs/gst/video/gstvideofilter.h @@ -47,6 +47,12 @@ struct _GstVideoFilter { gboolean inited; }; +/** + * GstVideoFilterClass: + * @parent_class: the parent class structure + * + * The video filter class structure. + */ struct _GstVideoFilterClass { GstBaseTransformClass parent_class; }; diff --git a/gst-libs/gst/video/gstvideosink.h b/gst-libs/gst/video/gstvideosink.h index d03a285393..f53459e6e8 100644 --- a/gst-libs/gst/video/gstvideosink.h +++ b/gst-libs/gst/video/gstvideosink.h @@ -27,7 +27,7 @@ #include G_BEGIN_DECLS - + #define GST_TYPE_VIDEO_SINK (gst_video_sink_get_type()) #define GST_VIDEO_SINK(obj) \ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_SINK, GstVideoSink)) @@ -60,7 +60,7 @@ G_BEGIN_DECLS #define GST_VIDEO_SINK_WIDTH(obj) (GST_VIDEO_SINK_CAST (obj)->width) #define GST_VIDEO_SINK_HEIGHT(obj) (GST_VIDEO_SINK_CAST (obj)->height) - + typedef struct _GstVideoSink GstVideoSink; typedef struct _GstVideoSinkClass GstVideoSinkClass; typedef struct _GstVideoRectangle GstVideoRectangle; @@ -84,7 +84,6 @@ struct _GstVideoRectangle { /** * GstVideoSink: - * @element: the parent object structure (which is GstBaseSink) * @height: video height (derived class needs to set this) * @width: video width (derived class needs to set this) * @@ -93,9 +92,10 @@ struct _GstVideoRectangle { */ struct _GstVideoSink { GstBaseSink element; /* FIXME 0.11: this should not be called 'element' */ - + + /*< public >*/ gint width, height; - + /*< private >*/ GstVideoSinkPrivate *priv; From 269205b1ad5cd37a3c04b7110314a0eca44b40bd Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 23:12:50 +0300 Subject: [PATCH 17/23] docs: rtp library docs update --- gst-libs/gst/rtp/gstbasertpaudiopayload.c | 8 +++----- gst-libs/gst/rtp/gstbasertpaudiopayload.h | 7 +++++++ gst-libs/gst/rtp/gstbasertpdepayload.c | 6 +----- gst-libs/gst/rtp/gstbasertpdepayload.h | 14 +++++++++++++- gst-libs/gst/rtp/gstbasertppayload.c | 4 ---- gst-libs/gst/rtp/gstbasertppayload.h | 10 ++++++++++ 6 files changed, 34 insertions(+), 15 deletions(-) diff --git a/gst-libs/gst/rtp/gstbasertpaudiopayload.c b/gst-libs/gst/rtp/gstbasertpaudiopayload.c index d8ba21bf3f..d1a43a90c7 100644 --- a/gst-libs/gst/rtp/gstbasertpaudiopayload.c +++ b/gst-libs/gst/rtp/gstbasertpaudiopayload.c @@ -21,12 +21,9 @@ * SECTION:gstbasertpaudiopayload * @short_description: Base class for audio RTP payloader * - * - * * Provides a base class for audio RTP payloaders for frame or sample based * audio codecs (constant bitrate) - * - * + * * This class derives from GstBaseRTPPayload. It can be used for payloading * audio codecs. It will only work with constant bitrate codecs. It supports * both frame based and sample based codecs. It takes care of packing up the @@ -38,7 +35,8 @@ * equal to min-ptime (if set). If min-ptime is not set, any residual data is * sent in a last RTP packet. In the case of frame based codecs, the resulting * RTP packets always contain full frames. - * + * + * * Usage * * To use this base class, your child element needs to call either diff --git a/gst-libs/gst/rtp/gstbasertpaudiopayload.h b/gst-libs/gst/rtp/gstbasertpaudiopayload.h index 3fdb488a61..13b93667b9 100644 --- a/gst-libs/gst/rtp/gstbasertpaudiopayload.h +++ b/gst-libs/gst/rtp/gstbasertpaudiopayload.h @@ -61,10 +61,17 @@ struct _GstBaseRTPAudioPayload gpointer _gst_reserved[GST_PADDING]; }; +/** + * GstBaseRTPAudioPayloadClass: + * @parent_class: the parent class + * + * Base class for audio RTP payloader. + */ struct _GstBaseRTPAudioPayloadClass { GstBaseRTPPayloadClass parent_class; + /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; diff --git a/gst-libs/gst/rtp/gstbasertpdepayload.c b/gst-libs/gst/rtp/gstbasertpdepayload.c index 978a26252e..9c334135b8 100644 --- a/gst-libs/gst/rtp/gstbasertpdepayload.c +++ b/gst-libs/gst/rtp/gstbasertpdepayload.c @@ -1,5 +1,5 @@ /* GStreamer - * Copyright (C) <2005> Philippe Khalaf + * Copyright (C) <2005> Philippe Khalaf * Copyright (C) <2005> Nokia Corporation * * This library is free software; you can redistribute it and/or @@ -22,11 +22,7 @@ * SECTION:gstbasertpdepayload * @short_description: Base class for RTP depayloader * - * - * * Provides a base class for RTP depayloaders - * - * */ #include "gstbasertpdepayload.h" diff --git a/gst-libs/gst/rtp/gstbasertpdepayload.h b/gst-libs/gst/rtp/gstbasertpdepayload.h index 000c1167ff..d0326a48b0 100644 --- a/gst-libs/gst/rtp/gstbasertpdepayload.h +++ b/gst-libs/gst/rtp/gstbasertpdepayload.h @@ -1,5 +1,5 @@ /* GStreamer - * Copyright (C) <2005> Philippe Khalaf + * Copyright (C) <2005> Philippe Khalaf * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -92,6 +92,18 @@ struct _GstBaseRTPDepayload gpointer _gst_reserved[GST_PADDING-1]; }; +/** + * GstBaseRTPDepayloadClass: + * @parent_class: the parent class + * @set_caps: configure the depayloader + * @add_to_queue: (deprecated) + * @process: process incoming rtp packets + * @set_gst_timestamp: convert from RTP timestamp to GST timestamp + * @packet_lost: signal the depayloader about packet loss + * @handle_event: custom event handling + * + * Base class for audio RTP payloader. + */ struct _GstBaseRTPDepayloadClass { GstElementClass parent_class; diff --git a/gst-libs/gst/rtp/gstbasertppayload.c b/gst-libs/gst/rtp/gstbasertppayload.c index 060e4e0188..e27d97aa56 100644 --- a/gst-libs/gst/rtp/gstbasertppayload.c +++ b/gst-libs/gst/rtp/gstbasertppayload.c @@ -16,11 +16,7 @@ * SECTION:gstbasertppayload * @short_description: Base class for RTP payloader * - * - * * Provides a base class for RTP payloaders - * - * */ #ifdef HAVE_CONFIG_H diff --git a/gst-libs/gst/rtp/gstbasertppayload.h b/gst-libs/gst/rtp/gstbasertppayload.h index 9707be06e1..86a5721855 100644 --- a/gst-libs/gst/rtp/gstbasertppayload.h +++ b/gst-libs/gst/rtp/gstbasertppayload.h @@ -120,6 +120,16 @@ struct _GstBaseRTPPayload } abidata; }; +/** + * GstBaseRTPPayloadClass: + * @parent_class: the parent class + * @set_caps: configure the payloader + * @handle_buffer: process data + * @handle_event: custom event handling + * @get_caps: get desired caps + * + * Base class for audio RTP payloader. + */ struct _GstBaseRTPPayloadClass { GstElementClass parent_class; From deeae48a0362068dce90909e9a2be1bfd505881e Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 23:41:56 +0300 Subject: [PATCH 18/23] docs: update xoverlay docs for api addition and deprecation --- gst-libs/gst/interfaces/xoverlay.c | 70 +++++++++++++++--------------- gst-libs/gst/interfaces/xoverlay.h | 13 +++--- 2 files changed, 43 insertions(+), 40 deletions(-) diff --git a/gst-libs/gst/interfaces/xoverlay.c b/gst-libs/gst/interfaces/xoverlay.c index e7bd6558ff..6fcb5ccad0 100644 --- a/gst-libs/gst/interfaces/xoverlay.c +++ b/gst-libs/gst/interfaces/xoverlay.c @@ -66,23 +66,23 @@ * // ignore anything but 'prepare-xwindow-id' element messages * if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT) * return GST_BUS_PASS; - * + * * if (!gst_structure_has_name (message->structure, "prepare-xwindow-id")) * return GST_BUS_PASS; - * + * * win = XCreateSimpleWindow (disp, root, 0, 0, 320, 240, 0, 0, 0); - * + * * XSetWindowBackgroundPixmap (disp, win, None); - * + * * XMapRaised (disp, win); - * + * * XSync (disp, FALSE); - * + * * gst_x_overlay_set_window_handle (GST_X_OVERLAY (GST_MESSAGE_SRC (message)), * win); - * + * * gst_message_unref (message); - * + * * return GST_BUS_DROP; * } * ... @@ -158,17 +158,17 @@ * return GST_BUS_PASS; * if (!gst_structure_has_name (message->structure, "prepare-xwindow-id")) * return GST_BUS_PASS; - * + * * if (video_window_xid != 0) { * GstXOverlay *xoverlay; - * + * * // GST_MESSAGE_SRC (message) will be the video sink element * xoverlay = GST_X_OVERLAY (GST_MESSAGE_SRC (message)); * gst_x_overlay_set_window_handle (xoverlay, video_window_xid); * } else { * g_warning ("Should have obtained video_window_xid by now!"); * } - * + * * gst_message_unref (message); * return GST_BUS_DROP; * } @@ -182,7 +182,7 @@ * if (!gdk_window_ensure_native (widget->window)) * g_error ("Couldn't create native window needed for GstXOverlay!"); * #endif - * + * * #ifdef GDK_WINDOWING_X11 * video_window_xid = GDK_WINDOW_XID (video_window->window); * #endif @@ -208,12 +208,12 @@ * ... * // show the GUI * gtk_widget_show_all (app_window); - * + * * // realize window now so that the video window gets created and we can * // obtain its XID before the pipeline is started up and the videosink * // asks for the XID of the window to render onto * gtk_widget_realize (window); - * + * * // we should have the XID now * g_assert (video_window_xid != 0); * ... @@ -235,39 +235,39 @@ * #include <glib.h> * #include <gst/gst.h> * #include <gst/interfaces/xoverlay.h> - * + * * #include <QApplication> * #include <QTimer> * #include <QWidget> - * + * * int main(int argc, char *argv[]) * { * if (!g_thread_supported ()) * g_thread_init (NULL); - * + * * gst_init (&argc, &argv); * QApplication app(argc, argv); * app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit ())); - * + * * // prepare the pipeline - * + * * GstElement *pipeline = gst_pipeline_new ("xvoverlay"); * GstElement *src = gst_element_factory_make ("videotestsrc", NULL); * GstElement *sink = gst_element_factory_make ("xvimagesink", NULL); * gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL); * gst_element_link (src, sink); - * + * * // prepare the ui - * + * * QWidget window; * window.resize(320, 240); * window.show(); - * + * * WId xwinid = window.winId(); * gst_x_overlay_set_window_handle (GST_X_OVERLAY (sink), xwinid); - * + * * // run the pipeline - * + * * GstStateChangeReturn sret = gst_element_set_state (pipeline, * GST_STATE_PLAYING); * if (sret == GST_STATE_CHANGE_FAILURE) { @@ -276,13 +276,13 @@ * // Exit application * QTimer::singleShot(0, QApplication::activeWindow(), SLOT(quit())); * } - * + * * int ret = app.exec(); - * + * * window.hide(); * gst_element_set_state (pipeline, GST_STATE_NULL); * gst_object_unref (pipeline); - * + * * return ret; * } * ]| @@ -333,12 +333,12 @@ gst_x_overlay_base_init (gpointer g_class) /** * gst_x_overlay_set_xwindow_id: - * @overlay: a #GstXOverlay to set the XWindow on. - * @xwindow_id: a #XID referencing the XWindow. + * @overlay: a #GstXOverlay to set the window on. + * @xwindow_id: a XID referencing the XWindow. * * This will call the video overlay's set_xwindow_id method. You should * use this method to tell to a XOverlay to display video output to a - * specific XWindow. Passing 0 as the xwindow_id will tell the overlay to + * specific XWindow. Passing 0 as the @xwindow_id will tell the overlay to * stop using that window and create an internal one. * * Deprecated: Use gst_x_overlay_set_window_handle() instead. @@ -358,13 +358,13 @@ gst_x_overlay_set_xwindow_id (GstXOverlay * overlay, gulong xwindow_id) /** * gst_x_overlay_set_window_handle: - * @overlay: a #GstXOverlay to set the XWindow on. - * @xwindow_id: a #XID referencing the XWindow. + * @overlay: a #GstXOverlay to set the window on. + * @handle: a handle referencing the window. * * This will call the video overlay's set_window_handle method. You * should use this method to tell to a XOverlay to display video output to a - * specific XWindow. Passing 0 as the xwindow_id will tell the overlay to - * stop using that window and create an internal one. + * specific window (e.g. an XWindow on X11). Passing 0 as the @handle will + * tell the overlay to stop using that window and create an internal one. * * Since: 0.10.31 */ @@ -452,7 +452,7 @@ gst_x_overlay_got_window_handle (GstXOverlay * overlay, guintptr handle) * @overlay: a #GstXOverlay which does not yet have an XWindow. * * This will post a "prepare-xwindow-id" element message on the bus - * to give applications an opportunity to call + * to give applications an opportunity to call * gst_x_overlay_set_xwindow_id() before a plugin creates its own * window. * diff --git a/gst-libs/gst/interfaces/xoverlay.h b/gst-libs/gst/interfaces/xoverlay.h index 055f510050..6ac355c25f 100644 --- a/gst-libs/gst/interfaces/xoverlay.h +++ b/gst-libs/gst/interfaces/xoverlay.h @@ -52,10 +52,11 @@ typedef struct _GstXOverlayClass GstXOverlayClass; /** * GstXOverlayClass: * @klass: parent interface type. - * @set_xwindow_id: virtual method to configure the XWindow id + * @set_xwindow_id: (deprecated) virtual method to configure the XWindow handle * @expose: virtual method to handle expose events * @handle_events: virtual method to handle events * @set_render_rectangle: virtual method to set the render rectangle (since 0.10.29) + * @set_window_handle: virtual method to configure the window handle * * #GstXOverlay interface */ @@ -67,14 +68,16 @@ struct _GstXOverlayClass { void (* set_xwindow_id) (GstXOverlay *overlay, gulong xwindow_id); #else +#ifndef __GTK_DOC_IGNORE__ void (* set_xwindow_id_disabled) (GstXOverlay *overlay, gulong xwindow_id); +#endif #endif /* not GST_DISABLE_DEPRECATED */ void (* expose) (GstXOverlay *overlay); - + void (* handle_events) (GstXOverlay *overlay, - gboolean handle_events); + gboolean handle_events); void (* set_render_rectangle) (GstXOverlay *overlay, gint x, gint y, @@ -90,7 +93,7 @@ GType gst_x_overlay_get_type (void); /* virtual class function wrappers */ #ifndef GST_DISABLE_DEPRECATED -void gst_x_overlay_set_xwindow_id (GstXOverlay *overlay, +void gst_x_overlay_set_xwindow_id (GstXOverlay *overlay, gulong xwindow_id); #endif @@ -103,7 +106,7 @@ void gst_x_overlay_expose (GstXOverlay *overlay); void gst_x_overlay_handle_events (GstXOverlay *overlay, gboolean handle_events); -void gst_x_overlay_set_window_handle (GstXOverlay *overlay, +void gst_x_overlay_set_window_handle (GstXOverlay *overlay, guintptr handle); /* public methods to dispatch bus messages */ From 8ca5d1274bcd130dfff88285a02d14dc7a4e7fde Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 23:51:15 +0300 Subject: [PATCH 19/23] docs: add minimal docblobs for status code and headers Use a trick to avoid documenting all 100 enums. --- docs/libs/gst-plugins-base-libs-sections.txt | 2 +- gst-libs/gst/rtsp/gstrtspdefs.h | 104 +++++++++++-------- 2 files changed, 59 insertions(+), 47 deletions(-) diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index 2509d8d44d..45a87a88cc 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -1392,6 +1392,7 @@ gst_rtp_buffer_list_add_extension_twobytes_header gstrtspdefs gst/rtsp/gstrtspdefs.h GST_RTSP_CHECK +GST_RTSP_AUTH_MAX GstRTSPEvent GstRTSPResult GstRTSPFamily @@ -1399,7 +1400,6 @@ GstRTSPState GstRTSPVersion GstRTSPMethod GstRTSPAuthMethod -GST_RTSP_AUTH_MAX GstRTSPHeaderField GstRTSPStatusCode gst_rtsp_strresult diff --git a/gst-libs/gst/rtsp/gstrtspdefs.h b/gst-libs/gst/rtsp/gstrtspdefs.h index 9652f179df..d67babd1c0 100644 --- a/gst-libs/gst/rtsp/gstrtspdefs.h +++ b/gst-libs/gst/rtsp/gstrtspdefs.h @@ -185,7 +185,7 @@ typedef enum { * @GST_RTSP_GET: the GET method (HTTP). Since 0.10.25 * @GST_RTSP_POST: the POST method (HTTP). Since 0.10.25 * - * The different supported RTSP methods. + * The different supported RTSP methods. */ typedef enum { GST_RTSP_INVALID = 0, @@ -221,11 +221,17 @@ typedef enum { /** * GST_RTSP_AUTH_MAX: * - * Strongest available authentication method + * Strongest available authentication method */ #define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST +/** + * GstRTSPHeaderField: + * + * Enumeration of rtsp header fields. + */ typedef enum { + /*< protected >*/ GST_RTSP_HDR_INVALID, /* @@ -330,51 +336,57 @@ typedef enum { GST_RTSP_HDR_LAST } GstRTSPHeaderField; +/** + * GstRTSPStatusCode: + * + * Enumeration of rtsp status codes. + */ typedef enum { - GST_RTSP_STS_INVALID = 0, - GST_RTSP_STS_CONTINUE = 100, - GST_RTSP_STS_OK = 200, - GST_RTSP_STS_CREATED = 201, - GST_RTSP_STS_LOW_ON_STORAGE = 250, - GST_RTSP_STS_MULTIPLE_CHOICES = 300, - GST_RTSP_STS_MOVED_PERMANENTLY = 301, - GST_RTSP_STS_MOVE_TEMPORARILY = 302, - GST_RTSP_STS_SEE_OTHER = 303, - GST_RTSP_STS_NOT_MODIFIED = 304, - GST_RTSP_STS_USE_PROXY = 305, - GST_RTSP_STS_BAD_REQUEST = 400, - GST_RTSP_STS_UNAUTHORIZED = 401, - GST_RTSP_STS_PAYMENT_REQUIRED = 402, - GST_RTSP_STS_FORBIDDEN = 403, - GST_RTSP_STS_NOT_FOUND = 404, - GST_RTSP_STS_METHOD_NOT_ALLOWED = 405, - GST_RTSP_STS_NOT_ACCEPTABLE = 406, - GST_RTSP_STS_PROXY_AUTH_REQUIRED = 407, - GST_RTSP_STS_REQUEST_TIMEOUT = 408, - GST_RTSP_STS_GONE = 410, - GST_RTSP_STS_LENGTH_REQUIRED = 411, - GST_RTSP_STS_PRECONDITION_FAILED = 412, - GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE = 413, - GST_RTSP_STS_REQUEST_URI_TOO_LARGE = 414, - GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE = 415, - GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD = 451, - GST_RTSP_STS_CONFERENCE_NOT_FOUND = 452, - GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH = 453, - GST_RTSP_STS_SESSION_NOT_FOUND = 454, - GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE = 455, - GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE = 456, - GST_RTSP_STS_INVALID_RANGE = 457, - GST_RTSP_STS_PARAMETER_IS_READONLY = 458, - GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED = 459, - GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED = 460, - GST_RTSP_STS_UNSUPPORTED_TRANSPORT = 461, - GST_RTSP_STS_DESTINATION_UNREACHABLE = 462, - GST_RTSP_STS_INTERNAL_SERVER_ERROR = 500, - GST_RTSP_STS_NOT_IMPLEMENTED = 501, - GST_RTSP_STS_BAD_GATEWAY = 502, - GST_RTSP_STS_SERVICE_UNAVAILABLE = 503, - GST_RTSP_STS_GATEWAY_TIMEOUT = 504, - GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED = 505, + /*< protected >*/ + GST_RTSP_STS_INVALID = 0, + GST_RTSP_STS_CONTINUE = 100, + GST_RTSP_STS_OK = 200, + GST_RTSP_STS_CREATED = 201, + GST_RTSP_STS_LOW_ON_STORAGE = 250, + GST_RTSP_STS_MULTIPLE_CHOICES = 300, + GST_RTSP_STS_MOVED_PERMANENTLY = 301, + GST_RTSP_STS_MOVE_TEMPORARILY = 302, + GST_RTSP_STS_SEE_OTHER = 303, + GST_RTSP_STS_NOT_MODIFIED = 304, + GST_RTSP_STS_USE_PROXY = 305, + GST_RTSP_STS_BAD_REQUEST = 400, + GST_RTSP_STS_UNAUTHORIZED = 401, + GST_RTSP_STS_PAYMENT_REQUIRED = 402, + GST_RTSP_STS_FORBIDDEN = 403, + GST_RTSP_STS_NOT_FOUND = 404, + GST_RTSP_STS_METHOD_NOT_ALLOWED = 405, + GST_RTSP_STS_NOT_ACCEPTABLE = 406, + GST_RTSP_STS_PROXY_AUTH_REQUIRED = 407, + GST_RTSP_STS_REQUEST_TIMEOUT = 408, + GST_RTSP_STS_GONE = 410, + GST_RTSP_STS_LENGTH_REQUIRED = 411, + GST_RTSP_STS_PRECONDITION_FAILED = 412, + GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE = 413, + GST_RTSP_STS_REQUEST_URI_TOO_LARGE = 414, + GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE = 415, + GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD = 451, + GST_RTSP_STS_CONFERENCE_NOT_FOUND = 452, + GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH = 453, + GST_RTSP_STS_SESSION_NOT_FOUND = 454, + GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE = 455, + GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE = 456, + GST_RTSP_STS_INVALID_RANGE = 457, + GST_RTSP_STS_PARAMETER_IS_READONLY = 458, + GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED = 459, + GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED = 460, + GST_RTSP_STS_UNSUPPORTED_TRANSPORT = 461, + GST_RTSP_STS_DESTINATION_UNREACHABLE = 462, + GST_RTSP_STS_INTERNAL_SERVER_ERROR = 500, + GST_RTSP_STS_NOT_IMPLEMENTED = 501, + GST_RTSP_STS_BAD_GATEWAY = 502, + GST_RTSP_STS_SERVICE_UNAVAILABLE = 503, + GST_RTSP_STS_GATEWAY_TIMEOUT = 504, + GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED = 505, GST_RTSP_STS_OPTION_NOT_SUPPORTED = 551 } GstRTSPStatusCode; From fd2159588654af5bdcb30aa29c906cd2849b098a Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 23:53:06 +0300 Subject: [PATCH 20/23] docs: move pluginbaseversion to separate section as we have section docs --- docs/libs/gst-plugins-base-libs-docs.sgml | 1 + docs/libs/gst-plugins-base-libs-sections.txt | 5 +++++ gst-libs/gst/pbutils/gstpluginsbaseversion.c | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/libs/gst-plugins-base-libs-docs.sgml b/docs/libs/gst-plugins-base-libs-docs.sgml index 0c60e22364..fdceb38539 100644 --- a/docs/libs/gst-plugins-base-libs-docs.sgml +++ b/docs/libs/gst-plugins-base-libs-docs.sgml @@ -203,6 +203,7 @@ flags. + diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index 45a87a88cc..faf0b38056 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -1856,6 +1856,11 @@ GST_TAG_XMP_WRITER_GET_INTERFACE gst/pbutils/pbutils.h gst_pb_utils_init +
+ +
+gstpluginsbaseversion +gst/pbutils/gstpluginsbaseversion.h GST_PLUGINS_BASE_VERSION_MAJOR GST_PLUGINS_BASE_VERSION_MINOR diff --git a/gst-libs/gst/pbutils/gstpluginsbaseversion.c b/gst-libs/gst/pbutils/gstpluginsbaseversion.c index 997a0b8363..82645c14bf 100644 --- a/gst-libs/gst/pbutils/gstpluginsbaseversion.c +++ b/gst-libs/gst/pbutils/gstpluginsbaseversion.c @@ -26,7 +26,7 @@ * if you need to check at runtime what version of the gst-plugins-base * libraries are being used / you are currently linked against. * - * The version macros get defined by including . + * The version macros get defined by including <gst/pbutils/pbutils.h>. */ #include "gstpluginsbaseversion.h" From 155d8834452746d828c60764f0e482f5b3e65f32 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Mon, 23 May 2011 23:53:38 +0300 Subject: [PATCH 21/23] docs: move the riff structure to std-section If someone intents to document them and the fields we can move them back. --- docs/libs/gst-plugins-base-libs-sections.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index faf0b38056..209a9cf3b4 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -1042,15 +1042,12 @@ GST_RIFF_y41p GST_RIFF_yuy2 GST_RIFF_yv12 -gst_riff_acid gst_riff_create_audio_caps gst_riff_create_audio_template_caps gst_riff_create_iavs_caps gst_riff_create_iavs_template_caps gst_riff_create_video_caps gst_riff_create_video_template_caps -gst_riff_dmlh -gst_riff_index_entry gst_riff_init gst_riff_parse_chunk gst_riff_parse_file_header @@ -1060,11 +1057,14 @@ gst_riff_parse_strf_iavs gst_riff_parse_strf_vids gst_riff_parse_strh gst_riff_read_chunk + +gst_riff_acid +gst_riff_dmlh +gst_riff_index_entry gst_riff_strf_auds gst_riff_strf_iavs gst_riff_strf_vids gst_riff_strh -
From ce1369a7e569403e5af5e254cff03d05abe4b0b6 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Tue, 24 May 2011 00:12:26 +0300 Subject: [PATCH 22/23] docs: add missing parameter docs --- gst-libs/gst/video/video.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c index c048c4fa73..4b64cfc8f5 100644 --- a/gst-libs/gst/video/video.c +++ b/gst-libs/gst/video/video.c @@ -1255,9 +1255,10 @@ gst_video_format_has_alpha (GstVideoFormat format) /** * gst_video_format_get_component_depth: * @format: a #GstVideoFormat + * @component: the video component (e.g. 0 for 'R' in RGB) * * Returns the number of bits used to encode an individual pixel of - * a given component. Typically this is 8, although higher and lower + * a given @component. Typically this is 8, although higher and lower * values are possible for some formats. * * Since: 0.10.33 From 8da23e9d0ba6488f0117618a6e36cc6196f7cb98 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Tue, 24 May 2011 00:13:04 +0300 Subject: [PATCH 23/23] docs: massage the section file more Add more symbols (from unused.txt). Move the whole bunch of riff-fourcc defines to std section too (no one is hoing to document them, right). --- docs/libs/gst-plugins-base-libs-sections.txt | 52 ++++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt index 209a9cf3b4..091b7b5314 100644 --- a/docs/libs/gst-plugins-base-libs-sections.txt +++ b/docs/libs/gst-plugins-base-libs-sections.txt @@ -34,6 +34,7 @@ GST_APP_BUFFER_CLASS GST_IS_APP_BUFFER GST_IS_APP_BUFFER_CLASS GST_TYPE_APP_BUFFER +GST_TYPE_APP_STREAM_TYPE GstAppSrc GstAppSrcPrivate @@ -859,6 +860,22 @@ gst_netbuffer_get_type
gstriff gst/riff/riff-media.h +gst_riff_create_audio_caps +gst_riff_create_audio_template_caps +gst_riff_create_iavs_caps +gst_riff_create_iavs_template_caps +gst_riff_create_video_caps +gst_riff_create_video_template_caps +gst_riff_init +gst_riff_parse_chunk +gst_riff_parse_file_header +gst_riff_parse_info +gst_riff_parse_strf_auds +gst_riff_parse_strf_iavs +gst_riff_parse_strf_vids +gst_riff_parse_strh +gst_riff_read_chunk + GST_RIFF_00 GST_RIFF_0021 GST_RIFF_0031 @@ -1042,22 +1059,6 @@ GST_RIFF_y41p GST_RIFF_yuy2 GST_RIFF_yv12 -gst_riff_create_audio_caps -gst_riff_create_audio_template_caps -gst_riff_create_iavs_caps -gst_riff_create_iavs_template_caps -gst_riff_create_video_caps -gst_riff_create_video_template_caps -gst_riff_init -gst_riff_parse_chunk -gst_riff_parse_file_header -gst_riff_parse_info -gst_riff_parse_strf_auds -gst_riff_parse_strf_iavs -gst_riff_parse_strf_vids -gst_riff_parse_strh -gst_riff_read_chunk - gst_riff_acid gst_riff_dmlh gst_riff_index_entry @@ -1739,6 +1740,7 @@ GST_TAG_CAPTURING_FLASH_FIRED GST_TAG_CAPTURING_FLASH_MODE GST_TAG_CAPTURING_METERING_MODE GST_TAG_CAPTURING_SOURCE +GST_TAG_CAPTURING_EXPOSURE_COMPENSATION GST_TAG_IMAGE_HORIZONTAL_PPI GST_TAG_IMAGE_VERTICAL_PPI gst_tag_register_musicbrainz_tags @@ -1847,6 +1849,7 @@ GST_TAG_XMP_WRITER_INTERFACE GST_IS_TAG_XMP_WRITER GST_IS_TAG_XMP_WRITER_INTERFACE GST_TAG_XMP_WRITER_GET_INTERFACE +gst_tag_xmp_writer_get_type
# base utils @@ -2079,6 +2082,20 @@ GST_VIDEO_CAPS_BGR_16 GST_VIDEO_CAPS_RGB8_PALETTED GST_VIDEO_CAPS_GRAY8 GST_VIDEO_CAPS_GRAY16 +GST_VIDEO_CAPS_ARGB_64 +GST_VIDEO_CAPS_r210 +GST_VIDEO_COMP1_MASK_15 +GST_VIDEO_COMP1_MASK_15_INT +GST_VIDEO_COMP1_MASK_16 +GST_VIDEO_COMP1_MASK_16_INT +GST_VIDEO_COMP2_MASK_15 +GST_VIDEO_COMP2_MASK_15_INT +GST_VIDEO_COMP2_MASK_16 +GST_VIDEO_COMP2_MASK_16_INT +GST_VIDEO_COMP3_MASK_15 +GST_VIDEO_COMP3_MASK_15_INT +GST_VIDEO_COMP3_MASK_16 +GST_VIDEO_COMP3_MASK_16_INT GST_VIDEO_FPS_RANGE GST_VIDEO_GREEN_MASK_15 GST_VIDEO_GREEN_MASK_15_INT @@ -2096,12 +2113,15 @@ GstVideoFormat gst_video_calculate_display_ratio gst_video_frame_rate gst_video_get_size +gst_video_get_size_from_caps gst_video_format_convert gst_video_format_new_caps gst_video_format_new_caps_interlaced +gst_video_format_new_template_caps gst_video_format_get_component_height gst_video_format_get_component_offset gst_video_format_get_component_width +gst_video_format_get_component_depth gst_video_format_get_pixel_stride gst_video_format_get_row_stride gst_video_format_get_size