diff --git a/gst/Makefile.am b/gst/Makefile.am index f64806f9a1..0207df92a3 100644 --- a/gst/Makefile.am +++ b/gst/Makefile.am @@ -81,6 +81,8 @@ noinst_HEADERS = \ gsti386.h \ gstppc.h +CFLAGS += -g -Wall + libgst_la_LIBADD = $(GLIB_LIBS) $(GTK_LIBS) $(XML_LIBS) libgst_la_LDFLAGS = -version-info $(STREAMER_CURRENT):$(STREAMER_REVISION):$(STREAMER_AGE) diff --git a/gst/elements/gstasyncdisksrc.c b/gst/elements/gstasyncdisksrc.c index 86d93ecd92..9bb3fa0780 100644 --- a/gst/elements/gstasyncdisksrc.c +++ b/gst/elements/gstasyncdisksrc.c @@ -26,7 +26,9 @@ #include #include -#include +//#define GST_DEBUG_ENABLED + +#include "gstasyncdisksrc.h" GstElementDetails gst_asyncdisksrc_details = { @@ -242,12 +244,15 @@ gst_asyncdisksrc_get (GstPad *pad) } else GST_BUFFER_SIZE (buf) = src->bytes_per_read; - src->curoffset += GST_BUFFER_SIZE (buf); + DEBUG ("map %p, offset %d, size %ld\n", src->map, src->curoffset, GST_BUFFER_SIZE (buf)); - g_print ("offset %d\n", src->curoffset); + //gst_util_dump_mem (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); + + src->curoffset += GST_BUFFER_SIZE (buf); if (src->new_seek) { GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLUSH); + DEBUG ("new seek\n"); src->new_seek = FALSE; } @@ -292,14 +297,14 @@ gst_asyncdisksrc_get_region (GstPad *pad, gulong offset, gulong size) GST_BUFFER_OFFSET (buf) = offset; GST_BUFFER_FLAG_SET (buf, GST_BUFFER_DONTFREE); - g_print ("offset %d\n", offset); - if ((offset + size) > src->size) { GST_BUFFER_SIZE (buf) = src->size - offset; // FIXME: set the buffer's EOF bit here } else GST_BUFFER_SIZE (buf) = size; + DEBUG ("map %p, offset %d, size %ld\n", src->map, offset, GST_BUFFER_SIZE (buf)); + /* we're done, return the buffer off now */ return buf; } @@ -330,7 +335,7 @@ gboolean gst_asyncdisksrc_open_file (GstAsyncDiskSrc *src) return FALSE; } GST_FLAG_SET (src, GST_ASYNCDISKSRC_OPEN); - src->new_seek = FALSE; + src->new_seek = TRUE; } return TRUE; } diff --git a/gst/gstautoplug.c b/gst/gstautoplug.c index 15169aeef5..8b05e2bb29 100644 --- a/gst/gstautoplug.c +++ b/gst/gstautoplug.c @@ -20,7 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#define GST_DEBUG_ENABLED +//#define GST_DEBUG_ENABLED #include "gst_private.h" #include "gstautoplug.h" diff --git a/gst/gstbin.c b/gst/gstbin.c index ad1ec93a7b..6e766a066f 100644 --- a/gst/gstbin.c +++ b/gst/gstbin.c @@ -20,7 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#define GST_DEBUG_ENABLED +//#define GST_DEBUG_ENABLED #include "gst_private.h" #include "gstbin.h" diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index c30bad3fd8..0f34201639 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -166,7 +166,8 @@ gst_buffer_append (GstBuffer *buffer, GST_BUFFER_LOCK (buffer); // the buffer is not used by anyone else - if (GST_BUFFER_REFCOUNT (buffer) == 1 && buffer->parent == NULL) { + if (GST_BUFFER_REFCOUNT (buffer) == 1 && buffer->parent == NULL + && !GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_DONTFREE)) { // save the old size size = buffer->size; buffer->size += append->size; diff --git a/gst/gstbuffer.h b/gst/gstbuffer.h index 86bcdc0384..fe7e1fc782 100644 --- a/gst/gstbuffer.h +++ b/gst/gstbuffer.h @@ -47,11 +47,11 @@ extern "C" { #define GST_BUFFER_FLAGS(buf) \ (GST_BUFFER(buf)->flags) #define GST_BUFFER_FLAG_IS_SET(buf,flag) \ - (GST_BUFFER_FLAGS(buf) & (flag)) + (GST_BUFFER_FLAGS(buf) & (1<<(flag))) #define GST_BUFFER_FLAG_SET(buf,flag) \ - G_STMT_START{ (GST_BUFFER_FLAGS(buf) |= (flag)); }G_STMT_END + G_STMT_START{ (GST_BUFFER_FLAGS(buf) |= (1<<(flag))); }G_STMT_END #define GST_BUFFER_FLAG_UNSET(buf,flag) \ - G_STMT_START{ (GST_BUFFER_FLAGS(buf) &= ~(flag)); }G_STMT_END + G_STMT_START{ (GST_BUFFER_FLAGS(buf) &= ~(1<<(flag))); }G_STMT_END #define GST_BUFFER_TYPE(buf) (GST_BUFFER(buf)->type) diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c index 0e974e3693..55d9e1e526 100644 --- a/gst/gstpipeline.c +++ b/gst/gstpipeline.c @@ -20,7 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#define GST_DEBUG_ENABLED +//#define GST_DEBUG_ENABLED #include "gst_private.h" #include "gstpipeline.h" diff --git a/gst/gstprops.c b/gst/gstprops.c index 766b0e4315..eaaf50fa13 100644 --- a/gst/gstprops.c +++ b/gst/gstprops.c @@ -20,7 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#define GST_DEBUG_ENABLED +//#define GST_DEBUG_ENABLED #include "gst_private.h" #include "gstprops.h" diff --git a/gst/gstscheduler.c b/gst/gstscheduler.c index 8a551aa6e0..3b9b326caf 100644 --- a/gst/gstscheduler.c +++ b/gst/gstscheduler.c @@ -20,7 +20,7 @@ * Boston, MA 02111-1307, USA. */ -#define GST_DEBUG_ENABLED +//#define GST_DEBUG_ENABLED #include "gst_private.h" #include "gstscheduler.h" diff --git a/gstplay/gstplay.c b/gstplay/gstplay.c index c472b82343..655116a61e 100644 --- a/gstplay/gstplay.c +++ b/gstplay/gstplay.c @@ -142,8 +142,6 @@ gst_play_init (GstPlay *play) gst_pipeline_add_sink (GST_PIPELINE (priv->pipeline), priv->audio_play); gst_pipeline_add_sink (GST_PIPELINE (priv->pipeline), priv->video_show); - //gst_bin_add (GST_BIN (priv->thread), priv->pipeline); - play->state = GST_PLAY_STOPPED; play->flags = 0; @@ -220,7 +218,7 @@ gst_play_object_added (GstElement *pipeline, priv = (GstPlayPrivate *)play->priv; - if (GST_FLAGS (element) & GST_ELEMENT_NO_SEEK) { + if (GST_FLAG_IS_SET (element, GST_ELEMENT_NO_SEEK)) { priv->can_seek = FALSE; } @@ -259,8 +257,8 @@ gst_play_set_uri (GstPlay *play, priv->uri = g_strdup (uri); - priv->src = gst_elementfactory_make ("disksrc", "disk_src"); - //priv->src = gst_elementfactory_make ("asyncdisksrc", "disk_src"); + //priv->src = gst_elementfactory_make ("disksrc", "disk_src"); + priv->src = gst_elementfactory_make ("asyncdisksrc", "disk_src"); //priv->src = gst_elementfactory_make ("dvdsrc", "disk_src"); g_return_val_if_fail (priv->src != NULL, -1); gtk_object_set (GTK_OBJECT (priv->src),"location",uri,NULL); @@ -281,6 +279,7 @@ gst_play_set_uri (GstPlay *play, play->flags |= GST_PLAY_TYPE_AUDIO; } + // hmmmm hack? FIXME GST_FLAG_UNSET (priv->pipeline, GST_BIN_FLAG_MANAGER); gst_bin_add (GST_BIN (priv->thread), priv->pipeline); diff --git a/plugins/elements/gstasyncdisksrc.c b/plugins/elements/gstasyncdisksrc.c index 86d93ecd92..9bb3fa0780 100644 --- a/plugins/elements/gstasyncdisksrc.c +++ b/plugins/elements/gstasyncdisksrc.c @@ -26,7 +26,9 @@ #include #include -#include +//#define GST_DEBUG_ENABLED + +#include "gstasyncdisksrc.h" GstElementDetails gst_asyncdisksrc_details = { @@ -242,12 +244,15 @@ gst_asyncdisksrc_get (GstPad *pad) } else GST_BUFFER_SIZE (buf) = src->bytes_per_read; - src->curoffset += GST_BUFFER_SIZE (buf); + DEBUG ("map %p, offset %d, size %ld\n", src->map, src->curoffset, GST_BUFFER_SIZE (buf)); - g_print ("offset %d\n", src->curoffset); + //gst_util_dump_mem (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); + + src->curoffset += GST_BUFFER_SIZE (buf); if (src->new_seek) { GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLUSH); + DEBUG ("new seek\n"); src->new_seek = FALSE; } @@ -292,14 +297,14 @@ gst_asyncdisksrc_get_region (GstPad *pad, gulong offset, gulong size) GST_BUFFER_OFFSET (buf) = offset; GST_BUFFER_FLAG_SET (buf, GST_BUFFER_DONTFREE); - g_print ("offset %d\n", offset); - if ((offset + size) > src->size) { GST_BUFFER_SIZE (buf) = src->size - offset; // FIXME: set the buffer's EOF bit here } else GST_BUFFER_SIZE (buf) = size; + DEBUG ("map %p, offset %d, size %ld\n", src->map, offset, GST_BUFFER_SIZE (buf)); + /* we're done, return the buffer off now */ return buf; } @@ -330,7 +335,7 @@ gboolean gst_asyncdisksrc_open_file (GstAsyncDiskSrc *src) return FALSE; } GST_FLAG_SET (src, GST_ASYNCDISKSRC_OPEN); - src->new_seek = FALSE; + src->new_seek = TRUE; } return TRUE; }