17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* 27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License. 67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at 77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and 147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License. 157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file M4VSS3GPP_InternalTypes.h 207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This file contains all enum and types not visible to the external world. 217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note 227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef __M4VSS3GPP_INTERNALTYPES_H__ 277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4VSS3GPP_INTERNALTYPES_H__ 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VSS_VERSION_MAJOR 3 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VSS_VERSION_MINOR 2 317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VSS_VERSION_REVISION 5 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "NXPSW_CompilerSwitches.h" 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * VSS public API and types */ 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4VSS3GPP_API.h" 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Internally used modules */ 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4READER_Common.h" /**< Reader common interface */ 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4WRITER_common.h" /**< Writer common interface */ 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4DECODER_Common.h" /**< Decoder common interface */ 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4ENCODER_common.h" /**< Encoder common interface */ 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4VIFI_FiltersAPI.h" /**< Image planes definition */ 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4READER_3gpCom.h" /**< Read 3GPP file */ 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4AD_Common.h" /**< Decoder audio */ 487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4ENCODER_AudioCommon.h" /**< Encode audio */ 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "SSRC.h" /**< SSRC */ 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "From2iToMono_16.h" /**< Stereo to Mono */ 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "MonoTo2I_16.h" /**< Mono to Stereo */ 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" { 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define WINDOW_SIZE 10 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4VSS3GPP_EditState 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Main state machine of the VSS 3GPP edit operation. 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditState_CREATED = 0, /**< M4VSS3GPP_editInit has been called */ 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditState_VIDEO = 1, /**< Processing video track */ 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditState_AUDIO = 2, /**< Processing audio track */ 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditState_MP3 = 3, /**< Processing MP3 audio track */ 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditState_MP3_JUMP = 4, /**< Processing a jump in a MP3 audio track */ 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditState_FINISHED = 5, /**< Processing done, VSS 3GPP can be closed */ 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditState_CLOSED = 6 /**< Output file has been closed, 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi VSS 3GPP can be destroyed */ 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4VSS3GPP_EditState; 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 82ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes /**< Doing Read/Write operation. This operation will have no processing 83ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes * on input frames. Only time stamp manipulations in output file. */ 84ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes M4VSS3GPP_kEditVideoState_READ_WRITE = 10, 85ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes /**< Decode encode to create an I frame. This is done for a single frame 86ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes * to create a new reference frame. */ 87ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes M4VSS3GPP_kEditVideoState_BEGIN_CUT = 11, 88ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes /**< Doing Read->Decode->Filter->Encode->Write operation on the input file 89ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes * to create the output file. */ 90ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes M4VSS3GPP_kEditVideoState_DECODE_ENCODE = 12, 91ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes /**< Applied when Transition is active and blending of two videos is 92ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes * required. */ 93ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes M4VSS3GPP_kEditVideoState_TRANSITION = 13, 94ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes /**< Special Read/Write mode used after BEGIN_CUT state. The frame 95ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes * is already coded as I frame in BEGIN_CUT state; so skip it. */ 96ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes M4VSS3GPP_kEditVideoState_AFTER_CUT = 14 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4VSS3GPP_EditVideoState; 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditAudioState_READ_WRITE = 20, /**< Doing Read/Write operation 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (no decoding/encoding) */ 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditAudioState_DECODE_ENCODE = 21, /**< Doing Read-Decode/Filter/ 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Encode-Write operation */ 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEditAudioState_TRANSITION = 22 /**< Transition; blending of two audio */ 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4VSS3GPP_EditAudioState; 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4VSS3GPP_ClipStatus 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Status of the clip. 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kClipStatus_READ = 0, /**< The clip is currently ready for reading */ 1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kClipStatus_DECODE = 1, /**< The clip is currently ready for decoding */ 1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kClipStatus_DECODE_UP_TO = 2 /**< The clip is currently in splitted 1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi decodeUpTo() processing */ 1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4VSS3GPP_ClipStatus; 1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4VSS3GPP_ClipCurrentEffect 1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Current effect applied to the clip. 1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kClipCurrentEffect_NONE = 0, /**< None */ 1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kClipCurrentEffect_BEGIN = 1, /**< Begin effect currently applied */ 1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kClipCurrentEffect_END = 2 /**< End effect currently applied */ 1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4VSS3GPP_ClipCurrentEffect; 1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4VSS3GPP_AudioMixingState 1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Main state machine of the VSS audio mixing operation. 1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kAudioMixingState_VIDEO = 0, /**< Video is being processed */ 1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kAudioMixingState_AUDIO_FIRST_SEGMENT, /**< Audio is being processed */ 1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kAudioMixingState_AUDIO_SECOND_SEGMENT, /**< Audio is being processed */ 1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kAudioMixingState_AUDIO_THIRD_SEGMENT, /**< Audio is being processed */ 1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kAudioMixingState_FINISHED /**< Processing finished, user must now 1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi call M4VSS3GPP_audioMixingCleanUp*/ 1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4VSS3GPP_AudioMixingState; 1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4VSS3GPP_ExtractPictureState 1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Main state machine of the VSS picture extraction. 1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kExtractPictureState_OPENED = 0, /**< Video clip is opened and ready to be read 1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi until the RAP before the picture to extract */ 1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kExtractPictureState_PROCESS = 1, /**< Video is decoded from the previous RAP 1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi to the picture to extract */ 1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kExtractPictureState_EXTRACTED= 2 /**< Video AU has been decoded, user must now 1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi call M4VSS3GPP_extractPictureCleanUp */ 1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4VSS3GPP_ExtractPictureState; 1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Codecs registration same as in VPS and VES, so less mapping 1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * is required toward VSS api types 1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface* pGlobalFcts; /**< open, close, setoption,etc... functions */ 1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface* pDataFcts; /**< data manipulation functions */ 1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_WriterInterface; 1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct AAC_DEC_STREAM_PROPS 1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief AAC Stream properties 1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @Note aNoChan and aSampFreq are used for parsing even the user parameters 1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * are different. User parameters will be input for the output behaviour 1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * of the decoder whereas for parsing bitstream properties are used. 1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct { 1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 aAudioObjectType; /**< Audio object type of the stream - in fact 2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi the type found in the Access Unit parsed */ 2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 aNumChan; /**< number of channels (=1(mono) or =2(stereo)) 2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi as indicated by input bitstream*/ 2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 aSampFreq; /**< sampling frequency in Hz */ 2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 aExtensionSampFreq; /**< extended sampling frequency in Hz, = 0 is 2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi no extended frequency */ 2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 aSBRPresent; /**< presence=1/absence=0 of SBR */ 2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 aPSPresent; /**< presence=1/absence=0 of PS */ 2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 aMaxPCMSamplesPerCh; /**< max number of PCM samples per channel */ 2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} AAC_DEC_STREAM_PROPS; 2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4VSS3GPP_MediaAndCodecCtxt 2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Filesystem and codec registration function pointers 2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct { 2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Media and Codec registration */ 2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Table of M4VES_WriterInterface structures for avalaible Writers list */ 2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_WriterInterface WriterInterface[M4WRITER_kType_NB]; 2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< open, close, setoption,etc... functions of the used writer*/ 2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface* pWriterGlobalFcts; 2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< data manipulation functions of the used writer */ 2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface* pWriterDataFcts; 2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Table of M4ENCODER_GlobalInterface structures for avalaible encoders list */ 2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_GlobalInterface* pVideoEncoderInterface[M4ENCODER_kVideo_NB]; 2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Functions of the used encoder */ 2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_GlobalInterface* pVideoEncoderGlobalFcts; 2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pVideoEncoderExternalAPITable[M4ENCODER_kVideo_NB]; 2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pCurrentVideoEncoderExternalAPI; 2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pVideoEncoderUserDataTable[M4ENCODER_kVideo_NB]; 2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pCurrentVideoEncoderUserData; 2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Table of M4ENCODER_AudioGlobalInterface structures for avalaible encoders list */ 2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioGlobalInterface* pAudioEncoderInterface[M4ENCODER_kAudio_NB]; 2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Table of internal/external flags for avalaible encoders list */ 2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool pAudioEncoderFlag[M4ENCODER_kAudio_NB]; 2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Functions of the used encoder */ 2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioGlobalInterface* pAudioEncoderGlobalFcts; 2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_GlobalInterface* m_pReaderGlobalItTable[M4READER_kMediaType_NB]; 2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_DataInterface* m_pReaderDataItTable[M4READER_kMediaType_NB]; 2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_GlobalInterface* m_pReader; 2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_DataInterface* m_pReaderDataIt; 2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 m_uiNbRegisteredReaders; 2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4DECODER_VideoInterface* m_pVideoDecoder; 2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4DECODER_VideoInterface* m_pVideoDecoderItTable[M4DECODER_kVideoType_NB]; 2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 m_uiNbRegisteredVideoDec; 2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_ENABLE_EXTERNAL_DECODERS 2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* m_pCurrentVideoDecoderUserData; 2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* m_pVideoDecoderUserDataTable[M4DECODER_kVideoType_NB]; 2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Interface* m_pAudioDecoder; 2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Interface* m_pAudioDecoderItTable[M4AD_kType_NB]; 2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< store indices of external decoders */ 2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool m_pAudioDecoderFlagTable[M4AD_kType_NB]; 2637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pAudioEncoderUserDataTable[M4ENCODER_kAudio_NB]; 2657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pCurrentAudioEncoderUserData; 2667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pAudioDecoderUserDataTable[M4AD_kType_NB]; 2687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Void* pCurrentAudioDecoderUserData; 2697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_OMX_CODECS 2717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* boolean to tell whether registered external OMX codecs should be freed during cleanup 2727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi or new codec registration*/ 2737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bAllowFreeingOMXCodecInterface; 2747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_MediaAndCodecCtxt; 2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VSS3GPP_ClipContext 2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure contains informations related to one 3GPP clip (private) 2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure is used to store the context related to one clip 2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipSettings* pSettings; /**< Pointer to the clip settings 2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (not possessed) */ 2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipStatus Vstatus; /**< Video status of the clip reading */ 2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipStatus Astatus; /**< Audio status of the clip reading */ 2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iVoffset; /**< [Milliseconds] Offset between the 2967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi clip and the output video stream 2977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (begin cut taken into account) */ 2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iAoffset; /**< [Timescale] Offset between the clip 2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi and the output audio stream (begin 3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi cut taken into account) */ 3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 3GPP reader Stuff */ 3047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileReadPointer* pFileReadPtrFct; 3057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Context pReaderContext; /**< Context of the 3GPP reader module */ 3067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4_VideoStreamHandler* pVideoStream; /**< Description of the read video stream */ 3077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4_AudioStreamHandler* pAudioStream; /**< Description of the read audio stream */ 3087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4_AccessUnit VideoAU; /**< Read video access unit (we do not use a 3097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pointer to allocate later, because 3107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi most of the time we will need it) */ 3117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4_AccessUnit AudioAU; /**< Read audio access unit (we do not use a 3127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pointer to allocate later, because most 3137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi of the time we will need it) */ 3147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bVideoAuAvailable; /**< Tell if a video AU is available 3157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (previously read) */ 3167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Boolean only used to fix the BZZ bug... */ 3177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bFirstAuWritten; 3187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Video decoder stuff */ 3217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Context pViDecCtxt; /**< Video decoder context */ 3227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iVideoDecCts; /**< [Milliseconds] For video decodeUpTo(), 3237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi the actual reached cts */ 3247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iVideoRenderCts; /**< [Milliseconds] For video render(), 3257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi the actual reached cts */ 3267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool isRenderDup; /**< To handle duplicate frame rendering in 3277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi case of external decoding */ 3287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane* lastDecodedPlane; /**< Last decoded plane */ 3297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * MPEG4 time info stuff at clip level */ 3327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bMpeg4GovState; /**< Namely, update or initialization */ 3337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiMpeg4PrevGovValueGet; /**< Previous Gov value read (in second) */ 3347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiMpeg4PrevGovValueSet; /**< Previous Gov value write (in second) */ 3357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Time-line stuff */ 3387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< [Milliseconds] CTS at which the video clip actually starts */ 3397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iActualVideoBeginCut; 3407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< [Milliseconds] CTS at which the audio clip actually starts */ 3417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iActualAudioBeginCut; 3427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< [Milliseconds] Time at which the clip must end */ 3437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iEndTime; 3447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Audio decoder stuff */ 3477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Context pAudioDecCtxt; /**< Context of the AMR decoder */ 3487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Buffer AudioDecBufferIn; /**< Input structure for the audio decoder */ 3497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Buffer AudioDecBufferOut; /**< Buffer for the decoded PCM data */ 3507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi AAC_DEC_STREAM_PROPS AacProperties; /**< Structure for new api to get AAC 3517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi properties */ 3527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Audio AU to Frame split stuff */ 3557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bAudioFrameAvailable; /**< True if an audio frame is available */ 3567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pAudioFramePtr; /**< Pointer to the Audio frame */ 3577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiAudioFrameSize; /**< Size of the audio frame available */ 3587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iAudioFrameCts; /**< [Timescale] CTS of the audio frame 3597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi available */ 3607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Silence frame stuff */ 3637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Size to reserve to store a pcm full of zeros compatible with master clip stream type */ 3647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiSilencePcmSize; 3657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Pointer to silence frame data compatible with master clip stream type */ 3667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8* pSilenceFrameData; 3677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Size of silence frame data compatible with master clip stream type */ 3687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiSilenceFrameSize; 3697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< [Timescale] Duration of silence frame data compatible with master clip stream type */ 3707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iSilenceFrameDuration; 3717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Double scale_audio; /**< frequency / 1000.0 */ 3727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 3747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Interfaces of the used modules */ 3757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Filesystem and shell reader, decoder functions */ 3767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_MediaAndCodecCtxt ShellAPI; 3776e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4VIFI_ImagePlane *pPlaneYuv; /* YUV420 image plane, converted from ARGB888 */ 3786e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4VIFI_ImagePlane* m_pPreResizeFrame; /* The decoded image before resize 3796e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury (allocated only if resize needed)*/ 3806e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4VIFI_ImagePlane *pPlaneYuvWithEffect; /* YUV420 image plane, with color effect */ 3816e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4OSA_Bool bGetYuvDataFromDecoder; /* Boolean used to get YUV data from dummy video decoder only for first time */ 3827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_ClipContext; 3837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 3867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 3877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum anonymous enum 3887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief enum to keep track of the encoder state 3897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 3907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 3917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargienum 3927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 3937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kNoEncoder, 3947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEncoderClosed, 3957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEncoderStopped, 3967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_kEncoderRunning 3977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}; 3987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 4007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 4017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VSS3GPP_AudioVideoContext 4027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the audio video context (private) 4037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure is used for all audio/video, encoding/writing operations. 4047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 4057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 4067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 4077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 4087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 4097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Timing Stuff */ 4107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi // Decorrelate input and output encoding timestamp to handle encoder prefetch 4117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< [Milliseconds] Duration of the output file, used for progress computation */ 4127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Double dInputVidCts; 4137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< [Milliseconds] Current CTS of the video output stream */ 4147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Double dOutputVidCts; 4157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**< [Milliseconds] Current CTS of the audio output stream */ 4167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Double dATo; 4177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< [Milliseconds] Duration of the output file, used for progress computation */ 4187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iOutputDuration; 4197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 4217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Output Video Stream Stuff */ 4227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamType VideoStreamType; /**< Output video codec */ 4230a25bd5bacf5408ca205b15e53cfb6dc2fc1d171Rajneesh Chowdury M4OSA_Int32 outputVideoProfile; /**< Output video profile */ 4240a25bd5bacf5408ca205b15e53cfb6dc2fc1d171Rajneesh Chowdury M4OSA_Int32 outputVideoLevel; /**< Output video level */ 4257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiVideoBitrate; /**< Average video bitrate of the output file, 4267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi computed from input bitrates, durations, 4277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi transitions and cuts */ 4287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiVideoWidth; /**< Output image width */ 4297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiVideoHeight; /**< Output image height */ 4307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiVideoTimeScale; /**< Time scale to use for the encoding 4317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi of the transition (if MPEG-4) */ 4327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bVideoDataPartitioning; /**< Data partitioning to use for the 4337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi encoding of the transition 4347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (if MPEG-4) */ 4357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pVideoOutputDsi; /**< Decoder Specific Info of the output 4367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi MPEG-4 track */ 4377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt16 uiVideoOutputDsiSize; /**< Size of the Decoder Specific Info 4387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi of the output MPEG-4 track */ 4397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 4407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Output Audio Stream Stuff */ 4417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamType AudioStreamType; /**< Type of the output audio stream */ 4427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiNbChannels; /**< Number of channels in the output 4437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi stream (1=mono, 2=stereo) */ 4447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiAudioBitrate; /**< Audio average bitrate (in bps) */ 4457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiSamplingFrequency; /**< Sampling audio frequency (8000 for 4467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi amr, 16000 or more for aac) */ 4477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pAudioOutputDsi; /**< Decoder Specific Info of the 4487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi output audio track */ 4497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt16 uiAudioOutputDsiSize; /**< Size of the Decoder Specific Info 4507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi of the output audio track */ 4517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 4537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Audio Encoder stuff */ 4547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Context pAudioEncCtxt; /**< Context of the audio encoder */ 4557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioDecSpecificInfo pAudioEncDSI; /**< Decoder specific info built by the 4567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi encoder */ 4577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioParams AudioEncParams; /**< Config of the audio encoder */ 4587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 4607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Silence frame stuff */ 4617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiSilencePcmSize; /**< Size to reserve to store a pcm full 4627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi of zeros compatible with master clip 4637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi stream type */ 4647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8* pSilenceFrameData; /**< Pointer to silence frame data 4657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi compatible with master clip 4667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi stream type */ 4677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiSilenceFrameSize; /**< Size of silence frame data compatible 4687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi with master clip stream type */ 4697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iSilenceFrameDuration; /**< [Timescale] Duration of silence frame 4707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi data compatible with master clip 4717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi stream type */ 4727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Double scale_audio; /**< frequency / 1000.0 */ 4737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 4757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Video Encoder stuff */ 4767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_Context pEncContext; /**< Context of the encoder */ 4777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface OurWriterDataInterface; /**< Our own implementation of the 4787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi writer interface, to give to 4797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi the encoder shell */ 4807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr32 pDummyAuBuffer; /**< Buffer given to the encoder for 4817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi it to write AUs we don't want 4827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi in the output */ 4837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iMpeg4GovOffset; /**< Clip GOV offset in ms between 4847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi video and system time */ 4857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_ERR VppError; /**< Error for VPP are masked by Video 4867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Encoder, so we must remember it */ 4877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 encoderState; 4887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 4907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Writer stuff */ 4917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_Context p3gpWriterContext; /**< Context of the 3GPP writer module */ 4927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamDescription WriterVideoStream; /**< Description of the written 4937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi video stream */ 4947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamDescription WriterAudioStream; /**< Description of the written 4957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi audio stream */ 4967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_StreamVideoInfos WriterVideoStreamInfo; /**< Video properties of the written 4977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi video stream */ 4987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_StreamAudioInfos WriterAudioStreamInfo; /**< Audio properties of the written 4997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi audio stream */ 5007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_AccessUnit WriterVideoAU; /**< Written video access unit */ 5017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_AccessUnit WriterAudioAU; /**< Written audio access unit */ 5027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiVideoMaxAuSize; /**< Max AU size set to the writer 5037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi for the video */ 5047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiAudioMaxAuSize; /**< Max AU size set to the writer 5057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi for the audio */ 5067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiOutputAverageVideoBitrate; /**< Average video bitrate of the 5077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi output file, computed from 5087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi input bitrates, durations, 5097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi transitions and cuts */ 5107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_EncodeWriteContext; 5127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 5157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 5167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VSS3GPP_InternalEditContext 5177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the edit VSS context (private) 5187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure is used for all VSS edit operations to store the context 5197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 5207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 5217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 5227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 5237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * VSS 3GPP main variables */ 5257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_EditState State; /**< VSS internal state */ 5267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_EditVideoState Vstate; 5277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_EditAudioState Astate; 5287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * User Settings (copied, thus owned by VSS3GPP) */ 5317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 uiClipNumber; /**< Number of element of the clip 5327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi list pClipList. */ 5337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipSettings *pClipList; /**< List of the input clips settings 5347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Array of uiClipNumber clip settings */ 5357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_TransitionSettings *pTransitionList; /**< List of the transition settings. 5367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Array of uiClipNumber-1 transition settings */ 5377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_EffectSettings *pEffectsList; /**< List of the effects settings. 5387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Array of nbEffects RC */ 5397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 *pActiveEffectsList; /**< List of the active effects 5407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi settings. Array of nbEffects RC */ 5417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 nbEffects; /**< Numbers of effects RC */ 5427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 nbActiveEffects; /**< Numbers of active effects RC */ 5437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Input Stuff */ 5467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 uiCurrentClip; /**< Index of the current clip 1 in 5477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi the input clip list */ 5487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipContext* pC1; /**< Context of the current clip 1 */ 5497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipContext* pC2; /**< Context of the current clip 2 */ 5507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Decoder stuff */ 5537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Double dOutputFrameDuration; /**< [Milliseconds] directly related to 5547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi output frame rate */ 5557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane yuv1[3]; /**< First temporary YUV420 image plane */ 5567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane yuv2[3]; /**< Second temporary YUV420 image plane */ 5577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane yuv3[3]; /**< Third temporary YUV420 image plane RC */ 5587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane yuv4[3]; /**< Fourth temporary YUV420 image plane RC */ 5597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Effect stuff */ 5627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bClip1AtBeginCut; /**< [Milliseconds] The clip1 is at 5637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi its begin cut */ 5647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int8 iClip1ActiveEffect; /**< The index of the active effect 5657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi on Clip1 (<0 means none) 5667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (used for video and audio but 5677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi not simultaneously) */ 5687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int8 iClip2ActiveEffect; /**< The index of the active effect 5697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi on Clip2 (<0 means none) 5707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (used for video and audio but 5717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi not simultaneously) */ 5727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bTransitionEffect; /**< True if the transition effect 5737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi must be applied at the current 5747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi time */ 5757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Encoding and Writing operations */ 5787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bSupportSilence; /**< Flag to know if the output stream can 5797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi support silence (even if not editable, 5807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi for example AAC+, but not EVRC) */ 5817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_EncodeWriteContext ewc; /**< Audio and video encode/write stuff */ 5827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bIsMMS; /**< Boolean used to know if we are 5837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi processing a file with an output 5847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi size constraint */ 5857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiMMSVideoBitrate; /**< If in MMS mode, 5867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi targeted video bitrate */ 5877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIDEOEDITING_VideoFramerate MMSvideoFramerate; /**< If in MMS mode, 5887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi targeted video framerate */ 5897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Filesystem functions */ 5927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileReadPointer* pOsaFileReadPtr; /**< OSAL file read functions, 5937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi to be provided by user */ 5947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileWriterPointer* pOsaFileWritPtr; /**< OSAL file write functions, 5957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi to be provided by user */ 5967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 5987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Interfaces of the used modules */ 5997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_MediaAndCodecCtxt ShellAPI; /**< Filesystem and shell reader, 6007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi decoder functions */ 6017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bIssecondClip; 6027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 *pActiveEffectsList1; /**< List of the active effects settings. Array of nbEffects RC */ 6037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 nbActiveEffects1; /**< Numbers of active effects RC */ 604bb337b471658b7c2264c6ff1bb613739db851baaSantosh Madhava M4OSA_Bool m_bClipExternalHasStarted; /**< Flag to indicate that an 605bb337b471658b7c2264c6ff1bb613739db851baaSantosh Madhava external effect is active */ 606f58e4c332ecf8c0cd6037b010256d0b4c56e6a17Danny Fernandes M4OSA_Int32 iInOutTimeOffset; 607ac9dde5945fd00a6fb882bd171ee8a42a091fb86Danny Fernandes M4OSA_Bool bEncodeTillEoF; 6086e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4xVSS_EditSettings xVSS; 6096e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4OSA_Context m_air_context; 610eac28ab858dc4ecdfd25b6d8851219e6787d1222Hong Teng 611eac28ab858dc4ecdfd25b6d8851219e6787d1222Hong Teng M4OSA_Bool bClip1ActiveFramingEffect; /**< Overlay flag for clip1 */ 612eac28ab858dc4ecdfd25b6d8851219e6787d1222Hong Teng M4OSA_Bool bClip2ActiveFramingEffect; /**< Overlay flag for clip2, used in transition */ 6137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_InternalEditContext; 6147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 6177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 6187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VSS3GPP_InternalAudioMixingContext 6197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the audio mixing VSS 3GPP context (private) 6207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure is used for all VSS 3GPP audio mixing operations to store 6217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * the context 6227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 6237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 6247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 6257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 6267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * VSS main variables */ 6287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_AudioMixingState State; /**< VSS audio mixing internal state */ 6297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Internal copy of the input settings */ 6327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iAddCts; /**< [Milliseconds] Time, in milliseconds, 6337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi at which the added audio track is 6347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi inserted */ 6357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiBeginLoop; /**< Describes in milli-second the 6367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi start time of the loop */ 6377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiEndLoop; /**< Describes in milli-second the end 6387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi time of the loop (0 means no loop) */ 6397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bRemoveOriginal; /**< If true, the original audio track 6407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi is not taken into account */ 6417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Input audio/video file */ 6447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipSettings InputClipSettings; /**< Structure internally used to 6457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi manage the input 3GPP settings */ 6467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipContext* pInputClipCtxt; /**< Context of the input 3GPP clip */ 6477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Added audio file stuff */ 6507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipSettings AddedClipSettings; /**< Structure internally used to 6517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi manage the added settings */ 6527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipContext* pAddedClipCtxt; /**< Context of the added 3GPP clip */ 6537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Audio stuff */ 6567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Float fOrigFactor; /**< Factor to apply to the original 6577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi audio track for the mixing */ 6587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Float fAddedFactor; /**< Factor to apply to the added 6597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi audio track for the mixing */ 6607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bSupportSilence; /**< Flag to know if the output stream can 6617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi support silence (even if not editable, 6627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi for example AAC+, but not EVRC) */ 6637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bHasAudio; /**< Flag to know if we have to delete 6647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi audio track */ 6657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bAudioMixingIsNeeded; /**< Flag to know if we have to do mixing */ 6667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Encoding and Writing operations */ 6697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_EncodeWriteContext ewc; /**< Audio and video encode/write stuff */ 6707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Filesystem functions */ 6737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileReadPointer* pOsaFileReadPtr; /**< OSAL file read functions, 6747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi to be provided by user */ 6757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileWriterPointer* pOsaFileWritPtr; /**< OSAL file write functions, 6767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi to be provided by user */ 6777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Interfaces of the used modules */ 6807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_MediaAndCodecCtxt ShellAPI; /**< Filesystem and shell reader, 6817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi decoder functions */ 6827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 6847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Sample Rate Convertor (SSRC) stuff (needed in case of mixing with != ASF/nb of channels) */ 6857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool b_SSRCneeded; /**< If true, SSRC is needed 6867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (!= ASF or nb of channels) */ 6877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8 ChannelConversion; /**< 1=Conversion from Mono to Stereo 6887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2=Stereo to Mono, 0=no conversion */ 6897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi SSRC_Instance_t SsrcInstance; /**< Context of the Ssrc */ 6907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi SSRC_Scratch_t* SsrcScratch; /**< Working memory of the Ssrc */ 6917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi short iSsrcNbSamplIn; /**< Number of sample the Ssrc needs as input */ 6927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi short iSsrcNbSamplOut; /**< Number of sample the Ssrc outputs */ 6937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pSsrcBufferIn; /**< Input of the SSRC */ 6947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pSsrcBufferOut; /**< Output of the SSRC */ 6957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pPosInSsrcBufferIn; /**< Position into the SSRC in buffer */ 6967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pPosInSsrcBufferOut;/**< Position into the SSRC out buffer */ 6977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pTempBuffer; /**< Temporary buffer */ 6987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pPosInTempBuffer; /**< Position in temporary buffer */ 6997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 minimumBufferIn; /**< Minimum amount of decoded data to be 7007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi processed by SSRC and channel 7017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi convertor */ 7027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool b_DuckingNeedeed; 7037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 InDucking_threshold; /**< Threshold value at which background 7047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi music shall duck */ 7057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Float InDucking_lowVolume; /**< lower the background track to this 7067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi factor and increase the primary 7077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi track to inverse of this factor */ 7087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Float lowVolume; 7097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 audioVolumeArray[WINDOW_SIZE]; // store peak audio vol. level 7107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi // for duration for WINDOW_SIZE 7117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 audVolArrIndex; 7127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Float duckingFactor ; /**< multiply by this factor to bring 7137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi FADE IN/FADE OUT effect */ 7147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Float fBTVolLevel; 7157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Float fPTVolLevel; 7167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bDoDucking; 7177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bLoop; 7187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bNoLooping; 719100d01836041713337dd9532e417fb010bfb381cBasavapatna Dattaguru M4OSA_Context pLVAudioResampler; 7207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bjumpflag; 7217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_InternalAudioMixingContext; 7237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 7267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 7277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VSS3GPP_InternalExtractPictureContext 7287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the extract picture VSS context (private) 7297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure is used for all VSS picture extractions to store the context 7307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 7317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 7327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 7337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 7347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 7357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * VSS main variables */ 7367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ExtractPictureState State; /**< VSS extract pictureinternal state */ 7377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 7397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Input files */ 7407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipSettings ClipSettings; /**< Structure internally used to 7417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi manage the input 3FPP settings */ 7427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VSS3GPP_ClipContext* pInputClipCtxt; /**< Context of the input 3GPP clip */ 7437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 7457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Settings */ 7467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iExtractCts; /**< [Milliseconds] Cts of the AU 7477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi to be extracted */ 7487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 7507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Video stuff */ 7517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane decPlanes[3]; /**< Decoded YUV420 picture plane */ 7527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiVideoWidth; /**< Decoded image width */ 7537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiVideoHeight; /**< Decoded image height */ 7547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* 7567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Decoder info */ 7577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iDecCts; /**< [Milliseconds] Decoded AU Cts */ 7587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bJumpFlag; /**< 1 if a jump has been made */ 7597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iDeltaTime; /**< [Milliseconds] Time between previous RAP and 7607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi picture to extract */ 7617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Int32 iGap; /**< [Milliseconds] Time between jump AU and 7627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi extraction time */ 7637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 uiStep; /**< [Milliseconds] Progress bar time increment */ 7647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 7667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Filesystem functions */ 7677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< OSAL file read functions, to be provided by user */ 7687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileReadPointer* pOsaFileReadPtr; 7697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< OSAL file write functions, to be provided by user */ 7707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileWriterPointer* pOsaFileWritPtr; 7717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool bClipOpened; 7737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_InternalExtractPictureContext; 7747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 7777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 7787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 7797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __M4VSS3GPP_INTERNALTYPES_H__ */ 7817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 782