"<pay0> avcC too small" error for incoming H264 stream over RTP

Baris Demiray barisdemiray at gmail.com
Wed Oct 7 08:22:54 PDT 2015


Hi all,

I'm having a problem on Windows with Python bindings and I'd be happy if
someone could spare some time helping me on this (please see more logs at
the very end) cryptic error message,

<pay0> avcC too small

After I get this Python interpreter crashes. I tried to trace it in the
source and had a look at this gstrtph264pay.c file but all I got was that
rtph264pay is unhappy with the definition of incoming RTP stream but I
can't see what is wrong.

My stream definition is,

rtpbin name=rtpbin udpsrc port=5556 !
application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96
! rtph264depay ! rtph264pay name=pay0 pt=96

I'm feeding this with an RTP stream generated using FFmpeg. I'm on Windows
7 with Python 2.7.10, GStreamer 1.5.90, and PyGI 3.14.0 AIO (which says
"gstreamer 1.4.5 + 220 plugins", any chances of a mismatch with my
GStreamer installation?). And here is a minimal code to reproduce the issue,

############################# <rtsp.py> ###############################
import gi, sys, os
from gi.repository import Gst, GLib, GstRtspServer, GObject
os.environ["GST_DEBUG"] = "4"
gi.require_version('Gst', '1.0')

Gst.init(None)

server = GstRtspServer.RTSPServer()
server.set_service("8085")

factory = GstRtspServer.RTSPMediaFactory()
factory.set_launch("rtpbin name=rtpbin udpsrc port=5556 !
application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96
! rtph264depay ! rtph264pay name=pay0 pt=96")

server.get_mount_points().add_factory('/test', factory)
server.attach()

GLib.MainLoop().run()
############################# </rtsp.py> ###############################

And some more logs,

0:00:23.641381601  6588   02A56C40 INFO               GST_EVENT
gstevent.c:678:gst_event_new_caps: creating caps event video/x-h264,
stream-format=(string)avc, alignment=(string)au,
codec_data=(buffer)0164001fffe200176764001facb2018026d0800000030080000019478c192400176764001facb201
0:00:23.642396085  6588   02A56C40 ERROR             rtph264pay
gstrtph264pay.c:565:gst_rtp_h264_pay_setcaps:<pay0> avcC too small
0:00:23.820272505  6588   02A56C40 INFO               GST_EVENT
gstevent.c:759:gst_event_new_segment: creating segment event time segment
start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999,
rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000,
base=0:00:00.000000000, position 0:00:00.000000000, duration
99:99:99.999999999
0:00:23.822253578  6588   02A56C40 ERROR             rtph264pay
gstrtph264pay.c:565:gst_rtp_h264_pay_setcaps:<pay0> avcC too small
0:00:23.823243804  6588   02A56C40 ERROR             rtph264pay
gstrtph264pay.c:565:gst_rtp_h264_pay_setcaps:<pay0> avcC too small
0:00:23.823996425  6588   02A56C40 WARN                 basesrc
gstbasesrc.c:2933:gst_base_src_loop:<udpsrc0> error: Internal data flow
error.
0:00:23.824729453  6588   02A56C40 WARN                 basesrc
gstbasesrc.c:2933:gst_base_src_loop:<udpsrc0> error: streaming task paused,
reason not-negotiated (-4)

As a side note, this works just fine on my Linux box. Versions of
rtph264pay by gst-inspect-1.0,

Linux:
Plugin Details:
  Version                  1.4.5

Windows:
Plugin Details:
  Version                  1.5.90

Any ideas how to proceed or debug? Please feel free to ask further
information.

Cheers,

-- Baris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20151007/7bb721ad/attachment.html>


More information about the gstreamer-devel mailing list