Loading include/media/Interpolator.h +1 −1 Original line number Diff line number Diff line Loading @@ -289,7 +289,7 @@ public: std::string toString() const { std::stringstream ss; ss << "Interpolator{mInterpolatorType=" << static_cast<int32_t>(mInterpolatorType); ss << "Interpolator{mInterpolatorType=" << media::toString(mInterpolatorType); ss << ", mFirstSlope=" << mFirstSlope; ss << ", mLastSlope=" << mLastSlope; ss << ", {"; Loading include/media/VolumeShaper.h +48 −3 Original line number Diff line number Diff line Loading @@ -116,6 +116,16 @@ public: TYPE_SCALE, }; static std::string toString(Type type) { switch (type) { case TYPE_ID: return "TYPE_ID"; case TYPE_SCALE: return "TYPE_SCALE"; default: return std::string("Unknown Type: ") .append(std::to_string(static_cast<int>(type))); } } // Must match with VolumeShaper.java in frameworks/base. enum OptionFlag : int32_t { OPTION_FLAG_NONE = 0, Loading @@ -125,6 +135,22 @@ public: OPTION_FLAG_ALL = (OPTION_FLAG_VOLUME_IN_DBFS | OPTION_FLAG_CLOCK_TIME), }; static std::string toString(OptionFlag flag) { std::string s; for (const auto& flagPair : std::initializer_list<std::pair<OptionFlag, const char*>>{ {OPTION_FLAG_VOLUME_IN_DBFS, "OPTION_FLAG_VOLUME_IN_DBFS"}, {OPTION_FLAG_CLOCK_TIME, "OPTION_FLAG_CLOCK_TIME"}, }) { if (flag & flagPair.first) { if (!s.empty()) { s.append("|"); } s.append(flagPair.second); } } return s; } // Bring from base class; must match with VolumeShaper.java in frameworks/base. using InterpolatorType = Interpolator<S, T>::InterpolatorType; Loading Loading @@ -329,10 +355,10 @@ public: // Returns a string for debug printing. std::string toString() const { std::stringstream ss; ss << "VolumeShaper::Configuration{mType=" << static_cast<int32_t>(mType); ss << "VolumeShaper::Configuration{mType=" << toString(mType); ss << ", mId=" << mId; if (mType != TYPE_ID) { ss << ", mOptionFlags=" << static_cast<int32_t>(mOptionFlags); ss << ", mOptionFlags=" << toString(mOptionFlags); ss << ", mDurationMs=" << mDurationMs; ss << ", " << Interpolator<S, T>::toString().c_str(); } Loading Loading @@ -414,6 +440,25 @@ public: | FLAG_CREATE_IF_NECESSARY), }; static std::string toString(Flag flag) { std::string s; for (const auto& flagPair : std::initializer_list<std::pair<Flag, const char*>>{ {FLAG_REVERSE, "FLAG_REVERSE"}, {FLAG_TERMINATE, "FLAG_TERMINATE"}, {FLAG_JOIN, "FLAG_JOIN"}, {FLAG_DELAY, "FLAG_DELAY"}, {FLAG_CREATE_IF_NECESSARY, "FLAG_CREATE_IF_NECESSARY"}, }) { if (flag & flagPair.first) { if (!s.empty()) { s.append("|"); } s.append(flagPair.second); } } return s; } Operation() : Operation(FLAG_NONE, -1 /* replaceId */) { } Loading Loading @@ -508,7 +553,7 @@ public: std::string toString() const { std::stringstream ss; ss << "VolumeShaper::Operation{mFlags=" << static_cast<int32_t>(mFlags) ; ss << "VolumeShaper::Operation{mFlags=" << toString(mFlags); ss << ", mReplaceId=" << mReplaceId; ss << ", mXOffset=" << mXOffset; ss << "}"; Loading media/libaudioclient/AudioTrack.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -3035,6 +3035,7 @@ VolumeShaper::Status AudioTrack::applyVolumeShaper( const sp<VolumeShaper::Configuration>& configuration, const sp<VolumeShaper::Operation>& operation) { const int64_t beginNs = systemTime(); AutoMutex lock(mLock); mVolumeHandler->setIdIfNecessary(configuration); media::VolumeShaperConfiguration config; Loading @@ -3042,6 +3043,18 @@ VolumeShaper::Status AudioTrack::applyVolumeShaper( media::VolumeShaperOperation op; operation->writeToParcelable(&op); VolumeShaper::Status status; mediametrics::Defer defer([&] { mediametrics::LogItem(mMetricsId) .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_APPLYVOLUMESHAPER) .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs)) .set(AMEDIAMETRICS_PROP_STATE, stateToString(mState)) .set(AMEDIAMETRICS_PROP_STATUS, (int32_t)status) .set(AMEDIAMETRICS_PROP_TOSTRING, configuration->toString() .append(" ") .append(operation->toString())) .record(); }); mAudioTrack->applyVolumeShaper(config, op, &status); if (status == DEAD_OBJECT) { Loading media/libmediametrics/include/MediaMetricsConstants.h +2 −0 Original line number Diff line number Diff line Loading @@ -213,6 +213,7 @@ // format to transport packets. // Raw byte streams are used if this // is false. #define AMEDIAMETRICS_PROP_TOSTRING "toString" // string #define AMEDIAMETRICS_PROP_TOTALINPUTBYTES "totalInputBytes" // int32 (MIDI) #define AMEDIAMETRICS_PROP_TOTALOUTPUTBYTES "totalOutputBytes" // int32 (MIDI) #define AMEDIAMETRICS_PROP_THREADID "threadId" // int32 value io handle Loading Loading @@ -243,6 +244,7 @@ // Values are strings accepted for a given property. // An event is a general description, which often is a function name. #define AMEDIAMETRICS_PROP_EVENT_VALUE_APPLYVOLUMESHAPER "applyVolumeShaper" #define AMEDIAMETRICS_PROP_EVENT_VALUE_BEGINAUDIOINTERVALGROUP "beginAudioIntervalGroup" #define AMEDIAMETRICS_PROP_EVENT_VALUE_CLOSE "close" #define AMEDIAMETRICS_PROP_EVENT_VALUE_CREATE "create" Loading Loading
include/media/Interpolator.h +1 −1 Original line number Diff line number Diff line Loading @@ -289,7 +289,7 @@ public: std::string toString() const { std::stringstream ss; ss << "Interpolator{mInterpolatorType=" << static_cast<int32_t>(mInterpolatorType); ss << "Interpolator{mInterpolatorType=" << media::toString(mInterpolatorType); ss << ", mFirstSlope=" << mFirstSlope; ss << ", mLastSlope=" << mLastSlope; ss << ", {"; Loading
include/media/VolumeShaper.h +48 −3 Original line number Diff line number Diff line Loading @@ -116,6 +116,16 @@ public: TYPE_SCALE, }; static std::string toString(Type type) { switch (type) { case TYPE_ID: return "TYPE_ID"; case TYPE_SCALE: return "TYPE_SCALE"; default: return std::string("Unknown Type: ") .append(std::to_string(static_cast<int>(type))); } } // Must match with VolumeShaper.java in frameworks/base. enum OptionFlag : int32_t { OPTION_FLAG_NONE = 0, Loading @@ -125,6 +135,22 @@ public: OPTION_FLAG_ALL = (OPTION_FLAG_VOLUME_IN_DBFS | OPTION_FLAG_CLOCK_TIME), }; static std::string toString(OptionFlag flag) { std::string s; for (const auto& flagPair : std::initializer_list<std::pair<OptionFlag, const char*>>{ {OPTION_FLAG_VOLUME_IN_DBFS, "OPTION_FLAG_VOLUME_IN_DBFS"}, {OPTION_FLAG_CLOCK_TIME, "OPTION_FLAG_CLOCK_TIME"}, }) { if (flag & flagPair.first) { if (!s.empty()) { s.append("|"); } s.append(flagPair.second); } } return s; } // Bring from base class; must match with VolumeShaper.java in frameworks/base. using InterpolatorType = Interpolator<S, T>::InterpolatorType; Loading Loading @@ -329,10 +355,10 @@ public: // Returns a string for debug printing. std::string toString() const { std::stringstream ss; ss << "VolumeShaper::Configuration{mType=" << static_cast<int32_t>(mType); ss << "VolumeShaper::Configuration{mType=" << toString(mType); ss << ", mId=" << mId; if (mType != TYPE_ID) { ss << ", mOptionFlags=" << static_cast<int32_t>(mOptionFlags); ss << ", mOptionFlags=" << toString(mOptionFlags); ss << ", mDurationMs=" << mDurationMs; ss << ", " << Interpolator<S, T>::toString().c_str(); } Loading Loading @@ -414,6 +440,25 @@ public: | FLAG_CREATE_IF_NECESSARY), }; static std::string toString(Flag flag) { std::string s; for (const auto& flagPair : std::initializer_list<std::pair<Flag, const char*>>{ {FLAG_REVERSE, "FLAG_REVERSE"}, {FLAG_TERMINATE, "FLAG_TERMINATE"}, {FLAG_JOIN, "FLAG_JOIN"}, {FLAG_DELAY, "FLAG_DELAY"}, {FLAG_CREATE_IF_NECESSARY, "FLAG_CREATE_IF_NECESSARY"}, }) { if (flag & flagPair.first) { if (!s.empty()) { s.append("|"); } s.append(flagPair.second); } } return s; } Operation() : Operation(FLAG_NONE, -1 /* replaceId */) { } Loading Loading @@ -508,7 +553,7 @@ public: std::string toString() const { std::stringstream ss; ss << "VolumeShaper::Operation{mFlags=" << static_cast<int32_t>(mFlags) ; ss << "VolumeShaper::Operation{mFlags=" << toString(mFlags); ss << ", mReplaceId=" << mReplaceId; ss << ", mXOffset=" << mXOffset; ss << "}"; Loading
media/libaudioclient/AudioTrack.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -3035,6 +3035,7 @@ VolumeShaper::Status AudioTrack::applyVolumeShaper( const sp<VolumeShaper::Configuration>& configuration, const sp<VolumeShaper::Operation>& operation) { const int64_t beginNs = systemTime(); AutoMutex lock(mLock); mVolumeHandler->setIdIfNecessary(configuration); media::VolumeShaperConfiguration config; Loading @@ -3042,6 +3043,18 @@ VolumeShaper::Status AudioTrack::applyVolumeShaper( media::VolumeShaperOperation op; operation->writeToParcelable(&op); VolumeShaper::Status status; mediametrics::Defer defer([&] { mediametrics::LogItem(mMetricsId) .set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_APPLYVOLUMESHAPER) .set(AMEDIAMETRICS_PROP_EXECUTIONTIMENS, (int64_t)(systemTime() - beginNs)) .set(AMEDIAMETRICS_PROP_STATE, stateToString(mState)) .set(AMEDIAMETRICS_PROP_STATUS, (int32_t)status) .set(AMEDIAMETRICS_PROP_TOSTRING, configuration->toString() .append(" ") .append(operation->toString())) .record(); }); mAudioTrack->applyVolumeShaper(config, op, &status); if (status == DEAD_OBJECT) { Loading
media/libmediametrics/include/MediaMetricsConstants.h +2 −0 Original line number Diff line number Diff line Loading @@ -213,6 +213,7 @@ // format to transport packets. // Raw byte streams are used if this // is false. #define AMEDIAMETRICS_PROP_TOSTRING "toString" // string #define AMEDIAMETRICS_PROP_TOTALINPUTBYTES "totalInputBytes" // int32 (MIDI) #define AMEDIAMETRICS_PROP_TOTALOUTPUTBYTES "totalOutputBytes" // int32 (MIDI) #define AMEDIAMETRICS_PROP_THREADID "threadId" // int32 value io handle Loading Loading @@ -243,6 +244,7 @@ // Values are strings accepted for a given property. // An event is a general description, which often is a function name. #define AMEDIAMETRICS_PROP_EVENT_VALUE_APPLYVOLUMESHAPER "applyVolumeShaper" #define AMEDIAMETRICS_PROP_EVENT_VALUE_BEGINAUDIOINTERVALGROUP "beginAudioIntervalGroup" #define AMEDIAMETRICS_PROP_EVENT_VALUE_CLOSE "close" #define AMEDIAMETRICS_PROP_EVENT_VALUE_CREATE "create" Loading