mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 07:16:55 +00:00
ext/gio/: Some minor cleanup and allow setting the location only when the element is not playing or paused.
Original commit message from CVS: * ext/gio/gstgiosink.c: (gst_gio_sink_base_init), (gst_gio_sink_set_property), (gst_gio_sink_render): * ext/gio/gstgiosrc.c: (gst_gio_src_base_init), (gst_gio_src_set_property): Some minor cleanup and allow setting the location only when the element is not playing or paused.
This commit is contained in:
parent
453fef95a1
commit
68a1d6cfd5
3 changed files with 24 additions and 7 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2007-09-29 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
|
* ext/gio/gstgiosink.c: (gst_gio_sink_base_init),
|
||||||
|
(gst_gio_sink_set_property), (gst_gio_sink_render):
|
||||||
|
* ext/gio/gstgiosrc.c: (gst_gio_src_base_init),
|
||||||
|
(gst_gio_src_set_property):
|
||||||
|
Some minor cleanup and allow setting the location only when the
|
||||||
|
element is not playing or paused.
|
||||||
|
|
||||||
2007-09-29 Sebastian Dröge <slomo@circular-chaos.org>
|
2007-09-29 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
* configure.ac:
|
* configure.ac:
|
||||||
|
|
|
@ -55,8 +55,7 @@ enum
|
||||||
static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
|
static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
|
||||||
GST_PAD_SINK,
|
GST_PAD_SINK,
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS ("ANY")
|
GST_STATIC_CAPS_ANY);
|
||||||
);
|
|
||||||
|
|
||||||
GST_BOILERPLATE_FULL (GstGioSink, gst_gio_sink, GstBaseSink, GST_TYPE_BASE_SINK,
|
GST_BOILERPLATE_FULL (GstGioSink, gst_gio_sink, GstBaseSink, GST_TYPE_BASE_SINK,
|
||||||
gst_gio_uri_handler_do_init);
|
gst_gio_uri_handler_do_init);
|
||||||
|
@ -81,7 +80,7 @@ gst_gio_sink_base_init (gpointer gclass)
|
||||||
static GstElementDetails element_details = {
|
static GstElementDetails element_details = {
|
||||||
"GIO sink",
|
"GIO sink",
|
||||||
"Sink/File",
|
"Sink/File",
|
||||||
"Write to any GVFS-supported location",
|
"Write to any GIO-supported location",
|
||||||
"Ren\xc3\xa9 Stadler <mail@renestadler.de>"
|
"Ren\xc3\xa9 Stadler <mail@renestadler.de>"
|
||||||
};
|
};
|
||||||
GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
|
GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
|
||||||
|
@ -154,6 +153,10 @@ gst_gio_sink_set_property (GObject * object, guint prop_id,
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case ARG_LOCATION:
|
case ARG_LOCATION:
|
||||||
|
if (GST_STATE (sink) == GST_STATE_PLAYING ||
|
||||||
|
GST_STATE (sink) == GST_STATE_PAUSED)
|
||||||
|
break;
|
||||||
|
|
||||||
g_free (sink->location);
|
g_free (sink->location);
|
||||||
sink->location = g_strdup (g_value_get_string (value));
|
sink->location = g_strdup (g_value_get_string (value));
|
||||||
break;
|
break;
|
||||||
|
@ -370,7 +373,9 @@ gst_gio_sink_render (GstBaseSink * base_sink, GstBuffer * buffer)
|
||||||
/* FIXME: Can this happen? Should we handle it gracefully? gnomevfssink
|
/* FIXME: Can this happen? Should we handle it gracefully? gnomevfssink
|
||||||
* doesn't... */
|
* doesn't... */
|
||||||
GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, (NULL),
|
GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, (NULL),
|
||||||
("Could not write to location %s: (short write)", sink->location));
|
("Could not write to location %s: (short write, only %"
|
||||||
|
G_GUINT64_FORMAT " bytes of %d bytes written)",
|
||||||
|
sink->location, written, GST_BUFFER_SIZE (buffer)));
|
||||||
return GST_FLOW_ERROR;
|
return GST_FLOW_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,7 @@ enum
|
||||||
static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
|
static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
|
||||||
GST_PAD_SRC,
|
GST_PAD_SRC,
|
||||||
GST_PAD_ALWAYS,
|
GST_PAD_ALWAYS,
|
||||||
GST_STATIC_CAPS ("ANY")
|
GST_STATIC_CAPS_ANY);
|
||||||
);
|
|
||||||
|
|
||||||
GST_BOILERPLATE_FULL (GstGioSrc, gst_gio_src, GstBaseSrc, GST_TYPE_BASE_SRC,
|
GST_BOILERPLATE_FULL (GstGioSrc, gst_gio_src, GstBaseSrc, GST_TYPE_BASE_SRC,
|
||||||
gst_gio_uri_handler_do_init);
|
gst_gio_uri_handler_do_init);
|
||||||
|
@ -76,7 +75,7 @@ gst_gio_src_base_init (gpointer gclass)
|
||||||
static GstElementDetails element_details = {
|
static GstElementDetails element_details = {
|
||||||
"GIO source",
|
"GIO source",
|
||||||
"Source/File",
|
"Source/File",
|
||||||
"Read from any GVFS-supported location",
|
"Read from any GIO-supported location",
|
||||||
"Ren\xc3\xa9 Stadler <mail@renestadler.de>"
|
"Ren\xc3\xa9 Stadler <mail@renestadler.de>"
|
||||||
};
|
};
|
||||||
GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
|
GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
|
||||||
|
@ -147,6 +146,10 @@ gst_gio_src_set_property (GObject * object, guint prop_id,
|
||||||
|
|
||||||
switch (prop_id) {
|
switch (prop_id) {
|
||||||
case ARG_LOCATION:
|
case ARG_LOCATION:
|
||||||
|
if (GST_STATE (src) == GST_STATE_PLAYING ||
|
||||||
|
GST_STATE (src) == GST_STATE_PAUSED)
|
||||||
|
break;
|
||||||
|
|
||||||
g_free (src->location);
|
g_free (src->location);
|
||||||
src->location = g_strdup (g_value_get_string (value));
|
src->location = g_strdup (g_value_get_string (value));
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue