Skip to content

Commit 402dbe8

Browse files
author
Android Build Coastguard Worker
committed
Merge cherrypicks of ['googleplex-android-review.googlesource.com/24394600'] into udc-release.
Change-Id: I13498717ea42becd292db5e949317a94377cdb30
2 parents c14c2de + 8393148 commit 402dbe8

File tree

5 files changed

+21
-6
lines changed

5 files changed

+21
-6
lines changed

media/codec2/sfplugin/CCodecBufferChannel.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ using hardware::hidl_string;
6767
using hardware::hidl_vec;
6868
using hardware::fromHeap;
6969
using hardware::HidlMemory;
70+
using server_configurable_flags::GetServerConfigurableFlag;
7071

7172
using namespace hardware::cas::V1_0;
7273
using namespace hardware::cas::native::V1_0;
@@ -82,6 +83,11 @@ constexpr size_t kSmoothnessFactor = 4;
8283
// than making it non-blocking. Do not change this value.
8384
const static size_t kDequeueTimeoutNs = 0;
8485

86+
static bool areRenderMetricsEnabled() {
87+
std::string v = GetServerConfigurableFlag("media_native", "render_metrics_enabled", "false");
88+
return v == "true";
89+
}
90+
8591
} // namespace
8692

8793
CCodecBufferChannel::QueueGuard::QueueGuard(
@@ -148,6 +154,7 @@ CCodecBufferChannel::CCodecBufferChannel(
148154
mCCodecCallback(callback),
149155
mFrameIndex(0u),
150156
mFirstValidFrameIndex(0u),
157+
mAreRenderMetricsEnabled(areRenderMetricsEnabled()),
151158
mIsSurfaceToDisplay(false),
152159
mHasPresentFenceTimes(false),
153160
mRenderingDepth(3u),
@@ -174,8 +181,7 @@ CCodecBufferChannel::CCodecBufferChannel(
174181
Mutexed<BlockPools>::Locked pools(mBlockPools);
175182
pools->outputPoolId = C2BlockPool::BASIC_LINEAR;
176183
}
177-
std::string value = server_configurable_flags::GetServerConfigurableFlag(
178-
"media_native", "ccodec_rendering_depth", "3");
184+
std::string value = GetServerConfigurableFlag("media_native", "ccodec_rendering_depth", "3");
179185
android::base::ParseInt(value, &mRenderingDepth);
180186
mOutputSurface.lock()->maxDequeueBuffers = kSmoothnessFactor + mRenderingDepth;
181187
}
@@ -996,7 +1002,7 @@ status_t CCodecBufferChannel::renderOutputBuffer(
9961002

9971003
int64_t mediaTimeUs = 0;
9981004
(void)buffer->meta()->findInt64("timeUs", &mediaTimeUs);
999-
if (mIsSurfaceToDisplay) {
1005+
if (mAreRenderMetricsEnabled && mIsSurfaceToDisplay) {
10001006
trackReleasedFrame(qbo, mediaTimeUs, timestampNs);
10011007
processRenderedFrames(qbo.frameTimestamps);
10021008
} else {

media/codec2/sfplugin/CCodecBufferChannel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ class CCodecBufferChannel
334334
sp<MemoryDealer> makeMemoryDealer(size_t heapSize);
335335

336336
std::deque<TrackedFrame> mTrackedFrames;
337+
bool mAreRenderMetricsEnabled;
337338
bool mIsSurfaceToDisplay;
338339
bool mHasPresentFenceTimes;
339340

media/libstagefright/MediaCodec.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ using aidl::android::media::BnResourceManagerClient;
9292
using aidl::android::media::IResourceManagerClient;
9393
using aidl::android::media::IResourceManagerService;
9494
using aidl::android::media::ClientInfoParcel;
95+
using server_configurable_flags::GetServerConfigurableFlag;
9596
using FreezeEvent = VideoRenderQualityTracker::FreezeEvent;
9697
using JudderEvent = VideoRenderQualityTracker::JudderEvent;
9798

@@ -282,6 +283,11 @@ static bool isResourceError(status_t err) {
282283
return (err == NO_MEMORY);
283284
}
284285

286+
static bool areRenderMetricsEnabled() {
287+
std::string v = GetServerConfigurableFlag("media_native", "render_metrics_enabled", "false");
288+
return v == "true";
289+
}
290+
285291
static const int kMaxRetry = 2;
286292
static const int kMaxReclaimWaitTimeInUs = 500000; // 0.5s
287293
static const int kNumBuffersAlign = 16;
@@ -1025,9 +1031,10 @@ MediaCodec::MediaCodec(
10251031
mHavePendingInputBuffers(false),
10261032
mCpuBoostRequested(false),
10271033
mIsSurfaceToDisplay(false),
1034+
mAreRenderMetricsEnabled(areRenderMetricsEnabled()),
10281035
mVideoRenderQualityTracker(
10291036
VideoRenderQualityTracker::Configuration::getFromServerConfigurableFlags(
1030-
server_configurable_flags::GetServerConfigurableFlag)),
1037+
GetServerConfigurableFlag)),
10311038
mLatencyUnknown(0),
10321039
mBytesEncoded(0),
10331040
mEarliestEncodedPtsUs(INT64_MAX),
@@ -6044,7 +6051,7 @@ status_t MediaCodec::onReleaseOutputBuffer(const sp<AMessage> &msg) {
60446051

60456052
// If rendering to the screen, then schedule a time in the future to poll to see if this
60466053
// frame was ever rendered to seed onFrameRendered callbacks.
6047-
if (mIsSurfaceToDisplay) {
6054+
if (mAreRenderMetricsEnabled && mIsSurfaceToDisplay) {
60486055
if (mediaTimeUs != INT64_MIN) {
60496056
noRenderTime ? mVideoRenderQualityTracker.onFrameReleased(mediaTimeUs)
60506057
: mVideoRenderQualityTracker.onFrameReleased(mediaTimeUs,

media/libstagefright/VideoRenderQualityTracker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ VideoRenderQualityTracker::Configuration
154154
}
155155

156156
VideoRenderQualityTracker::Configuration::Configuration() {
157-
enabled = true;
157+
enabled = false;
158158

159159
// Assume that the app is skipping frames because it's detected that the frame couldn't be
160160
// rendered in time.

media/libstagefright/include/media/stagefright/MediaCodec.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,7 @@ struct MediaCodec : public AHandler {
572572
sp<ALooper> mCryptoLooper;
573573

574574
bool mIsSurfaceToDisplay;
575+
bool mAreRenderMetricsEnabled;
575576
PlaybackDurationAccumulator mPlaybackDurationAccumulator;
576577
VideoRenderQualityTracker mVideoRenderQualityTracker;
577578

0 commit comments

Comments
 (0)