Skip to content

vp8 and h264 only support L1Tx, but c++ code #175

@runner365

Description

@runner365

Hi, I find the C++ code:

	SendHandler::SendResult SendHandler::Send(
           ...
	  std::vector<webrtc::RtpEncodingParameters>* encodings,
	 ....)
	{
              ....
		if (
			sendingRtpParameters["encodings"].size() > 1 &&
			(mimeType == "video/vp8" || mimeType == "video/h264")
		)
		{
			for (auto& encoding : sendingRtpParameters["encodings"])
			{
				encoding["scalabilityMode"] = "S1T3";
			}
		}
         }

vp8 and h264 have been forced to set "S1T3" in scalabilityMode.

but js code:

			for (const encoding of encodings)
			{
				encoding.rid = `r${nextRid++}`;
				encoding.scalabilityMode = `L1T${maxTemporalLayers}`;
			}

And I check the webrtc js site: https://w3c.github.io/webrtc-svc/#scalabilitymodes*

For example, VP8 [[RFC6386](https://w3c.github.io/webrtc-svc/#bib-rfc6386)] only supports temporal scalability (e.g. ["L1T2"](https://w3c.github.io/webrtc-svc/#dfn-l1t2), ["L1T3"](https://w3c.github.io/webrtc-svc/#dfn-l1t3)); H.264/SVC [[RFC6190](https://w3c.github.io/webrtc-svc/#bib-rfc6190)], which supports both temporal and spatial scalability, only permits transport of simulcast on distinct SSRCs, so that it does not support "S" modes, where multiple encodings are transported on a single RTP stream

It says the H264 doesn't support "S" modes.
Is it a bug in libmediasoupclient c++ code?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions