* MAIN CONCEPTS
* 1) Activating a stream (i.e. linking a slot to an output) is only done within
* the streaming thread in the multiqueue_src_probe() and only if the
- stream is in the REQUESTED selection.
+ * stream is in the REQUESTED selection.
* 2) Deactivating a stream (i.e. unlinking a slot from an output) is also done
* within the stream thread, but only in a purposefully called IDLE probe
* that calls reassign_slot().
/* counter for input */
guint32 input_counter;
/* Current stream group_id (default : GST_GROUP_ID_INVALID) */
- /* FIXME : Needs to be reset appropriately (when upstream changes ?) */
guint32 current_group_id;
/* End of variables protected by input_lock */
gulong pad_removed_sigid;
gulong drained_sigid;
- /* TRUE if the input got drained
- * FIXME : When do we reset it if re-used ?
- */
+ /* TRUE if the input got drained */
gboolean drained;
};
/* id of the MQ src_pad event probe */
gulong probe_id;
+ /* TRUE if EOS was pushed out by multiqueue */
gboolean is_drained;
DecodebinOutputStream *output;
gobject_klass->set_property = gst_decodebin3_set_property;
gobject_klass->get_property = gst_decodebin3_get_property;
- /* FIXME : ADD PROPERTIES ! */
g_object_class_install_property (gobject_klass, PROP_CAPS,
g_param_spec_boxed ("caps", "Caps",
"The caps on which to stop decoding. (NULL = default)",
GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- /* FIXME : ADD SIGNALS ! */
/**
* GstDecodebin3::select-stream
* @decodebin: a #GstDecodebin3
{
GstDecodebin3 *dbin = (GstDecodebin3 *) object;
- /* FIXME : IMPLEMENT */
switch (prop_id) {
case PROP_CAPS:
GST_OBJECT_LOCK (dbin);
{
GstDecodebin3 *dbin = (GstDecodebin3 *) object;
- /* FIXME : IMPLEMENT */
switch (prop_id) {
case PROP_CAPS:
GST_OBJECT_LOCK (dbin);
DecodebinOutputStream * output)
{
GstBuffer *buf = GST_PAD_PROBE_INFO_BUFFER (info);
+
/* If we have a keyframe, remove the probe and let all data through */
- /* FIXME : HANDLE HEADER BUFFER ?? */
if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT) ||
GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_HEADER)) {
GST_DEBUG_OBJECT (pad,
dbin->pending_select_streams = g_list_copy (streams);
SELECTION_UNLOCK (dbin);
- /* FIXME : We don't have an upstream ?? */
#if 0
/* Send event upstream */
if ((peer = gst_pad_get_peer (pad))) {