音频与视频处理插件技术详解
1. OpenMAX IL 基础与应用
OpenMAX IL 在低性能系统的音频和视频处理中具有重要地位,当前被 Android 和树莓派等广泛应用。以下是一段使用 OpenMAX IL 的示例代码,用于将组件切换到执行状态,并进行缓冲区的填充和清空操作:
/* Now try to switch to Executing state */ err = OMX_SendCommand(handle, OMX_CommandStateSet, OMX_StateExecuting, NULL); if(err != OMX_ErrorNone){ exit(1); } /* One buffer is the minimum for Broadcom component, so use that */ pEmptyBuffer = inBuffers[0]; emptyState = 1; /* Fill and empty buffer */ for (;;) { int data_read = read(fd, pEmptyBuffer->pBuffer, nBufferSize); pEmptyBuffer->nFilledLen = data_read; pEmptyBuffer->nOffset = 0; filesize -= data_read; if (data_read <= 0) { fprintf(stderr, "In the %s no more input data available\n", __func_