Document the GstTuner and GstColorBalance interfaces, and some other random API functions that needed it. 70% symbol ...

Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/interfaces/colorbalance.c:
* gst-libs/gst/interfaces/colorbalance.h:
* gst-libs/gst/interfaces/colorbalancechannel.c:
* gst-libs/gst/interfaces/colorbalancechannel.h:
* gst-libs/gst/interfaces/tuner.c:
* gst-libs/gst/interfaces/tunerchannel.c:
* gst-libs/gst/interfaces/tunerchannel.h:
* gst-libs/gst/interfaces/tunernorm.c:
* gst-libs/gst/interfaces/tunernorm.h:
* gst-libs/gst/video/video.c:
* gst-libs/gst/video/video.h:
Document the GstTuner and GstColorBalance interfaces, and some
other random API functions that needed it. 70% symbol coverage, woo.
This commit is contained in:
Jan Schmidt 2008-05-09 21:42:26 +00:00
parent fc523e047c
commit f11cf32c3f
13 changed files with 406 additions and 37 deletions

View file

@ -1,3 +1,20 @@
2008-05-09 Jan Schmidt <jan.schmidt@sun.com>
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/interfaces/colorbalance.c:
* gst-libs/gst/interfaces/colorbalance.h:
* gst-libs/gst/interfaces/colorbalancechannel.c:
* gst-libs/gst/interfaces/colorbalancechannel.h:
* gst-libs/gst/interfaces/tuner.c:
* gst-libs/gst/interfaces/tunerchannel.c:
* gst-libs/gst/interfaces/tunerchannel.h:
* gst-libs/gst/interfaces/tunernorm.c:
* gst-libs/gst/interfaces/tunernorm.h:
* gst-libs/gst/video/video.c:
* gst-libs/gst/video/video.h:
Document the GstTuner and GstColorBalance interfaces, and some
other random API functions that needed it. 70% symbol coverage, woo.
2008-05-09 Wim Taymans <wim.taymans@collabora.co.uk> 2008-05-09 Wim Taymans <wim.taymans@collabora.co.uk>
* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_acquire): * gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_acquire):

View file

@ -1484,7 +1484,6 @@ gst_video_format_is_yuv
gst_video_format_to_fourcc gst_video_format_to_fourcc
gst_video_format_from_fourcc gst_video_format_from_fourcc
gst_video_format_parse_caps gst_video_format_parse_caps
gst_video_format_from_rgb32_masks
gst_video_parse_caps_framerate gst_video_parse_caps_framerate
gst_video_parse_caps_pixel_aspect_ratio gst_video_parse_caps_pixel_aspect_ratio
</SECTION> </SECTION>
@ -1542,7 +1541,6 @@ dngettext
gettext gettext
gettext_noop gettext_noop
ngettext ngettext
rfc822_binary
textdomain textdomain
SHA_BLOCKSIZE SHA_BLOCKSIZE
SHA_BYTE SHA_BYTE

View file

