diff options
Diffstat (limited to 'libvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h')
-rwxr-xr-x | libvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h | 606 |
1 files changed, 0 insertions, 606 deletions
diff --git a/libvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h b/libvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h deleted file mode 100755 index 5e4f236..0000000 --- a/libvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h +++ /dev/null @@ -1,606 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - ************************************************************************* - * @file M4MCS_API.h - * @brief MCS internal types and structures definitions - * @note This header file is not public - ************************************************************************* - **/ - -#ifndef __M4MCS_INTERNALTYPES_H__ -#define __M4MCS_INTERNALTYPES_H__ - -/** - * MCS public API and types */ -#include "M4MCS_API.h" -#include "M4MCS_ErrorCodes.h" - -#include "NXPSW_CompilerSwitches.h" - -/** Determine absolute value of a. */ -#define M4MCS_ABS(a) ( ( (a) < (0) ) ? (-(a)) : (a) ) - - -#define Y_PLANE_BORDER_VALUE 0x00 -#define U_PLANE_BORDER_VALUE 0x80 -#define V_PLANE_BORDER_VALUE 0x80 - - -/** - * Internally used modules */ -#include "M4READER_3gpCom.h" /**< Read 3GPP file */ -#include "M4DECODER_Common.h" /**< Decode video */ -#include "M4VIFI_FiltersAPI.h" /**< Video resize */ -#include "M4AD_Common.h" /**< Decoder audio */ -#include "SSRC.h" /**< SSRC */ -#include "From2iToMono_16.h" /**< Stereo to Mono */ -#include "MonoTo2I_16.h" /**< Mono to Stereo */ -#include "M4ENCODER_AudioCommon.h" /**< Encode audio */ -#include "M4WRITER_common.h" /**< Writer common interface */ -#include "M4ENCODER_common.h" - -/** - * Instead of including AAC core properties, it is better to redefine the needed type - * AAC_DEC_STREAM_PROPS - * In case of external AAC decoder, it will be necessary to put this type as public - */ - -/** - ****************************************************************************** - * struct AAC_DEC_STREAM_PROPS - * @brief AAC Stream properties - * @Note aNoChan and aSampFreq are used for parsing even the user parameters - * are different. User parameters will be input for the output behaviour - * of the decoder whereas for parsing bitstream properties are used. - ****************************************************************************** - */ -typedef struct { - M4OSA_Int32 aAudioObjectType; /**< Audio object type of the stream - in fact - the type found in the Access Unit parsed */ - M4OSA_Int32 aNumChan; /**< number of channels (=1(mono) or =2(stereo)) - as indicated by input bitstream*/ - M4OSA_Int32 aSampFreq; /**< sampling frequency in Hz */ - M4OSA_Int32 aExtensionSampFreq; /**< extended sampling frequency in Hz, = 0 is - no extended frequency */ - M4OSA_Int32 aSBRPresent; /**< presence=1/absence=0 of SBR */ - M4OSA_Int32 aPSPresent; /**< presence=1/absence=0 of PS */ - M4OSA_Int32 aMaxPCMSamplesPerCh; /**< max number of PCM samples per channel */ -} AAC_DEC_STREAM_PROPS; - -/** - ****************************************************************************** - * @brief Codecs registration same as in VPS and VES, so less mapping - * is required toward MCS api types - ****************************************************************************** - */ -typedef struct -{ - M4WRITER_GlobalInterface* pGlobalFcts; /**< open, close, setoption,etc... functions */ - M4WRITER_DataInterface* pDataFcts; /**< data manipulation functions */ -} M4MCS_WriterInterface; - -/** - ****************************************************************************** - * enum M4MCS_States - * @brief Main state machine of the MCS. - ****************************************************************************** - */ -typedef enum -{ - M4MCS_kState_CREATED, /**< M4MCS_init has been called */ - M4MCS_kState_OPENED, /**< M4MCS_open has been called */ - M4MCS_kState_SET, /**< All mandatory parameters have been set */ - M4MCS_kState_READY, /**< All optionnal parameters have been set */ - M4MCS_kState_BEGINVIDEOJUMP, /**< Must jump to the Iframe before the begin cut */ - M4MCS_kState_BEGINVIDEODECODE, /**< Must decode up to the begin cut */ - M4MCS_kState_PROCESSING, /**< Step can be called */ - M4MCS_kState_PAUSED, /**< Paused, Resume can be called */ - M4MCS_kState_FINISHED, /**< Transcoding is finished */ - M4MCS_kState_CLOSED /**< Output file has been created */ -} M4MCS_States; - -/** - ****************************************************************************** - * enum M4MCS_StreamState - * @brief State of a media stream encoding (audio or video). - ****************************************************************************** - */ -typedef enum -{ - M4MCS_kStreamState_NOSTREAM = 0, /**< No stream present */ - M4MCS_kStreamState_STARTED = 1, /**< The stream encoding is in progress */ - M4MCS_kStreamState_FINISHED = 2 /**< The stream has finished encoding */ -} M4MCS_StreamState; - - -/** - ****************************************************************************** - * enum anonymous enum - * @brief enum to keep track of the encoder state - ****************************************************************************** - */ -enum -{ - M4MCS_kNoEncoder, - M4MCS_kEncoderClosed, - M4MCS_kEncoderStopped, - M4MCS_kEncoderRunning -}; - -/** - ****************************************************************************** - * structure M4MCS_InternalContext - * @brief This structure defines the MCS context (private) - * @note This structure is used for all MCS calls to store the context - ****************************************************************************** - */ -typedef struct -{ - M4OSA_UInt32 bitPos; - /* bit count of number of bits used so far */ - - M4OSA_UInt8 *streamBuffer; - /* Bitstream Buffer */ - - M4OSA_UInt32 byteCnt; - /* Number of Bytes written in Bitstream buffer*/ - - M4OSA_UInt32 currBuff; - /* Current buffer holds, 4bytes of bitstream*/ - - M4OSA_UInt8 prevByte; - /* Previous byte written in the buffer */ - - M4OSA_UInt8 prevPrevByte; - /* Previous to previous byte written in the buffer */ - -}NSWAVC_bitStream_t_MCS; - -#define _MAXnum_slice_groups 8 -#define _MAXnum_ref_frames_in_pic_order_cnt_cycle 256 - -typedef struct -{ - M4OSA_UInt32 level_idc_index; - M4OSA_UInt32 MaxFrameNum; - M4OSA_UInt32 expectedDeltaPerPicOrderCntCycle; - M4OSA_Int32 MaxPicOrderCntLsb; - M4OSA_Int32 max_dec_frame_buffering; - - /* (pic_order_cnt_type == 1) */ - M4OSA_Int32 offset_for_non_ref_pic; - M4OSA_Int32 offset_for_top_to_bottom_field; - M4OSA_Int32 frame_crop_left_offset; - M4OSA_Int32 frame_crop_right_offset; - M4OSA_Int32 frame_crop_top_offset; - M4OSA_Int32 frame_crop_bottom_offset; - M4OSA_Int32 offset_for_ref_frame[_MAXnum_ref_frames_in_pic_order_cnt_cycle]; - - M4OSA_UInt16 PicWidthInMbs; - M4OSA_UInt16 FrameHeightInMbs; - M4OSA_UInt16 pic_width_in_mbs_minus1; - M4OSA_UInt16 pic_height_in_map_units_minus1; - -#ifdef _CAP_FMO_ - M4OSA_UInt16 NumSliceGroupMapUnits; - M4OSA_UInt16 MaxPicSizeInMbs; -#endif /*_CAP_FMO_*/ - - M4OSA_UInt8 profile_idc; - M4OSA_UInt8 reserved_zero_4bits; - M4OSA_UInt8 level_idc; - M4OSA_UInt8 seq_parameter_set_id; - M4OSA_UInt8 log2_max_frame_num_minus4; - M4OSA_UInt8 pic_order_cnt_type; - /* if(pic_order_cnt_type == 0) */ - M4OSA_UInt8 log2_max_pic_order_cnt_lsb_minus4; - - M4OSA_UInt8 num_ref_frames_in_pic_order_cnt_cycle; - /* for( i = 0; i < num_ref_frames_in_pic_order_cnt_cycle; i++ ) */ - M4OSA_UInt8 num_ref_frames; - - M4OSA_Bool constraint_set0_flag; - M4OSA_Bool constraint_set1_flag; - M4OSA_Bool constraint_set2_flag; - M4OSA_Bool constraint_set3_flag; - M4OSA_Bool delta_pic_order_always_zero_flag; - M4OSA_Bool gaps_in_frame_num_value_allowed_flag; - M4OSA_Bool frame_mbs_only_flag; - M4OSA_Bool mb_adaptive_frame_field_flag; - M4OSA_Bool direct_8x8_inference_flag; - M4OSA_Bool frame_cropping_flag; - M4OSA_Bool vui_parameters_present_flag; - M4OSA_Bool Active; - - /* vui_seq_parameters_t vui_seq_parameters; */ -} ComSequenceParameterSet_t_MCS; - -typedef struct -{ - M4OSA_Int16 pic_init_qp_minus26; - M4OSA_Int16 pic_init_qs_minus26; - M4OSA_Int16 chroma_qp_index_offset; - -//#ifdef _CAP_FMO_ - /* if( slice_group_map_type = = 0 ) */ - M4OSA_UInt16 run_length_minus1[_MAXnum_slice_groups]; - /* else if( slice_group_map_type = = 2 ) */ - M4OSA_UInt16 top_left[_MAXnum_slice_groups]; - M4OSA_UInt16 bottom_right[_MAXnum_slice_groups]; - /* else if( slice_group_map_type = = 6 ) */ - M4OSA_UInt16 pic_size_in_map_units_minus1; - M4OSA_UInt16 slice_group_change_rate_minus1; - - M4OSA_UInt16 FirstMbInSliceGroup[_MAXnum_slice_groups]; - M4OSA_UInt16 LastMbInSliceGroup[_MAXnum_slice_groups]; - - - M4OSA_UInt8 *slice_group_id; - M4OSA_UInt8 *MapUnitToSliceGroupMap; - M4OSA_UInt8 *MbToSliceGroupMap; - M4OSA_UInt16 NumSliceGroupMapUnits; - - M4OSA_UInt8 slice_group_map_type; - /* else if( slice_group_map_type = = 3 || 4 || 5 */ - M4OSA_Bool slice_group_change_direction_flag; - M4OSA_Bool map_initialized; -// #endif /*_CAP_FMO_*/ - - M4OSA_UInt8 pic_parameter_set_id; - M4OSA_UInt8 seq_parameter_set_id; - M4OSA_UInt8 num_ref_idx_l0_active_minus1; - M4OSA_UInt8 num_ref_idx_l1_active_minus1; - M4OSA_UInt8 weighted_bipred_idc; - M4OSA_UInt8 num_slice_groups_minus1; - - M4OSA_Bool entropy_coding_mode_flag; - /* if( pic_order_cnt_type < 2 ) in the sequence parameter set */ - M4OSA_Bool pic_order_present_flag; - M4OSA_Bool weighted_pred_flag; - M4OSA_Bool deblocking_filter_control_present_flag; - M4OSA_Bool constrained_intra_pred_flag; - M4OSA_Bool redundant_pic_cnt_present_flag; - M4OSA_Bool Active; - - ComSequenceParameterSet_t_MCS *p_active_sps; -} ComPictureParameterSet_t_MCS; - -typedef struct -{ - M4OSA_UInt32 bitPos; /*!< bit position in buffer */ - M4OSA_UInt32 totalBits; /*!< bit position in file (total bits read so far) */ - - M4OSA_UInt32 lastTotalBits; /*!< bit position in file of the last VOP */ - M4OSA_UInt32 numBitsInBuffer; /*!< number of bits in buffer */ - M4OSA_UInt32 readableBytesInBuffer; /*!< number of bytes that can be read in decoder buffer*/ - M4OSA_UInt32 maxBufferSize; /*!< max buffer size in bit units */ - M4OSA_UInt8 *Buffer; /*!< char buffer at reading from file */ - M4OSA_Int32 i8BitCnt; - M4OSA_UInt32 ui32TempBuff; - M4OSA_Int8*pui8BfrPtr; - M4OSA_UInt32 ui32LastTwoBytes; /*!< stores the last read two bytes */ -} ComBitStreamMCS_t; - - -typedef struct -{ - - M4OSA_Int32 prev_frame_num; - M4OSA_Int32 cur_frame_num; - M4OSA_Int32 prev_new_frame_num; - M4OSA_Int32 log2_max_frame_num_minus4; - M4OSA_Int32 is_done; - M4OSA_Int32 is_first; - M4OSA_Int32 frame_count; - M4OSA_Int32 frame_mod_count; - M4OSA_Int32 POC_lsb; - M4OSA_Int32 POC_lsb_mod; - - - M4OSA_UInt32 m_Num_Bytes_NALUnitLength; - - M4OSA_UInt8* m_pDecoderSpecificInfo; /**< Pointer on specific information required - to create a decoder */ - M4OSA_UInt32 m_decoderSpecificInfoSize;/**< Size of the specific information pointer above*/ - - M4OSA_UInt8* m_pEncoderSPS; - M4OSA_UInt32 m_encoderSPSSize; - - M4OSA_UInt8* m_pEncoderPPS; - M4OSA_UInt32 m_encoderPPSSize; - - M4OSA_UInt8* m_pFinalDSI; - M4OSA_UInt32 m_pFinalDSISize; - - M4OSA_UInt32 m_encoder_SPS_Cnt; - ComSequenceParameterSet_t_MCS *p_clip_sps; - M4OSA_UInt32 m_encoder_PPS_Cnt; - ComPictureParameterSet_t_MCS *p_clip_pps; - - ComSequenceParameterSet_t_MCS *p_encoder_sps; - ComPictureParameterSet_t_MCS *p_encoder_pps; - - - ComSequenceParameterSet_t_MCS encoder_sps; - ComPictureParameterSet_t_MCS encoder_pps; - ComSequenceParameterSet_t_MCS clip_sps; - - /* Encoder SPS parameters */ - M4OSA_UInt32 enc_seq_parameter_set_id; - M4OSA_UInt32 enc_log2_max_frame_num_minus4; - M4OSA_UInt32 enc_pic_order_cnt_type; - M4OSA_UInt32 enc_log2_max_pic_order_cnt_lsb_minus4; /* applicable when POC type = 0 */ - M4OSA_UInt32 enc_delta_pic_order_always_zero_flag; - M4OSA_Int32 enc_offset_for_non_ref_pic; - M4OSA_Int32 enc_offset_for_top_to_bottom_field; - M4OSA_UInt32 enc_num_ref_frames_in_pic_order_cnt_cycle; /* range 0 to 255 */ - /* array of size num_ref_frames_in_pic_order_cnt_cycle */ - M4OSA_Int32 enc_offset_for_ref_frame[256]; - M4OSA_UInt32 enc_num_ref_frames; - M4OSA_UInt32 enc_gaps_in_frame_num_value_allowed_flag; - - - /* Input clip SPS parameters */ - M4OSA_UInt32 clip_seq_parameter_set_id; - M4OSA_UInt32 clip_log2_max_frame_num_minus4; - M4OSA_UInt32 clip_pic_order_cnt_type; - M4OSA_UInt32 clip_log2_max_pic_order_cnt_lsb_minus4; /* applicable when POC type = 0 */ - M4OSA_UInt32 clip_delta_pic_order_always_zero_flag; - M4OSA_Int32 clip_offset_for_non_ref_pic; - M4OSA_Int32 clip_offset_for_top_to_bottom_field; - M4OSA_UInt32 clip_num_ref_frames_in_pic_order_cnt_cycle; /* range 0 to 255 */ - /* array of size num_ref_frames_in_pic_order_cnt_cycle */ - M4OSA_Int32 clip_offset_for_ref_frame[256]; - M4OSA_UInt32 clip_num_ref_frames; - M4OSA_UInt32 clip_gaps_in_frame_num_value_allowed_flag; - - M4OSA_UInt32 final_PPS_ID; - M4OSA_UInt32 final_SPS_ID; - NSWAVC_bitStream_t_MCS encbs; - -} NSWAVC_MCS_t; - - - -/** - ****************************************************************************** - * structure M4MCS_InternalContext - * @brief This structure defines the MCS context (private) - * @note This structure is used for all MCS calls to store the context - ****************************************************************************** - */ -typedef struct -{ - /** - * MCS State and settings stuff */ - M4MCS_States State; /**< MCS internal state */ - M4MCS_StreamState VideoState;/**< State of the video encoding */ - M4MCS_StreamState AudioState;/**< State of the audio encoding */ - M4OSA_Bool noaudio;/**< Flag to know if we have to deal with audio transcoding */ - M4OSA_Bool novideo;/**< Flag to know if we have to deal with video transcoding */ - - M4VIDEOEDITING_ClipProperties InputFileProperties;/**< Input audio/video stream properties */ - M4OSA_Void* pInputFile; /**< Remember input file pointer between fast - open and normal open */ - M4VIDEOEDITING_FileType InputFileType; /**< Remember input file type between fast - open and normal open */ - M4OSA_Bool bFileOpenedInFastMode; /**< Flag to know if a particular reader - supports fast open */ - M4OSA_UInt32 uiMaxMetadataSize; /**< Limitation on the max acceptable moov - size of a 3gpp file */ - - M4ENCODER_Format EncodingVideoFormat; /**< Output video format, set by the user */ - M4ENCODER_FrameWidth EncodingWidth; /**< Output video width, set by the user */ - M4ENCODER_FrameHeight EncodingHeight; /**< Output video height, set by the user */ - M4ENCODER_FrameRate EncodingVideoFramerate; /**< Output video framerate, set by the user*/ - - M4OSA_UInt32 uiBeginCutTime; /**< Begin cut time, in milliseconds */ - M4OSA_UInt32 uiEndCutTime; /**< Begin cut time, in milliseconds */ - M4OSA_UInt32 uiMaxFileSize; /**< Maximum output file size, in bytes */ - M4OSA_UInt32 uiAudioBitrate; /**< Targeted audio bitrate in bps */ - M4OSA_UInt32 uiVideoBitrate; /**< Targeted video bitrate in bps */ - - M4OSA_UInt8 uiProgress; /**< Progress information saved at each step to be able to - return it in case of pause */ - - /** - * Reader stuff */ - M4OSA_Context pReaderContext; /**< Context of the reader module */ - M4_VideoStreamHandler* pReaderVideoStream; /**< Description of the read video stream */ - M4_AudioStreamHandler* pReaderAudioStream; /**< Description of the read audio stream */ - M4OSA_Bool bUnsupportedVideoFound; /**< True if an unsupported video stream - type has been found */ - M4OSA_Bool bUnsupportedAudioFound; /**< True if an unsupported audio stream - type has been found */ - M4_AccessUnit ReaderVideoAU; /**< Read video access unit */ - M4_AccessUnit ReaderVideoAU1; /**< Read video access unit */ - M4_AccessUnit ReaderVideoAU2; /**< Read video access unit */ - M4_AccessUnit ReaderAudioAU; /**< Read audio access unit */ - M4_AccessUnit ReaderAudioAU1; /**< Read audio access unit */ - M4_AccessUnit ReaderAudioAU2; /**< Read audio access unit */ - M4OSA_MemAddr8 m_pDataAddress1; /**< Temporary buffer for Access Unit */ - M4OSA_MemAddr8 m_pDataAddress2; /**< Temporary buffer for Access Unit */ - M4OSA_MemAddr8 m_pDataVideoAddress1; /**< Temporary buffer for Access Unit */ - M4OSA_MemAddr8 m_pDataVideoAddress2; /**< Temporary buffer for Access Unit */ - M4OSA_UInt32 m_audioAUDuration; /**< Audio AU duration */ - M4OSA_Int32 iAudioCtsOffset; /**< Audio AU CTS offset due to begin cut */ - - /** - * Video decoder stuff */ - M4OSA_Context pViDecCtxt; /**< Video decoder context */ - M4OSA_Double dViDecStartingCts; /**< Video CTS at which the decode/encode will start - (used for begin cut and pause/resume) */ - M4OSA_Double dViDecCurrentCts; /**< Video CTS to decode */ - M4OSA_Int32 iVideoBeginDecIncr; /**< CTS step for the begin cut decode (doesn't - need floating point precision) */ - M4OSA_Double dCtsIncrement; /**< Cts increment from one video frame to another*/ - M4OSA_Bool isRenderDup; /**< To handle duplicate frame rendering in case of - external decoding */ - M4VIFI_ImagePlane* lastDecodedPlane; /**< Last decoded plane */ - - /** - * Video encoder stuff */ - M4OSA_Context pViEncCtxt; /**< Video encoder context */ - M4VIFI_ImagePlane* pPreResizeFrame; /**< The decoded image before resize - (allocated if resize needed only)*/ - M4OSA_UInt32 uiEncVideoBitrate; /**< Actual video bitrate for the video encoder */ - M4OSA_UInt32 outputVideoTimescale; - M4OSA_UInt32 encoderState; - - /** - * Audio decoder stuff */ - M4OSA_Context pAudioDecCtxt; /**< Audio (AAC) decoder context */ - M4AD_Buffer AudioDecBufferIn; /**< Input structure for the audio decoder */ - M4AD_Buffer AudioDecBufferOut; /**< Output structure for the audio decoder */ - M4OSA_MemAddr8 pPosInDecBufferOut; /**< Position into the decoder buffer */ - AAC_DEC_STREAM_PROPS AacProperties; /**< Structure for new api to get AAC properties */ - - /** - * Sample Rate Convertor (SSRC) stuff */ - SSRC_Instance_t SsrcInstance; /**< Context of the Ssrc */ - SSRC_Scratch_t* SsrcScratch; /**< Working memory of the Ssrc */ - short iSsrcNbSamplIn; /**< Number of sample the Ssrc needs as input */ - short iSsrcNbSamplOut; /**< Number of sample the Ssrc outputs */ - M4OSA_MemAddr8 pSsrcBufferIn; /**< Input of the SSRC */ - M4OSA_MemAddr8 pSsrcBufferOut; /**< Output of the SSRC */ - M4OSA_MemAddr8 pPosInSsrcBufferIn; /**< Position into the SSRC in buffer */ - M4OSA_MemAddr8 pPosInSsrcBufferOut;/**< Position into the SSRC out buffer */ - - M4OSA_Context pLVAudioResampler; - - - /** - * audio encoder stuff */ - M4OSA_Context pAudioEncCtxt; /**< Context of the audio encoder */ - M4ENCODER_AudioDecSpecificInfo pAudioEncDSI; /**< Decoder specific info built by the encoder*/ - M4ENCODER_AudioParams AudioEncParams;/**< Config of the audio encoder */ - M4OSA_MemAddr8 pAudioEncoderBuffer; /**< Input of the encoder */ - M4OSA_MemAddr8 pPosInAudioEncoderBuffer; /**< Position into the encoder buffer */ - M4OSA_UInt32 audioEncoderGranularity; /**< Minimum number of pcm samples needed - to feed audio encoder */ - - /** - * Writer stuff */ - M4OSA_Context pWriterContext; /**< Context of the writer module */ - M4OSA_Void* pOutputFile; /**< Output file to be created */ - M4OSA_Void* pTemporaryFile; /**< Temporary file to be created to store - metadata ("moov.bin") */ - M4SYS_StreamDescription WriterVideoStream; /**< Description of the written video stream */ - M4SYS_StreamDescription WriterAudioStream; /**< Description of the written audio stream */ - M4WRITER_StreamVideoInfos WriterVideoStreamInfo;/**< Video properties of the written video - stream */ - M4SYS_AccessUnit WriterVideoAU; /**< Written video access unit */ - M4SYS_AccessUnit WriterAudioAU; /**< Written audio access unit */ - M4OSA_UInt32 uiVideoAUCount; /**< Number of video AU written in output - file */ - M4OSA_UInt32 uiVideoMaxAuSize; /**< Max access unit size for the output - video stream */ - M4OSA_UInt32 uiVideoMaxChunckSize; /**< Max chunck size for the output video - stream */ - M4OSA_UInt32 uiAudioAUCount; /**< Number of audio AU written in output file */ - M4OSA_UInt32 uiAudioMaxAuSize; /**< Max access unit size for the output - audio stream */ - M4OSA_UInt32 uiAudioCts; /**< Audio AU cts (when audio is transcoded) */ - M4OSA_Bool b_isRawWriter; /**< Boolean to know if the raw writer is - registered or not */ - M4OSA_Context pOutputPCMfile; /**< Output PCM file if not NULL */ - - /** - * Filesystem functions */ - M4OSA_FileReadPointer* pOsaFileReadPtr; /**< OSAL file read functions, - to be provided by user */ - M4OSA_FileWriterPointer* pOsaFileWritPtr; /**< OSAL file write functions, - to be provided by user */ - - /** - * Media and Codec registration */ - /**< Table of M4VES_WriterInterface structures for avalaible Writers list */ - M4MCS_WriterInterface WriterInterface[M4WRITER_kType_NB]; - /**< open, close, setoption,etc... functions of the used writer*/ - M4WRITER_GlobalInterface* pWriterGlobalFcts; - /**< data manipulation functions of the used writer */ - M4WRITER_DataInterface* pWriterDataFcts; - /**< Table of M4ENCODER_GlobalInterface structures for avalaible encoders list */ - M4ENCODER_GlobalInterface* pVideoEncoderInterface[M4ENCODER_kVideo_NB]; - /**< Functions of the used encoder */ - M4ENCODER_GlobalInterface* pVideoEncoderGlobalFcts; - - M4OSA_Void* pVideoEncoderExternalAPITable[M4ENCODER_kVideo_NB]; - M4OSA_Void* pCurrentVideoEncoderExternalAPI; - M4OSA_Void* pVideoEncoderUserDataTable[M4ENCODER_kVideo_NB]; - M4OSA_Void* pCurrentVideoEncoderUserData; - - /**< Table of M4ENCODER_AudioGlobalInterface structures for avalaible encoders list */ - M4ENCODER_AudioGlobalInterface* pAudioEncoderInterface[M4ENCODER_kAudio_NB]; - /**< Table of internal/external flags for avalaible encoders list */ - M4OSA_Bool pAudioEncoderFlag[M4ENCODER_kAudio_NB]; - /**< Functions of the used encoder */ - M4ENCODER_AudioGlobalInterface* pAudioEncoderGlobalFcts; - M4OSA_Void* pAudioEncoderUserDataTable[M4ENCODER_kAudio_NB]; - M4OSA_Void* pCurrentAudioEncoderUserData; - - M4READER_GlobalInterface* m_pReaderGlobalItTable[M4READER_kMediaType_NB]; - M4READER_DataInterface* m_pReaderDataItTable[M4READER_kMediaType_NB]; - M4READER_GlobalInterface* m_pReader; - M4READER_DataInterface* m_pReaderDataIt; - M4OSA_UInt8 m_uiNbRegisteredReaders; - - M4DECODER_VideoInterface* m_pVideoDecoder; - M4DECODER_VideoInterface* m_pVideoDecoderItTable[M4DECODER_kVideoType_NB]; -#ifdef M4VSS_ENABLE_EXTERNAL_DECODERS - M4OSA_Void* m_pCurrentVideoDecoderUserData; - M4OSA_Void* m_pVideoDecoderUserDataTable[M4DECODER_kVideoType_NB]; -#endif /* M4VSS_ENABLE_EXTERNAL_DECODERS */ - M4OSA_UInt8 m_uiNbRegisteredVideoDec; - - M4AD_Interface* m_pAudioDecoder; - M4AD_Interface* m_pAudioDecoderItTable[M4AD_kType_NB]; - M4OSA_Bool m_pAudioDecoderFlagTable[M4AD_kType_NB]; /**< store indices of external - decoders */ - M4OSA_Void* m_pAudioDecoderUserDataTable[M4AD_kType_NB]; - M4OSA_Void* m_pCurrentAudioDecoderUserData; - - M4MCS_MediaRendering MediaRendering; /**< FB: to crop, resize, or render black borders*/ - M4OSA_Context m_air_context; - M4OSA_Bool bExtOMXAudDecoder; /* External OMX Audio decoder */ - - /**< FlB 2009.03.04: Audio effects*/ - M4MCS_EffectSettings *pEffects; /**< List of effects */ - M4OSA_UInt8 nbEffects; /**< Number of effects in the above list */ - M4OSA_Int8 pActiveEffectNumber; /**< Effect ID to be applied, if -1, - no effect has to be applied currently*/ - -#ifdef M4MCS_SUPPORT_STILL_PICTURE - M4OSA_Bool m_bIsStillPicture; /**< =TRUE if input file is a still picture - (JPEG, PNG, BMP, GIF)*/ - M4MCS_Context m_pStillPictureContext; /**< Context of the still picture part of MCS*/ -#endif /*M4MCS_SUPPORT_STILL_PICTURE*/ - NSWAVC_MCS_t *m_pInstance; - M4OSA_UInt8 *H264MCSTempBuffer; - M4OSA_UInt32 H264MCSTempBufferSize; - M4OSA_UInt32 H264MCSTempBufferDataSize; - M4OSA_Bool bH264Trim; - /* Flag when to get lastdecodedframeCTS */ - M4OSA_Bool bLastDecodedFrameCTS; - M4OSA_Int32 encodingVideoProfile; - M4OSA_Int32 encodingVideoLevel; - -} M4MCS_InternalContext; - - -#endif /* __M4MCS_INTERNALTYPES_H__ */ - |