C++代码问题咨询

2022-11-24 14:04:34 +08:00
 yfqh
我在修改 Chromium 的代码,在修改到下面这段的时候,发现代码存在问题,出现问题的地方是在(has_poster_xxx)这里,但我暂时没想到解决的办法,请问大家知道怎样修改这里的代码吗?

auto start_type = media::Pipeline::StartType::kNormal;
if ((GetDemuxerType() != media::DemuxerType::kChunkDemuxer) &&
preload_ == media::DataSource::METADATA &&
!client_->CouldPlayIfEnoughData() && !IsStreaming()) {
start_type =
(has_poster_
? media::Pipeline::StartType::kSuspendAfterMetadata
: media::Pipeline::StartType::kSuspendAfterMetadataForAudioOnly);
attempting_suspended_start_ = true;
}
998 次点击
所在节点    程序员
2 条回复
brucedone
2022-11-24 18:38:23 +08:00
出的啥问题呢?没太懂你想改啥,比如期望的输入和输出是什么
yfqh
2022-11-24 20:15:58 +08:00
@brucedone 下面是初始的代码段

auto start_type = media::Pipeline::StartType::kNormal;
if ((GetDemuxerType() != media::DemuxerType::kChunkDemuxer) &&
preload_ == media::DataSource::METADATA &&
!client_->CouldPlayIfEnoughData() && !IsStreaming()) {
start_type =
(has_poster_ ||
base::FeatureList::IsEnabled(media::kPreloadMetadataLazyLoad))
? media::Pipeline::StartType::kSuspendAfterMetadata
: media::Pipeline::StartType::kSuspendAfterMetadataForAudioOnly;
attempting_suspended_start_ = true;
}

这是我修改后的

auto start_type = media::Pipeline::StartType::kNormal;
if ((GetDemuxerType() != media::DemuxerType::kChunkDemuxer) &&
preload_ == media::DataSource::METADATA &&
!client_->CouldPlayIfEnoughData() && !IsStreaming()) {
start_type =
(has_poster_
? media::Pipeline::StartType::kSuspendAfterMetadata
: media::Pipeline::StartType::kSuspendAfterMetadataForAudioOnly);
attempting_suspended_start_ = true;
}

我现在要将 base::FeatureList::IsEnabled(media::kPreloadMetadataLazyLoad)删去,但删去后好像发现会存在其他问题,这是 Chromium 工程师给的回复,我暂时还没有其他的修改思路。

The original code was: start_type = (has_poster_ || true) ? kSuspendAfterMetadata : kSuspendAfterMetadataForAudioOnly;

Patchset 9 changed it to: start_type = (has_poster_) ? kSuspendAfterMetadata : kSuspendAfterMetadataForAudioOnly;

Patchset 11 changed it to: start_type = (has_poster_ ? kSuspendAfterMetadata : kSuspendAfterMetadataForAudioOnly);

Shouldn't the code be: start_type = kSuspendAfterMetadata; ?

There may be some additional cleanup of kSuspendAfterMetadataForAudioOnly.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/897584

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX