transcoder: plumb uid/pid to transcoder createCodec
Instead of using ResourceManagerService::overrideProcessInfo to
override the procinfo of the native MediaTranscodingService,
use the newly added AMediaCodec create methods with UID/PID.
This will allow the codec instance to be attributed to the
actual client (for battery reporting as well resource managerment
purposes), instead of all to media.transcoding.
Plumb uid/pid to transcoder to create the codec with them.
Fix up the unit test after the change.
bug: 159172726
test: transcoder unit tests.
Change-Id: Ie7e6fd813ec53f125590665ab3466758a0fd4601
diff --git a/services/mediatranscoding/tests/MediaTranscodingServiceTestHelper.h b/services/mediatranscoding/tests/MediaTranscodingServiceTestHelper.h
index f4d3ff8..66cced5 100644
--- a/services/mediatranscoding/tests/MediaTranscodingServiceTestHelper.h
+++ b/services/mediatranscoding/tests/MediaTranscodingServiceTestHelper.h
@@ -176,17 +176,19 @@
std::unique_lock lock(mLock);
auto startTime = std::chrono::system_clock::now();
+ int64_t remainingUs = timeoutUs;
std::list<Event>::iterator it;
while (((it = std::find(mEventQueue.begin(), mEventQueue.end(), target)) ==
mEventQueue.end()) &&
- timeoutUs > 0) {
- std::cv_status status = mCondition.wait_for(lock, std::chrono::microseconds(timeoutUs));
+ remainingUs > 0) {
+ std::cv_status status =
+ mCondition.wait_for(lock, std::chrono::microseconds(remainingUs));
if (status == std::cv_status::timeout) {
break;
}
std::chrono::microseconds elapsedTime = std::chrono::system_clock::now() - startTime;
- timeoutUs -= elapsedTime.count();
+ remainingUs = timeoutUs - elapsedTime.count();
}
if (it == mEventQueue.end()) {