#include "omxvideodectest.h"
Go to the source code of this file.
Copyright (C) 2007 STMicroelectronics Copyright (C) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
$Date$ Revision $Rev$ Author $Author$
Definition in file omxvideodectest.c.
#define AVC_TYPE_SEL 2 |
Definition at line 35 of file omxvideodectest.c.
#define BASE_ROLE "video_decoder.avc" |
Definition at line 37 of file omxvideodectest.c.
#define COMPONENT_NAME_BASE "OMX.st.video_decoder" |
Definition at line 36 of file omxvideodectest.c.
#define COMPONENT_NAME_BASE_LEN 20 |
Definition at line 38 of file omxvideodectest.c.
#define MPEG4_TYPE_SEL 1 |
defining global declarations
Definition at line 34 of file omxvideodectest.c.
OMX_ERRORTYPE colorconvEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1077 of file omxvideodectest.c.
References appPriv, DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::eofSem, err, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_ErrorNone, OMX_FillThisBuffer, OMX_BUFFERHEADERTYPE::pBuffer, pOutBuffer1, pOutBuffer2, tsem_up(), and appPrivateType::videodechandle.
OMX_ERRORTYPE colorconvEventHandler | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_EVENTTYPE | eEvent, | |||
OMX_OUT OMX_U32 | Data1, | |||
OMX_OUT OMX_U32 | Data2, | |||
OMX_OUT OMX_PTR | pEventData | |||
) |
callbacks implementation of color converter component
Definition at line 1026 of file omxvideodectest.c.
References appPriv, appPrivateType::colorconvEventSem, DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::eofSem, OMX_BUFFERFLAG_EOS, OMX_CommandPortDisable, OMX_CommandPortEnable, OMX_CommandStateSet, OMX_ErrorNone, OMX_EventBufferFlag, OMX_EventCmdComplete, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_StateWaitForResources, and tsem_up().
OMX_ERRORTYPE colorconvFillBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1114 of file omxvideodectest.c.
References appPriv, DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEB_LEV_SIMPLE_SEQ, DEBUG, err, appPrivateType::fbdev_sink_handle, flagIsSinkRequested, flagSetupTunnel, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERFLAG_EOS, OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_FillThisBuffer, OMX_TRUE, outfile, OMX_BUFFERHEADERTYPE::pBuffer, pInBufferSink1, and pInBufferSink2.
void display_help | ( | ) |
help display
Definition at line 230 of file omxvideodectest.c.
OMX_ERRORTYPE fb_sinkEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 989 of file omxvideodectest.c.
References appPriv, appPrivateType::colorconv_handle, DEB_LEV_ERR, DEBUG, appPrivateType::eofSem, err, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_ErrorNone, OMX_FillThisBuffer, outBufferColorconv, OMX_BUFFERHEADERTYPE::pBuffer, pOutBufferColorConv1, pOutBufferColorConv2, and tsem_up().
OMX_ERRORTYPE fb_sinkEventHandler | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_EVENTTYPE | eEvent, | |||
OMX_OUT OMX_U32 | Data1, | |||
OMX_OUT OMX_U32 | Data2, | |||
OMX_OUT OMX_PTR | pEventData | |||
) |
callbacks implementation of video sink component
Definition at line 939 of file omxvideodectest.c.
References appPriv, DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::eofSem, appPrivateType::fbdevSinkEventSem, OMX_BUFFERFLAG_EOS, OMX_CommandPortDisable, OMX_CommandPortEnable, OMX_CommandStateSet, OMX_ErrorNone, OMX_EventBufferFlag, OMX_EventCmdComplete, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_StateWaitForResources, and tsem_up().
int find_resolution | ( | char * | searchname | ) |
Try to determine resolution based on filename
Definition at line 200 of file omxvideodectest.c.
References out_height, and out_width.
int main | ( | int | argc, | |
char ** | argv | |||
) |
Definition at line 393 of file omxvideodectest.c.
References appPriv, AVC_TYPE_SEL, BASE_ROLE, buffer_in_size, buffer_out_size, COLOR_CONV_OUT_RGB_FORMAT, colorconv_callbacks, appPrivateType::colorconv_handle, appPrivateType::colorconvEventSem, COMPONENT_NAME_BASE, COMPONENT_NAME_BASE_LEN, OMX_PARAM_COMPONENTROLETYPE::cRole, DEB_LEV_ERR, DEB_LEV_PARAMS, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::decoderEventSem, DEFAULT_MESSAGES, display_help(), appPrivateType::eofSem, err, fbdev_sink_callbacks, appPrivateType::fbdev_sink_handle, appPrivateType::fbdevSinkEventSem, fd, flagDecodedOutputReceived, flagInputReceived, flagIsColorConvRequested, flagIsFormatRequested, flagIsOutputEspected, flagIsSinkRequested, flagSetupTunnel, input_file, MPEG4_TYPE_SEL, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERHEADERTYPE::nOffset, OMX_ALL, OMX_AllocateBuffer, OMX_COLOR_Format16bitARGB1555, OMX_COLOR_Format16bitBGR565, OMX_COLOR_Format16bitRGB565, OMX_COLOR_Format24bitBGR888, OMX_COLOR_Format24bitRGB888, OMX_COLOR_Format32bitARGB8888, OMX_COLOR_Format32bitBGRA8888, OMX_CommandPortDisable, OMX_CommandPortEnable, OMX_CommandStateSet, OMX_Deinit(), OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_FillThisBuffer, OMX_FreeBuffer, OMX_FreeHandle(), OMX_GetHandle(), OMX_GetParameter, OMX_IndexParamStandardComponentRole, OMX_Init(), OMX_MAX_STRINGNAME_SIZE, OMX_SendCommand, OMX_SetupTunnel(), OMX_StateExecuting, OMX_StateIdle, OMX_StateLoaded, out_height, out_width, outfile, output_file, paramRole, OMX_BUFFERHEADERTYPE::pBuffer, pInBuffer1, pInBuffer2, pInBufferColorConv1, pInBufferColorConv2, pInBufferSink1, pInBufferSink2, pOutBuffer1, pOutBuffer2, pOutBufferColorConv1, pOutBufferColorConv2, selectedType, setHeader(), setPortParameters(), test_OMX_ComponentEnumByRole(), test_OMX_ComponentNameEnum(), test_OMX_RoleEnum(), test_OpenClose(), tsem_down(), tsem_init(), videodeccallbacks, and appPrivateType::videodechandle.
int setPortParameters | ( | ) |
this function sets the color converter and video sink port characteristics based on the video decoder output port settings
setting the color converter and sink component chararacteristics, if selected - both in tunneled as well as non tunneled case
setting the color conv input port width, height it will be same as the video decoder output port width, height
setting the color converter output width height it will be same as input dimensions
setting the input color format of color converter component it will be same as output yuv color format of the decoder component
setting output RGB color format of the color converter component
if video sink component is selected then set its input port settings accroding to the output port settings of the color converter component
Definition at line 110 of file omxvideodectest.c.
References appPriv, COLOR_CONV_OUT_RGB_FORMAT, appPrivateType::colorconv_handle, DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, OMX_VIDEO_PORTDEFINITIONTYPE::eColorFormat, OMX_VIDEO_PARAM_PORTFORMATTYPE::eColorFormat, err, appPrivateType::fbdev_sink_handle, flagIsColorConvRequested, flagIsSinkRequested, OMX_PARAM_PORTDEFINITIONTYPE::format, new_out_height, new_out_width, OMX_VIDEO_PORTDEFINITIONTYPE::nFrameHeight, OMX_VIDEO_PORTDEFINITIONTYPE::nFrameWidth, OMX_VIDEO_PARAM_PORTFORMATTYPE::nPortIndex, OMX_PARAM_PORTDEFINITIONTYPE::nPortIndex, omx_colorconvPortDefinition, OMX_ErrorBadParameter, OMX_ErrorNone, OMX_GetParameter, OMX_IndexParamPortDefinition, OMX_IndexParamVideoPortFormat, OMX_SetParameter, omxVideoParam, paramPort, setHeader(), OMX_PARAM_PORTDEFINITIONTYPE::video, and appPrivateType::videodechandle.
OMX_ERRORTYPE test_OMX_ComponentEnumByRole | ( | OMX_STRING | role_name | ) |
Definition at line 330 of file omxvideodectest.c.
References DEB_LEV_ERR, DEBUG, DEFAULT_MESSAGES, err, OMX_ErrorNone, OMX_GetComponentsOfRole(), and OMX_MAX_STRINGNAME_SIZE.
OMX_ERRORTYPE test_OMX_ComponentNameEnum | ( | ) |
Definition at line 265 of file omxvideodectest.c.
References DEBUG, DEFAULT_MESSAGES, err, OMX_ComponentNameEnum(), OMX_ErrorNone, and OMX_MAX_STRINGNAME_SIZE.
OMX_ERRORTYPE test_OMX_RoleEnum | ( | OMX_STRING | component_name | ) |
Definition at line 288 of file omxvideodectest.c.
References DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, DEFAULT_MESSAGES, err, OMX_ErrorInvalidComponentName, OMX_ErrorNone, OMX_GetRolesOfComponent(), and OMX_MAX_STRINGNAME_SIZE.
OMX_ERRORTYPE test_OpenClose | ( | OMX_STRING | component_name | ) |
Definition at line 378 of file omxvideodectest.c.
References appPriv, DEB_LEV_ERR, DEBUG, DEFAULT_MESSAGES, err, OMX_ErrorNone, OMX_FreeHandle(), OMX_GetHandle(), videodeccallbacks, and appPrivateType::videodechandle.
OMX_ERRORTYPE videodecEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1308 of file omxvideodectest.c.
References appPriv, buffer_in_size, DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_PARAMS, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::eofSem, err, fd, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERFLAG_EOS, OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_FillThisBuffer, outBufferParseVideo, appPrivateType::parser3gphandle, OMX_BUFFERHEADERTYPE::pBuffer, tsem_t::semval, and tsem_up().
OMX_ERRORTYPE videodecEventHandler | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_EVENTTYPE | eEvent, | |||
OMX_OUT OMX_U32 | Data1, | |||
OMX_OUT OMX_U32 | Data2, | |||
OMX_OUT OMX_PTR | pEventData | |||
) |
Callbacks implementation of the video decoder component
before setting port parameters , first check if tunneled case if so, then disable the output port of video decoder and generate dummy up signal, so that in main thread the color conv and sink comp ports are disabled and port parameter settings changes are done properly
in non tunneled case, if color converter and sink component are selected then set their port parameters according to input tream characteristics and send command to them to go to idle state and executing state
in non tunneled case, using buffers in color conv input port, allocated by video dec component output port
allocating buffers in the color converter compoennt output port
Definition at line 1157 of file omxvideodectest.c.
References appPriv, buffer_out_size, appPrivateType::colorconv_handle, appPrivateType::colorconvEventSem, DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::decoderEventSem, appPrivateType::eofSem, err, appPrivateType::fbdev_sink_handle, appPrivateType::fbdevSinkEventSem, flagIsColorConvRequested, flagIsSinkRequested, flagSetupTunnel, OMX_PARAM_PORTDEFINITIONTYPE::nBufferSize, OMX_PARAM_PORTDEFINITIONTYPE::nPortIndex, OMX_AllocateBuffer, OMX_BUFFERFLAG_EOS, omx_colorconvPortDefinition, OMX_CommandPortDisable, OMX_CommandPortEnable, OMX_CommandStateSet, OMX_ErrorNone, OMX_EventBufferFlag, OMX_EventCmdComplete, OMX_EventPortSettingsChanged, OMX_FillThisBuffer, OMX_GetParameter, OMX_IndexParamPortDefinition, OMX_SendCommand, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_StateWaitForResources, OMX_UseBuffer, outbuf_colorconv_size, OMX_BUFFERHEADERTYPE::pBuffer, pInBufferColorConv1, pInBufferColorConv2, pInBufferSink1, pInBufferSink2, pOutBuffer1, pOutBuffer2, pOutBufferColorConv1, pOutBufferColorConv2, setHeader(), setPortParameters(), tsem_down(), tsem_up(), appPrivateType::videodechandle, and appPrivateType::videoDecoderEventSem.
OMX_ERRORTYPE videodecFillBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1332 of file omxvideodectest.c.
References appPriv, appPrivateType::colorconv_handle, DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEBUG, err, flagDecodedOutputReceived, flagIsColorConvRequested, flagIsDisplayRequested, flagSetupTunnel, inBufferColorconv, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERFLAG_EOS, OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_FillThisBuffer, OMX_GetState, OMX_StateExecuting, OMX_StatePause, OMX_TRUE, outfile, outfileVideo, OMX_BUFFERHEADERTYPE::pBuffer, pInBufferColorConv1, and pInBufferColorConv2.
Definition at line 43 of file omxvideodectest.c.
int buffer_in_size = 2*8192 |
Definition at line 51 of file omxvideodectest.c.
Definition at line 52 of file omxvideodectest.c.
OMX_COLOR_FORMATTYPE COLOR_CONV_OUT_RGB_FORMAT = OMX_COLOR_Format24bitRGB888 |
global variables
Definition at line 41 of file omxvideodectest.c.
Initial value:
{ .EventHandler = colorconvEventHandler, .EmptyBufferDone = colorconvEmptyBufferDone, .FillBufferDone = colorconvFillBufferDone }
Definition at line 66 of file omxvideodectest.c.
Initial value:
{ .EventHandler = fb_sinkEventHandler, .EmptyBufferDone = fb_sinkEmptyBufferDone, .FillBufferDone = NULL }
Definition at line 72 of file omxvideodectest.c.
FILE* fd |
Definition at line 82 of file omxvideodectest.c.
Definition at line 87 of file omxvideodectest.c.
Definition at line 88 of file omxvideodectest.c.
Definition at line 89 of file omxvideodectest.c.
Definition at line 91 of file omxvideodectest.c.
Definition at line 90 of file omxvideodectest.c.
int flagSetupTunnel |
Definition at line 92 of file omxvideodectest.c.
char* input_file |
Definition at line 83 of file omxvideodectest.c.
Definition at line 80 of file omxvideodectest.c.
OMX_U32 new_out_width = 0 |
Definition at line 79 of file omxvideodectest.c.
Definition at line 56 of file omxvideodectest.c.
Definition at line 58 of file omxvideodectest.c.
OMX_U32 out_height = 0 |
Definition at line 80 of file omxvideodectest.c.
Definition at line 79 of file omxvideodectest.c.
Definition at line 53 of file omxvideodectest.c.
FILE * outfile |
Definition at line 82 of file omxvideodectest.c.
char * output_file |
Definition at line 83 of file omxvideodectest.c.
Definition at line 55 of file omxvideodectest.c.
Definition at line 57 of file omxvideodectest.c.
used with color converter if selected
Definition at line 48 of file omxvideodectest.c.
Definition at line 48 of file omxvideodectest.c.
Definition at line 49 of file omxvideodectest.c.
Definition at line 49 of file omxvideodectest.c.
Definition at line 46 of file omxvideodectest.c.
Definition at line 46 of file omxvideodectest.c.
Definition at line 48 of file omxvideodectest.c.
Definition at line 48 of file omxvideodectest.c.
int selectedType = 0 |
Definition at line 84 of file omxvideodectest.c.
Initial value:
{ .EventHandler = videodecEventHandler, .EmptyBufferDone = videodecEmptyBufferDone, .FillBufferDone = videodecFillBufferDone }
Definition at line 60 of file omxvideodectest.c.