Loading camera/CameraSessionStats.cpp +16 −2 Original line number Diff line number Diff line Loading @@ -264,7 +264,8 @@ CameraSessionStats::CameraSessionStats() : mInternalReconfigure(0), mRequestCount(0), mResultErrorCount(0), mDeviceError(false) {} mDeviceError(false), mVideoStabilizationMode(-1) {} CameraSessionStats::CameraSessionStats(const String16& cameraId, int facing, int newCameraState, const String16& clientName, Loading @@ -281,7 +282,8 @@ CameraSessionStats::CameraSessionStats(const String16& cameraId, mInternalReconfigure(0), mRequestCount(0), mResultErrorCount(0), mDeviceError(0) {} mDeviceError(0), mVideoStabilizationMode(-1) {} status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { if (parcel == NULL) { Loading Loading @@ -381,6 +383,12 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { return BAD_VALUE; } int32_t videoStabilizationMode; if ((err = parcel->readInt32(&videoStabilizationMode)) != OK) { ALOGE("%s: Failed to read video stabilization mode from parcel", __FUNCTION__); return err; } mCameraId = id; mFacing = facing; mNewCameraState = newCameraState; Loading @@ -396,6 +404,7 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { mDeviceError = deviceError; mStreamStats = std::move(streamStats); mUserTag = userTag; mVideoStabilizationMode = videoStabilizationMode; return OK; } Loading Loading @@ -482,6 +491,11 @@ status_t CameraSessionStats::writeToParcel(android::Parcel* parcel) const { ALOGE("%s: Failed to write user tag!", __FUNCTION__); return err; } if ((err = parcel->writeInt32(mVideoStabilizationMode)) != OK) { ALOGE("%s: Failed to write video stabilization mode!", __FUNCTION__); return err; } return OK; } Loading camera/include/camera/CameraSessionStats.h +1 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ public: bool mDeviceError; std::vector<CameraStreamStats> mStreamStats; String16 mUserTag; int mVideoStabilizationMode; // Constructors CameraSessionStats(); Loading media/codec2/core/include/C2Config.h +11 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,9 @@ enum C2ParamIndexKind : C2Param::type_index_t { // encoding statistics, average block qp of a frame kParamIndexAverageBlockQuantization, // int32 // channel mask for decoded audio kParamIndexAndroidChannelMask, // uint32 }; } Loading Loading @@ -1980,6 +1983,14 @@ typedef C2StreamParam<C2Info, C2Uint32Value, kParamIndexMaxChannelCount> C2Strea constexpr char C2_PARAMKEY_MAX_CHANNEL_COUNT[] = "raw.max-channel-count"; constexpr char C2_PARAMKEY_MAX_CODED_CHANNEL_COUNT[] = "coded.max-channel-count"; /** * Audio channel mask. Used by decoder to express audio channel mask of decoded content. * Channel representation is specified according to the Java android.media.AudioFormat * CHANNEL_OUT_* constants. */ typedef C2StreamParam<C2Info, C2Uint32Value, kParamIndexAndroidChannelMask> C2StreamChannelMaskInfo; const char C2_PARAMKEY_CHANNEL_MASK[] = "raw.channel-mask"; /** * Audio sample format (PCM encoding) */ Loading media/codec2/sfplugin/CCodecConfig.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -905,6 +905,9 @@ void CCodecConfig::initializeStandardParams() { add(ConfigMapper(KEY_MAX_OUTPUT_CHANNEL_COUNT, C2_PARAMKEY_MAX_CHANNEL_COUNT, "value") .limitTo(D::AUDIO & (D::CONFIG | D::PARAM | D::READ))); add(ConfigMapper(KEY_CHANNEL_MASK, C2_PARAMKEY_CHANNEL_MASK, "value") .limitTo(D::AUDIO & D::DECODER & D::READ)); add(ConfigMapper(KEY_AAC_SBR_MODE, C2_PARAMKEY_AAC_SBR_MODE, "value") .limitTo(D::AUDIO & D::ENCODER & (D::CONFIG | D::PARAM | D::READ)) .withMapper([](C2Value v) -> C2Value { Loading media/utils/TimeCheck.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -189,15 +189,18 @@ void TimeCheck::TimeCheckHandler::onTimeout() const // Generate audio HAL processes tombstones and allow time to complete // before forcing restart std::vector<pid_t> pids = TimeCheck::getAudioHalPids(); std::string halPids = "HAL pids [ "; if (pids.size() != 0) { for (const auto& pid : pids) { ALOGI("requesting tombstone for pid: %d", pid); halPids.append(std::to_string(pid)).append(" "); sigqueue(pid, DEBUGGER_SIGNAL, {.sival_int = 0}); } sleep(1); } else { ALOGI("No HAL process pid available, skipping tombstones"); } halPids.append("]"); LOG_EVENT_STRING(LOGTAG_AUDIO_BINDER_TIMEOUT, tag.c_str()); Loading @@ -206,6 +209,7 @@ void TimeCheck::TimeCheckHandler::onTimeout() const .append(tag) .append(" scheduled ").append(formatTime(startTime)) .append(" on thread ").append(std::to_string(tid)).append("\n") .append(halPids).append("\n") .append(summary); // Note: LOG_ALWAYS_FATAL limits the size of the string - per log/log.h: Loading Loading
camera/CameraSessionStats.cpp +16 −2 Original line number Diff line number Diff line Loading @@ -264,7 +264,8 @@ CameraSessionStats::CameraSessionStats() : mInternalReconfigure(0), mRequestCount(0), mResultErrorCount(0), mDeviceError(false) {} mDeviceError(false), mVideoStabilizationMode(-1) {} CameraSessionStats::CameraSessionStats(const String16& cameraId, int facing, int newCameraState, const String16& clientName, Loading @@ -281,7 +282,8 @@ CameraSessionStats::CameraSessionStats(const String16& cameraId, mInternalReconfigure(0), mRequestCount(0), mResultErrorCount(0), mDeviceError(0) {} mDeviceError(0), mVideoStabilizationMode(-1) {} status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { if (parcel == NULL) { Loading Loading @@ -381,6 +383,12 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { return BAD_VALUE; } int32_t videoStabilizationMode; if ((err = parcel->readInt32(&videoStabilizationMode)) != OK) { ALOGE("%s: Failed to read video stabilization mode from parcel", __FUNCTION__); return err; } mCameraId = id; mFacing = facing; mNewCameraState = newCameraState; Loading @@ -396,6 +404,7 @@ status_t CameraSessionStats::readFromParcel(const android::Parcel* parcel) { mDeviceError = deviceError; mStreamStats = std::move(streamStats); mUserTag = userTag; mVideoStabilizationMode = videoStabilizationMode; return OK; } Loading Loading @@ -482,6 +491,11 @@ status_t CameraSessionStats::writeToParcel(android::Parcel* parcel) const { ALOGE("%s: Failed to write user tag!", __FUNCTION__); return err; } if ((err = parcel->writeInt32(mVideoStabilizationMode)) != OK) { ALOGE("%s: Failed to write video stabilization mode!", __FUNCTION__); return err; } return OK; } Loading
camera/include/camera/CameraSessionStats.h +1 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,7 @@ public: bool mDeviceError; std::vector<CameraStreamStats> mStreamStats; String16 mUserTag; int mVideoStabilizationMode; // Constructors CameraSessionStats(); Loading
media/codec2/core/include/C2Config.h +11 −0 Original line number Diff line number Diff line Loading @@ -277,6 +277,9 @@ enum C2ParamIndexKind : C2Param::type_index_t { // encoding statistics, average block qp of a frame kParamIndexAverageBlockQuantization, // int32 // channel mask for decoded audio kParamIndexAndroidChannelMask, // uint32 }; } Loading Loading @@ -1980,6 +1983,14 @@ typedef C2StreamParam<C2Info, C2Uint32Value, kParamIndexMaxChannelCount> C2Strea constexpr char C2_PARAMKEY_MAX_CHANNEL_COUNT[] = "raw.max-channel-count"; constexpr char C2_PARAMKEY_MAX_CODED_CHANNEL_COUNT[] = "coded.max-channel-count"; /** * Audio channel mask. Used by decoder to express audio channel mask of decoded content. * Channel representation is specified according to the Java android.media.AudioFormat * CHANNEL_OUT_* constants. */ typedef C2StreamParam<C2Info, C2Uint32Value, kParamIndexAndroidChannelMask> C2StreamChannelMaskInfo; const char C2_PARAMKEY_CHANNEL_MASK[] = "raw.channel-mask"; /** * Audio sample format (PCM encoding) */ Loading
media/codec2/sfplugin/CCodecConfig.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -905,6 +905,9 @@ void CCodecConfig::initializeStandardParams() { add(ConfigMapper(KEY_MAX_OUTPUT_CHANNEL_COUNT, C2_PARAMKEY_MAX_CHANNEL_COUNT, "value") .limitTo(D::AUDIO & (D::CONFIG | D::PARAM | D::READ))); add(ConfigMapper(KEY_CHANNEL_MASK, C2_PARAMKEY_CHANNEL_MASK, "value") .limitTo(D::AUDIO & D::DECODER & D::READ)); add(ConfigMapper(KEY_AAC_SBR_MODE, C2_PARAMKEY_AAC_SBR_MODE, "value") .limitTo(D::AUDIO & D::ENCODER & (D::CONFIG | D::PARAM | D::READ)) .withMapper([](C2Value v) -> C2Value { Loading
media/utils/TimeCheck.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -189,15 +189,18 @@ void TimeCheck::TimeCheckHandler::onTimeout() const // Generate audio HAL processes tombstones and allow time to complete // before forcing restart std::vector<pid_t> pids = TimeCheck::getAudioHalPids(); std::string halPids = "HAL pids [ "; if (pids.size() != 0) { for (const auto& pid : pids) { ALOGI("requesting tombstone for pid: %d", pid); halPids.append(std::to_string(pid)).append(" "); sigqueue(pid, DEBUGGER_SIGNAL, {.sival_int = 0}); } sleep(1); } else { ALOGI("No HAL process pid available, skipping tombstones"); } halPids.append("]"); LOG_EVENT_STRING(LOGTAG_AUDIO_BINDER_TIMEOUT, tag.c_str()); Loading @@ -206,6 +209,7 @@ void TimeCheck::TimeCheckHandler::onTimeout() const .append(tag) .append(" scheduled ").append(formatTime(startTime)) .append(" on thread ").append(std::to_string(tid)).append("\n") .append(halPids).append("\n") .append(summary); // Note: LOG_ALWAYS_FATAL limits the size of the string - per log/log.h: Loading