ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_NULL, GST_STATE_READY, 104);
/* READY => PAUSED */
- /* because of pre-rolling, sink will return ASYNC on state
+ /* because of pre-rolling, sink will return ASYNC on state
* change and change state later when it has a buffer */
ASSERT_STATE_CHANGE_MSG (bus, identity, GST_STATE_READY, GST_STATE_PAUSED,
105);
#if 0
/* From here on, all bets are off. Usually the source changes state next,
- * but it might just as well be that the first buffer produced by the
+ * but it might just as well be that the first buffer produced by the
* source reaches the sink before the source has finished its state change,
* in which case the sink will commit its new state before the source ... */
ASSERT_STATE_CHANGE_MSG (bus, src, GST_STATE_READY, GST_STATE_PAUSED, 106);
ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_NULL, GST_STATE_READY, 204);
/* READY => PAUSED */
- /* because of pre-rolling, sink will return ASYNC on state
+ /* because of pre-rolling, sink will return ASYNC on state
* change and change state later when it has a buffer */
ASSERT_STATE_CHANGE_MSG (bus, identity, GST_STATE_READY, GST_STATE_PAUSED,
205);
#if 0
/* From here on, all bets are off. Usually the source changes state next,
- * but it might just as well be that the first buffer produced by the
+ * but it might just as well be that the first buffer produced by the
* source reaches the sink before the source has finished its state change,
* in which case the sink will commit its new state before the source ... */
ASSERT_STATE_CHANGE_MSG (bus, src, GST_STATE_READY, GST_STATE_PAUSED, 206);
/* check simplified caps, should be:
*
- * video/x-raw-rgb, bpp=(int)8, depth=(int)8, endianness=(int)1234,
- * framerate=(double)[ 1, 100 ], width=(int)[ 16, 4096 ],
- * height=(int)[ 16, 4096 ];
- * video/x-raw-yuv, format=(fourcc){ YV12, YUY2, I420 },
- * width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ],
+ * video/x-raw-rgb, bpp=(int)8, depth=(int)8, endianness=(int)1234,
+ * framerate=(double)[ 1, 100 ], width=(int)[ 16, 4096 ],
+ * height=(int)[ 16, 4096 ];
+ * video/x-raw-yuv, format=(fourcc){ YV12, YUY2, I420 },
+ * width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ],
* framerate=(double)[ 1, 100 ]
*/
fail_unless (gst_caps_get_size (caps) == 2);
const GValue *tmp;
gboolean ret;
- /* int <-> int
+ /* int <-> int
*/
g_value_init (&src1, G_TYPE_INT);
g_value_set_int (&src1, 10);
g_value_unset (&src1);
g_value_unset (&src2);
- /* int <-> int_range
+ /* int <-> int_range
*/
/* would yield an empty set */
g_value_unset (&src1);
g_value_unset (&src2);
- /* int_range <-> int_range
+ /* int_range <-> int_range
*/
/* same range, empty set */
const GValue *tmp;
gboolean ret;
- /* double <-> double
+ /* double <-> double
*/
g_value_init (&src1, G_TYPE_DOUBLE);
g_value_set_double (&src1, 10.0);
g_value_unset (&src1);
g_value_unset (&src2);
- /* double <-> double_range
+ /* double <-> double_range
*/
/* would yield an empty set */
g_value_unset (&src1);
g_value_unset (&src2);
- /* double_range <-> double_range
+ /* double_range <-> double_range
*/
/* same range, empty set */
static void
fill_queue (GstElement * queue, gint level, GstBin * pipeline)
{
- /* this needs to iterate till something is pushed
+ /* this needs to iterate till something is pushed
* in the queue */
gst_bin_iterate (pipeline);
}
/*
* audio-example.c
- *
+ *
* Build a pipeline with testaudiosource->alsasink
* and sweep frequency and volume
*
/*
* cutter.c - cut audio into pieces based on silence - thomas@apestaart.org
- *
+ *
* construct a simple pipeline osssrc ! cutter ! filesink
* pause when necessary, change output
*
gst_init (&argc, &argv);
/*
- if (argc == 1)
+ if (argc == 1)
{
g_print("usage: %s <filename1> <filename2> <...>\n", argv[0]);
exit(-1);
* thomas@apestaart.org
*/
-typedef struct
+typedef struct
{
GstElement *pipe;
GstElement *filesink;
GstElement *audiosink;
-
+
char *location;
int channel_id;
} output_channel_t;
/*
* mixer.c - stereo audio mixer - thomas@apestaart.org
* example based on helloworld
- * demonstrates the adder plugin and the volume envelope plugin
- * work in progress but do try it out
- *
+ * demonstrates the adder plugin and the volume envelope plugin
+ * work in progress but do try it out
+ *
* Latest change : 28/08/2001
* trying to adapt to incsched
* delayed start for channels > 1
* now works by quickhacking the
* adder plugin to set
- * GST_ELEMENT_COTHREAD_STOPPING
+ * GST_ELEMENT_COTHREAD_STOPPING
* Version : 0.5.1
*/
/* register a volume envelope */
printf ("\tregistering volume envelope...\n");
- /*
+ /*
* this is the volenv :
* each song gets a slot of 5 seconds, with a 5 second fadeout
* at the end of that, all audio streams play simultaneously
void
destroy_input_channel (input_channel_t * channel)
{
- /*
+ /*
* destroy an input channel
*/
* thomas@apestaart.org
*/
-typedef struct
+typedef struct
{
GstElement *pipe, *filesrc, *volenv;
-
+
char *location;
int channel_id;
} input_channel_t;
-/*
+/*
* This example shows how to use interfaces and the tag subsystem.
* It takes an mp3 file as input, and makes an ogg file out of it. While doing
* this, it parses the filename and sets artist and title in the ogg file.
* It assumes the filename to be "<artist> - <title>.mp3"
- *
+ *
* Run the program as "retag <mp3 file>"
*
* To run this program, you need to have the gst-plugins package (specifically
g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
g_object_set (G_OBJECT (filesink), "location", filename, NULL);
- /* make sure the tag setter uses our stuff
+ /* make sure the tag setter uses our stuff
(though that should already be default) */
gst_tag_setter_set_merge_mode (GST_TAG_SETTER (tag_changer),
GST_TAG_MERGE_KEEP);
-/*
+/*
* This example shows how to use interfaces and the tag subsystem.
* It takes an mp3 file as input, and makes an ogg file out of it. While doing
* this, it parses the filename and sets artist and title in the ogg file.
* It assumes the filename to be "<artist> - <title>.mp3"
- *
+ *
* Run the program as "transcode <mp3 file>"
*
* To run this program, you need to have the gst-plugins package (specifically
g_object_set (G_OBJECT (filesink), "location", filename, NULL);
g_free (filename);
- /* make sure the tag setter uses our stuff
+ /* make sure the tag setter uses our stuff
(though that should already be default) */
gst_tag_setter_set_merge_mode (GST_TAG_SETTER (encoder), GST_TAG_MERGE_KEEP);
/* set the tagging information */
* first timestamp is at 5
* requested value if for timestamp=3
* LINEAR and Co. would need to interpolate from default value to value
- * at timestamp 5
+ * at timestamp 5
*/
signal_name = g_alloca (8 + 1 + strlen (name));
g_sprintf (signal_name, "notify::%s", name);
* gst_controller_get_all:
* @self: the controller to get the list from
* @property_name: the name of the property to get the list for
- *
+ *
* Returns a read-only copy of the list of GstTimedValue for the given property.
* Free the list after done with it.
*
}
}
g_mutex_unlock (self->lock);
- /* TODO what can here go wrong, to return FALSE ?
+ /* TODO what can here go wrong, to return FALSE ?
BilboEd : Nothing I guess, as long as all the checks are made when creating the controller,
adding/removing controlled properties, etc...
*/
* Function to be able to get an array of values for one or more given element
* properties.
*
- * If the GstValueArray->values array in list nodes is NULL, it will be created
+ * If the GstValueArray->values array in list nodes is NULL, it will be created
* by the function.
* The type of the values in the array are the same as the property's type.
*
/* register properties */
/* register signals */
/* set defaults for overridable methods */
- /* TODO which of theses do we need ?
+ /* TODO which of theses do we need ?
BilboEd : none :)
*/
}
/**
* GstInterpolateMode:
* @GST_INTERPOLATE_NONE: steps-like interpolation, default
- * @GST_INTERPOLATE_TRIGGER: returns the default value of the property,
+ * @GST_INTERPOLATE_TRIGGER: returns the default value of the property,
* except for times with specific values
* @GST_INTERPOLATE_LINEAR: linear interpolation
* @GST_INTERPOLATE_QUADRATIC: square interpolation
gboolean gst_controller_sync_values (GstController * self,
GstClockTime timestamp);
-
+
gboolean gst_controller_get_value_arrays (GstController * self,
GstClockTime timestamp, GSList * value_arrays);
gboolean gst_controller_get_value_array (GstController * self,
* Convenience function for GObject
*
* Creates a GstController that allows you to dynamically control one, or more, GObject properties.
- * If the given GObject already has a GstController, it adds the given properties to the existing
+ * If the given GObject already has a GstController, it adds the given properties to the existing
* controller and returns that controller.
*
* Returns: The GstController with which the user can control the given properties dynamically or NULL if
* Function to be able to get an array of values for one or more given element
* properties.
*
- * If the GstValueArray->values array in list nodes is NULL, it will be created
+ * If the GstValueArray->values array in list nodes is NULL, it will be created
* by the function.
* The type of the values in the array are the same as the property's type.
*
ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_NULL, GST_STATE_READY, 104);
/* READY => PAUSED */
- /* because of pre-rolling, sink will return ASYNC on state
+ /* because of pre-rolling, sink will return ASYNC on state
* change and change state later when it has a buffer */
ASSERT_STATE_CHANGE_MSG (bus, identity, GST_STATE_READY, GST_STATE_PAUSED,
105);
#if 0
/* From here on, all bets are off. Usually the source changes state next,
- * but it might just as well be that the first buffer produced by the
+ * but it might just as well be that the first buffer produced by the
* source reaches the sink before the source has finished its state change,
* in which case the sink will commit its new state before the source ... */
ASSERT_STATE_CHANGE_MSG (bus, src, GST_STATE_READY, GST_STATE_PAUSED, 106);
ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_NULL, GST_STATE_READY, 204);
/* READY => PAUSED */
- /* because of pre-rolling, sink will return ASYNC on state
+ /* because of pre-rolling, sink will return ASYNC on state
* change and change state later when it has a buffer */
ASSERT_STATE_CHANGE_MSG (bus, identity, GST_STATE_READY, GST_STATE_PAUSED,
205);
#if 0
/* From here on, all bets are off. Usually the source changes state next,
- * but it might just as well be that the first buffer produced by the
+ * but it might just as well be that the first buffer produced by the
* source reaches the sink before the source has finished its state change,
* in which case the sink will commit its new state before the source ... */
ASSERT_STATE_CHANGE_MSG (bus, src, GST_STATE_READY, GST_STATE_PAUSED, 206);
/* check simplified caps, should be:
*
- * video/x-raw-rgb, bpp=(int)8, depth=(int)8, endianness=(int)1234,
- * framerate=(double)[ 1, 100 ], width=(int)[ 16, 4096 ],
- * height=(int)[ 16, 4096 ];
- * video/x-raw-yuv, format=(fourcc){ YV12, YUY2, I420 },
- * width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ],
+ * video/x-raw-rgb, bpp=(int)8, depth=(int)8, endianness=(int)1234,
+ * framerate=(double)[ 1, 100 ], width=(int)[ 16, 4096 ],
+ * height=(int)[ 16, 4096 ];
+ * video/x-raw-yuv, format=(fourcc){ YV12, YUY2, I420 },
+ * width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ],
* framerate=(double)[ 1, 100 ]
*/
fail_unless (gst_caps_get_size (caps) == 2);
const GValue *tmp;
gboolean ret;
- /* int <-> int
+ /* int <-> int
*/
g_value_init (&src1, G_TYPE_INT);
g_value_set_int (&src1, 10);
g_value_unset (&src1);
g_value_unset (&src2);
- /* int <-> int_range
+ /* int <-> int_range
*/
/* would yield an empty set */
g_value_unset (&src1);
g_value_unset (&src2);
- /* int_range <-> int_range
+ /* int_range <-> int_range
*/
/* same range, empty set */
const GValue *tmp;
gboolean ret;
- /* double <-> double
+ /* double <-> double
*/
g_value_init (&src1, G_TYPE_DOUBLE);
g_value_set_double (&src1, 10.0);
g_value_unset (&src1);
g_value_unset (&src2);
- /* double <-> double_range
+ /* double <-> double_range
*/
/* would yield an empty set */
g_value_unset (&src1);
g_value_unset (&src2);
- /* double_range <-> double_range
+ /* double_range <-> double_range
*/
/* same range, empty set */
static void
fill_queue (GstElement * queue, gint level, GstBin * pipeline)
{
- /* this needs to iterate till something is pushed
+ /* this needs to iterate till something is pushed
* in the queue */
gst_bin_iterate (pipeline);
}
/*
* audio-example.c
- *
+ *
* Build a pipeline with testaudiosource->alsasink
* and sweep frequency and volume
*
/*
* cutter.c - cut audio into pieces based on silence - thomas@apestaart.org
- *
+ *
* construct a simple pipeline osssrc ! cutter ! filesink
* pause when necessary, change output
*
gst_init (&argc, &argv);
/*
- if (argc == 1)
+ if (argc == 1)
{
g_print("usage: %s <filename1> <filename2> <...>\n", argv[0]);
exit(-1);
* thomas@apestaart.org
*/
-typedef struct
+typedef struct
{
GstElement *pipe;
GstElement *filesink;
GstElement *audiosink;
-
+
char *location;
int channel_id;
} output_channel_t;
/*
* mixer.c - stereo audio mixer - thomas@apestaart.org
* example based on helloworld
- * demonstrates the adder plugin and the volume envelope plugin
- * work in progress but do try it out
- *
+ * demonstrates the adder plugin and the volume envelope plugin
+ * work in progress but do try it out
+ *
* Latest change : 28/08/2001
* trying to adapt to incsched
* delayed start for channels > 1
* now works by quickhacking the
* adder plugin to set
- * GST_ELEMENT_COTHREAD_STOPPING
+ * GST_ELEMENT_COTHREAD_STOPPING
* Version : 0.5.1
*/
/* register a volume envelope */
printf ("\tregistering volume envelope...\n");
- /*
+ /*
* this is the volenv :
* each song gets a slot of 5 seconds, with a 5 second fadeout
* at the end of that, all audio streams play simultaneously
void
destroy_input_channel (input_channel_t * channel)
{
- /*
+ /*
* destroy an input channel
*/
* thomas@apestaart.org
*/
-typedef struct
+typedef struct
{
GstElement *pipe, *filesrc, *volenv;
-
+
char *location;
int channel_id;
} input_channel_t;
-/*
+/*
* This example shows how to use interfaces and the tag subsystem.
* It takes an mp3 file as input, and makes an ogg file out of it. While doing
* this, it parses the filename and sets artist and title in the ogg file.
* It assumes the filename to be "<artist> - <title>.mp3"
- *
+ *
* Run the program as "retag <mp3 file>"
*
* To run this program, you need to have the gst-plugins package (specifically
g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
g_object_set (G_OBJECT (filesink), "location", filename, NULL);
- /* make sure the tag setter uses our stuff
+ /* make sure the tag setter uses our stuff
(though that should already be default) */
gst_tag_setter_set_merge_mode (GST_TAG_SETTER (tag_changer),
GST_TAG_MERGE_KEEP);
-/*
+/*
* This example shows how to use interfaces and the tag subsystem.
* It takes an mp3 file as input, and makes an ogg file out of it. While doing
* this, it parses the filename and sets artist and title in the ogg file.
* It assumes the filename to be "<artist> - <title>.mp3"
- *
+ *
* Run the program as "transcode <mp3 file>"
*
* To run this program, you need to have the gst-plugins package (specifically
g_object_set (G_OBJECT (filesink), "location", filename, NULL);
g_free (filename);
- /* make sure the tag setter uses our stuff
+ /* make sure the tag setter uses our stuff
(though that should already be default) */
gst_tag_setter_set_merge_mode (GST_TAG_SETTER (encoder), GST_TAG_MERGE_KEEP);
/* set the tagging information */
* SECTION:gstconfig
* @short_description: Build configuration options
*
- * This describes the configuration options for GStreamer. When building
- * GStreamer there are a lot of parts (known internally as "subsystems" ) that can
- * be disabled for various reasons. The most common reasons are speed and size,
+ * This describes the configuration options for GStreamer. When building
+ * GStreamer there are a lot of parts (known internally as "subsystems" ) that can
+ * be disabled for various reasons. The most common reasons are speed and size,
* which is important because GStreamer is designed to run on embedded systems.
- *
+ *
* If a subsystem is disabled, most of this changes are done in an API compatible
* way, so you don't need to adapt your code in most cases. It is never done in an
* ABI compatible way though. So if you want to disable a suybsystem, you have to
* rebuild all programs depending on GStreamer, too.
- *
- * If a subsystem is disabled in GStreamer, a value is defined in
+ *
+ * If a subsystem is disabled in GStreamer, a value is defined in
* <gst/gst.h>. You can check this if you do subsystem-specific stuff.
* <example>
* <title>Doing subsystem specific things</title>
* You can also use the macros to keep the GStreamer version information in your
* application.
*
- * Use the gst_version() function if you want to know which version of
+ * Use the gst_version() function if you want to know which version of
* GStreamer you are currently linked against.
*
* The version macros get defined by including "gst/gst.h".
/*
* dirent.c
*
- * Derived from DIRLIB.C by Matt J. Weinstein
+ * Derived from DIRLIB.C by Matt J. Weinstein
* This note appears in the DIRLIB.H
* DIRLIB.H by M. J. Weinstein Released to public domain 1-Jan-89
*
*
* Resource leaks fixed by <steve.lhomme@free.fr>
*
- *
+ *
* $Revision$
* $Author$
* $Date$
} else {
/* Get the next search entry. */
if (_tfindnext (dirp->dd_handle, &(dirp->dd_dta))) {
- /* We are off the end or otherwise error.
+ /* We are off the end or otherwise error.
_findnext sets errno to ENOENT if no more file
Undo this. */
DWORD winerr = GetLastError ();
#define GST_EXPORT __declspec(dllimport) extern
#endif
#else /* not WIN32 */
-#define GST_PLUGIN_EXPORT
+#define GST_PLUGIN_EXPORT
#define GST_EXPORT extern
#endif
/*
* Use these only when you want to know what GStreamer version your stuff was
* compiled against.
- * Use the #gst_version function if you want to know which version of
+ * Use the #gst_version function if you want to know which version of
* GStreamer you are currently linked against.
*/
#define GST_VERSION_MAJOR 0
-/*
+/*
* tchar.h
*
* Unicode mapping layer for the standard C library. By including this
#define _totupper towupper
#define _totlower towlower
#define _tcsftime wcsftime
-/* Macro functions */
+/* Macro functions */
#define _tcsdec _wcsdec
#define _tcsinc _wcsinc
#define _tcsnbcnt _wcsncnt
#define _tstrtime _strtime
#define _tutime _utime
#define _tcsftime strftime
-/* Macro functions */
+/* Macro functions */
#define _tcsdec _strdec
#define _tcsinc _strinc
#define _tcsnbcnt _strncnt
# define MAP_FAILED ((void *) -1)
# endif
-
+
# define PROT_READ PAGE_READONLY
# define PROT_WRITE PAGE_WRITEONLY
# define MAP_FAILED ((void *) -1)
# endif
-
+
# define PROT_READ PAGE_READONLY
# define PROT_WRITE PAGE_WRITEONLY