[Bug 796160] New: Raise when client sending some udp packets before play request.
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Wed May 16 07:16:15 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=796160
Bug ID: 796160
Summary: Raise when client sending some udp packets before play
request.
Classification: Platform
Product: GStreamer
Version: git master
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-rtsp-server
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: goran.jonsson at axis.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
Created attachment 372108
--> https://bugzilla.gnome.org/attachment.cgi?id=372108&action=edit
patch in gst-rtsp-server ( minimum for solving problem )
There is a race in plug_src in rtsp-stream between setting src to
playing and linking the pads, when src is udpsrc and client sending
udp data before play. Then the udpsrc want to push data on src pad before it's
linked this causing a link error.
We have come across a client doing that.
When client is not sending udp data the thread caused by setting
udp src to playing is stuck at.
#0 0x00007ffff6a81aed in poll () at ../sysdeps/unix/syscall-template.S:81
#1 0x00007ffff7540da5 in g_socket_condition_timed_wait () from
/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#2 0x00007fffd5dd10d6 in gst_udpsrc_fill (psrc=0x7ffff006c4e0, outbuf=0x2) at
gstudpsrc.c:877
#3 0x00007ffff6567de5 in gst_push_src_fill (bsrc=0x1,
offset=18446744073709551615, length=4096, ret=0x7fffd0006020) at
gstpushsrc.c:174
#4 0x00007ffff654ac6f in gst_base_src_default_create (src=0x7ffff006c4e0,
offset=18446744073709551615, size=4096, buffer=0x7fffd5dc9c20) at
gstbasesrc.c:1525
#5 0x00007ffff65680fb in gst_push_src_create (bsrc=0x7ffff006c4e0,
offset=18446744073709551615, length=4096, ret=0x7fffd5dc9c20) at
gstpushsrc.c:137
#6 0x00007ffff654d3dd in gst_base_src_get_range (src=0x7ffff006c4e0, offset=2,
length=4096, buf=0xffffffffffffffff) at gstbasesrc.c:2528
#7 0x00007ffff654ffa0 in gst_base_src_loop (pad=0x7ffff004e530) at
gstbasesrc.c:2875
#8 0x00007ffff78efcb1 in gst_task_func (task=0x7ffff00364d0) at gsttask.c:332
#9 0x00007ffff6fdb1d8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff6fda845 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007ffff6d55064 in start_thread (arg=0x7fffd5dca700) at
pthread_create.c:309
#12 0x00007ffff6a8a62d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
This is not the case when client sending udp data just befor play request !!!
One solution is to remove the strange part in plug_src were setting a
single element to playing before adding to bin. Instead we sync
the element with the state in bin after it have been added to bin.
Please find attachment
(Fix problem)
0001-rtsp-stream-Give-all-elements-in-pipeline-same-statu.patch
(Refactor)
0002-rtsp-stream-Refactor-plug_src.patch
--
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