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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions