GNOME Bugzilla – Bug 773368
mpegtsbase: GLib-CRITICAL **: g_ptr_array_unref: assertion 'array' failed
Last modified: 2016-12-15 10:56:10 UTC
During running of the following pipeline, an assertion failure is triggered. Starting program: /usr/local/bin/gst-launch-1.0 --gst-debug=1,tdttsparse:5,videotag:1,souphttpclientsink:2,pixelsample:1 udpsrc multicast-iface=eth0 uri=udp://239.106.0.7:1234 caps=application/x-rtp,media=\(string\)video,clock-rate=\(int\)90000 \! rtpbin \! rtpmp2tdepay \! progressreport update-freq=5 \! tdttsparse \! tsdemux emit-stats=true name=demux \! queue \! mpegvideoparse \! fakesink demux. \! queue \! mpegaudioparse \! fakesink (gst-launch-1.0:14851): GLib-CRITICAL **: g_ptr_array_unref: assertion 'array' failed Program received signal SIGTRAP, Trace/breakpoint trap.
+ Trace 236758
Thread 1925182560 (LWP 14868)
$1 = (GPtrArray *) 0x0
Trace got a bit messed up, the NULL pointer is here: #4 0x76395af4 in _gst_mpegts_pmt_free (pmt=0x184660) at gstmpegtssection.c:635 635 g_ptr_array_unref (pmt->streams); (gdb) print pmt->streams $1 = (GPtrArray *) 0x0
Created attachment 338277 [details] [review] Ensure pmt->streams is not unrefed when NULL In theory this should fix it.
That's already fixed, and in 1.10.2 too. commit d1fa342b71be439105bef9836153b47ff3431934 Author: Edward Hervey <edward@centricular.com> Date: Thu Nov 24 11:12:23 2016 +0100 mpegtssection: Don't free empty streams Also avoids a useless assertion