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