diff options
| author | Ching Yin Derek Pang <derekpang@google.com> | 2019-04-28 22:54:16 -0700 |
|---|---|---|
| committer | Ching Yin Derek Pang <derekpang@google.com> | 2019-04-29 14:27:46 -0700 |
| commit | d9116453211b4e1fd2be71f90e1147b7eaebebcb (patch) | |
| tree | 5e1a56f55c595932eb48f20cef7ad44266b4aef8 | |
| parent | ba5b1775ae194d023f62aeb5cee68f616c938ad2 (diff) | |
| download | platform_hardware_google_av-d9116453211b4e1fd2be71f90e1147b7eaebebcb.tar.gz platform_hardware_google_av-d9116453211b4e1fd2be71f90e1147b7eaebebcb.tar.bz2 platform_hardware_google_av-d9116453211b4e1fd2be71f90e1147b7eaebebcb.zip | |
[ECO] Fixes in ECOUtils and ECOSession.
1) Fixed data types in ECOUtils.
2) Account dimension for portrait and landscape mode in ECOSession.
Test: Unit test.
Bug: 124805646
Change-Id: Idfd6877bc39b77968d73ee1e95a2573a1439f435
| -rw-r--r-- | media/eco/ECOSession.cpp | 3 | ||||
| -rw-r--r-- | media/eco/ECOUtils.cpp | 4 | ||||
| -rw-r--r-- | media/eco/include/eco/ECOUtils.h | 6 |
3 files changed, 7 insertions, 6 deletions
diff --git a/media/eco/ECOSession.cpp b/media/eco/ECOSession.cpp index a6d8434..7192f11 100644 --- a/media/eco/ECOSession.cpp +++ b/media/eco/ECOSession.cpp @@ -55,7 +55,8 @@ sp<ECOSession> ECOSession::createECOSession(int32_t width, int32_t height, bool // Only support up to 720P and camera recording use case. // TODO(hkuang): Support the same resolution as in EAF. Also relax the isCameraRecording // as encoder may not konw it is from camera for some usage cases. - if (width > 1280 || height > 720 || width == 0 || height == 0 || isCameraRecording == false) { + if (width <= 0 || height <= 0 || width > 5120 || height > 5120 || + width > 1280 * 720 / height || isCameraRecording == false) { ALOGE("Failed to create ECOSession with w: %d, h: %d, isCameraRecording: %d", width, height, isCameraRecording); return nullptr; diff --git a/media/eco/ECOUtils.cpp b/media/eco/ECOUtils.cpp index 533b731..c8edac4 100644 --- a/media/eco/ECOUtils.cpp +++ b/media/eco/ECOUtils.cpp @@ -32,7 +32,7 @@ ECOData SimpleEncoderConfig::toEcoData(ECOData::ECODatatype dataType) { data.setInt32(ENCODER_LEVEL, mLevel); data.setInt32(ENCODER_TARGET_BITRATE_BPS, mTargetBitrate); data.setInt32(ENCODER_KFI_FRAMES, mKeyFrameIntervalFrames); - data.setFloat(ENCODER_FRAMERATE_FPS, mFramerateFps); + data.setFloat(ENCODER_FRAMERATE_FPS, mFrameRateFps); return data; } @@ -41,7 +41,7 @@ ECOData SimpleEncodedFrameData::toEcoData(ECOData::ECODatatype dataType) { ECOData data(dataType, systemTime(SYSTEM_TIME_BOOTTIME)); data.setString(KEY_STATS_TYPE, VALUE_STATS_TYPE_FRAME); data.setInt32(FRAME_NUM, mFrameNum); - data.setInt32(FRAME_TYPE, mFrameType); + data.setInt8(FRAME_TYPE, mFrameType); data.setInt64(FRAME_PTS_US, mFramePtsUs); data.setInt32(FRAME_AVG_QP, mAvgQp); data.setInt32(FRAME_SIZE_BYTES, mFrameSizeBytes); diff --git a/media/eco/include/eco/ECOUtils.h b/media/eco/include/eco/ECOUtils.h index f9fa129..e5bbfcc 100644 --- a/media/eco/include/eco/ECOUtils.h +++ b/media/eco/include/eco/ECOUtils.h @@ -60,7 +60,7 @@ struct SimpleEncoderConfig { int32_t mKeyFrameIntervalFrames; // Frame rate in frames per second. -1 means unavailable. - int32_t mFramerateFps; + float mFrameRateFps; SimpleEncoderConfig() : mEncoderName(""), @@ -69,7 +69,7 @@ struct SimpleEncoderConfig { mLevel(-1), mTargetBitrate(-1), mKeyFrameIntervalFrames(-1), - mFramerateFps(-1) {} + mFrameRateFps(-1) {} SimpleEncoderConfig(const std::string& name, int32_t codecType, int32_t profile, int32_t level, int32_t bitrate, int32_t kfi, float framerateFps) @@ -79,7 +79,7 @@ struct SimpleEncoderConfig { mLevel(level), mTargetBitrate(bitrate), mKeyFrameIntervalFrames(kfi), - mFramerateFps(framerateFps) {} + mFrameRateFps(framerateFps) {} // Convert this SimpleEncoderConfig to ECOData with dataType. ECOData toEcoData(ECOData::ECODatatype dataType); |
