I have just began working with the GStreamer SDK, in Windows, using the playbin2 set up as follows:
pipeline = gst_element_factory_make("playbin2", NULL); g_object_get (pipeline, "flags", &flags, NULL); flags |= GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_AUDIO; flags &= ~GST_PLAY_FLAG_TEXT; g_object_set (pipeline, "flags", flags, NULL); this->sink = gst_element_factory_make("appsink", NULL); g_object_set(G_OBJECT(sink), "emit-signals", true, NULL); g_object_set(G_OBJECT(sink), "max-buffers", 1, NULL); g_object_set(G_OBJECT(sink), "drop", true, NULL); g_signal_connect(G_OBJECT(sink), "new-buffer", G_CALLBACK(newVideoBuffer), this); GstCaps *caps = gst_caps_new_simple("video/x-raw-rgb", 0); GstElement *rgbFilter = gst_element_factory_make("capsfilter", NULL); g_object_set(G_OBJECT(rgbFilter), "caps", caps, NULL); gst_caps_unref(caps); GstElement* appBin = gst_bin_new(NULL); gst_bin_add_many(GST_BIN(appBin), rgbFilter, NULL); GstPad* sinkPad = gst_element_get_static_pad(rgbFilter, "sink"); GstPad* ghostPad = gst_ghost_pad_new(NULL, sinkPad); gst_object_unref(sinkPad); gst_element_add_pad(appBin, ghostPad); gst_bin_add_many(GST_BIN(appBin), sink, NULL); gst_element_link_many(rgbFilter, sink, NULL); g_object_set(G_OBJECT(pipeline), "video-sink", appBin, NULL); g_object_set(G_OBJECT(pipeline), "uri", uri.c_str(), NULL); I am trying to play a movie which looks like this (when running gst-discoverer): Topology: container: Quicktime audio: MPEG-4 AAC video: H.264 Properties: Duration: 0:00:24.709000000 Seekable: yes Tags: video codec: H.264 / AVC language code: en audio codec: MPEG-4 AAC audio maximum bitrate: 256000 bitrate: 223265 datetime: "2011-08-15T08:42:26. encoder: Lavf54.7.100 container format: ISO MP4/M4A The movie is looped, by seeking to 0 when I get a EOS message. After about 1 hour (the movie is a couple of seconds long) I get the following error: Error recevied with message: Internal GStreamer error: code not implemented. Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer. Debugging information: gstffmpegcolorspace.c(495): gst_ffmpegcsp_transform (): /GstPlayBin2:playbin2208/GstPlaySink:playsink/GstBin:vbin/GstPlaySinkVideoConvert:vconv/GstFFMpegCsp:conv2: cannot convert between formats Code: 3 Error recevied with message: GStreamer encountered a general stream error. Debugging information: qtdemux.c(3891): gst_qtdemux_loop (): /GstPlayBin2:playbin2208/GstURIDecodeBin:uridecodebin208/GstDecodeBin2:decodebin2208/GstQTDemux:qtdemux199: Now I would not be confused if I didn't get the error after a while as I do. I am running an other movie at the same time with the same setup, which also dies after a while. But only after the first movie and with the following error: Error recevied with message: Internal data stream error. Debugging information: gstavidemux.c(5214): gst_avi_demux_loop (): /GstPlayBin2:playbin2214/GstURIDecodeBin:uridecodebin214/GstDecodeBin2:decodebin2214/GstAviDemux:avidemux14: streaming stopped, reason error Code: 1 Why is that? The seconds movie (big_buck_bunny_720p_surround.avi) has worked fine for hours on it own. I'm not sure if I should file a bug on bugzilla (or how it is done) as I am fairly new to this ... // Tobias |
Free forum by Nabble | Edit this page |