Loading media/libaudiohal/ConversionHelperHidl.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -82,9 +82,16 @@ status_t ConversionHelperHidl::analyzeResult(const Result& result) { } } // static void ConversionHelperHidl::crashIfHalIsDead(const Status& status) { LOG_ALWAYS_FATAL_IF( status.transactionError() == DEAD_OBJECT, "HAL server crashed, need to restart"); } status_t ConversionHelperHidl::processReturn(const char* funcName, const Status& status) { const status_t st = status.transactionError(); ALOGE_IF(st, "%s %p %s: %s (from rpc)", mClassName, this, funcName, strerror(-st)); crashIfHalIsDead(status); return st; } Loading @@ -93,6 +100,7 @@ status_t ConversionHelperHidl::processReturn( const status_t st = status.isOk() ? analyzeResult(retval) : status.transactionError(); ALOGE_IF(!status.isOk() && st, "%s %p %s: %s (from rpc)", mClassName, this, funcName, strerror(-st)); crashIfHalIsDead(status); return st; } Loading media/libaudiohal/ConversionHelperHidl.h +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ using ::android::hardware::hidl_vec; namespace android { class ConversionHelperHidl { public: static void crashIfHalIsDead(const Status& status); protected: static status_t keysFromHal(const String8& keys, hidl_vec<hidl_string> *hidlKeys); static status_t parametersFromHal(const String8& kvPairs, hidl_vec<ParameterValue> *hidlParams); Loading media/libaudiohal/DevicesFactoryHalHidl.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <android/hardware/audio/2.0/IDevice.h> #include <utils/Log.h> #include "ConversionHelperHidl.h" #include "DeviceHalHidl.h" #include "DevicesFactoryHalHidl.h" Loading Loading @@ -82,6 +83,7 @@ status_t DevicesFactoryHalHidl::openDevice(const char *name, sp<DeviceHalInterfa else if (retval == Result::INVALID_ARGUMENTS) return BAD_VALUE; else return NO_INIT; } ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading media/libaudiohal/EffectHalHidl.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <media/EffectsFactoryApi.h> #include <utils/Log.h> #include "ConversionHelperHidl.h" #include "EffectHalHidl.h" #include "HidlUtils.h" Loading Loading @@ -102,6 +103,7 @@ status_t EffectHalHidl::getDescriptor(effect_descriptor_t *pDescriptor) { effectDescriptorToHal(result, pDescriptor); } }); ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().isOk() ? analyzeResult(retval) : ret.getStatus().transactionError(); } Loading media/libaudiohal/EffectsFactoryHalHidl.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <cutils/native_handle.h> #include <media/EffectsFactoryApi.h> #include "ConversionHelperHidl.h" #include "EffectHalHidl.h" #include "EffectsFactoryHalHidl.h" #include "HidlUtils.h" Loading Loading @@ -63,6 +64,7 @@ status_t EffectsFactoryHalHidl::queryAllDescriptors() { return retval == Result::OK ? OK : NO_INIT; } mLastDescriptors.resize(0); ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading Loading @@ -107,6 +109,7 @@ status_t EffectsFactoryHalHidl::getDescriptor( else if (retval == Result::INVALID_ARGUMENTS) return NAME_NOT_FOUND; else return NO_INIT; } ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading @@ -130,6 +133,7 @@ status_t EffectsFactoryHalHidl::createEffect( else if (retval == Result::INVALID_ARGUMENTS) return NAME_NOT_FOUND; else return NO_INIT; } ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading @@ -139,6 +143,7 @@ status_t EffectsFactoryHalHidl::dumpEffects(int fd) { hidlHandle->data[0] = fd; Return<void> ret = mEffectsFactory->debugDump(hidlHandle); native_handle_delete(hidlHandle); ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading Loading
media/libaudiohal/ConversionHelperHidl.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -82,9 +82,16 @@ status_t ConversionHelperHidl::analyzeResult(const Result& result) { } } // static void ConversionHelperHidl::crashIfHalIsDead(const Status& status) { LOG_ALWAYS_FATAL_IF( status.transactionError() == DEAD_OBJECT, "HAL server crashed, need to restart"); } status_t ConversionHelperHidl::processReturn(const char* funcName, const Status& status) { const status_t st = status.transactionError(); ALOGE_IF(st, "%s %p %s: %s (from rpc)", mClassName, this, funcName, strerror(-st)); crashIfHalIsDead(status); return st; } Loading @@ -93,6 +100,7 @@ status_t ConversionHelperHidl::processReturn( const status_t st = status.isOk() ? analyzeResult(retval) : status.transactionError(); ALOGE_IF(!status.isOk() && st, "%s %p %s: %s (from rpc)", mClassName, this, funcName, strerror(-st)); crashIfHalIsDead(status); return st; } Loading
media/libaudiohal/ConversionHelperHidl.h +3 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,9 @@ using ::android::hardware::hidl_vec; namespace android { class ConversionHelperHidl { public: static void crashIfHalIsDead(const Status& status); protected: static status_t keysFromHal(const String8& keys, hidl_vec<hidl_string> *hidlKeys); static status_t parametersFromHal(const String8& kvPairs, hidl_vec<ParameterValue> *hidlParams); Loading
media/libaudiohal/DevicesFactoryHalHidl.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include <android/hardware/audio/2.0/IDevice.h> #include <utils/Log.h> #include "ConversionHelperHidl.h" #include "DeviceHalHidl.h" #include "DevicesFactoryHalHidl.h" Loading Loading @@ -82,6 +83,7 @@ status_t DevicesFactoryHalHidl::openDevice(const char *name, sp<DeviceHalInterfa else if (retval == Result::INVALID_ARGUMENTS) return BAD_VALUE; else return NO_INIT; } ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading
media/libaudiohal/EffectHalHidl.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <media/EffectsFactoryApi.h> #include <utils/Log.h> #include "ConversionHelperHidl.h" #include "EffectHalHidl.h" #include "HidlUtils.h" Loading Loading @@ -102,6 +103,7 @@ status_t EffectHalHidl::getDescriptor(effect_descriptor_t *pDescriptor) { effectDescriptorToHal(result, pDescriptor); } }); ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().isOk() ? analyzeResult(retval) : ret.getStatus().transactionError(); } Loading
media/libaudiohal/EffectsFactoryHalHidl.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <cutils/native_handle.h> #include <media/EffectsFactoryApi.h> #include "ConversionHelperHidl.h" #include "EffectHalHidl.h" #include "EffectsFactoryHalHidl.h" #include "HidlUtils.h" Loading Loading @@ -63,6 +64,7 @@ status_t EffectsFactoryHalHidl::queryAllDescriptors() { return retval == Result::OK ? OK : NO_INIT; } mLastDescriptors.resize(0); ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading Loading @@ -107,6 +109,7 @@ status_t EffectsFactoryHalHidl::getDescriptor( else if (retval == Result::INVALID_ARGUMENTS) return NAME_NOT_FOUND; else return NO_INIT; } ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading @@ -130,6 +133,7 @@ status_t EffectsFactoryHalHidl::createEffect( else if (retval == Result::INVALID_ARGUMENTS) return NAME_NOT_FOUND; else return NO_INIT; } ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading @@ -139,6 +143,7 @@ status_t EffectsFactoryHalHidl::dumpEffects(int fd) { hidlHandle->data[0] = fd; Return<void> ret = mEffectsFactory->debugDump(hidlHandle); native_handle_delete(hidlHandle); ConversionHelperHidl::crashIfHalIsDead(ret.getStatus()); return ret.getStatus().transactionError(); } Loading