gst_element_no_more_pads (GST_ELEMENT (ogg));
/* FIXME, must be sent from the streaming thread */
- if (event)
+ if (event) {
gst_ogg_demux_send_event (ogg, event);
+ gst_element_found_tags (GST_ELEMENT_CAST (ogg),
+ gst_tag_list_new_full (GST_TAG_CONTAINER_FORMAT, "Ogg", NULL));
+ }
+
GST_DEBUG_OBJECT (ogg, "starting chain");
/* then send out any queued buffers */
GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
gst_event_ref (event);
- GST_DEBUG_OBJECT (ogg, "Pushing event on pad %p", pad);
+ GST_DEBUG_OBJECT (pad, "Pushing event %" GST_PTR_FORMAT, event);
gst_pad_push_event (GST_PAD (pad), event);
}
}
}
break;
}
+ case GST_EVENT_TAG:
+ {
+ if (dec->have_header)
+ /* and forward */
+ ret = gst_pad_push_event (dec->srcpad, event);
+ else {
+ /* store it to send once we're initialized */
+ dec->pendingevents = g_list_append (dec->pendingevents, event);
+ ret = TRUE;
+ }
+ break;
+ }
default:
ret = gst_pad_push_event (dec->srcpad, event);
break;
}
break;
}
+ case GST_EVENT_TAG:
+ {
+ if (dec->initialized)
+ /* and forward */
+ ret = gst_pad_push_event (dec->srcpad, event);
+ else {
+ /* store it to send once we're initialized */
+ dec->pendingevents = g_list_append (dec->pendingevents, event);
+ ret = TRUE;
+ }
+ break;
+ }
default:
ret = gst_pad_push_event (dec->srcpad, event);
break;