Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fafcc219 authored by Praveen Chavan's avatar Praveen Chavan Committed by Ronghua Wu
Browse files

Stagefright: propagate InsufficientResources error

Propagate OMX_ErrorInsufficientResources when handling
node-allocation failure any other error from the component.

bug: 20132289

Change-Id: I1ed9626dab947227e3d5e983bbbeee89ad7b2d2a
parent dae24729
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ class IOMXObserver;
struct OMXMaster;
class GraphicBufferSource;

status_t StatusFromOMXError(OMX_ERRORTYPE err);

struct OMXNodeInstance {
    OMXNodeInstance(
            OMX *owner, const sp<IOMXObserver> &observer, const char *name);
+3 −2
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@

#include "OMXMaster.h"

#include <OMX_AsString.h>
#include <OMX_Component.h>

namespace android {
@@ -233,11 +234,11 @@ status_t OMX::allocateNode(
            instance, &handle);

    if (err != OMX_ErrorNone) {
        ALOGE("FAILED to allocate omx component '%s'", name);
        ALOGE("FAILED to allocate omx component '%s' err=%s(%#x)", name, asString(err), err);

        instance->onGetHandleFailed();

        return UNKNOWN_ERROR;
        return StatusFromOMXError(err);
    }

    *node = makeNodeID(instance);
+3 −1
Original line number Diff line number Diff line
@@ -220,13 +220,15 @@ OMX::node_id OMXNodeInstance::nodeID() {
    return mNodeID;
}

static status_t StatusFromOMXError(OMX_ERRORTYPE err) {
status_t StatusFromOMXError(OMX_ERRORTYPE err) {
    switch (err) {
        case OMX_ErrorNone:
            return OK;
        case OMX_ErrorUnsupportedSetting:
        case OMX_ErrorUnsupportedIndex:
            return ERROR_UNSUPPORTED;
        case OMX_ErrorInsufficientResources:
            return NO_MEMORY;
        default:
            return UNKNOWN_ERROR;
    }