After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 601882 - With theora, remote video is not transmitted
With theora, remote video is not transmitted
Status: RESOLVED WONTFIX
Product: ekiga
Classification: Applications
Component: GUI
3.2.x
Other Linux
: Normal major
: ---
Assigned To: Ekiga maintainers
Ekiga maintainers
gnome[unmaintained]
Depends on:
Blocks:
 
 
Reported: 2009-11-14 10:42 UTC by Chris Vine
Modified: 2020-06-06 16:30 UTC
See Also:
GNOME target: ---
GNOME version: 2.27/2.28



Description Chris Vine 2009-11-14 10:42:26 UTC
This is to put the bug at http://bugs.launchpad.net/bugs/203885 which is on ubuntu launchpad into gnome bugzilla so it does not get lost.

The symptom is that on a video call, the caller is usually not able to see the remote video, but sometimes (apparently randomly) can do so.  The bug seems also to affect the windows build, but the problem seems to occur less frequently on windows.  Mysteriously, a call to 500@ekiga.net always works correctly.

This always appears to affect the caller and not the person called.

Both test machines use 32 bit x86 using ekiga-3.2.6, but from the launchpad bug reports it can be seen that it effects considerably earlier versions also.

The launchpad bug has my debugging output from ekiga -d 4.

I get this bug on both ubuntu jaunty (gnome-2.26 with ekiga upgrade to 3.2.6), and on a machine running slackware 12.2 which has gnome-2.28.1 and ekiga-3.2.6 compiled from source.

If this does not hit any of the developers for some reason, I am happy to apply any test patches if wanted.
Comment 1 Eugen Dedu 2011-01-22 09:59:08 UTC
Quoting Dave Koelmeyer:

"Ekiga 3.2.7 is running on two separate OpenIndiana machines, both have webcams 
connected which run fine using V4L2. Client A is running with a public IP 
address on a coporate LAN, client B is running behind a home ADSL2+ NAT router. 
Echo test and calling otherwise for both clients is fine.

In both Ekiga clients, only the H261 and Theora video codecs are selected.

Now, if I place a call from either Client A to Client B or vice versa, with the 
H261 codec only enabled or at the top in the Ekiga codec listing, then both 
parties can see both their local video and remote video, as you would expect.

If I then terminate the call, sort the video codecs so that Theora is only 
enabled or at the top in the Ekiga codec listing, then *only* the party to who 
the call is placed can see both their local and remote video. The user who 
placed the call can *only* view their local video stream.

For example; Client A calls Client B. The call is successfully handled, but 
Client A can only see his local video stream (remote video, picture in picture 
settings are greyed out). Client B however can enable both their local video, 
and the remote video.

Here is the debug output. Using the example setup described above (Client A calling Client B) this has been captured from Client A:

http://www.davekoelmeyer.co.nz/docs/ekigatheora20110121.txt "
Comment 2 Eugen Dedu 2011-01-22 10:02:45 UTC
In this output and the one posted in launchpad the error is shown here:

theora_plugin.cxx(390)	THEORA	Decoder	Got OGG data packet but still waiting for header and/or table Packets
2011/01/21 17:46:18.404	  0:15.595	       Media Patch:0x10	Patch	Media conversion (primary) failed
2011/01/21 17:46:18.404	  0:15.595	       Media Patch:0x10	Patch	WriteFrame failed
2011/01/21 17:46:18.404	  0:15.595	       Media Patch:0x10	Patch	Thread ended because all sink writes failed failed
2011/01/21 17:46:18.404	  0:15.595	       Media Patch:0x10	Patch	Thread ended for Patch OpalRTPMediaStream-Source-theora -> OpalVideoMediaStream-Sink-YUV420P

I will dig it further, with two machines here.

In the meantime, if you have spare time, it would be good if you could test with latest ekiga (on Windows it is http://eugen.dedu.free.fr/ekiga-setup-3.3.1-git-64_gb8c9352-debug.exe, on gnu/linux it should be compiled...)
Comment 3 Jānis Rukšāns 2011-01-22 16:31:27 UTC
A random thought - maybe this bug is related to this: http://thread.gmane.org/gmane.comp.video.gstreamer.devel/29500/focus=29501

Judging from the Dave's debug log, Ekiga sends Theora identification and setup headers in-band, but the packet carrying that data from the calee is lost, probably due to NAT or Ekiga starts listening on RTP too late. I suspect the latter, if it was NAT then I would expect only the party behind the NAT experiencing the problems w/ remote video, but that doesn't seem to be the case.


If the above is correct, here are some ways to attack (not exluding each other) this bug:
1) Include Theora configuration in SDP in addition to/instead of sending it in-band;
2) Ensure that Ekiga starts listening on incoming media as soon as it sends SDP, as required by RFC 3264;
3) On the sender side, retransmit the in-band configuration periodically;
4) On the receiver side, keep listening for in-band configuration if it is missing.


