[Bug 773833] New: rtpL16depay and rtpL24depay failing to do depay in place

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Nov 2 14:43:43 UTC 2016


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

            Bug ID: 773833
           Summary: rtpL16depay and rtpL24depay failing to do depay in
                    place
    Classification: Platform
           Product: GStreamer
           Version: 1.9.90
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: brain at jikos.cz
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

It seems that rtpL16depay, rtpL24depay (and I guess also other rtp-depay
functions) are failing to depayload in place. It always allocates a new buffer
and copies the payload.

This is the log I'm seeing:

0:00:13.489419481  1060  0x1ec5150 DEBUG            rtpL16depay
gstrtpL16depay.c:243:gst_rtp_L16_depay_process:<rtpl16depay0> got payload of
192 bytes
0:00:13.489596481  1060  0x1ec5150 LOG               GST_BUFFER
gstbuffer.c:798:gst_buffer_new: new 0x75c05370
0:00:13.489760981  1060  0x1ec5150 LOG               GST_BUFFER
gstbuffer.c:2038:gst_buffer_copy_region: new region copy 0x75c05370 of
0x75c054b0 12-192
0:00:13.490969772  1060  0x1ec5150 LOG               GST_BUFFER
gstbuffer.c:514:gst_buffer_copy_into: copy 0x75c054b0 to 0x75c05370, offset
12-192/204
--
0:00:13.493352979  1060  0x1ec5150 TRACE            GST_LOCKING
gstminiobject.c:177:gst_mini_object_lock: lock 0x1ecb690: state 00020000,
access_mode 3
0:00:13.493546312  1060  0x1ec5150 DEBUG            GST_LOCKING
gstminiobject.c:212:gst_mini_object_lock: lock failed 0x1ecb690: state
00020000, access_mode 3
0:00:13.493717020  1060  0x1ec5150 DEBUG             GST_MEMORY
gstmemory.c:317:gst_memory_map: mem 0x1ecb690: lock 3 failed
0:00:13.493910270  1060  0x1ec5150 TRACE        GST_REFCOUNTING
gstobject.c:249:gst_object_ref:<allocatorsysmem0> 0x1ddc010 ref 6->7
0:00:13.494091270  1060  0x1ec5150 DEBUG             GST_MEMORY
gstmemory.c:138:gst_memory_init: new memory 0x1ecb578, maxsize:195 offset:0
size:192
0:00:13.494364978  1060  0x1ec5150 DEBUG        GST_PERFORMANCE
gstallocator.c:462:_sysmem_copy: memcpy 192 memory 0x1ecb690 -> 0x1ecb578


And this is the command:
GST_DEBUG=9 gst-launch-1.0 audiotestsrc is-live=true wave=silence
samplesperbuffer=48 !
"audio/x-raw,format=(string)S16BE,rate=(int)48000,channels=(int)2,channel-mask=(int)0x3"
! rtpL16pay ! rtpL16depay ! fakesink
2>&1 | grep -B 5 copy

It happens in gst_audio_buffer_reorder_channels() when mapping the buffer
read-write. It doesn't really matter what the source is, the same happens with
udpsrc.

--

The other thing here is that if the channels don't require reordering (like in
my case) the buffer shouldn't be remapped read-write. Otherwise the potential
buffer copy is redundant.

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