1cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi/* 2cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 3cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * 4cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 5cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * you may not use this file except in compliance with the License. 6cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * You may obtain a copy of the License at 7cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * 8cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 9cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * 10cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 11cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 12cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * See the License for the specific language governing permissions and 14cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi * limitations under the License. 15cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi */ 16cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 17cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#ifndef __VIDEO_EDITOR_API_H__ 18cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#define __VIDEO_EDITOR_API_H__ 19cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 20cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#include "M4OSA_Types.h" 21cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 22cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargitypedef enum 23cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 24c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi MSG_TYPE_PROGRESS_INDICATION, // Playback progress indication event 25c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi MSG_TYPE_PLAYER_ERROR, // Playback error 26c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi MSG_TYPE_PREVIEW_END, // Preview of clips is complete 27c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi MSG_TYPE_OVERLAY_UPDATE, // update overlay during preview 28c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi MSG_TYPE_OVERLAY_CLEAR, // clear the overlay 29cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} progress_callback_msg_type; 30cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 31c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargitypedef struct { 32c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi int overlaySettingsIndex; 33c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi int clipIndex; 34c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi} VideoEditorCurretEditInfo; 35c16ccc1c5a6293136ae9bd4756dc2f57914a2020Dharmaray Kundargi 36cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargitypedef struct 37cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 38cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Void *pFile; /** PCM file path */ 39cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Bool bRemoveOriginal; /** If true, the original audio track 40cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi is not taken into account */ 41cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiNbChannels; /** Number of channels (1=mono, 2=stereo) of BGM clip*/ 42cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiSamplingFrequency; /** Sampling audio frequency (8000 for amr, 16000 or 43cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi more for aac) of BGM clip*/ 44cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiExtendedSamplingFrequency; /** Extended frequency for AAC+, 45cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi eAAC+ streams of BGM clip*/ 46cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiAddCts; /** Time, in milliseconds, at which the added 47cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi audio track is inserted */ 48cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiAddVolume; /** Volume, in percentage, of the added audio track */ 49cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 beginCutMs; 50cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 endCutMs; 51cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Int32 fileType; 52cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Bool bLoop; /** Looping on/off **/ 53cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi /* Audio ducking */ 54cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiInDucking_threshold; /** Threshold value at which 55cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi background music shall duck */ 56cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiInDucking_lowVolume; /** lower the background track to 57cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi this factor of current level */ 58cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Bool bInDucking_enable; /** enable ducking */ 59cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiBTChannelCount; /** channel count for BT */ 60cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Void *pPCMFilePath; 61cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} M4xVSS_AudioMixingSettings; 62cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 63cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargitypedef struct 64cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi{ 65cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Void *pBuffer; /* YUV420 buffer of frame to be rendered*/ 66cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 timeMs; /* time stamp of the frame to be rendered*/ 67cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiSurfaceWidth; /* Surface display width*/ 68cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiSurfaceHeight; /* Surface display height*/ 69cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiFrameWidth; /* Frame width*/ 70cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 uiFrameHeight; /* Frame height*/ 71cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_Bool bApplyEffect; /* Apply video effects before render*/ 72cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 clipBeginCutTime; /* Clip begin cut time relative to storyboard */ 73cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi M4OSA_UInt32 clipEndCutTime; /* Clip end cut time relative to storyboard */ 74c847b1a89df94dbff4c2f557f8c042ead5398c3fRajneesh Chowdury M4OSA_UInt32 videoRotationDegree; /* Video rotation degree */ 75cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi 76cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi} VideoEditor_renderPreviewFrameStr; 77cd196d3727db641e581d4223815367a5ca5d5637Dharmaray Kundargi#endif /*__VIDEO_EDITOR_API_H__*/ 78