HTH
Comment 4 Eugen Dedu 2011-01-28 11:59:17 UTC
The same error appears at http://www.davekoelmeyer.co.nz/docs/EkigaWindows3.2.7TheoraFreezes.txt (see  for more information):

2010/12/07 18:11:25.713	  0:39.767	       Media Patch:1116	Patch	Media conversion (primary) failed
2010/12/07 18:11:25.713	  0:39.767	       Media Patch:1116	Patch	WriteFrame failed
2010/12/07 18:11:25.713	  0:39.767	       Media Patch:1116	Patch	Thread ended because all sink writes failed failed
2010/12/07 18:11:25.713	  0:39.767	       Media Patch:1116	Patch	Thread ended for Patch OpalVideoMediaStream-Source-YUV420P -> OpalRTPMediaStream-Sink-theora

However, this appears during communication (20 sec after beginning, i.e. at sec. 39), when the user moves, hence when video bitrate increases.

I suspect this might come from the fact that the machine is not able to process all the frames; it sends only the latest frames, skipping previous frames, which might contain vital information.  The hypothesis given in previous comment could be true too.

Before spending more time looking at the code (in opal, src/opal/patch.cxx and plugins/video/THEORA/theora_plugin.cxx), I think the simplest thing is to generate the -d 4 trace for *both* machines.  If this will not be sufficient, a wireshark capture for both machines allows to see what is sent and what is received, and compare with a correct communication.
Comment 5 Eugen Dedu 2011-01-28 12:00:30 UTC
Another occurrence is given at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=611313.
Comment 6 Eugen Dedu 2011-01-28 12:05:44 UTC
I forgot to add address in comment #4: see http://mail.gnome.org/archives/ekiga-list/2010-December/msg00007.html and follow-ups.
Comment 7 Dave Koelmeyer 2011-04-12 11:10:07 UTC
Hi, 

I have performed some further testing using the http://eugen.dedu.free.fr/ekiga-setup-3.3.1-git-64_gb8c9352-debug.exe application linked above. I have captured debug output from both machines as requested. 


TEST CASE SCENARIO

Machine 1) Ekiga 3.3.1 running on Windows XP SP3

Machine 2) Ekiga 3.2.7 running on OpenIndiana oi_147 x86

Both machines have public IP addresses, and reside on the same corporate 100Mb/s LAN.

I have a test Ekiga.net account on each machine. Webcams have been tested successfully on both machines (drivers are PTLIB/DirectShow on Machine 1, PTLIB/V4L2 on Machine 2). Theora is the only enabled video codec. PCMA and PCMU are the only enabled audio codecs, with PCMA sorted at the top. 

The video bitrate has initially been set to 128Kb/s on each machine, then the test has been repeated with the bitrate set to 1000kb/s on each machine.


=> Calling Machine 1 from Machine 2

Machine 1 detects an incoming call (a pop-up window appears with accept and reject buttons), but upon accepting the call, the client appears to crash: the call is never successfully answered, and the Ekiga GUI on Machine 1 appears to freeze, requiring termination of the application via the task manager. At the Machine 2 end, a constant ringtone is heard, until timeout. 


=> Calling Machine 2 from Machine 1

Machine 2 detects an incoming call (a pop-up window appears with accept and reject buttons). The call can be accepted. With the bit rate set to 128Kb/s, the video is observed to freeze at both ends almost instantly.

In the recorded debug outputs captured on both machines, video freezes roughly at the same time, about five seconds into the call.

The debug outputs for both machines are here:

www.davekoelmeyer.co.nz/docs/ekigamachine1-20110412-128kbs.txt
www.davekoelmeyer.co.nz/docs/ekigamachine2-20110412-128kbs.txt


Repeating the same test with the bitrate set to 1000Kb/s on both machines, everything seems far less susceptible to video freezing - I cannot reproduce the issue by making rapid movements in front of either webcam. However, remote video from Machine 1 viewed at the Machine 2 end appears to freeze by itself: in the following example debug output, video freezes at a call duration of around ~ 2m.10s.

http://www.davekoelmeyer.co.nz/docs/ekigamachine1-20110412-1000kbs.txt
http://www.davekoelmeyer.co.nz/docs/ekigamachine2-20110412-1000kbs.txt
Comment 8 André Klapper 2020-06-06 16:30:19 UTC
Ekiga is not under active development anymore:
https://gitlab.gnome.org/Infrastructure/Infrastructure/-/issues/273

Ekiga saw its last release 7 years ago. The last code commits were 4 years ago.

Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect reality. Please feel free to reopen this ticket (and transfer the project to GNOME Gitlab, as GNOME Bugzilla is deprecated) if anyone takes the responsibility for active Ekiga development again in the future.