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