#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <string.h>
#include <pthread.h>
#include <ctype.h>
#include <OMX_Core.h>
#include <OMX_Component.h>
#include <OMX_Types.h>
#include <OMX_Video.h>
#include <OMX_Audio.h>
#include <tsemaphore.h>
#include <user_debug_levels.h>
Go to the source code of this file.
Data Structures | |
struct | appPrivateType |
Defines | |
#define | BUFFER_IN_SIZE 4096 |
#define | BUFFER_OUT_SIZE 640*480*3 |
#define | VERSIONMAJOR 1 |
#define | VERSIONMINOR 1 |
#define | VERSIONREVISION 0 |
#define | VERSIONSTEP 0 |
Functions | |
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) |
OMX_ERRORTYPE | videodecEmptyBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | videodecFillBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
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) |
OMX_ERRORTYPE | colorconvEmptyBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | colorconvFillBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
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) |
OMX_ERRORTYPE | fb_sinkEmptyBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | parser3gpEventHandler (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) |
OMX_ERRORTYPE | parser3gpFillBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | audiodecEventHandler (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) |
OMX_ERRORTYPE | audiodecEmptyBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | audiodecFillBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | volumeEventHandler (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) |
OMX_ERRORTYPE | volumeEmptyBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | volumeFillBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
OMX_ERRORTYPE | audiosinkEventHandler (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) |
OMX_ERRORTYPE | audiosinkEmptyBufferDone (OMX_OUT OMX_HANDLETYPE hComponent, OMX_OUT OMX_PTR pAppData, OMX_OUT OMX_BUFFERHEADERTYPE *pBuffer) |
void | display_help () |
int | setPortParameters () |
Copyright (C) 2008 STMicroelectronics Copyright (C) 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 omxparsertest.h.
#define BUFFER_IN_SIZE 4096 |
Definition at line 76 of file omxparsertest.h.
#define BUFFER_OUT_SIZE 640*480*3 |
Definition at line 77 of file omxparsertest.h.
#define VERSIONMAJOR 1 |
Specification version
Definition at line 80 of file omxparsertest.h.
#define VERSIONMINOR 1 |
Definition at line 81 of file omxparsertest.h.
#define VERSIONREVISION 0 |
Definition at line 82 of file omxparsertest.h.
#define VERSIONSTEP 0 |
Definition at line 83 of file omxparsertest.h.
OMX_ERRORTYPE audiodecEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1234 of file omxaudiodectest.c.
References buffer_in_size, DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::eofSem, err, fd, appPrivateType::filereaderhandle, flagIsMadUsingFileReader, flagUsingFFMpeg, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERFLAG_EOS, OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_FillThisBuffer, OMX_TRUE, appPrivateType::parser3gphandle, OMX_BUFFERHEADERTYPE::pBuffer, tsem_t::semval, and tsem_up().
OMX_ERRORTYPE audiodecEventHandler | ( | 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 | |||
) |
callback prototypes for audio Decoder
Definition at line 1075 of file omxaudiodectest.c.
References appPrivateType::audiodechandle, appPrivateType::audioDecoderEventSem, appPrivateType::audiosinkhandle, buffer_out_size, DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::decoderEventSem, appPrivateType::eofSem, err, flagPlaybackOn, flagSetupTunnel, OMX_AUDIO_PARAM_PCMMODETYPE::nPortIndex, OMX_PARAM_PORTDEFINITIONTYPE::nPortIndex, OMX_BUFFERFLAG_EOS, OMX_CommandPortDisable, OMX_CommandPortEnable, OMX_CommandStateSet, OMX_ErrorNone, OMX_EventBufferFlag, OMX_EventCmdComplete, OMX_EventPortSettingsChanged, OMX_FreeBuffer, OMX_GetParameter, OMX_IndexParamAudioPcm, OMX_IndexParamPortDefinition, OMX_SendCommand, OMX_SetParameter, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_StateWaitForResources, OMX_UseBuffer, OMX_BUFFERHEADERTYPE::pBuffer, setHeader(), appPrivateType::sinkEventSem, tsem_down(), tsem_up(), appPrivateType::volumeEventSem, and appPrivateType::volumehandle.
OMX_ERRORTYPE audiodecFillBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1301 of file omxaudiodectest.c.
References DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEBUG, err, flagDecodedOutputReceived, flagDirect, flagIsDisplayRequested, flagOutputReceived, flagPlaybackOn, flagSetupTunnel, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_FillThisBuffer, outfile, outfileAudio, OMX_BUFFERHEADERTYPE::pBuffer, and appPrivateType::volumehandle.
OMX_ERRORTYPE audiosinkEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1549 of file omxaudiodectest.c.
References DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_PARAMS, DEBUG, DEFAULT_MESSAGES, appPrivateType::eofSem, err, appPrivateType::handle, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_ErrorNone, OMX_FillThisBuffer, OMX_BUFFERHEADERTYPE::pBuffer, tsem_up(), and appPrivateType::volumehandle.
Referenced by main().
OMX_ERRORTYPE audiosinkEventHandler | ( | 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 | |||
) |
callback prototypes for audio sink
Definition at line 1504 of file omxaudiodectest.c.
References appPrivateType::audioSinkEventSem, DEB_LEV_SIMPLE_SEQ, DEBUG, OMX_CommandPortDisable, OMX_CommandPortEnable, OMX_CommandStateSet, OMX_ErrorNone, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_StateWaitForResources, appPrivateType::sinkEventSem, and tsem_up().
Referenced by main().
OMX_ERRORTYPE colorconvEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 210 of file omxcameratest.c.
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 | |||
) |
callback prototypes for color converter
callbacks implementation of color converter component
Definition at line 166 of file omxcameratest.c.
OMX_ERRORTYPE colorconvFillBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
if there is no sink component then write buffer content in output file, in non tunneled case else in non tunneled case, call the sink comp handle to process this buffer as its input buffer
Definition at line 224 of file omxcameratest.c.
void display_help | ( | ) |
display general help
help display
function prototype declaration display general help
help display
Definition at line 89 of file omxaudiocapnplay.c.
OMX_ERRORTYPE fb_sinkEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 2042 of file omxparsertest.c.
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 | |||
) |
callback prototypes for video sink
callbacks implementation of video sink component
Definition at line 1992 of file omxparsertest.c.
OMX_ERRORTYPE parser3gpEventHandler | ( | 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 | |||
) |
callback prototypes for parser3gp
Definition at line 1462 of file omxparsertest.c.
References AUDIO_PORT_INDEX, appPrivateType::audiodechandle, appPrivateType::audiosinkhandle, appPrivateType::colorconv_handle, DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, appPrivateType::eofSem, err, extradata_size, flagIsDisplayRequested, flagSetupTunnel, OMX_ALL, OMX_BUFFERFLAG_EOS, OMX_CommandPortDisable, OMX_CommandPortEnable, OMX_CommandStateSet, OMX_ErrorNone, OMX_EventBufferFlag, OMX_EventCmdComplete, OMX_EventError, OMX_EventPortFormatDetected, OMX_EventPortSettingsChanged, OMX_GetConfig, OMX_GetExtensionIndex, OMX_SendCommand, OMX_SetConfig, OMX_StateExecuting, OMX_StateIdle, OMX_StateInvalid, OMX_StateLoaded, OMX_StatePause, OMX_StateWaitForResources, appPrivateType::parser3gpEventSem, appPrivateType::parser3gphandle, tsem_up(), VIDEO_PORT_INDEX, appPrivateType::videodechandle, appPrivateType::videosinkhandle, and appPrivateType::volumehandle.
OMX_ERRORTYPE parser3gpFillBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1641 of file omxparsertest.c.
References AUDIO_PORT_INDEX, appPrivateType::audiodechandle, DEB_LEV_ERR, DEB_LEV_SIMPLE_SEQ, DEBUG, err, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERFLAG_EOS, OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_TRUE, OMX_BUFFERHEADERTYPE::pBuffer, VIDEO_PORT_INDEX, and appPrivateType::videodechandle.
int setPortParameters | ( | ) |
this function sets the color converter and video sink port characteristics based on the video decoder output port settings
this function sets the color converter and video sink port characteristics based on the video source output port settings
this function sets the video source and encoder port characteristics
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 102 of file omxvideocapnplay.c.
OMX_ERRORTYPE videodecEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 1768 of file omxparsertest.c.
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 1698 of file omxparsertest.c.
OMX_ERRORTYPE videodecFillBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
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
Definition at line 1807 of file omxparsertest.c.
OMX_ERRORTYPE volumeEmptyBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
Definition at line 859 of file omxaudiocapnplay.c.
References appPrivateType::audiodechandle, appPrivateType::audiosrchandle, DEB_LEV_ERR, DEB_LEV_FULL_SEQ, DEB_LEV_SIMPLE_SEQ, DEBUG, DEFAULT_MESSAGES, appPrivateType::eofSem, err, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_ErrorNone, OMX_FillThisBuffer, OMX_BUFFERHEADERTYPE::pBuffer, tsem_t::semval, and tsem_up().
OMX_ERRORTYPE volumeEventHandler | ( | 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 | |||
) |
callback prototypes for volume control
callback prototypes for color converter
Definition at line 808 of file omxaudiocapnplay.c.
References DEB_LEV_ERR, 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, tsem_up(), and appPrivateType::volumeEventSem.
OMX_ERRORTYPE volumeFillBufferDone | ( | OMX_OUT OMX_HANDLETYPE | hComponent, | |
OMX_OUT OMX_PTR | pAppData, | |||
OMX_OUT OMX_BUFFERHEADERTYPE * | pBuffer | |||
) |
if there is no sink component then write buffer content in output file, in non tunneled case else in non tunneled case, call the sink comp handle to process this buffer as its input buffer
Definition at line 896 of file omxaudiocapnplay.c.
References appPrivateType::alsasink_handle, appPrivateType::audiosinkhandle, DEB_LEV_ERR, DEB_LEV_FUNCTION_NAME, DEBUG, DEFAULT_MESSAGES, appPrivateType::eofSem, err, flagDecodedOutputReceived, flagDirect, flagIsDisplayRequested, flagIsSinkRequested, flagOutputReceived, flagPlaybackOn, flagSetupTunnel, OMX_BUFFERHEADERTYPE::nFilledLen, OMX_BUFFERFLAG_EOS, OMX_EmptyThisBuffer, OMX_ErrorNone, OMX_FillThisBuffer, OMX_TRUE, outfile, outfileAudio, OMX_BUFFERHEADERTYPE::pBuffer, and tsem_up().