GNOME Bugzilla – Bug 672902
ffdec_png negotiation problem, asks to file a bug report
Last modified: 2013-07-17 12:30:51 UTC
ffdec_png itself suggested me to file a bug report: Error from element decode_bin: Internal GStreamer error: negotiation problem. Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer. Debug: gstffmpegdec.c(2748): gst_ffmpegdec_chain (): /GstPipeline:Still video player/ffdec_png:decode_bin: ffdec_png: input format was not set before data start I used it in the following chain: src = gst_element_factory_make ("filesrc", "source_image"); //dec = gst_element_factory_make ("pngdec", "decode_bin"); dec = gst_element_factory_make ("ffdec_png", "decode_bin"); img_freeze = gst_element_factory_make ("imagefreeze", "image_freeze"); conv = gst_element_factory_make ("ffmpegcolorspace", "ffmpeg-colorspace"); sink = gst_element_factory_make ("ximagesink", "directdrawsink-output"); with "pngdec" is usually works OK, but not with the file tjej2.png I am attaching (it does not work on many *.png files, for which pngdec works fine). The file tjej2.png in question is viewable OK with the standard Linux image viewers. With other decoders, from the command line, the results are as follows: sergei@wsl:~/vlc-test3$ gst-launch filesrc location=tjej2.png ! decodebin2 ! imagefreeze ! ffmpegcolorspace ! ximagesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstPngDec:pngdec0: Internal data stream error. Additional debug info: gstpngdec.c(554): gst_pngdec_task (): /GstPipeline:pipeline0/GstDecodeBin2:decodebin20/GstPngDec:pngdec0: stream stopped, reason not-linked ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... sergei@wsl:~/vlc-test3$ gst-launch filesrc location=tjej2.png ! decpng ! imagefreeze ! ffmpegcolorspace ! ximagesink WARNING: erroneous pipeline: no element "decpng" sergei@wsl:~/vlc-test3$ gst-launch filesrc location=tjej2.png ! pngdec ! imagefreeze ! ffmpegcolorspace ! ximagesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/GstPngDec:pngdec0: Internal data stream error. Additional debug info: gstpngdec.c(554): gst_pngdec_task (): /GstPipeline:pipeline0/GstPngDec:pngdec0: stream stopped, reason not-negotiated ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ... sergei@wsl:~/vlc-test3$ gst-launch filesrc location=tjej2.png ! ffdec_png ! imagefreeze ! ffmpegcolorspace ! ximagesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /GstPipeline:pipeline0/ffdec_png:ffdec_png0: Internal GStreamer error: negotiation problem. Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer. Additional debug info: gstffmpegdec.c(2748): gst_ffmpegdec_chain (): /GstPipeline:pipeline0/ffdec_png:ffdec_png0: ffdec_png: input format was not set before data start ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ...
Version information I forgot: sergei@wsl:~/vlc-test3$ gst-launch --version gst-launch-0.10 version 0.10.35 GStreamer 0.10.35 https://launchpad.net/distros/ubuntu/+source/gstreamer0.10 sergei@wsl:~/vlc-test3$
You need a parser before the decoder, I attached one to bug #690639
pngparse has a higher rank than avdec_png so will be auto-plugged in decodebin. If you are manually constructing pipelines, you will need to add it manually.