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#ifndef __M4VSS3GPP_EXTENDED_API_H__
187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4VSS3GPP_EXTENDED_API_H__
197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file    M4VSS3GPP_Extended_API.h
237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    API of xVSS
247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_EXTENDED_FEATURES
297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#error "*** the flag M4VSS_SUPPORT_EXTENDED_FEATURES should be activated in CompilerSwitches\
307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi             for VideoStudio ***"
317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * prototype    M4xVSS_getTextRgbBufferFct
367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief        External text to RGB buffer functions implemented by the integrator
377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                must match this prototype.
387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note        The function is provided with the renderingData, the text buffer and
397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                its size. It must build the output RGB image plane containing the text.
407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pRenderingData    (IN) The data given by the user in M4xVSS_EffectSettings
427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pTextBuffer        (IN) Text buffer given by the user in M4xVSS_EffectSettings
437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    textBufferSize    (IN) Text buffer size given by the user in M4xVSS_EffectSettings
447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pOutputPlane    (IN/OUT) Output RGB565 image
457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (*M4xVSS_getTextRgbBufferFct)
507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi(
517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void *pRenderingData,
527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void *pTextBuffer,
537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32 textBufferSize,
547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIFI_ImagePlane **pOutputPlane
557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi);
567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct    M4xVSS_BGMSettings
607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    This structure gathers all the information needed to add Background music to 3gp file
617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                  *pFile;         /**< Input file path */
667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_FileType     FileType;       /**< .3gp, .amr, .mp3     */
677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                uiAddCts;       /**< Time, in milliseconds, at which the added
687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                      audio track is inserted */
697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                uiAddVolume;     /**< Volume, in percentage, of the added audio track */
707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                uiBeginLoop;    /**< Describes in milli-second the start time
717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                     of the loop */
727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                uiEndLoop;      /**< Describes in milli-second the end time of the
737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                     loop (0 means no loop) */
747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                  b_DuckingNeedeed;
757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Int32                 InDucking_threshold;  /**< Threshold value at which background
767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            music shall duck */
777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Float                 lowVolume;       /**< lower the background track to this factor
787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                 and increase the primary track to inverse of this factor */
797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                  bLoop;
807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                uiSamplingFrequency;
817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                uiNumChannels;
827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_BGMSettings;
837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum     M4VSS3GPP_VideoEffectType
887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This enumeration defines the video effect types of the VSS3GPP
897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kRGB888           = 0,  /**< RGB888 data type */
947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kRGB565           = 1  /**< RGB565 data type */
957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_RGBType;
977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4xVSS_EffectSettings
1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines an audio/video effect for the edition.
1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< In percent of the cut clip duration */
1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               uiStartPercent;
1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< In percent of the ((clip duration) - (effect starttime)) */
1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               uiDurationPercent;
1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Framing file path (GIF/PNG file), used only if VideoEffectType == framing */
1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                 *pFramingFilePath;
1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Framing RGB565 buffer,  used only if VideoEffectType == framing */
1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIFI_ImagePlane          *pFramingBuffer;
1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**<RGB Buffer type,used only if VideoEffectType == framing */
1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_RGBType          rgbType;
1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< The top-left X coordinate in the output picture where the added frame will be displayed.
1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi     Used only if VideoEffectType == framing || VideoEffectType == text */
1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               topleft_x;
1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< The top-left Y coordinate in the output picture where the added frame will be displayed.
1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi     Used only if VideoEffectType == framing || VideoEffectType == text */
1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               topleft_y;
1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Does framing image is resized to output video size.
1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi     Used only if VideoEffectType == framing */
1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                 bResize;
1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_VideoFrameSize framingScaledSize;
1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**< Size to which the the framing file needs to be resized */
1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Text buffer. Used only if VideoEffectType == text */
1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                pTextBuffer;
1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Text buffer size. Used only if VideoEffectType == text */
1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               textBufferSize;
1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Pointer containing specific data used by the font engine (size, color...) */
1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                pRenderingData;
1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Text plane width. Used only if VideoEffectType == text */
1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               uiTextBufferWidth;
1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Text plane height. Used only if VideoEffectType == text */
1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               uiTextBufferHeight;
1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Processing rate of the effect added when using the Fifties effect */
1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32               uiFiftiesOutFrameRate;
1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< RGB16 input color of the effect added when using the rgb16 color effect */
1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt16               uiRgb16InputColor;
1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                uialphaBlendingStart;       /*Start percentage of Alpha blending*/
1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                uialphaBlendingMiddle;      /*Middle percentage of Alpha blending*/
1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                uialphaBlendingEnd;         /*End percentage of Alpha blending*/
1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                uialphaBlendingFadeInTime;  /*Duration, in percentage of
1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            effect duration, of the FadeIn phase*/
1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                uialphaBlendingFadeOutTime;   /*Duration, in percentage of effect
1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                duration, of the FadeOut phase*/
1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                width;   /*width of the ARGB8888 clip .
1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            Used only if video effect is framming */
1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                height; /*height of the ARGB8888 clip .
1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            Used only if video effect is framming */
1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_EffectSettings;
1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct    M4xVSS_AlphaMagicSettings
1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    This structure defines the alpha magic transition settings
1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*            pAlphaFilePath;        /**< Alpha file path (JPG file)  */
1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Int32            blendingPercent;    /**< Blending Percentage between 0 and 100 */
1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool             isreverse;            /**< direct effect or reverse */
1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /*To support ARGB8888 : get the width and height */
1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32            width;
1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32            height;
1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_AlphaMagicSettings;
1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum        M4xVSS_SlideTransition_Direction
1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Defines directions for the slide transition
1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum {
1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_SlideTransition_RightOutLeftIn,
1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_SlideTransition_LeftOutRightIn,
1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_SlideTransition_TopOutBottomIn,
1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_SlideTransition_BottomOutTopIn
1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_SlideTransition_Direction;
1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct    M4xVSS_AlphaMagicSettings
1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    This structure defines the slide transition settings
1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_SlideTransition_Direction direction; /* direction of the slide */
1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_SlideTransitionSettings;
1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4xVSS_TransitionSettings
2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines additional transition settings specific to
2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            xVSS, which are appended to the VSS3GPP transition settings
2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            structure.
2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* Anything xVSS-specific, but common to all transitions, would go here,
2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    before the union. */
2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    union {
2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        /**< AlphaMagic settings, used only if VideoTransitionType ==
2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi            M4xVSS_kVideoTransitionType_AlphaMagic */
2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        M4xVSS_AlphaMagicSettings        *pAlphaMagicSettings;
2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        /* only in case of slide transition. */
2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        M4xVSS_SlideTransitionSettings    *pSlideTransitionSettings;
2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    } transitionSpecific;
2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_TransitionSettings;
2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum        M4xVSS_MediaRendering
2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    This enum defines different media rendering using exif orientation
2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_kResizing = 0,        /*The picture is resized, the aspect ratio can be different
2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    from the original one. All of the picture is rendered*/
2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_kCropping,            /*The picture is cropped, the aspect ratio is the same as
2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    the original one. The picture is not rendered entirely*/
2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_kBlackBorders        /*Black borders are rendered in order to keep the original
2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    aspect ratio. All the picture is rendered*/
2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_MediaRendering;
2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4xVSS_ClipSettings
2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines an input clip for the edition.
2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    It also contains the settings for the cut and begin/end effects applied to the clip.
2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                    uiBeginCutPercent;    /**< Begin cut time, in percent of clip
2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                duration (only for 3GPP clip !) */
2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                    uiEndCutPercent;    /**< End cut time, in percent of clip
2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                             duration (only for 3GPP clip !) */
2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                    uiDuration;            /**< Duration of the clip, if different
2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                from 0, has priority on
2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                uiEndCutTime or uiEndCutPercent */
2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                        isPanZoom;            /**< RC: Boolean used to know if the
2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                 pan and zoom mode is enabled */
2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt16                    PanZoomXa;            /**< RC */
2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt16                    PanZoomTopleftXa;    /**< RC */
2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt16                    PanZoomTopleftYa;    /**< RC */
2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt16                    PanZoomXb;            /**< RC */
2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt16                    PanZoomTopleftXb;    /**< RC */
2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt16                    PanZoomTopleftYb;    /**< RC */
2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_MediaRendering            MediaRendering;        /**< FB only used with JPEG: to crop,
2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                 resize, or render black borders*/
2637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_ClipSettings;
2657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4xVSS_EditSettings
2697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure gathers all the information needed to define a complete
2707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          edition operation
2717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
2747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output video size */
2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_VideoFrameSize             outputVideoSize;
2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output video format (MPEG4 / H263) */
2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_VideoFormat                outputVideoFormat;
2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output audio format (AAC, AMRNB ...) */
2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_AudioFormat                outputAudioFormat;
2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output audio sampling freq (8000Hz,...) */
2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_AudioSamplingFrequency     outputAudioSamplFreq;
2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Maximum output file size in BYTES (if set to 0, no limit */
2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                              outputFileSize;
2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Is output audio must be Mono ? Valid only for AAC */
2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                                bAudioMono;
2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output video bitrate*/
2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                              outputVideoBitrate;
2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output audio bitrate*/
2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                              outputAudioBitrate;
2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Background music track settings */
2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_BGMSettings                        *pBGMtrack;
2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Function pointer on text rendering engine, if not used, must be set to NULL !! */
2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_getTextRgbBufferFct                pTextRenderingFct;
2950a25bd5bacf5408ca205b15e53cfb6dc2fc1d171Rajneesh Chowdury    /** output video profile and level*/
2960a25bd5bacf5408ca205b15e53cfb6dc2fc1d171Rajneesh Chowdury    M4OSA_Int32   outputVideoProfile;
2970a25bd5bacf5408ca205b15e53cfb6dc2fc1d171Rajneesh Chowdury    M4OSA_Int32   outputVideoLevel;
2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4xVSS_EditSettings;
3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __M4VSS3GPP_EXTENDED_API_H__ */
3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
303