@ -30,6 +30,15 @@
/** /**
* SECTION:gstcolorbalance * SECTION:gstcolorbalance
* @short_description: Interface for adjusting color balance settings * @short_description: Interface for adjusting color balance settings
*
* <refsect2><para>
* This interface is implemented by elements which can perform some color
* balance operation on video frames they process. For example, modifying
* the brightness, contrast, hue or saturation.
* </para><para>
* Example elements are 'xvimagesink' and 'colorbalance'
* </para>
* </refsect2>
*/ */
enum enum
@ -75,6 +84,14 @@ gst_color_balance_class_init (GstColorBalanceClass * klass)
static gboolean initialized = FALSE; static gboolean initialized = FALSE;
if (!initialized) { if (!initialized) {
/**
* GstColorBalance::value-changed:
* @colorbalance: The GstColorBalance instance
* @channel: The #GstColorBalanceChannel
* @value: The new value
*
* Fired when the value of the indicated channel has changed.
*/
gst_color_balance_signals[VALUE_CHANGED] = gst_color_balance_signals[VALUE_CHANGED] =
g_signal_new ("value-changed", g_signal_new ("value-changed",
GST_TYPE_COLOR_BALANCE, G_SIGNAL_RUN_LAST, GST_TYPE_COLOR_BALANCE, G_SIGNAL_RUN_LAST,
@ -94,6 +111,16 @@ gst_color_balance_class_init (GstColorBalanceClass * klass)
klass->get_value = NULL; klass->get_value = NULL;
} }
/**
* gst_color_balance_list_channels:
* @balance: A #GstColorBalance instance
*
* Retrieve a list of the available channels.
*
* Returns: A GList containing pointers to #GstColorBalanceChannel objects.
* The list is owned by the #GstColorBalance instance and must not
* be freed.
*/
const GList * const GList *
gst_color_balance_list_channels (GstColorBalance * balance) gst_color_balance_list_channels (GstColorBalance * balance)
{ {
@ -106,6 +133,19 @@ gst_color_balance_list_channels (GstColorBalance * balance)
return NULL; return NULL;
} }
/**
* gst_color_balance_set_value:
* @balance: A #GstColorBalance instance
* @channel: A #GstColorBalanceChannel instance
* @value: The new value for the channel.
*
* Sets the current value of the channel to the passed value, which must
* be between min_value and max_value.
*
* See Also: The #GstColorBalanceChannel::min_value and
* #GstColorBalanceChannel::max_value members of the
* #GstColorBalanceChannel object.
*/
void void
gst_color_balance_set_value (GstColorBalance * balance, gst_color_balance_set_value (GstColorBalance * balance,
GstColorBalanceChannel * channel, gint value) GstColorBalanceChannel * channel, gint value)
@ -117,6 +157,20 @@ gst_color_balance_set_value (GstColorBalance * balance,
} }
} }
/**
* gst_color_balance_get_value:
* @balance: A #GstColorBalance instance
* @channel: A #GstColorBalanceChannel instance
*
* Retrieve the current value of the indicated channel, between min_value
* and max_value.
*
* See Also: The #GstColorBalanceChannel::min_value and
* #GstColorBalanceChannel::max_value members of the
* #GstColorBalanceChannel object.
*
* Returns: The current value of the channel.
*/
gint gint
gst_color_balance_get_value (GstColorBalance * balance, gst_color_balance_get_value (GstColorBalance * balance,
GstColorBalanceChannel * channel) GstColorBalanceChannel * channel)
@ -130,6 +184,17 @@ gst_color_balance_get_value (GstColorBalance * balance,
return channel->min_value; return channel->min_value;
} }
/**
* gst_color_balance_value_changed:
* @balance: A #GstColorBalance instance
* @channel: A #GstColorBalanceChannel whose value has changed
* @value: The new value of the channel
*
* A helper function called by implementations of the GstColorBalance
* interface. It fires the #GstColorBalance::value-changed signal on the
* instance, and the #GstColorBalanceChannel::value-changed signal on the
* channel object.
*/
void void
gst_color_balance_value_changed (GstColorBalance * balance, gst_color_balance_value_changed (GstColorBalance * balance,
GstColorBalanceChannel * channel, gint value) GstColorBalanceChannel * channel, gint value)

View file

