[Bug 750454] New: v4l2: a tee with queues duplicates buffers on a src pad

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Jun 5 08:07:47 PDT 2015


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

            Bug ID: 750454
           Summary: v4l2: a tee with queues duplicates buffers on a src
                    pad
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: major
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: jean-michel.hautbois at veo-labs.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

When using a simple :
v4l2src ! tee name=t ! queue ! fakesink name=out1 \
t. ! queue ! fakesink name=out2

The same buffer can go twice on the same queue :
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.392205875, duration:
0:00:00.200000000, offset: 143, offset_end: 144, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.392205875, duration:
0:00:00.200000000, offset: 143, offset_end: 144, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.571866165, duration:
0:00:00.200000000, offset: 144, offset_end: 145, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.571866165, duration:
0:00:00.200000000, offset: 144, offset_end: 145, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.751203051, duration:
0:00:00.200000000, offset: 145, offset_end: 146, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.751203051, duration:
0:00:00.200000000, offset: 145, offset_end: 146, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.930050295, duration:
0:00:00.200000000, offset: 146, offset_end: 147, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.930050295, duration:
0:00:00.200000000, offset: 146, offset_end: 147, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:27.109112342, duration:
0:00:00.200000000, offset: 147, offset_end: 148, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:27.109112342, duration:
0:00:00.200000000, offset: 147, offset_end: 148, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:27.288678423, duration:
0:00:00.200000000, offset: 148, offset_end: 149, flags: 00000000 )
0x7fdaac01c0c0


Removing the queues and making it single threaded solves the issue :
v4l2src ! tee name=t ! fakesink name=out1 async=0 \
t. ! fakesink name=out2 async=0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.392205875, duration:
0:00:00.200000000, offset: 143, offset_end: 144, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.392205875, duration:
0:00:00.200000000, offset: 143, offset_end: 144, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.571866165, duration:
0:00:00.200000000, offset: 144, offset_end: 145, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.571866165, duration:
0:00:00.200000000, offset: 144, offset_end: 145, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.751203051, duration:
0:00:00.200000000, offset: 145, offset_end: 146, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.751203051, duration:
0:00:00.200000000, offset: 145, offset_end: 146, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:26.930050295, duration:
0:00:00.200000000, offset: 146, offset_end: 147, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:26.930050295, duration:
0:00:00.200000000, offset: 146, offset_end: 147, flags: 00000000 )
0x7fdaac01c0c0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:27.109112342, duration:
0:00:00.200000000, offset: 147, offset_end: 148, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out2: last-message = chain   *******
(out2:sink) (4147200 bytes, dts: none, pts: 0:00:27.109112342, duration:
0:00:00.200000000, offset: 147, offset_end: 148, flags: 00000000 )
0x7fdaac01c1d0
/GstPipeline:pipeline0/GstFakeSink:out1: last-message = chain   *******
(out1:sink) (4147200 bytes, dts: none, pts: 0:00:27.288678423, duration:
0:00:00.200000000, offset: 148, offset_end: 149, flags: 00000000 )
0x7fdaac01c0c0

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