[gstreamer-bugs] [Bug 354671] New: Element doesn't implement handling of this stream
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Wed Sep 6 11:38:30 PDT 2006
Do not reply to this via email (we are currently unable to handle email
responses and they get discarded). You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=354671
GStreamer | gst-ffmpeg | Ver: 0.10.3
Summary: Element doesn't implement handling of this stream
Product: GStreamer
Version: 0.10.3
Platform: Other
OS/Version: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gst-ffmpeg
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: wolfgang.beck01 at t-online.de
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME version: Unspecified
GNOME milestone: Unspecified
Please describe the problem:
example program terminates with
"Error: Element doesn't implement handling of this stream. Please file a bug."
Steps to reproduce:
#include <unistd.h>
#include <gst/gst.h>
static gboolean bus_call (
GstBus *bus,
GstMessage *msg,
gpointer data
)
{
GMainLoop *loop = data;
switch (GST_MESSAGE_TYPE (msg)) {
case GST_MESSAGE_EOS:
g_print ("End-of-stream\n");
g_main_loop_quit (loop);
break;
case GST_MESSAGE_ERROR: {
gchar *debug;
GError *err;
gst_message_parse_error (msg, &err, &debug);
g_free (debug);
g_print ("Error: %s\n", err->message);
g_error_free (err);
g_main_loop_quit (loop);
}
break;
default:
break;
}
return TRUE;
}
static void cb_new_pad(GstElement *el, GstPad *pad, gpointer data)
{
printf("pad added\n");
}
int main(int argc, char **argv)
{
GstElement *dvsrc;
GstElement *dvdmx;
GstElement *dvdec;
GstElement *scale;
GstElement *pipe;
GstElement *vid;
GMainLoop *loop;
GstBus *bus;
gst_init(&argc, &argv);
loop = g_main_loop_new (NULL, FALSE);
dvsrc = gst_element_factory_make("dv1394src", "dv1394src");
if(dvsrc == NULL) {
printf("gst_element_factory_make dv1394src failed\n");
}
dvdmx = gst_element_factory_make("ffdemux_dv", "ffdemux_dv");
if(dvdec == NULL) {
printf("gst_element_factory_make dvdmx failed\n");
}
dvdec = gst_element_factory_make("ffdec_dvvideo", "ffdec_dvvideo");
if(dvdec == NULL) {
printf("gst_element_factory_make dvdec failed\n");
}
scale = gst_element_factory_make("ffvideoscale", "ffvideoscale");
if(scale == NULL) {
printf("gst_element_factory_make scale failed\n");
}
vid = gst_element_factory_make("xvimagesink", "xvimagesink");
if(vid == NULL) {
printf("gst_element_factory_make vid failed\n");
}
g_object_set(G_OBJECT(vid), "display", getenv("DISPLAY"), NULL);
pipe = gst_pipeline_new ("dv2v4l");
gst_bin_add_many(GST_BIN(pipe), dvsrc, dvdmx, dvdec, scale, vid, NULL);
bus = gst_pipeline_get_bus (GST_PIPELINE (pipe));
gst_bus_add_watch (bus, bus_call, loop);
gst_object_unref (bus);
if(!gst_element_link_many(dvdec, scale, vid, NULL)) {
printf("#1gst_element_link_many failed\n");
if(!gst_element_link_many(dvsrc, dvdmx, NULL)) {
printf("#2gst_element_link_many failed\n");
}
g_signal_connect(G_OBJECT(dvdmx),
"pad-added", G_CALLBACK(cb_new_pad), NULL);
gst_element_set_state (pipe, GST_STATE_PLAYING);
/* error message appears in the next call */
g_main_loop_run (loop);
gst_element_set_state (pipe, GST_STATE_NULL);
gst_object_unref(pipe);
return 0;
}
}
Actual results:
Expected results:
the 'cb_new_pad' function should be called
Does this happen every time?
yes
Other information:
a call
gst_element_link_many(dvsrc, dvdmx, dvdec, scale, vid, NULL)
fails as the ffdemux_dv (dvdmx) hasn't created its 'sometimes' pad yet
(I think this is an API design problem).
--
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs
mailing list