summaryrefslogtreecommitdiffstats
path: root/libvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'libvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h')
-rwxr-xr-xlibvideoeditor/vss/mcs/inc/M4MCS_InternalTypes.h606
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__ */
-