diff --git a/ChangeLog b/ChangeLog index 73765bf650..e16ac9631b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-08-10 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_setcaps): + Add debug category, remove Close() call that made it crash + whenever reusing, renegotiating or anything; Close() actually + free()s the handle and should only be called on READY->NULL. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header): + Actually set caps on buffer (in addition to pad), also. + 2005-08-10 Owen Fraser-Green * gst/realmedia/rmdemux.c (gst_rmdemux_sink_activate) diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c index 2e5fa49eeb..096baeb652 100644 --- a/ext/faad/gstfaad.c +++ b/ext/faad/gstfaad.c @@ -25,6 +25,9 @@ #include #include "gstfaad.h" +GST_DEBUG_CATEGORY_STATIC (faad_debug); +#define GST_CAT_DEFAULT faad_debug + static GstElementDetails faad_details = { "Free AAC Decoder (FAAD)", "Codec/Decoder/Audio", @@ -141,6 +144,8 @@ gst_faad_class_init (GstFaadClass * klass) parent_class = g_type_class_peek_parent (klass); gstelement_class->change_state = gst_faad_change_state; + + GST_DEBUG_CATEGORY_INIT (faad_debug, "faad", 0, "AAC decoding"); } static void @@ -191,12 +196,7 @@ gst_faad_setcaps (GstPad * pad, GstCaps * caps) /* We have codec data, means packetised stream */ faad->packetised = TRUE; - buf = g_value_get_boxed (value); - - if (faad->handle) { - GST_DEBUG ("faad handle already open; closing before re-initing"); - faacDecClose (faad->handle); - } + buf = GST_BUFFER (gst_value_get_mini_object (value)); /* someone forgot that char can be unsigned when writing the API */ if ((gint8) faacDecInit2 (faad->handle, GST_BUFFER_DATA (buf), diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 32d31ddcf9..7a31f89e19 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -678,8 +678,9 @@ gst_qtdemux_loop_header (GstPad * pad) /* ? */ qtdemux->need_flush = FALSE; } - GST_DEBUG ("Pushing buf with time=%" GST_TIME_FORMAT "\n", + GST_DEBUG ("Pushing buf with time=%" GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + gst_buffer_set_caps (buf, stream->caps); gst_pad_push (stream->pad, buf); GST_INFO ("pushing buffer on %" GST_PTR_FORMAT, stream->pad);