@ -47,6 +47,18 @@ G_BEGIN_DECLS
typedef struct _GstColorBalance GstColorBalance; typedef struct _GstColorBalance GstColorBalance;
/**
* GstColorBalanceType:
* @GST_COLOR_BALANCE_HARDWARE: Color balance is implemented with dedicated
* hardware.
* @GST_COLOR_BALANCE_SOFTWARE: Color balance is implemented via software
* processing.
*
* An enumeration indicating whether an element implements color balancing
* operations in software or in dedicated hardware. In general, dedicated
* hardware implementations (such as those provided by xvimagesink) are
* preferred.
*/
typedef enum typedef enum
{ {
GST_COLOR_BALANCE_HARDWARE, GST_COLOR_BALANCE_HARDWARE,

View file

@ -25,6 +25,17 @@
#include "colorbalancechannel.h" #include "colorbalancechannel.h"
/**
* SECTION:gstcolorbalancechannel
* @short_description: Object representing a channel from the #GstColorBalance
* interface.
*
* <refsect2><para>The #GstColorBalanceChannel object represents a parameter
* for modifying the color balance implemented by an element providing the
* #GstColorBalance interface. For example, Hue or Saturation.
* </para></refsect2>
*/
enum enum
{ {
/* FILL ME */ /* FILL ME */
@ -74,6 +85,13 @@ gst_color_balance_channel_class_init (GstColorBalanceChannelClass * klass)
parent_class = g_type_class_peek_parent (klass); parent_class = g_type_class_peek_parent (klass);
/**
* GstColorBalanceChannel::value-changed:
* @channel: The #GstColorBalanceChannel
* @value: The new value
*
* Fired when the value of the indicated channel has changed.
*/
signals[SIGNAL_VALUE_CHANGED] = signals[SIGNAL_VALUE_CHANGED] =
g_signal_new ("value-changed", G_TYPE_FROM_CLASS (klass), g_signal_new ("value-changed", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,

View file

@ -39,12 +39,19 @@ G_BEGIN_DECLS
#define GST_IS_COLOR_BALANCE_CHANNEL_CLASS(klass) \ #define GST_IS_COLOR_BALANCE_CHANNEL_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE_CHANNEL)) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_COLOR_BALANCE_CHANNEL))
/**
* GstColorBalanceChannel:
* @label: A string containing a descriptive name for this channel
* @min_value: The minimum valid value for this channel.
* @max_value: The maximum valid value for this channel.
*/
typedef struct _GstColorBalanceChannel { typedef struct _GstColorBalanceChannel {
GObject parent; GObject parent;
/*< public >*/
gchar *label; gchar *label;
gint min_value, gint min_value;
max_value; gint max_value;
} GstColorBalanceChannel; } GstColorBalanceChannel;
typedef struct _GstColorBalanceChannelClass { typedef struct _GstColorBalanceChannelClass {

View file

@ -31,6 +31,42 @@
/** /**
* SECTION:gsttuner * SECTION:gsttuner
* @short_description: Interface for elements providing tuner operations * @short_description: Interface for elements providing tuner operations
*
* <refsect2>
* <para>
* The GstTuner interface is provided by elements that have the ability to
* tune into multiple input signals, for example TV or radio capture cards.
* </para><para>
* The interpretation of 'tuning into' an input stream depends on the element
* implementing the interface. For v4lsrc, it might imply selection of an
* input source and/or frequency to be configured on a TV card. Another
* GstTuner implementation might be to allow selection of an active input pad
* from multiple input pads.
* </para><para>
* That said, the GstTuner interface functions are biased toward the
* TV capture scenario.
* </para><para>
* The general parameters provided are for configuration are:
* <itemizedlist>
* <listitem>Selection of a current #GstTunerChannel. The current channel
* represents the input source (e.g. Composite, S-Video etc for TV capture).
* </listitem>
* <listitem>The #GstTunerNorm for the channel. The norm chooses the
* interpretation of the incoming signal for the current channel. For example,
* PAL or NTSC, or more specific variants there-of.
* </listitem>
* <listitem>Channel frequency. If the current channel has the ability to tune
* between multiple frequencies (if it has the GST_TUNER_CHANNEL_FREQUENCY flag)
* then the frequency can be changed/retrieved via the
* gst_tuner_set_frequency() and gst_tuner_get_frequency() methods.
* </listitem>
* </itemizedlist>
* </para>
* <para>
* Where applicable, the signal strength can be retrieved and/or monitored
* via a signal.
* </para>
* </refsect2>
*/ */
enum enum
@ -79,12 +115,26 @@ gst_tuner_class_init (GstTunerClass * klass)
static gboolean initialized = FALSE; static gboolean initialized = FALSE;
if (!initialized) { if (!initialized) {
/**
* GstTuner::norm-changed:
* @tuner: The element providing the GstTuner interface
* @norm: The new configured norm.
*
* Reports that the current #GstTunerNorm has changed.
*/
gst_tuner_signals[NORM_CHANGED] = gst_tuner_signals[NORM_CHANGED] =
g_signal_new ("norm-changed", g_signal_new ("norm-changed",
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST, GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTunerClass, norm_changed), G_STRUCT_OFFSET (GstTunerClass, norm_changed),
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_TUNER_NORM); g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_TUNER_NORM);
/**
* GstTuner::channel-changed:
* @tuner: The element providing the GstTuner interface
* @channel: The new configured channel.
*
* Reports that the current #GstTunerChannel has changed.
*/
gst_tuner_signals[CHANNEL_CHANGED] = gst_tuner_signals[CHANNEL_CHANGED] =
g_signal_new ("channel-changed", g_signal_new ("channel-changed",
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST, GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
@ -92,6 +142,13 @@ gst_tuner_class_init (GstTunerClass * klass)
NULL, NULL, NULL, NULL,
g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1,
GST_TYPE_TUNER_CHANNEL); GST_TYPE_TUNER_CHANNEL);
/**
* GstTuner::frequency-changed:
* @tuner: The element providing the GstTuner interface
* @frequency: The new frequency (an unsigned long)
*
* Reports that the current frequency has changed.
*/
gst_tuner_signals[FREQUENCY_CHANGED] = gst_tuner_signals[FREQUENCY_CHANGED] =
g_signal_new ("frequency-changed", g_signal_new ("frequency-changed",
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST, GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
@ -99,6 +156,16 @@ gst_tuner_class_init (GstTunerClass * klass)
NULL, NULL, NULL, NULL,
gst_interfaces_marshal_VOID__OBJECT_ULONG, G_TYPE_NONE, 2, gst_interfaces_marshal_VOID__OBJECT_ULONG, G_TYPE_NONE, 2,
GST_TYPE_TUNER_CHANNEL, G_TYPE_ULONG); GST_TYPE_TUNER_CHANNEL, G_TYPE_ULONG);
/**
* GstTuner::signal-changed:
* @tuner: The element providing the GstTuner interface
* @channel: The current #GstTunerChannel
* @signal: The new signal strength (an integer)
*
* Reports that the signal strength has changed.
*
* See Also: gst_tuner_signal_strength()
*/
gst_tuner_signals[SIGNAL_CHANGED] = gst_tuner_signals[SIGNAL_CHANGED] =
g_signal_new ("signal-changed", g_signal_new ("signal-changed",
GST_TYPE_TUNER, G_SIGNAL_RUN_LAST, GST_TYPE_TUNER, G_SIGNAL_RUN_LAST,
@ -128,12 +195,12 @@ gst_tuner_class_init (GstTunerClass * klass)
* gst_tuner_list_channels: * gst_tuner_list_channels:
* @tuner: the #GstTuner (a #GstElement) to get the channels from. * @tuner: the #GstTuner (a #GstElement) to get the channels from.
* *
* Retrieve a list of channels (e.g. 'composite', 's-video', ...) * Retrieve a #GList of #GstTunerChannels available
* from the given tuner object. * (e.g. 'composite', 's-video', ...) from the given tuner object.
* *
* Returns: a list of channels available on this tuner. * Returns: A list of channels available on this tuner. The list is
* owned by the GstTuner and must not be freed.
*/ */
const GList * const GList *
gst_tuner_list_channels (GstTuner * tuner) gst_tuner_list_channels (GstTuner * tuner)
{ {
@ -171,7 +238,7 @@ gst_tuner_set_channel (GstTuner * tuner, GstTunerChannel * channel)
} }
/** /**
* gst_Tuner_get_channel: * gst_tuner_get_channel:
* @tuner: the #GstTuner (a #GstElement) to get the current channel from. * @tuner: the #GstTuner (a #GstElement) to get the current channel from.
* *
* Retrieve the current channel from the tuner. * Retrieve the current channel from the tuner.
@ -195,14 +262,15 @@ gst_tuner_get_channel (GstTuner * tuner)
} }
/** /**
* gst_tuner_get_norms_list: * gst_tuner_list_norms:
* @tuner: the #GstTuner (*a #GstElement) to get the list of norms from. * @tuner: the #GstTuner (*a #GstElement) to get the list of norms from.
* *
* Retrieve a list of available norms on the currently tuned channel * Retrieve a GList of available #GstTunerNorm settings for the currently
* from the given tuner object. * tuned channel on the given tuner object.
* *
* Returns: A list of norms available on the current channel for this * Returns: A list of norms available on the current channel for this
* tuner object. * tuner object. The list is owned by the GstTuner and must not
* be freed.
*/ */
const GList * const GList *
@ -268,14 +336,19 @@ gst_tuner_get_norm (GstTuner * tuner)
/** /**
* gst_tuner_set_frequency: * gst_tuner_set_frequency:
* @tuner: the #Gsttuner (a #GstElement) that owns the given channel. * @tuner: The #Gsttuner (a #GstElement) that owns the given channel.
* @channel: the #GstTunerChannel to set the frequency on. * @channel: The #GstTunerChannel to set the frequency on.
* @frequency: the frequency to tune in to. * @frequency: The frequency to tune in to.
* *
* Sets a tuning frequency on the given tuner/channel. Note that this * Sets a tuning frequency on the given tuner/channel. Note that this
* requires the given channel to be a "tuning" channel, which can be * requires the given channel to be a "tuning" channel, which can be
* checked using GST_TUNER_CHANNEL_HAS_FLAG (), with the proper flag * checked using GST_TUNER_CHANNEL_HAS_FLAG (), with the proper flag
* being GST_TUNER_CHANNEL_FREQUENCY. * being GST_TUNER_CHANNEL_FREQUENCY.
*
* The frequency is in Hz, with minimum steps indicated by the
* frequency_multiplicator provided in the #GstTunerChannel. The
* valid range is provided in the min_frequency and max_frequency properties
* of the #GstTunerChannel.
*/ */
void void
@ -297,13 +370,14 @@ gst_tuner_set_frequency (GstTuner * tuner,
/** /**
* gst_tuner_get_frequency: * gst_tuner_get_frequency:
* @tuner: the #GstTuner (a #GstElement) that owns the given channel. * @tuner: The #GstTuner (a #GstElement) that owns the given channel.
* @channel: the #GstTunerChannel to retrieve the frequency from. * @channel: The #GstTunerChannel to retrieve the frequency from.
* *
* Retrieve the current frequency from the given channel. The same * Retrieve the current frequency from the given channel. As for
* applies as for set_frequency (): check the flag. * gst_tuner_set_frequency(), the #GstTunerChannel must support frequency
* operations, as indicated by the GST_TUNER_CHANNEL_FREQUENCY flag.
* *
* Returns: the current frequency, or 0 on error. * Returns: The current frequency, or 0 on error.
*/ */
gulong gulong
@ -326,19 +400,21 @@ gst_tuner_get_frequency (GstTuner * tuner, GstTunerChannel * channel)
} }
/** /**
* gst_tuner_get_signal_strength: * gst_tuner_signal_strength:
* @tuner: the #GstTuner (a #GstElement) that owns the given channel. * @tuner: the #GstTuner (a #GstElement) that owns the given channel.
* @channel: the #GstTunerChannel to get the signal strength from. * @channel: the #GstTunerChannel to get the signal strength from.
* *
* get the strength of the signal on this channel. Note that this * Get the strength of the signal on this channel. Note that this
* requires the current channel to be a "tuning" channel, e.g. a * requires the current channel to be a "tuning" channel, i.e. a
* channel on which frequency can be set. This can be checked using * channel on which frequency can be set. This can be checked using
* GST_TUNER_CHANNEL_HAS_FLAG (), and the appropriate flag to check * GST_TUNER_CHANNEL_HAS_FLAG (), and the appropriate flag to check
* for is GST_TUNER_CHANNEL_FREQUENCY. * for is GST_TUNER_CHANNEL_FREQUENCY.
* *
* Returns: signal strength, or 0 on error. * The valid range of the signal strength is indicated in the
* min_signal and max_signal properties of the #GstTunerChannel.
*
* Returns: Signal strength, or 0 on error.
*/ */
gint gint
gst_tuner_signal_strength (GstTuner * tuner, GstTunerChannel * channel) gst_tuner_signal_strength (GstTuner * tuner, GstTunerChannel * channel)
{ {
@ -357,6 +433,16 @@ gst_tuner_signal_strength (GstTuner * tuner, GstTunerChannel * channel)
return 0; return 0;
} }
/**
* gst_tuner_find_norm_by_name:
* @tuner: A #GstTuner instance
* @norm: A string containing the name of a #GstTunerNorm
*
* Look up a #GstTunerNorm by name.
*
* Returns: A #GstTunerNorm, or NULL if no norm with the provided name
* is available.
*/
GstTunerNorm * GstTunerNorm *
gst_tuner_find_norm_by_name (GstTuner * tuner, gchar * norm) gst_tuner_find_norm_by_name (GstTuner * tuner, gchar * norm)
{ {
@ -374,6 +460,16 @@ gst_tuner_find_norm_by_name (GstTuner * tuner, gchar * norm)
return NULL; return NULL;
} }
/**
* gst_tuner_find_channel_by_name:
* @tuner: A #GstTuner instance
* @channel: A string containing the name of a #GstTunerChannel
*
* Look up a #GstTunerChannel by name.
*
* Returns: A #GstTunerChannel, or NULL if no channel with the provided name
* is available.
*/
GstTunerChannel * GstTunerChannel *
gst_tuner_find_channel_by_name (GstTuner * tuner, gchar * channel) gst_tuner_find_channel_by_name (GstTuner * tuner, gchar * channel)
{ {
@ -391,6 +487,14 @@ gst_tuner_find_channel_by_name (GstTuner * tuner, gchar * channel)
return NULL; return NULL;
} }
/**
* gst_tuner_channel_changed:
* @tuner: A #GstTuner instance
* @channel: A #GstTunerChannel instance
*
* Called by elements implementing the #GstTuner interface when the
* current channel changes. Fires the #GstTuner::channel-changed signal.
*/
void void
gst_tuner_channel_changed (GstTuner * tuner, GstTunerChannel * channel) gst_tuner_channel_changed (GstTuner * tuner, GstTunerChannel * channel)
{ {
@ -401,6 +505,15 @@ gst_tuner_channel_changed (GstTuner * tuner, GstTunerChannel * channel)
gst_tuner_signals[CHANNEL_CHANGED], 0, channel); gst_tuner_signals[CHANNEL_CHANGED], 0, channel);
} }
/**
* gst_tuner_norm_changed:
* @tuner: A #GstTuner instance
* @norm: A #GstTunerNorm instance
*
* Called by elements implementing the #GstTuner interface when the
* current norm changes. Fires the #GstTuner::norm-changed signal.
*
*/
void void
gst_tuner_norm_changed (GstTuner * tuner, GstTunerNorm * norm) gst_tuner_norm_changed (GstTuner * tuner, GstTunerNorm * norm)
{ {
@ -410,6 +523,17 @@ gst_tuner_norm_changed (GstTuner * tuner, GstTunerNorm * norm)
g_signal_emit (G_OBJECT (tuner), gst_tuner_signals[NORM_CHANGED], 0, norm); g_signal_emit (G_OBJECT (tuner), gst_tuner_signals[NORM_CHANGED], 0, norm);
} }
/**
* gst_tuner_frequency_changed:
* @tuner: A #GstTuner instance
* @channel: The current #GstTunerChannel
* @frequency: The new frequency setting
*
* Called by elements implementing the #GstTuner interface when the
* configured frequency changes. Fires the #GstTuner::frequency-changed
* signal on the tuner, and the #GstTunerChannel::frequency-changed signal
* on the channel.
*/
void void
gst_tuner_frequency_changed (GstTuner * tuner, gst_tuner_frequency_changed (GstTuner * tuner,
GstTunerChannel * channel, gulong frequency) GstTunerChannel * channel, gulong frequency)
@ -423,6 +547,17 @@ gst_tuner_frequency_changed (GstTuner * tuner,
g_signal_emit_by_name (G_OBJECT (channel), "frequency_changed", frequency); g_signal_emit_by_name (G_OBJECT (channel), "frequency_changed", frequency);
} }
/**
* gst_tuner_signal_changed:
* @tuner: A #GstTuner instance
* @channel: The current #GstTunerChannel
* @signal: The new signal strength
*
* Called by elements implementing the #GstTuner interface when the
* incoming signal strength changes. Fires the #GstTuner::signal-changed
* signal on the tuner and the #GstTunerChannel::signal-changed signal on
* the channel.
*/
void void
gst_tuner_signal_changed (GstTuner * tuner, gst_tuner_signal_changed (GstTuner * tuner,
GstTunerChannel * channel, gint signal) GstTunerChannel * channel, gint signal)

View file

@ -25,6 +25,24 @@
#include "tunerchannel.h" #include "tunerchannel.h"
/**
* SECTION:gsttunerchannel
* @short_description: A channel from an element implementing the #GstTuner
* interface.
*
* <refsect2>
* <para>The #GstTunerChannel object is provided by an element implementing
* the #GstTuner interface.
* </para>
* <para>
* GstTunerChannel provides a name and flags to determine the type and
* capabilities of the channel. If the GST_TUNER_CHANNEL_FREQUENCY flag is
* set, then the channel also information about the minimum and maximum
* frequency, and range of the reported signal strength.
* </para>
* </refsect2>
*/
enum enum
{ {
/* FILL ME */ /* FILL ME */
@ -74,12 +92,28 @@ gst_tuner_channel_class_init (GstTunerChannelClass * klass)
parent_class = g_type_class_peek_parent (klass); parent_class = g_type_class_peek_parent (klass);
/**
* GstTunerChannel::frequency-changed:
* @tunerchannel: The #GstTunerChannel
* @frequency: The new frequency (an unsigned long)
*
* Reports that the current frequency has changed.
*/
signals[SIGNAL_FREQUENCY_CHANGED] = signals[SIGNAL_FREQUENCY_CHANGED] =
g_signal_new ("frequency-changed", G_TYPE_FROM_CLASS (klass), g_signal_new ("frequency-changed", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GstTunerChannelClass, G_STRUCT_OFFSET (GstTunerChannelClass,
frequency_changed), frequency_changed),
NULL, NULL, g_cclosure_marshal_VOID__ULONG, G_TYPE_NONE, 1, G_TYPE_ULONG); NULL, NULL, g_cclosure_marshal_VOID__ULONG, G_TYPE_NONE, 1, G_TYPE_ULONG);
/**
* GstTunerChannel::signal-changed:
* @tunerchannel: The #GstTunerChannel
* @signal: The new signal strength (an integer)
*
* Reports that the signal strength has changed.
*
* See Also: gst_tuner_signal_strength()
*/
signals[SIGNAL_SIGNAL_CHANGED] = signals[SIGNAL_SIGNAL_CHANGED] =
g_signal_new ("signal-changed", G_TYPE_FROM_CLASS (klass), g_signal_new ("signal-changed", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST, G_SIGNAL_RUN_LAST,

View file

@ -39,6 +39,17 @@ G_BEGIN_DECLS
#define GST_IS_TUNER_CHANNEL_CLASS(klass) \ #define GST_IS_TUNER_CHANNEL_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_CHANNEL)) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_CHANNEL))
/**
* GstTunerChannelFlags:
* @GST_TUNER_CHANNEL_INPUT: The channel is for input
* @GST_TUNER_CHANNEL_OUTPUT: The channel is for output
* @GST_TUNER_CHANNEL_FREQUENCY: The channel has a frequency setting
* and signal strength.
* @GST_TUNER_CHANNEL_AUDIO: The channel carries audio.
*
* An enumeration for flags indicating the available capabilities
* of a #GstTunerChannel.
*/
typedef enum { typedef enum {
GST_TUNER_CHANNEL_INPUT = (1<<0), GST_TUNER_CHANNEL_INPUT = (1<<0),
GST_TUNER_CHANNEL_OUTPUT = (1<<1), GST_TUNER_CHANNEL_OUTPUT = (1<<1),
@ -46,24 +57,43 @@ typedef enum {
GST_TUNER_CHANNEL_AUDIO = (1<<3) GST_TUNER_CHANNEL_AUDIO = (1<<3)
} GstTunerChannelFlags; } GstTunerChannelFlags;
/**
* GST_TUNER_CHANNEL_HAS_FLAG:
* @channel: A #GstTunerChannel
* @flag: The flag to check for
*
* Macro to check if the given flag is set on a channel
*/
#define GST_TUNER_CHANNEL_HAS_FLAG(channel, flag) \ #define GST_TUNER_CHANNEL_HAS_FLAG(channel, flag) \
((channel)->flags & flag) ((channel)->flags & flag)
/**
* GstTunerChannel:
* @label: A string containing a descriptive name for this channel
* @flags: A set of #GstTunerChannelFlags for this channel
* @freq_multiplicator: The step size (in Hz) for the frequency setting.
* @min_frequency: Minimum valid frequency setting (in Hz).
* @max_frequency: Maximum valid frequency setting (in Hz).
* @min_signal: Minimum reported signal strength value.
* @max_signal: Maximum reported signal strength value.
*/
typedef struct _GstTunerChannel { typedef struct _GstTunerChannel {
GObject parent; GObject parent;
/*< public >*/
gchar *label; gchar *label;
GstTunerChannelFlags flags; GstTunerChannelFlags flags;
gfloat freq_multiplicator; gfloat freq_multiplicator;
gulong min_frequency, gulong min_frequency;
max_frequency; gulong max_frequency;
gint min_signal, gint min_signal;
max_signal; gint max_signal;
} GstTunerChannel; } GstTunerChannel;
typedef struct _GstTunerChannelClass { typedef struct _GstTunerChannelClass {
GObjectClass parent; GObjectClass parent;
/*< private >*/
/* signals */ /* signals */
void (*frequency_changed) (GstTunerChannel *channel, void (*frequency_changed) (GstTunerChannel *channel,
gulong frequency); gulong frequency);

View file

@ -25,6 +25,19 @@
#include "tunernorm.h" #include "tunernorm.h"
/**
* SECTION:gsttunernorm
* @short_description: Encapsulates information about the data format(s)
* for a #GstTunerChannel.
*
* <refsect2>
* <para>The #GstTunerNorm object is created by an element implementing the
* #GstTuner interface and encapsulates the selection of a capture/output format
* for a selected #GstTunerChannel.
* </para>
* </refsect2>
*/
enum enum
{ {
/* FILL ME */ /* FILL ME */

View file

@ -37,9 +37,16 @@ G_BEGIN_DECLS
#define GST_IS_TUNER_NORM_CLASS(klass) \ #define GST_IS_TUNER_NORM_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_NORM)) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_TUNER_NORM))
/**
* GstTunerNorm:
* @label: A string containing a descriptive name for the norm
* @framerate: A GValue containing the framerate associated with this norm,
* if any. (May be unset).
*/
typedef struct _GstTunerNorm { typedef struct _GstTunerNorm {
GObject parent; GObject parent;
/*< public >*/
gchar *label; gchar *label;
GValue framerate; GValue framerate;
} GstTunerNorm; } GstTunerNorm;

View file

@ -45,7 +45,19 @@ static GstVideoFormat gst_video_format_from_rgb24_masks (int red_mask,
int green_mask, int blue_mask); int green_mask, int blue_mask);
/* This is simply a convenience function, nothing more or less */ /**
* gst_video_frame_rate:
* @pad: pointer to a #GstPad
*
* 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
* do not contain a framerate.
*
*/
const GValue * const GValue *
gst_video_frame_rate (GstPad * pad) gst_video_frame_rate (GstPad * pad)
{ {
@ -84,6 +96,20 @@ gst_video_frame_rate (GstPad * pad)
return fps; return fps;
} }
/**
* gst_video_get_size:
* @pad: pointer to a #GstPad
* @width: pointer to integer to hold pixel width of the video frames (output)
* @height: pointer to integer to hold pixel height of the video frames (output)
*
* 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.
*
*/
gboolean gboolean
gst_video_get_size (GstPad * pad, gint * width, gint * height) gst_video_get_size (GstPad * pad, gint * width, gint * height)
{ {
@ -290,9 +316,9 @@ gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
/** /**
* gst_video_parse_caps_framerate: * gst_video_parse_caps_framerate:
* @caps: * @caps: pointer to a #GstCaps instance
* @fps_n: pointer to numerator of frame rate (output) * @fps_n: pointer to integer to hold numerator of frame rate (output)
* @fps_d: pointer to denominator of frame rate (output) * @fps_d: pointer to integer to hold denominator of frame rate (output)
* *
* Extracts the frame rate from @caps and places the values in the locations * Extracts the frame rate from @caps and places the values in the locations
* pointed to by @fps_n and @fps_d. Returns TRUE if the values could be * pointed to by @fps_n and @fps_d. Returns TRUE if the values could be
@ -320,7 +346,7 @@ gst_video_parse_caps_framerate (GstCaps * caps, int *fps_n, int *fps_d)
/** /**
* gst_video_parse_caps_pixel_aspect_ratio: * gst_video_parse_caps_pixel_aspect_ratio:
* @caps: * @caps: pointer to a #GstCaps instance
* @par_n: pointer to numerator of pixel aspect ratio (output) * @par_n: pointer to numerator of pixel aspect ratio (output)
* @par_d: pointer to denominator of pixel aspect ratio (output) * @par_d: pointer to denominator of pixel aspect ratio (output)
* *
@ -530,7 +556,7 @@ gst_video_format_to_fourcc (GstVideoFormat format)
} }
} }
/** /*
* gst_video_format_from_rgb32_masks: * gst_video_format_from_rgb32_masks:
* @red_mask: red bit mask * @red_mask: red bit mask
* @green_mask: green bit mask * @green_mask: green bit mask
@ -607,6 +633,8 @@ gst_video_format_from_rgb24_masks (int red_mask, int green_mask, int blue_mask)
* gst_video_format_is_rgb: * gst_video_format_is_rgb:
* @format: a #GstVideoFormat * @format: a #GstVideoFormat
* *
* Determine whether the video format is an RGB format.
*
* Since: 0.10.16 * Since: 0.10.16
* *
* Returns: TRUE if @format represents RGB video * Returns: TRUE if @format represents RGB video
@ -643,6 +671,8 @@ gst_video_format_is_rgb (GstVideoFormat format)
* gst_video_format_is_yuv: * gst_video_format_is_yuv:
* @format: a #GstVideoFormat * @format: a #GstVideoFormat
* *
* Determine whether the video format is a YUV format.
*
* Since: 0.10.16 * Since: 0.10.16
* *
* Returns: TRUE if @format represents YUV video * Returns: TRUE if @format represents YUV video
@ -678,6 +708,9 @@ gst_video_format_is_yuv (GstVideoFormat format)
/** /**
* gst_video_format_has_alpha: * gst_video_format_has_alpha:
* @format: a #GstVideoFormat * @format: a #GstVideoFormat
*
* Returns TRUE or FALSE depending on if the video format provides an
* alpha channel.
* *
* Since: 0.10.16 * Since: 0.10.16
* *

View file

@ -27,7 +27,7 @@ G_BEGIN_DECLS
/** /**
* GstVideoFormat: * GstVideoFormat:
* @GST_VIDEO_FORMAT_UNKNOWN, * @GST_VIDEO_FORMAT_UNKNOWN: Unknown or unset video format id
* @GST_VIDEO_FORMAT_I420: planar 4:2:0 YUV * @GST_VIDEO_FORMAT_I420: planar 4:2:0 YUV
* @GST_VIDEO_FORMAT_YV12: planar 4:2:0 YVU (like I420 but UV planes swapped) * @GST_VIDEO_FORMAT_YV12: planar 4:2:0 YVU (like I420 but UV planes swapped)
* @GST_VIDEO_FORMAT_YUY2: packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...) * @GST_VIDEO_FORMAT_YUY2: packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)