diff -r 5e4ac847bdfa -r dda330ac986f gst-plugins-nuvdemux/nuvdemux/gstnuvdemux.c --- a/gst-plugins-nuvdemux/nuvdemux/gstnuvdemux.c Fri Dec 01 17:57:15 2006 +0000 +++ b/gst-plugins-nuvdemux/nuvdemux/gstnuvdemux.c Fri Dec 01 19:41:39 2006 +0000 @@ -593,7 +593,6 @@ { gint64 duration = 0; duration = gst_nuv_demux_get_time_duration (nuv); - g_debug ("Query"); if (duration == GST_CLOCK_TIME_NONE) { duration = nuv->priv->duration_average; } @@ -821,6 +820,7 @@ done: if (buf != NULL) { + g_free (buf->data); gst_buffer_unref (buf); buf = NULL; } @@ -1060,7 +1060,8 @@ data = (guint8 *) gst_adapter_take (nuv->priv->adapter, size); *buffer = gst_buffer_new (); GST_BUFFER_SIZE (*buffer) = size; - GST_BUFFER_MALLOCDATA (*buffer) = data; +// GST_BUFFER_MALLOCDATA (*buffer) = g_malloc0 (size); +// memcpy (GST_BUFFER_MALLOCDATA (*buffer), data, size); GST_BUFFER_DATA (*buffer) = data; } else { guint8 *data = NULL; @@ -1078,11 +1079,15 @@ gboolean res = TRUE; GstNuvDemux *nuv = GST_NUV_DEMUX (gst_pad_get_parent (sinkpad)); + res = gst_pad_activate_push (sinkpad, TRUE); + /* + if (gst_pad_check_pull_range (sinkpad)) { res = gst_pad_activate_pull (sinkpad, TRUE); } else { res = gst_pad_activate_push (sinkpad, TRUE); } + */ g_object_unref (nuv); return res; }