Closed Bug 1326442 Opened 7 years ago Closed 7 years ago

VideoConduit code should simply reconfigure the VideoSendStream when possible on a configuration change

Categories

(Core :: WebRTC: Audio/Video, defect, P2)

53 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla53
Tracking Status
firefox53 --- fixed

People

(Reporter: pkerr, Assigned: jesup)

Details

Attachments

(1 file, 2 obsolete files)

The VideoConduit module has been updated to work with the new Call API found in the branch 49 version of the webrtc.org media stack. In its current form, the Encoder is stopped, re-created, and started for even small changes in codec configuration. When the changes can be handled by the VideoSendStream::ReconfigureVideoEncoder method the update should be made using this mechanism without destroying the current VideoSendStream. Otherwise, a new VideoSendStream will need to be created.
Attachment #8822714 - Flags: review?(rjesup)
I believe resolution changes can all be handled without destroying.  Some parts of this have already landed as part of fixing ConfigureSendMediaCodec() to install the new codec params.
rebased, and rather modified.  Also I'm assuming we don't need to destroy on a resolution change - Chrome does, but they hadn't fixed the vp8/vp9 things that break on resolution changes - we have
Attachment #8828361 - Flags: review?(na-g)
Attachment #8822714 - Attachment is obsolete: true
Attachment #8822714 - Flags: review?(rjesup)
Assignee: paulrkerr → rjesup
Status: NEW → ASSIGNED
Comment on attachment 8828361 [details] [diff] [review]
All fast SendCodec reconfigure when appropriate

Review of attachment 8828361 [details] [diff] [review]:
-----------------------------------------------------------------

One issue with duplicated call.

::: media/webrtc/signaling/src/media-conduit/VideoConduit.cpp
@@ +628,5 @@
> +    if (!RequiresNewSendStream(*codecConfig)) {
> +      if (!mSendStream->ReconfigureVideoEncoder(mEncoderConfig.GenerateConfig())) {
> +        CSFLogError(logTag, "%s: ReconfigureVideoEncoder failed", __FUNCTION__);
> +        // This will cause a new encoder to be created by StartTransmitting()
> +        condError = StopTransmitting();

This is redundant with the StopTransmitting call at line 643.
Attachment #8828361 - Flags: review?(na-g) → review-
yup, removed that (though stopping twice doesn't hurt)
Attachment #8828539 - Flags: review?(na-g)
Attachment #8828361 - Attachment is obsolete: true
Comment on attachment 8828539 [details] [diff] [review]
All fast SendCodec reconfigure when appropriate

Review of attachment 8828539 [details] [diff] [review]:
-----------------------------------------------------------------

r+, pending try
Pushed by rjesup@wgate.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/cdc8e1a140e2
Use reconfigure whenever possible on video renegotiation r=ng
https://hg.mozilla.org/mozilla-central/rev/cdc8e1a140e2
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Attachment #8828539 - Flags: review?(na-g) → review+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: