thegooglecodearchive / video-tester

Automatically exported from code.google.com/p/video-tester
GNU General Public License v3.0
0 stars 0 forks source link

Client occasionally does not stop listening for a stream after receiving RTCP Bye #9

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. VT client -c client.conf
2. VT server
3.

What is the expected output? What do you see instead?
Output is correct, but freezes when Gstreamer is running

What version of the product are you using? On what operating system?
VT .2 , Server and Client are running Fedora 16

Please provide any additional information below.
I ran into a particular problem where the client fails to stop listening for a 
stream. Based on my observation (using Wireshark), the program runs correctly 
when at the end of a video stream, the client sends RTSP Pause and RTSP 
Teardown after receiving RTCP Bye from the server. But occasionally I run into 
the a situation where despite the client receiving a RTCP Bye from the server, 
the client fails to stop listening for RTP traffic. This results with only RTCP 
packets from the client to the server and a occasional RTSP GET_PARAMETER 
message being transmitted. This behavior is continued until I forcibly kill the 
application.  I believe this is why the client does not continue to measure its 
gather statistics as it is stuck at this point.

I have attached a capture file with the problem. The bad stream occurs between 
1181 - 1772, but you can see the problem at 1743. All traffic prior to 1181 
shows a previous stream which ran to completion. 

Any suggestion, I looked through the gstreamer.py but nothing caught my 
attention as to why this could be happening. 

Original issue reported on code.google.com by rob.udec...@gmail.com on 1 Apr 2014 at 4:55

Attachments:

GoogleCodeExporter commented 9 years ago
It seems a GStreamer internal bug. Video-Tester waits for the GStreamer 
receiver to end. The sniffer thread also waits for a RTSP TEARDOWN message. So 
if the receiver fails, VT freezes at this point.

One solution could be to implement some control mechanism through the 
sniffer.py module and the Client class at core.py in order to kill the receiver 
in case of failure.

Anyway, I would like to make Video-Tester work with the more recent GStreamer 
1.0. Moreover, I programmed this tool three years ago. Now, I look into my code 
and only see a mesh. I would change a lot of things, but lately I don't have 
free time at all...

Any help is welcome. I've seen you are testing VT intensively. If you want to 
become a project member, you only have to ask.

Original comment by i.uca...@gmail.com on 1 Apr 2014 at 9:28

GoogleCodeExporter commented 9 years ago

Original comment by i.uca...@gmail.com on 4 Sep 2014 at 3:54