index 5fa6af21715c75aaa0625312b3c5542bf8d236d1..97570bbb8f21d8d4a5573654712d78756e217137 100644 (file)
ARG_OUTPUT,
ARG_PATTERN,
ARG_NUM_BUFFERS,
+ ARG_EOS,
ARG_SILENT
};
GTK_ARG_READWRITE, ARG_PATTERN);
gtk_object_add_arg_type ("GstFakeSrc::num_buffers", GTK_TYPE_INT,
GTK_ARG_READWRITE, ARG_NUM_BUFFERS);
+ gtk_object_add_arg_type ("GstFakeSrc::eos", GTK_TYPE_BOOL,
+ GTK_ARG_READWRITE, ARG_EOS);
gtk_object_add_arg_type ("GstFakeSrc::silent", GTK_TYPE_BOOL,
GTK_ARG_READWRITE, ARG_SILENT);
case ARG_NUM_BUFFERS:
src->num_buffers = GTK_VALUE_INT (*arg);
break;
+ case ARG_EOS:
+ src->eos = GTK_VALUE_BOOL (*arg);
+GST_INFO (0, "will EOS on next buffer");
+ break;
case ARG_SILENT:
src->silent = GTK_VALUE_BOOL (*arg);
break;
case ARG_NUM_BUFFERS:
GTK_VALUE_INT (*arg) = src->num_buffers;
break;
+ case ARG_EOS:
+ GTK_VALUE_BOOL (*arg) = src->eos;
case ARG_SILENT:
GTK_VALUE_BOOL (*arg) = src->silent;
break;
src->num_buffers--;
}
+ if (src->eos) {
+ GST_INFO (0, "fakesrc is setting eos on pad");
+ gst_pad_set_eos (pad);
+ return NULL;
+ }
+
if (!src->silent)
g_print("fakesrc: ******* (%s:%s)> \n",GST_DEBUG_PAD_NAME(pad));
buf = gst_buffer_new();
}
else {
if (src->num_buffers > 0)
- src->num_buffers--;
+ src->num_buffers--;
+ }
+
+ if (src->eos) {
+ GST_INFO (0, "fakesrc is setting eos on pad");
+ gst_pad_set_eos (pad);
+ return;
}
buf = gst_buffer_new();