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

Commit b6967760 authored by Steve Kondik's avatar Steve Kondik
Browse files

stagefright: Use output port optimization only on 7x30

Change-Id: Ieac0fa71c080b652b1881e5ba7df12e489537880
parent b148021c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1493,8 +1493,8 @@ OMXCodec::OMXCodec(
      mSeekMode(ReadOptions::SEEK_CLOSEST_SYNC),
      mTargetTimeUs(-1),
      mSkipTimeUs(-1),
      mPaused(false),
      mLeftOverBuffer(NULL),
      mPaused(false),
      mPmemInfo(NULL){
    mPortStatus[kPortIndexInput] = ENABLED;
    mPortStatus[kPortIndexOutput] = ENABLED;
+4 −0
Original line number Diff line number Diff line
@@ -12,6 +12,10 @@ ifeq ($(TARGET_BOARD_PLATFORM),omap3)
LOCAL_CFLAGS += -DTARGET_OMAP3
endif

ifeq ($(TARGET_BOARD_PLATFORM),msm7x30)
LOCAL_CFLAGS += -DTARGET_7X30
endif

LOCAL_C_INCLUDES += $(JNI_H_INCLUDE)

LOCAL_SRC_FILES:=                     \
+4 −2
Original line number Diff line number Diff line
@@ -403,6 +403,7 @@ OMX_ERRORTYPE OMX::OnFillBufferDone(
    msg.u.extended_buffer_data.platform_private = pBuffer->pPlatformPrivate;
    msg.u.extended_buffer_data.data_ptr = pBuffer->pBuffer;

#ifdef TARGET_7X30
    PLATFORM_PRIVATE_LIST *pPlatfromList = (PLATFORM_PRIVATE_LIST *)pBuffer->pPlatformPrivate;
    PLATFORM_PRIVATE_ENTRY *pPlatformEntry;
    PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
@@ -421,6 +422,7 @@ OMX_ERRORTYPE OMX::OnFillBufferDone(
      }
    }
    msg.u.extended_buffer_data.pmem_offset = offset;
#endif

    findDispatcher(node)->post(msg);
    return OMX_ErrorNone;
+8 −0
Original line number Diff line number Diff line
@@ -184,10 +184,13 @@ status_t OMXNodeInstance::freeNode(OMXMaster *master) {
            break;
    }

#ifdef TARGET_7X30
    if(true == pmem_registered_with_client) {
      mObserver->registerBuffers(NULL);
      pmem_registered_with_client = false;
    }
#endif

    OMX_ERRORTYPE err = master->destroyComponentInstance(
            static_cast<OMX_COMPONENTTYPE *>(mHandle));

@@ -434,6 +437,8 @@ void OMXNodeInstance::onMessage(const omx_message &msg) {

        BufferMeta *buffer_meta =
            static_cast<BufferMeta *>(buffer->pAppPrivate);

#ifdef TARGET_7X30
        PLATFORM_PRIVATE_LIST *pPlatfromList = (PLATFORM_PRIVATE_LIST *)buffer->pPlatformPrivate;
        PLATFORM_PRIVATE_ENTRY *pPlatformEntry;
        PLATFORM_PRIVATE_PMEM_INFO *pPMEMInfo;
@@ -462,6 +467,7 @@ void OMXNodeInstance::onMessage(const omx_message &msg) {
                pmem_registered_with_client = true;
            }
        }
#endif
        buffer_meta->CopyFromOMX(buffer);
    }

@@ -491,6 +497,7 @@ OMX_ERRORTYPE OMXNodeInstance::OnEvent(
    if (instance->mDying) {
        return OMX_ErrorNone;
    }
#ifdef TARGET_7X30
    if(eEvent == OMX_EventCmdComplete && nData1 == OMX_CommandPortDisable && nData2 == 1) {
      /*This is needed to clear the reference on pmem fd.
       * If this is skipped then we will see pmem leak.
@@ -500,6 +507,7 @@ OMX_ERRORTYPE OMXNodeInstance::OnEvent(
        instance->pmem_registered_with_client = false;
      }
    }
#endif
    return instance->owner()->OnEvent(
            instance->nodeID(), eEvent, nData1, nData2, pEventData);
}