[Bug 793065] New: Imagefreeze element does not change the buffer on GST_SEEK_FLAG_FLUSH seek event

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Jan 31 13:58:31 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=793065

            Bug ID: 793065
           Summary: Imagefreeze element does not change the buffer on
                    GST_SEEK_FLAG_FLUSH seek event
    Classification: Platform
           Product: GStreamer
           Version: 1.12.2
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: lienes.cirules at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Even if the pipeline makes the seek with GST_SEEK_FLAG_FLUSH, autovideosink
receives from imagefreeze the same buffer as before. So obviously imagefreez
does not change the buffer. When I make a query on position, i see that
position is changed relevant to seek request. 

Pipeline in use : filesrc location=/path/0.mkv ! matroskademux ! avdec_h264 !
imagefreeze name=frz ! videoconvert ! autovideosink; 

Main steps in code : 

gst_element_query_position (data->pipeline, GST_FORMAT_TIME, &position);

and 

seek_event = gst_event_new_seek (data->rate, GST_FORMAT_TIME,
(GstSeekFlags)(GST_SEEK_FLAG_FLUSH),GST_SEEK_TYPE_SET, pos, GST_SEEK_TYPE_NONE,
0);

And console output with GST_DEBUG=3,imagefreeze*:6 reports: 

0:00:17.220709175 31321       0xcdb590 DEBUG            imagefreeze
gstimagefreeze.c:681:gst_image_freeze_sink_chain:<imagefreeze0:sink> Already
have a buffer, dropping

Absolute seek 
Current position 0:00:16.961000000, new position 0:00:11.961000000
0:00:17.224094233 31321       0xcdb590 DEBUG            imagefreeze
gstimagefreeze.c:681:gst_image_freeze_sink_chain:<imagefreeze0:sink> Already
have a buffer, dropping
0:00:17.227798715 31321       0xcc7c30 LOG              imagefreeze
gstimagefreeze.c:554:gst_image_freeze_src_event:<imagefreeze0:src> Got seek
event
0:00:17.227876106 31321 0x7f3b9c014f20 DEBUG            imagefreeze
gstimagefreeze.c:801:gst_image_freeze_src_loop:<imagefreeze0:src> Pushing
buffer resulted in flushing
0:00:17.227903018 31321 0x7f3b9c014f20 LOG              imagefreeze
gstimagefreeze.c:819:gst_image_freeze_src_loop:<imagefreeze0> pausing task,
reason flushing
0:00:17.227947396 31321       0xcc7c30 DEBUG            imagefreeze
gstimagefreeze.c:647:gst_image_freeze_src_event:<imagefreeze0:src> Seek
successful
0:00:17.228017578 31321 0x7f3b9c014f20 DEBUG            imagefreeze
gstimagefreeze.c:728:gst_image_freeze_src_loop:<imagefreeze0:src> Pushing
SEGMENT event: time segment start=0:00:11.961000000, offset=0:00:00.000000000,
stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x01,
time=0:00:11.961000000, base=0:00:00.000000000, position 0:00:11.961000000,
duration 99:99:99.999999999
0:00:17.228077464 31321 0x7f3b9c014f20 DEBUG            imagefreeze
gstimagefreeze.c:791:gst_image_freeze_src_loop:<imagefreeze0:src> Handling
buffer with timestamp 0:00:11.960000000
0:00:17.229690575 31321       0xcdb590 DEBUG            imagefreeze
gstimagefreeze.c:681:gst_image_freeze_sink_chain:<imagefreeze0:sink> Already
have a buffer, dropping

Note that i tried some ways like changing target (pipeline, sink, imagefreeze)
on which sink event applied. Also tested different versions like
(GST_SEEK_FLAG_FLUSH, GST_SEEK_FLAG_SEGMENT), but imagefreeze also fails to
change the buffer.

-- 
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