BASE_DECLARE_FEATURE(kExperimentalWebRtcH265);
Jianlin QiuLet's make naming consistent with other WebRTC related features. kWebRtcAllowH265 ?
Sergey SilkinHow do you think about we have 2 flags for this:
kWebRtcAllowH265Send
kWebRtcAllowH265ReceiveI would assume we probably does not have the intention to allow encode by default, but the capability of receiving H.265 streams improves interop with native applications in the future?
Jianlin QiuYes, I think it makes sense to split the flag into send/recv.
Done
if (!resolution_monitor && config.codec() != media::VideoCodec::kHEVC) {
Jianlin QiuShould HasSoftwareFallback() be used here (and in other similar places) instead?
Done
// To support H.265 level 3.1, the default size is set to 1920x1080.
Jianlin QiuSounds slightly misleading. Unlike in the case of H264 there is no SW decoder we need to align max supported level with. I guess we simply want to signal support of 1080p and derive necessary min level for this resolution.
Done
true /*reference_scaling*/),
Jianlin Qiushould this be false?
Done
if ((profile_ < media::HEVCPROFILE_MIN ||
profile_ > media::HEVCPROFILE_MAX) &&
Jianlin QiuAny reason not to use codec_settings->codecType here?
No specific reason. I'm just following the code at line 1953 & 1954 for consistency.
#if BUILDFLAG(RTC_USE_H265)
#endif // BUILDFLAG(RTC_USE_H265)
Jianlin Qiuremove?
Done
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
bool HasSoftwareFallback(media::VideoCodec video_codec) {
Maybe clearer just as:
```
if (video_codec == HEVC) {
return false;
}
```
outside of the buildflags.
#if BUILDFLAG(RTC_USE_H265)
Move build flag includes below others generally.
const int kDefaultFps = 30;
constexpr all these.
#if BUILDFLAG(RTC_USE_H265)
Move below other includes.
SupportedFormats supported_h265_formats;
You could choose something more generic like `low_priority_formats` so more of the code doesn't need to be behind a buildflag.
bool HasSoftwareFallback(media::VideoCodec video_codec) {
Maybe clearer just as:
```
if (video_codec == HEVC) {
return false;
}
```outside of the buildflags.
Done
Move build flag includes below others generally.
Done
const int kDefaultFps = 30;
Jianlin Qiuconstexpr all these.
Done
#if BUILDFLAG(RTC_USE_H265)
Jianlin QiuMove below other includes.
Done
You could choose something more generic like `low_priority_formats` so more of the code doesn't need to be behind a buildflag.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
#if BUILDFLAG(RTC_USE_H265)
Seems that this #if is not really needed.
if ((profile_ < media::HEVCPROFILE_MIN ||
profile_ > media::HEVCPROFILE_MAX) &&
Jianlin QiuAny reason not to use codec_settings->codecType here?
No specific reason. I'm just following the code at line 1953 & 1954 for consistency.
Profile-based conditions were added in https://chromium-review.googlesource.com/c/chromium/src/+/3351622. The tests added in the same CL explicitly set codecType. For example: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc;l=802-805
Not sure why profile was used. codecType seems to be a better option in both places.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Seems that this #if is not really needed.
Done
if ((profile_ < media::HEVCPROFILE_MIN ||
profile_ > media::HEVCPROFILE_MAX) &&
Jianlin QiuAny reason not to use codec_settings->codecType here?
Sergey SilkinNo specific reason. I'm just following the code at line 1953 & 1954 for consistency.
Profile-based conditions were added in https://chromium-review.googlesource.com/c/chromium/src/+/3351622. The tests added in the same CL explicitly set codecType. For example: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_test.cc;l=802-805
Not sure why profile was used. codecType seems to be a better option in both places.
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Jianlin, can you pare down to just the required reviewers?
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
"rtc_video_encoder_factory.cc": [
Probably easier to just add this in include rules rather than specific include rules, unless there's a specific reason to scope this?
constexpr std::array<CodecConfig, 11> kCodecConfigs = {{
This std::array needs to be sized according to how many elements are in it.
Unfortunately, CTAD requires specifying all or nothing.
We can:
I would probably just use a regular C array.
constexpr std::array<CodecConfig, 11> kCodecConfigs = {{
This std::array needs to be sized according to how many elements are in it.
Unfortunately, CTAD requires specifying all or nothing.
We can:
- use a regular C array, i.e. constexpr CodecConfig kCodecConfigs[] = {{ ... }};
- or we can try to dynamically set the size here.
I would probably just use a regular C array.
Alternatively a CTAD variant:
```
constexpr std::array kCodecConfigs = {
CodecConfig{...},
CodecConfig{...},
...
};
```
Probably easier to just add this in include rules rather than specific include rules, unless there's a specific reason to scope this?
Done
constexpr std::array<CodecConfig, 11> kCodecConfigs = {{
Daniel ChengThis std::array needs to be sized according to how many elements are in it.
Unfortunately, CTAD requires specifying all or nothing.
We can:
- use a regular C array, i.e. constexpr CodecConfig kCodecConfigs[] = {{ ... }};
- or we can try to dynamically set the size here.
I would probably just use a regular C array.
Alternatively a CTAD variant:
```
constexpr std::array kCodecConfigs = {
CodecConfig{...},
CodecConfig{...},
...
};
```
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |
Code-Review | +1 |
Hi, dalecurtis@ could you please help to review */webrtc_features.*,
mbonadei@ could you please help to review webrtc_overries/BUILD.gn? Thanks!
Code-Review | +1 |
Hi, dalecurtis@ could you please help to review */webrtc_features.*,
mbonadei@ could you please help to review webrtc_overries/BUILD.gn? Thanks!
mbonadei@ could you please help to review webrtc_overries/BUILD.gn? Thanks!
Jianlin, can you pare down to just the required reviewers?
Acknowledged
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. | Gerrit |