transcoding: add SimulatedTranscoder to test service
- Add SimulatedTranscoder (which is an upgraded version of
DummyTranscoder) to allow more testing of the service.
- Add unit test that launches dummy test apps from shell
to simulate uid policy change.
bug: 154734285
bug: 145233472
test: unit tests
Change-Id: Ic169757d64ad8da7eebd0e1febdcbfb467fe81f4
diff --git a/media/libmediatranscoding/TranscodingUidPolicy.cpp b/media/libmediatranscoding/TranscodingUidPolicy.cpp
index 9c8d3fe..36bb264 100644
--- a/media/libmediatranscoding/TranscodingUidPolicy.cpp
+++ b/media/libmediatranscoding/TranscodingUidPolicy.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-// #define LOG_NDEBUG 0
+//#define LOG_NDEBUG 0
#define LOG_TAG "TranscodingUidPolicy"
#include <binder/ActivityManager.h>
@@ -224,8 +224,9 @@
}
void TranscodingUidPolicy::updateTopUid_l() {
- // Update top uid state.
mTopUidState = ActivityManager::PROCESS_STATE_UNKNOWN;
+
+ // Find the lowest uid state (ignoring PROCESS_STATE_UNKNOWN) with some monitored uids.
for (auto stateIt = mStateUidMap.begin(); stateIt != mStateUidMap.end(); stateIt++) {
if (stateIt->first != ActivityManager::PROCESS_STATE_UNKNOWN && !stateIt->second.empty()) {
mTopUidState = stateIt->first;
diff --git a/media/libmediatranscoding/include/media/TranscoderInterface.h b/media/libmediatranscoding/include/media/TranscoderInterface.h
index a2afa00..3c72c17 100644
--- a/media/libmediatranscoding/include/media/TranscoderInterface.h
+++ b/media/libmediatranscoding/include/media/TranscoderInterface.h
@@ -22,12 +22,14 @@
namespace android {
using ::aidl::android::media::TranscodingErrorCode;
+class TranscoderCallbackInterface;
// Interface for the scheduler to call the transcoder to take actions.
class TranscoderInterface {
public:
// TODO(chz): determine what parameters are needed here.
// For now, always pass in clientId&jobId.
+ virtual void setCallback(const std::shared_ptr<TranscoderCallbackInterface>& cb) = 0;
virtual void start(int64_t clientId, int32_t jobId) = 0;
virtual void pause(int64_t clientId, int32_t jobId) = 0;
virtual void resume(int64_t clientId, int32_t jobId) = 0;
diff --git a/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp b/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
index 95edf1d..adb16a2 100644
--- a/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
+++ b/media/libmediatranscoding/tests/TranscodingJobScheduler_tests.cpp
@@ -84,6 +84,8 @@
virtual ~TestTranscoder() {}
// TranscoderInterface
+ void setCallback(const std::shared_ptr<TranscoderCallbackInterface>& /*cb*/) override {}
+
void start(int64_t clientId, int32_t jobId) override {
mEventQueue.push_back(Start(clientId, jobId));
}
@@ -157,6 +159,7 @@
Status onTranscodingFinished(int32_t in_jobId,
const TranscodingResultParcel& in_result) override {
EXPECT_EQ(in_jobId, in_result.jobId);
+ ALOGD("TestClientCallback: received onTranscodingFinished");
mOwner->onFinished(mClientId, in_jobId);
return Status::ok();
}