[Bug 730999] New: rtph264depay only handles first NAL unit in a STAP-A packet

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Fri May 30 07:19:04 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=730999
  GStreamer | gst-plugins-good | 1.x

           Summary: rtph264depay only handles first NAL unit in a STAP-A
                    packet
    Classification: Platform
           Product: GStreamer
           Version: 1.x
        OS/Version: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: rudolfs.bundulis at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=277554)
 --> (https://bugzilla.gnome.org/attachment.cgi?id=277554)
Wireshark capture of the stream with STAP-A units

Seems that gst_rtp_h264_depay_process() in gstrtph264depay.c incorrectly
handles a STAP-A unit - only the first NAL unit from the STAP-A packet is sent
to the gst_rtp_h264_depay_handle_nal() function.

I'm using the following pipeline gst-launch-1.0 -v udpsrc multicast-group= 
224.13.11.1 port=1312 multicast-iface=eth0 caps="application/x-rtp, 
media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, 
payload=(int)96" ! rtph264depay ! h264parse ! omxh264dec ! eglglessink , if
only single NAL and FU-A packets are used the stream is successfully played, if
STAP-A is used to accumulate PPS/SPS/SEI messages no output is generated, and
in the log it seems that the whole packet is received, STAP-A format is
verified but only the first NAL is handled:

rtph264depay 
gstrtph264depay.c:874:gst_rtp_h264_depay_process:<rtph264depay0> NRI 1, 
Type 24 
GST_MEMORY gstmemory.c:133:gst_memory_init: new memory 0x1185828, 
maxsize:45 offset:0 size:42 
GST_MEMORY gstmemory.c:133:gst_memory_init: new memory 0x11446b8, 
maxsize:11 offset:0 size:8 
GST_MEMORY gstmemory.c:133:gst_memory_init: new memory 0x10a72c8, 
maxsize:29 offset:0 size:26 
adapter gstadapter.c:294:copy_into_unchecked: bsize 42, skip 0, csize 42 
GST_MEMORY gstmemory.c:133:gst_memory_init: new memory 0x116c280, 
maxsize:76 offset:0 size:76 
GST_MEMORY gstmemory.c:86:_gst_memory_free: free memory 0x1185828 
GST_MEMORY gstmemory.c:86:_gst_memory_free: free memory 0x11446b8 
GST_MEMORY gstmemory.c:86:_gst_memory_free: free memory 0x10a72c8 
rtph264depay 
gstrtph264depay.c:673:gst_rtp_h264_depay_handle_nal:<rtph264depay0> handle 
NAL type 7 

It seems that earlier the NAL handler was called for every NAL unit in STAP-A
but this was changed in the commit f5c65a919fc4f8bf90c0c7720c92a7471a454e6c. 

If needed I can provide additional logs. Also I attached a wireshark caputre of
the failing RTP stream.

The issue is also described in an gstreamer-devel topic:
http://gstreamer-devel.966125.n4.nabble.com/RTP-STAP-A-and-GStreamer-td4667293.html

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