Audio/video fails for some amount of time after renegotiation

NEW
Unassigned

Status

()

Core
WebRTC: Audio/Video
P3
normal
Rank:
25
3 years ago
3 months ago

People

(Reporter: mroberts, Unassigned)

Tracking

38 Branch
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(11 attachments)

(Reporter)

Description

3 years ago
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36

Steps to reproduce:

First, setup an audio/video call between Chrome and Firefox:

1. Navigate to https://peerconnection-experiments.herokuapp.com/ (https://github.com/markandrus/peerconnection-experiments)
2. Open the "Browser 1" link in Chrome
3. Open the "Browser 2" link in Firefox
4. In Chrome, click the "Set MediaStream(s)" button and allow user media
5. In Chrome, click the "Create Offer" button

Audio and video should be flowing between Chrome and Firefox. Now, remove the video stream from Chrome:

1. In Chrome, deselect the "Share Video" text box
2. In Chrome, click the "Set MediaStream(s)" button
3. In Chrome, click the "Create Offer" button and allow user media

Chrome and Firefox should renegotiate (Firefox's answer will include a=sendonly for video).


Actual results:

In Firefox 38 and Firefox 39, for anywhere between 30 seconds to 1 minute and 40 seconds after renegotiation, Firefox's audio and video cease to play in Chrome. Then, after some amount of time, audio and video return. ICE connection state and signaling state remain stable. Also, Firefox continues to play the audio from Chrome.

Here is a screenshot of the graphs in Chrome. The flat line in audioOutputLevel occurs just after renegotiation and it is nearly 1 minute and 40 seconds before audio returns.


Expected results:

In Firefox 40, after renegotiation, audio and video continue to play in Chrome. Firefox continues to play the audio from Chrome. ICE connection state and signaling state remain stable.
(Reporter)

Comment 1

3 years ago
Created attachment 8627362 [details]
Screenshot of graphs in Chrome

Updated

3 years ago
Component: Untriaged → WebRTC: Audio/Video
Product: Firefox → Core
mroberts -- Can we get signaling and ICE/STUN/TURN logs from you?   https://wiki.mozilla.org/Media/WebRTC/Logging tells you how to get those.  You can upload them as attachments to this bug.  Thanks!
Status: UNCONFIRMED → NEW
backlog: --- → webRTC+
Rank: 25
Ever confirmed: true
Flags: needinfo?(mroberts)
Priority: -- → P2
mroberts - also, can you test using a more recent rev of Firefox? Ideally Fx 41 (Dev Edition) or Nightly  (Fx 42). Thanks
(Reporter)

Comment 4

3 years ago
Created attachment 8627949 [details]
Firefox-38.0.5_stderr.log
Flags: needinfo?(mroberts)
(Reporter)

Comment 5

3 years ago
Created attachment 8627950 [details]
Firefox-38.0.5_nspr.log
(Reporter)

Comment 6

3 years ago
Created attachment 8627952 [details]
Firefox-39.0b7_stderr.log
(Reporter)

Comment 7

3 years ago
Created attachment 8627953 [details]
Firefox-39.0b7_nspr.log
(Reporter)

Comment 8

3 years ago
Created attachment 8627954 [details]
Firefox-41.0a1_stderr.log
(Reporter)

Comment 9

3 years ago
Created attachment 8627955 [details]
Firefox-41.0a1_nspr.log.child-2
(Reporter)

Comment 10

3 years ago
Created attachment 8627956 [details]
Firefox-41.0a1_WebRTC.log
(Reporter)

Comment 11

3 years ago
Created attachment 8627957 [details]
Firefox-42.0a1_stderr.log
(Reporter)

Comment 12

3 years ago
Created attachment 8627958 [details]
Firefox-42.0a1_nspr.log.child-2
(Reporter)

Comment 13

3 years ago
Created attachment 8627959 [details]
Firefox-42.0a1_WebRTC.log
(Reporter)

Comment 14

3 years ago
(In reply to Maire Reavy [:mreavy] (Plz needinfo me) from comment #3)
> mroberts - also, can you test using a more recent rev of Firefox? Ideally Fx
> 41 (Dev Edition) or Nightly  (Fx 42). Thanks

Hi, mreavy. I just attached a number of files. Both Firefox 38.0.5 and Firefox 39.0b7 failed as described above. Both Firefox 41.0a1 and Firefox 42.0a2 downloaded from https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/ worked as expected.

I ran each test with the following, per the wiki page you linked me:

    export R_LOG_DESTINATION=stderr
    export R_LOG_LEVEL=9
    export R_LOG_VERBOSE=1

    export NSPR_LOG_MODULES=signaling:5,mtransport:5,timestamp
    export NSPR_LOG_FILE=./${firefox}_nspr.log

    export NSPR_LOG_MODULES=mediamanager:5,getusermedia:5,${NSPR_LOG_MODULES}
    export NSPR_LOG_MODULES=webrtc_trace:65535,${NSPR_LOG_MODULES}
    export WEBRTC_TRACE_FILE=./${firefox}_WebRTC.log

This may actually include much more than necessary (the WebRTC logs for Firefox 38 and 39 were too large to upload...).
Mass change P2->P3 to align with new Mozilla triage process.
Priority: P2 → P3
You need to log in before you can comment on or make changes to this bug.