[Bug 735564] New: Error when using gdkpixbufdec with ImageFreeze element

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Aug 27 21:40:39 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=735564
  GStreamer | gst-plugins-ugly | unspecified

           Summary: Error when using gdkpixbufdec with ImageFreeze element
    Classification: Platform
           Product: GStreamer
           Version: unspecified
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-ugly
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: vineeth.tm at samsung.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=284654)
 View: https://bugzilla.gnome.org/attachment.cgi?id=284654
 Review: https://bugzilla.gnome.org/review?bug=735564&attachment=284654

Patch to remove error while using ImageFreeze element

When i try to use the following command

gst-launch-1.0 -v filesrc location=../MARBLES.GIF ! decodebin ! videoconvert !
imagefreeze ! videoconvert ! ximagesink

i get the below error

ERROR: from element
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstGdkPixbufDec:gdkpixbufdec0:
GStreamer encountered a general stream error.
Additional debug info:
gstgdkpixbufdec.c(416): gst_gdk_pixbuf_dec_sink_event ():
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstGdkPixbufDec:gdkpixbufdec0:
Flow: eos
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...


on debugging the issue found that,
in gst_gdk_pixbuf_dec_sink_event(),
gst_gdk_pixbuf_dec_flush() returns GST_FLOW_EOS, since in ImageFreeze element's
gst_image_freeze_sink_chain(), the default return value is GST_FLOW_EOS

but in gst_gdk_pixbuf_dec_sink_event(), we are checking the below conditions
and returning error otherwise
if (res != GST_FLOW_OK && res != GST_FLOW_FLUSHING )


There are two ways to fix this issue,
1) we can add extra condition as below in GdkPixBufDec
if (res != GST_FLOW_OK && res != GST_FLOW_FLUSHING && res != GST_FLOW_EOS)

2) or in gst_image_freeze_sink_chain(), we can return GST_FLOW_OK, as i dont
find any reason for returning GST_FLOW_EOS

My patch is with 2nd method.
Please review if this is ok, or we should follow 1st method or any other way.

-- 
Configure bugmail: https://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