本文整理汇总了C++中OMX_FillThisBuffer函数的典型用法代码示例。如果您正苦于以下问题:C++ OMX_FillThisBuffer函数的具体用法?C++ OMX_FillThisBuffer怎么用?C++ OMX_FillThisBuffer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了OMX_FillThisBuffer函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: volumeEmptyBufferDone
OMX_ERRORTYPE volumeEmptyBufferDone(
OMX_OUT OMX_HANDLETYPE hComponent,
OMX_OUT OMX_PTR pAppData,
OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer) {
OMX_ERRORTYPE err;
static int iBufferDropped = 0;
if(pBuffer != NULL) {
if(!bEOS) {
if(pOutBuffer[0]->pBuffer == pBuffer->pBuffer) {
pOutBuffer[0]->nFilledLen = pBuffer->nFilledLen;
err = OMX_FillThisBuffer(appPriv->audiosrchandle, pOutBuffer[0]);
} else {
pOutBuffer[1]->nFilledLen = pBuffer->nFilledLen;
err = OMX_FillThisBuffer(appPriv->audiosrchandle, pOutBuffer[1]);
}
if(err != OMX_ErrorNone) {
DEBUG(DEB_LEV_ERR, "In %s Error %08x Calling FillThisBuffer\n", __func__,err);
}
} else {
DEBUG(DEB_LEV_ERR, "In %s: eos=%x Dropping Fill This Buffer\n", __func__,(int)pBuffer->nFlags);
iBufferDropped++;
if(iBufferDropped == 2) {
tsem_up(appPriv->eofSem);
}
}
} else {
if(!bEOS) {
tsem_up(appPriv->eofSem);
}
DEBUG(DEB_LEV_ERR, "Ouch! In %s: had NULL buffer to output...\n", __func__);
}
return OMX_ErrorNone;
}
开发者ID:commshare,项目名称:testGstOmx,代码行数:35,代码来源:omxaudiocapnplay.c
示例2: start_data_process
OMX_ERRORTYPE start_data_process(HTEST *hTest)
{
OMX_ERRORTYPE ret = OMX_ErrorNone;
OMX_U32 i, wait_cnt = 0;
hTest->bHoldBuffers = OMX_FALSE;
OMX_CONFIG_BOOLEANTYPE sCapturing;
OMX_INIT_STRUCT(&sCapturing, OMX_CONFIG_BOOLEANTYPE);
sCapturing.bEnabled = OMX_TRUE;
ret = OMX_SetConfig(hTest->hComponent,OMX_IndexConfigCapturing, &sCapturing);
if (ret != OMX_ErrorNone)
return ret;
/* Send output buffers */
for(i=0; i<hTest->nBufferHdr[0]; i++) {
hTest->pBufferHdr[0][i]->nFilledLen = 0;
hTest->pBufferHdr[0][i]->nOffset = 0;
OMX_FillThisBuffer(hTest->hComponent, hTest->pBufferHdr[0][i]);
}
for(i=0; i<hTest->nBufferHdr[1]; i++) {
hTest->pBufferHdr[1][i]->nFilledLen = 0;
hTest->pBufferHdr[1][i]->nOffset = 0;
OMX_FillThisBuffer(hTest->hComponent, hTest->pBufferHdr[1][i]);
}
return ret;
}
开发者ID:primiano,项目名称:udoo_external_fsl_imx_omx,代码行数:29,代码来源:video_source_test.cpp
示例3: camera_sourceFillBufferDone
static OMX_ERRORTYPE camera_sourceFillBufferDone(
OMX_OUT OMX_HANDLETYPE hComponent,
OMX_OUT OMX_PTR pAppData,
OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer)
{
DEBUG(DEB_LEV_FUNCTION_NAME, "In %s for camera component\n",__func__);
DEBUG(DEB_LEV_FULL_SEQ, "%s: Get returned buffer (0x%lX) from port[%ld], nFilledLen=%ld\n", __func__, (OMX_U32)pBuffer, pBuffer->nOutputPortIndex, pBuffer->nFilledLen);
if (pBuffer->nOutputPortIndex == OMX_CAMPORT_INDEX_CP)
{
DEBUG(DEB_LEV_FULL_SEQ, "%s: writing to file",__func__);
//fwrite(pBuffer->pBuffer + pBuffer->nOffset, 1, pBuffer->nFilledLen, fCapture);
pBuffer->nFilledLen = 0;
pBuffer->nOffset = 0;
OMX_FillThisBuffer(appPriv->camerahandle, pBuffer);
fprintf(stdout, "capture buffer done!!!\n");
}
else if(pBuffer->nOutputPortIndex == OMX_CAMPORT_INDEX_VF)
{
if(pBuffer->nFilledLen >0)
{
unsigned char *vaddr = NULL;
vaddr = bufferHandleLock((buffer_handle_t)pBuffer->pBuffer,0,0);
if(vaddr){
surface_display_main_show(vaddr+pBuffer->nOffset, DEFAULT_FRAME_WIDTH, DEFAULT_FRAME_HEIGHT,DEFAULT_CAMERA_COLOR_FORMAT);
}
bufferHandleUnlock((buffer_handle_t)pBuffer->pBuffer);
}
if ((pBuffer->nFlags & OMX_BUFFERFLAG_STARTTIME) != 0)
{
DEBUG(DEB_LEV_ERR, "%s: Get buffer flag OMX_BUFFERFLAG_STARTTIME!\n", __func__);
}
/*
#ifndef OMX_SKIP64BIT
DEBUG(DEB_LEV_ERR, "%s: buffer[0x%lX] time stamp: 0x%016llX\n", __func__, (OMX_U32)pBuffer, pBuffer->nTimeStamp);
#else
DEBUG(DEB_LEV_ERR, "%s: buffer[0x%lX] time stamp: 0x%08lX%08lX\n", __func__, (OMX_U32)pBuffer, pBuffer->nTimeStamp.nHighPart, pBuffer->nTimeStamp.nLowPart);
#endif
*/
pBuffer->nFilledLen = 0;
pBuffer->nOffset = 0;
OMX_FillThisBuffer(appPriv->camerahandle, pBuffer);
}
DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s for camera component, return code: 0x%X\n",__func__, OMX_ErrorNone);
return OMX_ErrorNone;
}
开发者ID:LeMaker,项目名称:android-actions,代码行数:54,代码来源:bufhandletest.c
示例4: start_data_process
OMX_ERRORTYPE start_data_process(HTEST *hTest)
{
OMX_ERRORTYPE ret = OMX_ErrorNone;
OMX_U32 i, wait_cnt = 0;
hTest->bHoldBuffers = OMX_FALSE;
while (fsl_osal_sem_trywait(hTest->sParserFormatSem) !=E_FSL_OSAL_SUCCESS)
{
usleep(10*1000);
if(hTest->bError)
return OMX_ErrorUndefined;
if((wait_cnt++) > 60*100)
{
//if load time is larger than 1 minutes, then timeout
printf("timeout when wait output\n");
return OMX_ErrorUndefined;
}
}
ret = parser_process_port_setting_changed(hTest,hTest->nAudioTrackNum);
if (ret != OMX_ErrorNone)
return ret;
ret = parser_process_port_setting_changed(hTest,hTest->nVideoTrackNum);
if (ret != OMX_ErrorNone)
return ret;
OMX_CONFIG_SENDAUDIOFIRST sSendAudioFirst;
OMX_INIT_STRUCT(&sSendAudioFirst, OMX_CONFIG_SENDAUDIOFIRST);
sSendAudioFirst.bSendAudioFrameFirst = OMX_FALSE;
ret = OMX_SetConfig(hTest->hComponent,(OMX_INDEXTYPE)OMX_IndexConfigParserSendAudioFirst, &sSendAudioFirst);
if (ret != OMX_ErrorNone)
return ret;
// do_seek(hTest, 30, OMX_TIME_SeekModeFast);
/* Send output buffers */
for(i=0; i<hTest->nBufferHdr[0]; i++)
{
hTest->pBufferHdr[0][i]->nFilledLen = 0;
hTest->pBufferHdr[0][i]->nOffset = 0;
OMX_FillThisBuffer(hTest->hComponent, hTest->pBufferHdr[0][i]);
}
for(i=0; i<hTest->nBufferHdr[1]; i++)
{
hTest->pBufferHdr[1][i]->nFilledLen = 0;
hTest->pBufferHdr[1][i]->nOffset = 0;
OMX_FillThisBuffer(hTest->hComponent, hTest->pBufferHdr[1][i]);
}
return ret;
}
开发者ID:hicks0074,项目名称:freescale_omx_framework,代码行数:53,代码来源:parser_test.cpp
示例5: audiosrcFillBufferDone
OMX_ERRORTYPE audiosrcFillBufferDone(
OMX_OUT OMX_HANDLETYPE hComponent,
OMX_OUT OMX_PTR pAppData,
OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer) {
OMX_ERRORTYPE err;
OMX_STATETYPE eState;
if(pBuffer != NULL) {
if(!bEOS) {
/** if there is volume component component in processing state then send this buffer, in non tunneled case
* else in non tunneled case, write the output buffer contents in the specified output file
*/
if(flagIsVolCompRequested && (!flagSetupTunnel)) {
OMX_GetState(appPriv->volume_handle,&eState);
if(eState == OMX_StateExecuting || eState == OMX_StatePause) {
if(pInBufferVolc[0]->pBuffer == pBuffer->pBuffer) {
pInBufferVolc[0]->nFilledLen = pBuffer->nFilledLen;
err = OMX_EmptyThisBuffer(appPriv->volume_handle, pInBufferVolc[0]);
} else {
pInBufferVolc[1]->nFilledLen = pBuffer->nFilledLen;
err = OMX_EmptyThisBuffer(appPriv->volume_handle, pInBufferVolc[1]);
}
if(err != OMX_ErrorNone) {
DEBUG(DEB_LEV_ERR, "In %s Error %08x Calling FillThisBuffer\n", __func__,err);
}
} else {
err = OMX_FillThisBuffer(hComponent, pBuffer);
}
} else if((pBuffer->nFilledLen > 0) && (!flagSetupTunnel)) {
fwrite(pBuffer->pBuffer, 1, pBuffer->nFilledLen, outfile);
pBuffer->nFilledLen = 0;
}
if(pBuffer->nFlags == OMX_BUFFERFLAG_EOS) {
DEBUG(DEB_LEV_ERR, "In %s: eos=%x Calling Empty This Buffer\n", __func__, (int)pBuffer->nFlags);
bEOS = OMX_TRUE;
}
if(!bEOS && !flagIsVolCompRequested && (!flagSetupTunnel)) {
err = OMX_FillThisBuffer(hComponent, pBuffer);
}
} else {
DEBUG(DEB_LEV_ERR, "In %s: eos=%x Dropping Empty This Buffer\n", __func__,(int)pBuffer->nFlags);
}
} else {
DEBUG(DEB_LEV_ERR, "Ouch! In %s: had NULL buffer to output...\n", __func__);
}
return OMX_ErrorNone;
}
开发者ID:commshare,项目名称:testGstOmx,代码行数:48,代码来源:omxaudiocapnplay.c
示例6: SampleTest_ReadOutBuffers
OMX_ERRORTYPE SampleTest_ReadOutBuffers(SampleCompTestCtxt * pContext)
{
OMX_ERRORTYPE eError = OMX_ErrorNone;
BufferList *pList;
OMX_BUFFERHEADERTYPE *pBufHeader;
pList = pContext->pOutBufferList;
while (pList && pList->pBufHdr)
{
printf("\nAbout to do FTB\n");
BUFFERLIST_CLEAR_ENTRY(pList, pBufHeader);
eError = OMX_FillThisBuffer(pContext->hComp, pBufHeader);
OMX_TEST_BAIL_IF_ERROR(eError);
if (pBufHeader->nFlags == OMX_BUFFERFLAG_EOS)
{
pContext->nBufDoneCalls = OMX_TEST_BUFFERS_OF_TRAFFIC;
}
}
OMX_TEST_BAIL:
return eError;
}
开发者ID:0xD34D,项目名称:android_device_amazon_tate,代码行数:27,代码来源:test_sample_proxy.c
示例7: videosrcFillBufferDone
OMX_ERRORTYPE videosrcFillBufferDone(
OMX_OUT OMX_HANDLETYPE hComponent,
OMX_OUT OMX_PTR pAppData,
OMX_OUT OMX_BUFFERHEADERTYPE* pBuffer) {
OMX_ERRORTYPE err;
if(pBuffer != NULL){
if(!bEOS) {
/** if there is color conv component in processing state then send this buffer, in non tunneled case
* else in non tunneled case, write the output buffer contents in the specified output file
*/
if(pBuffer->nFilledLen > 0) {
fwrite(pBuffer->pBuffer, sizeof(char), pBuffer->nFilledLen, outfile);
pBuffer->nFilledLen = 0;
}
if(pBuffer->nFlags == OMX_BUFFERFLAG_EOS) {
DEBUG(DEB_LEV_ERR, "In %s: eos=%x Calling Empty This Buffer\n", __func__, (int)pBuffer->nFlags);
bEOS = OMX_TRUE;
}
if(!bEOS ) {
err = OMX_FillThisBuffer(hComponent, pBuffer);
}
} else {
DEBUG(DEB_LEV_ERR, "In %s: eos=%x Dropping Empty This Buffer\n", __func__,(int)pBuffer->nFlags);
}
} else {
DEBUG(DEB_LEV_ERR, "Ouch! In %s: had NULL buffer to output...\n", __func__);
}
return OMX_ErrorNone;
}
开发者ID:allenk,项目名称:libomxil-bellagio,代码行数:31,代码来源:omxvideocapturetest.c
示例8: defined
OMX_ERRORTYPE COpenMaxVideo::PrimeFillBuffers(void)
{
OMX_ERRORTYPE omx_err = OMX_ErrorNone;
OpenMaxVideoBuffer *buffer;
#if defined(OMX_DEBUG_VERBOSE)
CLog::Log(LOGDEBUG, "%s::%s\n", CLASSNAME, __func__);
#endif
// tell OpenMax to start filling output buffers
for (size_t i = 0; i < m_omx_output_buffers.size(); i++)
{
buffer = m_omx_output_buffers[i];
// always set the port index.
buffer->omx_buffer->nOutputPortIndex = m_omx_output_port;
// Need to clear the EOS flag.
buffer->omx_buffer->nFlags &= ~OMX_BUFFERFLAG_EOS;
buffer->omx_buffer->pAppPrivate = buffer;
omx_err = OMX_FillThisBuffer(m_omx_decoder, buffer->omx_buffer);
if (omx_err)
CLog::Log(LOGERROR, "%s::%s - OMX_FillThisBuffer failed with omx_err(0x%x)\n",
CLASSNAME, __func__, omx_err);
}
return omx_err;
}
开发者ID:Foozle303,项目名称:xbmc,代码行数:26,代码来源:OpenMaxVideo.cpp
示例9: process_event
OMX_ERRORTYPE process_event(HTEST *hTest, MSG *pMsg)
{
OMX_EVENTTYPE event = pMsg->data.event.eEvent;
OMX_U32 nPortIndex = pMsg->data.event.nData1;
if(event == OMX_EventPortSettingsChanged)
{
port_disable(hTest, nPortIndex);
port_enable(hTest, nPortIndex);
OMX_STATETYPE eState = OMX_StateInvalid;
OMX_GetState(hTest->hComponent, &eState);
if(eState == OMX_StateExecuting)
{
/* Send output buffers */
OMX_S32 i;
for(i=0; i<hTest->nBufferHdr[1]; i++)
{
hTest->pBufferHdr[1][i]->nFilledLen = 0;
hTest->pBufferHdr[1][i]->nOffset = 0;
OMX_FillThisBuffer(hTest->hComponent, hTest->pBufferHdr[1][i]);
}
}
}
return OMX_ErrorNone;
}
开发者ID:hicks0074,项目名称:freescale_omx_framework,代码行数:27,代码来源:vpu_test.cpp
示例10: onFillBufferDone
OMX_ERRORTYPE onFillBufferDone(OMX_HANDLETYPE hComponent,
OMX_PTR pAppData,
OMX_BUFFERHEADERTYPE* pBuffer)
{
/*if (isFirstCallback) {
isFirstCallback = false;
currentFrameTime = ofGetElapsedTimeMillis();
ofLogVerbose() << "isFirstCallback";
}else
{
lastFrameTime = currentFrameTime;
currentFrameTime = ofGetElapsedTimeMillis();
ofLogVerbose() << "Frame process time: " << currentFrameTime - lastFrameTime;
}*/
//ofLogVerbose() << "onFillBufferDone<----------";
//COMXCoreComponent *ctx = static_cast<COMXCoreComponent*>(pAppData);
OMX_ERRORTYPE didFillBuffer = OMX_FillThisBuffer(hComponent, pBuffer);
if (didFillBuffer == OMX_ErrorNone)
{
//OMXDecoderBase *ctx = static_cast<OMXDecoderBase*>(pAppData);
OMXDecoderBase::fillBufferCounter++;
//ofLogVerbose(__func__) << " fillBufferCounter: " << fillBufferCounter;
}
return didFillBuffer;
}
开发者ID:andreasmuller,项目名称:RaspberryPiTutorialCAN,代码行数:29,代码来源:OMXEGLImage.cpp
示例11: process_thread
void * process_thread(void *ptr)
{
HTEST *hTest = (HTEST*)ptr;
OMX_BUFFERHEADERTYPE *pBufferHdr = NULL;
MSG sMsg;
while(1)
{
hTest->pMsgQ->Get(&sMsg);
if(sMsg.type == EVENT)
{
process_event(hTest, &sMsg);
}
else if(sMsg.type == EMPTY_DONE)
{
pBufferHdr = sMsg.data.buffer.pBuffer;
if(hTest->bHoldBuffers != OMX_TRUE)
{
read_data(hTest, pBufferHdr);
OMX_EmptyThisBuffer(sMsg.hComponent, pBufferHdr);
}
}
else if(sMsg.type == FILL_DONE)
{
pBufferHdr = sMsg.data.buffer.pBuffer;
if(hTest->bHoldBuffers != OMX_TRUE)
OMX_FillThisBuffer(sMsg.hComponent, pBufferHdr);
}
if(hTest->bStop == OMX_TRUE)
break;
}
return NULL;
}
开发者ID:hicks0074,项目名称:freescale_omx_framework,代码行数:35,代码来源:tunnel_test.cpp
示例12: port_enable
OMX_ERRORTYPE port_enable(HTEST *hTest, OMX_U32 nPortIndex)
{
OMX_ERRORTYPE ret = OMX_ErrorNone;
OMX_COMPONENTTYPE *hComponent;
OMX_U32 i;
hComponent = hTest->hComponent;
ret = SendCommand(hTest, OMX_CommandPortEnable, nPortIndex, NULL, OMX_FALSE);
if(ret != OMX_ErrorNone)
return ret;
prepare_port_buffers(hTest, nPortIndex);
WaitCommand(hTest, OMX_CommandPortEnable, nPortIndex, NULL);
hTest->bHoldBuffers = OMX_FALSE;
for(i=0; i<hTest->nBufferHdr[nPortIndex]; i++) {
if(hTest->PortDir[nPortIndex] == OMX_DirOutput) {
OMX_FillThisBuffer(hTest->hComponent, hTest->pBufferHdr[nPortIndex][i]);
}
}
printf("port enable done.\n");
return OMX_ErrorNone;
}
开发者ID:primiano,项目名称:udoo_external_fsl_imx_omx,代码行数:26,代码来源:video_source_test.cpp
示例13: CHECK
OMX_ERRORTYPE AnatomyOMXClient::OnFillBufferDone(
OMX_IN OMX_HANDLETYPE hComponent,
OMX_IN OMX_PTR pAppData,
OMX_IN OMX_BUFFERHEADERTYPE *pBuffer) {
AnatomyOMXClient* omxclient = reinterpret_cast<AnatomyOMXClient*>(pAppData);
CHECK( NULL != omxclient);
CHECK( NULL != pBuffer );
omxclient->addOMXBufferInfo(kPortIndexOutput, pBuffer);
if( pBuffer->nFlags & OMX_BUFFERFLAG_EOS || omxclient->getStatus() == 1 )
{
omxclient->signalEOF();
omxclient->setStatus(1);
return OMX_ErrorNone;
}
if( pBuffer->nSize > 0 )
{
omxclient->render(pBuffer->pBuffer, pBuffer->nSize);
}
OMX_FillThisBuffer(hComponent, pBuffer);
omxclient->removeOMXBufferInfo(kPortIndexOutput, pBuffer);
return OMX_ErrorNone;
}
开发者ID:ioacademy-jikim,项目名称:multimedia,代码行数:27,代码来源:AnatomyOMXClient.cpp
示例14: pthread_mutex_lock
void COpenMaxVideo::SetDropState(bool bDrop)
{
m_drop_state = bDrop;
if (m_drop_state)
{
OMX_ERRORTYPE omx_err;
// blow all but the last ready video frame
pthread_mutex_lock(&m_omx_output_mutex);
while (m_omx_output_ready.size() > 1)
{
m_dts_queue.pop();
OMX_BUFFERHEADERTYPE *omx_buffer = m_omx_output_ready.front()->omx_buffer;
m_omx_output_ready.pop();
// return the omx buffer back to OpenMax to fill.
omx_err = OMX_FillThisBuffer(m_omx_decoder, omx_buffer);
if (omx_err)
CLog::Log(LOGERROR, "%s::%s - OMX_FillThisBuffer, omx_err(0x%x)\n",
CLASSNAME, __func__, omx_err);
}
pthread_mutex_unlock(&m_omx_output_mutex);
#if defined(OMX_DEBUG_VERBOSE)
CLog::Log(LOGDEBUG, "%s::%s - m_drop_state(%d)\n",
CLASSNAME, __func__, m_drop_state);
#endif
}
}
开发者ID:Foozle303,项目名称:xbmc,代码行数:29,代码来源:OpenMaxVideo.cpp
示例15: my_fill_buffer_done
void my_fill_buffer_done(void* data, COMPONENT_T* comp)
{
if (OMX_FillThisBuffer(ilclient_get_handle(video_render), eglBuffer) != OMX_ErrorNone)
{
printf("OMX_FillThisBuffer failed in callback\n");
exit(1);
}
}
开发者ID:guillaume-michel,项目名称:userland_bgs,代码行数:8,代码来源:video.c
示例16: while
bool COpenMaxVideo::GetPicture(DVDVideoPicture* pDvdVideoPicture)
{
while (m_omx_output_busy.size() > 1)
{
// fetch a output buffer and pop it off the busy list
pthread_mutex_lock(&m_omx_output_mutex);
OpenMaxVideoBuffer *buffer = m_omx_output_busy.front();
m_omx_output_busy.pop();
pthread_mutex_unlock(&m_omx_output_mutex);
bool done = buffer->omx_buffer->nFlags & OMX_BUFFERFLAG_EOS;
if (!done)
{
// return the omx buffer back to OpenMax to fill.
OMX_ERRORTYPE omx_err = OMX_FillThisBuffer(m_omx_decoder, buffer->omx_buffer);
if (omx_err)
CLog::Log(LOGERROR, "%s::%s - OMX_FillThisBuffer, omx_err(0x%x)\n",
CLASSNAME, __func__, omx_err);
}
}
if (!m_omx_output_ready.empty())
{
OpenMaxVideoBuffer *buffer;
// fetch a output buffer and pop it off the ready list
pthread_mutex_lock(&m_omx_output_mutex);
buffer = m_omx_output_ready.front();
m_omx_output_ready.pop();
m_omx_output_busy.push(buffer);
pthread_mutex_unlock(&m_omx_output_mutex);
pDvdVideoPicture->dts = DVD_NOPTS_VALUE;
pDvdVideoPicture->pts = DVD_NOPTS_VALUE;
pDvdVideoPicture->format = RENDER_FMT_OMXEGL;
pDvdVideoPicture->openMax = this;
pDvdVideoPicture->openMaxBuffer = buffer;
if (!m_dts_queue.empty())
{
pDvdVideoPicture->dts = m_dts_queue.front();
m_dts_queue.pop();
}
// nTimeStamp is in microseconds
pDvdVideoPicture->pts = (buffer->omx_buffer->nTimeStamp == 0) ? DVD_NOPTS_VALUE : (double)buffer->omx_buffer->nTimeStamp / 1000.0;
}
#if defined(OMX_DEBUG_VERBOSE)
else
{
CLog::Log(LOGDEBUG, "%s::%s - called but m_omx_output_ready is empty\n",
CLASSNAME, __func__);
}
#endif
pDvdVideoPicture->iFlags = DVP_FLAG_ALLOCATED;
pDvdVideoPicture->iFlags |= m_drop_state ? DVP_FLAG_DROPPED : 0;
return true;
}
开发者ID:Foozle303,项目名称:xbmc,代码行数:58,代码来源:OpenMaxVideo.cpp
示例17: onFillBufferDone
OMX_ERRORTYPE onFillBufferDone(OMX_HANDLETYPE hComponent,
OMX_PTR pAppData,
OMX_BUFFERHEADERTYPE* pBuffer)
{
//ofLogVerbose() << "onFillBufferDone<----------";
//COMXCoreComponent *ctx = static_cast<COMXCoreComponent*>(pAppData);
OMX_ERRORTYPE didFillBuffer = OMX_FillThisBuffer(hComponent, pBuffer);
return didFillBuffer;
}
开发者ID:andreasmuller,项目名称:RaspberryPiWorkshop,代码行数:10,代码来源:OMXEGLImage.cpp
示例18: OMX_FillThisBuffer
OMX_ERRORTYPE omxil_comp::FillThisBuffer(OMX_BUFFERHEADERTYPE *pBuffer)
{
OMX_ERRORTYPE result;
result = OMX_FillThisBuffer(comp, pBuffer);
if (result != OMX_ErrorNone) {
fprintf(stderr, "OMX_FillThisBuffer failed.\n");
}
return result;
}
开发者ID:katsuster,项目名称:omxil-mf,代码行数:11,代码来源:omxil_comp.cpp
示例19: my_fill_buffer_done
OMX_ERRORTYPE my_fill_buffer_done(OMX_HANDLETYPE hComponent,
OMX_PTR pAppData, OMX_BUFFERHEADERTYPE* pBuffer)
{
appctx *ctx = (appctx *) pAppData;
if (OMX_FillThisBuffer(ctx->render, ctx->eglBuffer) != OMX_ErrorNone)
{
printf("OMX_FillThisBuffer failed in callback\n");
exit(1);
}
return OMX_ErrorNone;
}
开发者ID:drhastings,项目名称:balance,代码行数:12,代码来源:video.c
示例20: camera_sourceFillBufferDone
OMX_ERRORTYPE camera_sourceFillBufferDone(
OMX_HANDLETYPE hComponent,
OMX_PTR pAppData,
OMX_BUFFERHEADERTYPE* pBuffer) {
DEBUG(DEB_LEV_FUNCTION_NAME, "In %s for camera component\n",__func__);
DEBUG(DEB_LEV_FULL_SEQ, "%s: Get returned buffer (0x%lX) from port[%ld], nFilledLen=%ld\n", __func__, (OMX_U32)pBuffer, pBuffer->nOutputPortIndex, pBuffer->nFilledLen);
if (pBuffer->nOutputPortIndex == OMX_CAMPORT_INDEX_CP) {
if ((pBuffer->nFlags & OMX_BUFFERFLAG_STARTTIME) != 0) {
DEBUG(DEB_LEV_FULL_SEQ, "%s: Get buffer flag OMX_BUFFERFLAG_STARTTIME!\n", __func__);
pBuffer->nFlags = 0;
}
/* Print time stamp of each buffer */
#ifndef OMX_SKIP64BIT
DEBUG(DEB_LEV_FULL_SEQ, "%s: buffer[0x%lX] time stamp: 0x%016llX\n", __func__, (OMX_U32)pBuffer, pBuffer->nTimeStamp);
#else
DEBUG(DEB_LEV_FULL_SEQ, "%s: buffer[0x%lX] time stamp: 0x%08lX%08lX\n", __func__, (OMX_U32)pBuffer, pBuffer->nTimeStamp.nHighPart, pBuffer->nTimeStamp.nLowPart);
#endif
}
if (pBuffer->nOutputPortIndex == OMX_CAMPORT_INDEX_CP && fCapture != NULL) {
DEBUG(DEB_LEV_FULL_SEQ, "%s: writing to file",__func__);
fwrite(pBuffer->pBuffer + pBuffer->nOffset, 1, pBuffer->nFilledLen, fCapture);
pBuffer->nFilledLen = 0;
pBuffer->nOffset = 0;
OMX_FillThisBuffer(appPriv->camerahandle, pBuffer);
}
else if (pBuffer->nOutputPortIndex == OMX_CAMPORT_INDEX_CP_T && fThumbnail != NULL) {
fwrite(pBuffer->pBuffer + pBuffer->nOffset, 1, pBuffer->nFilledLen, fThumbnail);
pBuffer->nFilledLen = 0;
pBuffer->nOffset = 0;
OMX_FillThisBuffer(appPriv->camerahandle, pBuffer);
}
DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s for camera component, return code: 0x%X\n",__func__, OMX_ErrorNone);
return OMX_ErrorNone;
}
开发者ID:791254467,项目名称:android_cm11_fullsource,代码行数:39,代码来源:omxcameratest.c
注:本文中的OMX_FillThisBuffer函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论