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

Commit 5add1a6c authored by Dhanalakshmi Siddani's avatar Dhanalakshmi Siddani Committed by Gerrit - the friendly Code Review server
Browse files

mm-audio: omx: post error to omx during SSR

Add support to post error to omx component for NT mode session
during SSR

Change-Id: I768793331e8dd79a886b80a3bcac8173e5da73ea
parent eb9127a9
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -4070,6 +4070,8 @@ OMX_ERRORTYPE omx_aac_aenc::empty_this_buffer_proxy
    //The total length of the data to be transcoded
    srcStart = buffer->pBuffer;
    OMX_U8 *data = NULL;
    ssize_t bytes = 0;

    PrintFrameHdr(OMX_COMPONENT_GENERATE_ETB,buffer);
    memset(&meta_in,0,sizeof(meta_in));
    if ( search_input_bufhdr(buffer) == false )
@@ -4104,7 +4106,22 @@ OMX_ERRORTYPE omx_aac_aenc::empty_this_buffer_proxy
    }

    memcpy(&data[sizeof(META_IN)],buffer->pBuffer,buffer->nFilledLen);
    write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
    bytes = write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
    if (bytes <= 0) {
        frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);

        if (errno == ENETRESET)
        {
            ALOGE("In SSR, return error to close the session");
            m_cb.EventHandler(&m_cmp,
                  m_app_data,
                  OMX_EventError,
                  OMX_ErrorHardware,
                  0, NULL );
        }
        return OMX_ErrorNone;
    }

    pthread_mutex_lock(&m_state_lock);
    get_state(&m_cmp, &state);
    pthread_mutex_unlock(&m_state_lock);
+31 −5
Original line number Diff line number Diff line
@@ -3974,6 +3974,8 @@ OMX_ERRORTYPE omx_evrc_aenc::empty_this_buffer_proxy
    //The total length of the data to be transcoded
    srcStart = buffer->pBuffer;
    OMX_U8 *data = NULL;
    ssize_t bytes = 0;

    PrintFrameHdr(OMX_COMPONENT_GENERATE_ETB,buffer);
    memset(&meta_in,0,sizeof(meta_in));
    if ( search_input_bufhdr(buffer) == false )
@@ -4003,7 +4005,21 @@ OMX_ERRORTYPE omx_evrc_aenc::empty_this_buffer_proxy
    }

    memcpy(&data[sizeof(META_IN)],buffer->pBuffer,buffer->nFilledLen);
    write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
    bytes = write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
    if (bytes <= 0) {
        frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);

        if (errno == ENETRESET)
        {
            ALOGE("In SSR, return error to close the session");
            m_cb.EventHandler(&m_cmp,
                  m_app_data,
                  OMX_EventError,
                  OMX_ErrorHardware,
                  0, NULL );
        }
        return OMX_ErrorNone;
    }

    pthread_mutex_lock(&m_state_lock);
    get_state(&m_cmp, &state);
@@ -4049,6 +4065,16 @@ OMX_ERRORTYPE omx_evrc_aenc::fill_this_buffer_proxy
            buffer->nOffset = 0;
            buffer->nTimeStamp = nTimestamp;
            frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);

            if (errno == ENETRESET)
            {
                ALOGE("In SSR, return error to close the session");
                m_cb.EventHandler(&m_cmp,
                   m_app_data,
                   OMX_EventError,
                   OMX_ErrorHardware,
                   0, NULL );
            }
            return OMX_ErrorNone;
      } else
              DEBUG_PRINT("Read bytes %d\n",nReadbytes);
+31 −5
Original line number Diff line number Diff line
@@ -3972,6 +3972,8 @@ OMX_ERRORTYPE omx_qcelp13_aenc::empty_this_buffer_proxy
    //The total length of the data to be transcoded
    srcStart = buffer->pBuffer;
    OMX_U8 *data = NULL;
    ssize_t bytes = 0;

    PrintFrameHdr(OMX_COMPONENT_GENERATE_ETB,buffer);
    memset(&meta_in,0,sizeof(meta_in));
    if ( search_input_bufhdr(buffer) == false )
@@ -4001,7 +4003,21 @@ OMX_ERRORTYPE omx_qcelp13_aenc::empty_this_buffer_proxy
    }

    memcpy(&data[sizeof(META_IN)],buffer->pBuffer,buffer->nFilledLen);
    write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
    bytes = write(m_drv_fd, data, buffer->nFilledLen+sizeof(META_IN));
    if (bytes <= 0) {
        frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);

        if (errno == ENETRESET)
        {
            ALOGE("In SSR, return error to close the session");
            m_cb.EventHandler(&m_cmp,
                  m_app_data,
                  OMX_EventError,
                  OMX_ErrorHardware,
                  0, NULL );
        }
        return OMX_ErrorNone;
    }

    pthread_mutex_lock(&m_state_lock);
    get_state(&m_cmp, &state);
@@ -4047,6 +4063,16 @@ OMX_ERRORTYPE omx_qcelp13_aenc::fill_this_buffer_proxy
            buffer->nOffset = 0;
            buffer->nTimeStamp = nTimestamp;
            frame_done_cb((OMX_BUFFERHEADERTYPE *)buffer);

            if (errno == ENETRESET)
            {
                ALOGE("In SSR, return error to close the session");
                m_cb.EventHandler(&m_cmp,
                   m_app_data,
                   OMX_EventError,
                   OMX_ErrorHardware,
                   0, NULL );
            }
            return OMX_ErrorNone;
      } else
              DEBUG_PRINT("Read bytes %d\n",nReadbytes);