summaryrefslogtreecommitdiffstats
path: root/libvideoeditor/vss/inc/M4VSS3GPP_API.h
diff options
context:
space:
mode:
Diffstat (limited to 'libvideoeditor/vss/inc/M4VSS3GPP_API.h')
-rwxr-xr-xlibvideoeditor/vss/inc/M4VSS3GPP_API.h819
1 files changed, 0 insertions, 819 deletions
diff --git a/libvideoeditor/vss/inc/M4VSS3GPP_API.h b/libvideoeditor/vss/inc/M4VSS3GPP_API.h
deleted file mode 100755
index 0bb7141..0000000
--- a/libvideoeditor/vss/inc/M4VSS3GPP_API.h
+++ /dev/null
@@ -1,819 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __M4VSS3GPP_API_H__
-#define __M4VSS3GPP_API_H__
-
-/**
- ******************************************************************************
- * @file M4VSS3GPP_API.h
- * @brief Video Studio Service 3GPP public API.
- * @note VSS allows editing 3GPP files.
- * It is a straightforward and fully synchronous API.
- ******************************************************************************
- */
-
-/**
- * OSAL basic types and errors */
-#include "M4OSA_Types.h"
-#include "M4OSA_Error.h"
-
-/**
- * OSAL types for file access */
-#include "M4OSA_FileReader.h"
-#include "M4OSA_FileWriter.h"
-
-/**
- * Definition of M4_VersionInfo */
-#include "M4TOOL_VersionInfo.h"
-
-/**
- * Image planes definition */
-#include "M4VIFI_FiltersAPI.h"
-
-/**
- * Common definitions of video editing components */
-#include "M4_VideoEditingCommon.h"
-#include "M4ENCODER_AudioCommon.h"
-#include "M4AD_Common.h"
-#include "M4DA_Types.h"
-
-/**
- * Extended API (xVSS) */
-#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
-#include "M4VSS3GPP_Extended_API.h"
-#endif
-
-//#include "M4VD_HW_API.h"
-//#include "M4VE_API.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-/**
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- *
- * Edition Feature
- *
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- */
-
-/**
- * Public type of the VSS edit context */
-typedef M4OSA_Void* M4VSS3GPP_EditContext;
-
-
-/**
- ******************************************************************************
- * enum M4VSS3GPP_VideoEffectType
- * @brief This enumeration defines the video effect types of the VSS3GPP
- ******************************************************************************
- */
-typedef enum
-{
- M4VSS3GPP_kVideoEffectType_None = 0, /**< No video effect */
- M4VSS3GPP_kVideoEffectType_FadeFromBlack = 8, /**< Intended for begin effect */
- M4VSS3GPP_kVideoEffectType_FadeToBlack = 16, /**< Intended for end effect */
- M4VSS3GPP_kVideoEffectType_External = 256 /**< External effect function is used */
- /* reserved 256 + n */ /**< External effect number n */
-
-} M4VSS3GPP_VideoEffectType;
-
-
-/**
- ******************************************************************************
- * enum M4VSS3GPP_AudioEffectType
- * @brief This enumeration defines the audio effect types of the VSS3GPP
- ******************************************************************************
- */
-typedef enum
-{
- M4VSS3GPP_kAudioEffectType_None = 0,
- M4VSS3GPP_kAudioEffectType_FadeIn = 8, /**< Intended for begin effect */
- M4VSS3GPP_kAudioEffectType_FadeOut = 16 /**< Intended for end effect */
-
-} M4VSS3GPP_AudioEffectType;
-
-
-/**
- ******************************************************************************
- * enum M4VSS3GPP_VideoTransitionType
- * @brief This enumeration defines the video effect that can be applied during a transition.
- ******************************************************************************
- */
-typedef enum
-{
- M4VSS3GPP_kVideoTransitionType_None = 0,
- M4VSS3GPP_kVideoTransitionType_CrossFade = 1,
- M4VSS3GPP_kVideoTransitionType_External = 256
- /* reserved 256 + n */ /**< External transition number n */
-
-} M4VSS3GPP_VideoTransitionType;
-
-
-/**
- ******************************************************************************
- * enum M4VSS3GPP_AudioTransitionType
- * @brief This enumeration defines the audio effect that can be applied during a transition.
- ******************************************************************************
- */
-typedef enum
-{
- M4VSS3GPP_kAudioTransitionType_None = 0,
- M4VSS3GPP_kAudioTransitionType_CrossFade
-
-} M4VSS3GPP_AudioTransitionType;
-
-
-/**
- ******************************************************************************
- * struct M4VSS3GPP_ExternalProgress
- * @brief This structure contains information provided to the external Effect
- * and Transition functions
- * @note The uiProgress value should be enough for most cases
- ******************************************************************************
- */
-typedef struct
-{
- /**< Progress of the Effect or the Transition, from 0 to 1000 (one thousand) */
- M4OSA_UInt32 uiProgress;
- /**< Index of the current clip (first clip in case of a Transition), from 0 to N */
- //M4OSA_UInt8 uiCurrentClip;
- /**< Current time, in milliseconds, in the current clip time-line */
- M4OSA_UInt32 uiClipTime;
- /**< Current time, in milliseconds, in the output clip time-line */
- M4OSA_UInt32 uiOutputTime;
- M4OSA_Bool bIsLast;
-
-} M4VSS3GPP_ExternalProgress;
-
-
-/**
- ************************************************************************
- * enum M4VSS3GPP_codecType
- * @brief This enum defines the codec types used to create interfaces
- * @note This enum is used internally by the VSS3GPP services to identify
- * a currently supported codec interface. Each codec is
- * registered with one of this type associated.
- * When a codec instance is needed, this type is used to
- * identify and retrieve its interface.
- * This can be extended for other codecs.
- ************************************************************************
- */
-typedef enum
-{
- /* Video Decoder Types */
- M4VSS3GPP_kVideoDecMPEG4 = 0,
- M4VSS3GPP_kVideoDecH264,
-
- /* Video Encoder Types */
- M4VSS3GPP_kVideoEncMPEG4,
- M4VSS3GPP_kVideoEncH263,
- M4VSS3GPP_kVideoEncH264,
-
- /* Audio Decoder Types */
- M4VSS3GPP_kAudioDecAMRNB,
- M4VSS3GPP_kAudioDecAAC,
- M4VSS3GPP_kAudioDecMP3,
-
- /* Audio Encoder Types */
- M4VSS3GPP_kAudioEncAMRNB,
- M4VSS3GPP_kAudioEncAAC,
-
- /* number of codecs, keep it as last enum entry, before invlaid type */
- M4VSS3GPP_kCodecType_NB,
- /* invalid codec type */
- M4VSS3GPP_kCodecTypeInvalid = 255
-
-} M4VSS3GPP_codecType;
-
-
-/**
- ******************************************************************************
- * prototype M4VSS3GPP_editVideoEffectFct
- * @brief Begin and End video effect functions implemented by the integrator
- * must match this prototype.
- * @note The function is provided with the original image of the clip.
- * It must apply the video effect to build the output image.
- * The progress of the effect is given, on a scale from 0 to 1000.
- * When the effect function is called, all the image plane structures
- * and buffers are valid and owned by the VSS 3GPP.
- *
- * @param pFunctionContext (IN) The function context, previously set by the integrator
- * @param pInputPlanes (IN) Input YUV420 image: pointer to an array of three valid
- image planes (Y, U and V)
- * @param pOutputPlanes (IN/OUT) Output (filtered) YUV420 image: pointer to an array
- of three valid image planes (Y, U and V)
- * @param pProgress (IN) Set of information about the video transition progress.
- * @param uiExternalEffectId (IN) Which effect function should be used (for external effects)
- *
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-typedef M4OSA_ERR (*M4VSS3GPP_editVideoEffectFct)
-(
- M4OSA_Void *pFunctionContext,
- M4VIFI_ImagePlane *pInputPlanes,
- M4VIFI_ImagePlane *pOutputPlanes,
- M4VSS3GPP_ExternalProgress *pProgress,
- M4OSA_UInt32 uiExternalEffectId
-);
-
-
-/**
- ******************************************************************************
- * prototype M4VSS3GPP_editVideoTransitionFct
- * @brief External transition functions implemented by the integrator
- * must match this prototype.
- * @note The function is provided with the image of the first clip and
- * the image of the second clip. It must build the output image
- * from the two input images.
- * The progress of the transition is given, on a scale from 0 to 1000.
- * When the external function is called, all the image plane
- * structures and buffers are valid and owned by the VSS 3GPP.
- *
- * @param pFunctionContext (IN) The function context, previously set by the integrator
- * @param pClip1InputPlanes (IN) First input YUV420 image: pointer to an array of three
- valid image planes (Y, U and V)
- * @param pClip2InputPlanes (IN) Second input YUV420 image: pointer to an array of three
- valid image planes (Y, U and V)
- * @param pOutputPlanes (IN/OUT) Output (filtered) YUV420 image: pointer to an array
- of three valid image planes (Y, U and V)
- * @param pProgress (IN) Set of information about the video effect progress.
- * @param uiExternalTransitionId (IN) Which transition function should be used
- (for external transitions)
- *
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-typedef M4OSA_ERR (*M4VSS3GPP_editVideoTransitionFct)
-(
- M4OSA_Void *pFunctionContext,
- M4VIFI_ImagePlane *pClip1InputPlanes,
- M4VIFI_ImagePlane *pClip2InputPlanes,
- M4VIFI_ImagePlane *pOutputPlanes,
- M4VSS3GPP_ExternalProgress *pProgress,
- M4OSA_UInt32 uiExternalTransitionId
-);
-
-
-/**
- ******************************************************************************
- * struct M4VSS3GPP_EffectSettings
- * @brief This structure defines an audio/video effect for the edition.
- * @note Effect start time is relative to output clip.
- ******************************************************************************
- */
-typedef struct
-{
- M4OSA_UInt32 uiStartTime; /**< In ms */
- M4OSA_UInt32 uiDuration; /**< In ms */
- M4VSS3GPP_VideoEffectType VideoEffectType; /**< None, FadeIn, FadeOut, etc. */
- M4VSS3GPP_editVideoEffectFct ExtVideoEffectFct; /**< External effect function */
- M4OSA_Void *pExtVideoEffectFctCtxt;/**< Context given to the external
- effect function */
- M4VSS3GPP_AudioEffectType AudioEffectType; /**< None, FadeIn, FadeOut */
-
-#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
- M4xVSS_EffectSettings xVSS;
-#endif
-
-} M4VSS3GPP_EffectSettings;
-
-
-/**
- ******************************************************************************
- * enum M4VSS3GPP_TransitionBehaviour
- * @brief Transition behavior
- ******************************************************************************
- */
-typedef enum
-{
- M4VSS3GPP_TransitionBehaviour_SpeedUp = 0,
- M4VSS3GPP_TransitionBehaviour_Linear,
- M4VSS3GPP_TransitionBehaviour_SpeedDown,
- M4VSS3GPP_TransitionBehaviour_SlowMiddle,
- M4VSS3GPP_TransitionBehaviour_FastMiddle
-} M4VSS3GPP_TransitionBehaviour;
-
-
-/**
- ******************************************************************************
- * struct M4VSS3GPP_TransitionSettings
- * @brief This structure defines the transition to be applied when assembling two clips.
- ******************************************************************************
- */
-typedef struct
-{
- /**< Duration of the transition, in milliseconds (set to 0 to get no transition) */
- M4OSA_UInt32 uiTransitionDuration;
-
- /**< Type of the video transition */
- M4VSS3GPP_VideoTransitionType VideoTransitionType;
-
- /**< External transition video effect function */
- M4VSS3GPP_editVideoTransitionFct ExtVideoTransitionFct;
-
- /**< Context of the external transition video effect function */
- M4OSA_Void *pExtVideoTransitionFctCtxt;
- M4VSS3GPP_AudioTransitionType AudioTransitionType; /**< Type of the audio transition */
- M4VSS3GPP_TransitionBehaviour TransitionBehaviour; /**<Transition behaviour*/
-
-#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
- M4xVSS_TransitionSettings xVSS;
-#endif
-
-} M4VSS3GPP_TransitionSettings;
-
-
-/**
- ******************************************************************************
- * struct M4VSS3GPP_ClipSettings
- * @brief This structure defines an input clip for the edition.
- * @note It also contains the settings for the cut and begin/end effects applied to the clip.
- ******************************************************************************
- */
-typedef struct
-{
- M4OSA_Void *pFile; /**< Clip file descriptor */
- M4VIDEOEDITING_FileType FileType; /**< .3gp, .amr, .mp3 */
- M4OSA_UInt32 filePathSize; /**< Clip path size
- (add because of UTF16 conversion)*/
- M4VIDEOEDITING_ClipProperties ClipProperties; /**< Clip analysis previously computed
- with M4VSS3GPP_editAnalyseClip */
- M4OSA_UInt32 uiBeginCutTime; /**< Begin cut time, in milliseconds */
- M4OSA_UInt32 uiEndCutTime; /**< End cut time, in milliseconds */
- M4OSA_Bool bTranscodingRequired;
-
-#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
- M4xVSS_ClipSettings xVSS;
-#endif
-
-} M4VSS3GPP_ClipSettings;
-
-
-/**
- ******************************************************************************
- * struct M4VSS3GPP_EditSettings
- * @brief This structure gathers all the information needed to define a complete
- * edition operation
- ******************************************************************************
- */
-typedef struct
-{
- /**< Number of element of the clip list pClipList */
- M4OSA_UInt8 uiClipNumber;
- /**< The properties of this clip will be used as a reference for compatibility checking */
- M4OSA_UInt8 uiMasterClip;
- /**< List of the input clips settings. Pointer to an array of uiClipNumber
- clip settings pointers */
- M4VSS3GPP_ClipSettings **pClipList;
- /**< List of the transition settings. Pointer to an array of uiClipNumber-1
- transition settings pointers */
- M4VSS3GPP_TransitionSettings **pTransitionList;
- M4VSS3GPP_EffectSettings *Effects; /**< List of effects */
- M4OSA_UInt8 nbEffects; /**< Number of effects in the above list */
- /**< Frame rate at which the modified video sections will be encoded */
- M4VIDEOEDITING_VideoFramerate videoFrameRate;
- M4OSA_Void *pOutputFile; /**< Output 3GPP clip file descriptor */
- M4OSA_UInt32 uiOutputPathSize; /**< Output file path size*/
- /**< Temporary file to store metadata ("moov.bin") */
- M4OSA_Void *pTemporaryFile;
-
-#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
- M4xVSS_EditSettings xVSS;
-#endif
- M4OSA_Float PTVolLevel;
-} M4VSS3GPP_EditSettings;
-
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editAnalyseClip()
- * @brief This function allows checking if a clip is compatible with VSS 3GPP editing
- * @note It also fills a ClipAnalysis structure, which can be used to check if two
- * clips are compatible
- * @param pClip (IN) File descriptor of the input 3GPP/MP3 clip file.
- * @param pClipProperties (IN) Pointer to a valid ClipProperties structure.
- * @param FileType (IN) Type of the input file (.3gp, .amr, .mp3)
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL (debug only)
- * @return M4VSS3GPP_ERR_H263_PROFILE_NOT_SUPPORTED
- * @return M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_VERSION
- * @return M4VSS3GPP_ERR_AMR_EDITING_UNSUPPORTED
- * @return M4VSS3GPP_ERR_EDITING_UNSUPPORTED_H263_PROFILE
- * @return M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_PROFILE
- * @return M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_RVLC
- * @return M4VSS3GPP_ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT
- * @return M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_VIDEO_STREAM_IN_FILE
- * @return M4VSS3GPP_ERR_EDITING_UNSUPPORTED_AUDIO_FORMAT
- * @return M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_STREAM_IN_FILE
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editAnalyseClip(M4OSA_Void *pClip, M4VIDEOEDITING_FileType FileType,
- M4VIDEOEDITING_ClipProperties *pClipProperties,
- M4OSA_FileReadPointer *pFileReadPtrFct);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editCheckClipCompatibility()
- * @brief This function allows checking if two clips are compatible with each other
- * for VSS 3GPP editing assembly feature.
- * @note
- * @param pClip1Properties (IN) Clip analysis of the first clip
- * @param pClip2Properties (IN) Clip analysis of the second clip
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL (debug only)
- * @return M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_VERSION
- * @return M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM
- * @return M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FORMAT
- * @return M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FRAME_SIZE
- * @return M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_TIME_SCALE
- * @return M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_DATA_PARTITIONING
- * @return M4VSS3GPP_ERR_UNSUPPORTED_MP3_ASSEMBLY
- * @return M4VSS3GPP_ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editCheckClipCompatibility(M4VIDEOEDITING_ClipProperties *pClip1Properties,
- M4VIDEOEDITING_ClipProperties *pClip2Properties);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editInit()
- * @brief Initializes the VSS 3GPP edit operation (allocates an execution context).
- * @note
- * @param pContext (OUT) Pointer on the VSS 3GPP edit context to allocate
- * @param pFileReadPtrFct (IN) Pointer to OSAL file reader functions
- * @param pFileWritePtrFct (IN) Pointer to OSAL file writer functions
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL
- * @return M4ERR_ALLOC: There is no more available memory
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editInit(
- M4VSS3GPP_EditContext* pContext,
- M4OSA_FileReadPointer* pFileReadPtrFct,
- M4OSA_FileWriterPointer* pFileWritePtrFct );
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editCreateClipSettings()
- * @brief Allows filling a clip settings structure with default values
- *
- * @note WARNING: pClipSettings->pFile will be allocated in this function.
- *
- * @param pClipSettings (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
- * @param pFile (IN) Clip file name
- * @param filePathSize (IN) Size of the clip path (needed for UTF16 conversion)
- * @param nbEffects (IN) Nb of effect settings to allocate
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pClipSettings is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editCreateClipSettings(M4VSS3GPP_ClipSettings *pClipSettings,
- M4OSA_Void* pFile, M4OSA_UInt32 filePathSize,
- M4OSA_UInt8 nbEffects);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editDuplicateClipSettings()
- * @brief Duplicates a clip settings structure, performing allocations if required
- *
- * @param pClipSettingsDest (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
- * @param pClipSettingsOrig (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
- * @param bCopyEffects (IN) Flag to know if we have to duplicate effects (deprecated)
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pClipSettings is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editDuplicateClipSettings(M4VSS3GPP_ClipSettings *pClipSettingsDest,
- M4VSS3GPP_ClipSettings *pClipSettingsOrig,
- M4OSA_Bool bCopyEffects);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editFreeClipSettings()
- * @brief Free the pointers allocated in the ClipSetting structure (pFile, Effects).
- *
- * @param pClipSettings (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pClipSettings is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editFreeClipSettings(M4VSS3GPP_ClipSettings *pClipSettings);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editOpen()
- * @brief Set the VSS 3GPP input and output files, and set the settings.
- * @note
- * @param pContext (IN) VSS 3GPP edit context
- * @param pSettings (IN) Edit settings
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL (debug only)
- * @return M4ERR_STATE: VSS is not in an appropriate state for this function to be called
- * @return M4ERR_ALLOC: There is no more available memory
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editOpen(M4VSS3GPP_EditContext pContext, M4VSS3GPP_EditSettings *pSettings);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editStep()
- * @brief Perform one step of editing.
- * @note
- * @param pContext (IN) VSS 3GPP edit context
- * @param pProgress (OUT) Progress percentage (0 to 100) of the editing operation
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pContext is M4OSA_NULL (debug only)
- * @return M4ERR_STATE: VSS 3GPP is not in an appropriate state for this function to
- * be called
- * @return M4VSS3GPP_WAR_EDITING_DONE:Edition is done, user should now call M4VSS3GPP_editClose()
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editStep(M4VSS3GPP_EditContext pContext, M4OSA_UInt8 *pProgress);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editClose()
- * @brief Finish the VSS 3GPP edit operation.
- * @note The output 3GPP file is ready to be played after this call
- * @param pContext (IN) VSS 3GPP edit context
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pContext is M4OSA_NULL (debug only)
- * @return M4ERR_STATE: VSS 3GPP is not in an appropriate state for this function
- * to be called
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editClose(M4VSS3GPP_EditContext pContext);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_editCleanUp()
- * @brief Free all resources used by the VSS 3GPP edit operation.
- * @note The context is no more valid after this call
- * @param pContext (IN) VSS 3GPP edit context
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pContext is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_editCleanUp(M4VSS3GPP_EditContext pContext);
-
-/**
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- *
- * Audio Mixing Feature
- *
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- */
-/**
- * Public type of the VSS audio mixing context */
-typedef M4OSA_Void* M4VSS3GPP_AudioMixingContext;
-
-
-/**
- ******************************************************************************
- * struct M4VSS3GPP_AudioMixingSettings
- * @brief This structure defines the settings of the audio mixing operation.
- ******************************************************************************
- */
-typedef struct {
- M4OSA_Void* pOriginalClipFile; /**< Input 3GPP clip file */
- M4OSA_Void* pAddedAudioTrackFile; /**< New audio track */
- M4VIDEOEDITING_FileType AddedAudioFileType; /**< File Format of the new audio file */
- M4OSA_UInt32 uiAddCts; /**< Time, in milliseconds,
- at which the added audio track is inserted */
- M4OSA_UInt32 uiAddVolume; /**< Volume, in percentage,
- of the added audio track */
- M4OSA_UInt32 uiBeginLoop; /**< Describes in milli-second the
- start time of the loop */
- M4OSA_UInt32 uiEndLoop; /**< Describes in milli-second the end
- time of the loop (0 means no loop) */
- M4OSA_Bool bRemoveOriginal; /**< If true, the original audio track
- is not taken into account */
- M4OSA_Void* pOutputClipFile; /**< Output 3GPP clip file */
- M4OSA_Void* pTemporaryFile; /**< Temporary file to store metadata
- ("moov.bin") */
- /**< The following parameters are optionnal. They are just used in case of MP3 replacement. */
- M4VIDEOEDITING_AudioSamplingFrequency outputASF; /**< Output sampling frequency */
- M4VIDEOEDITING_AudioFormat outputAudioFormat; /**< Output audio codec(AAC/AMR)*/
- M4VIDEOEDITING_Bitrate outputAudioBitrate; /**< Output audio bitrate */
- M4OSA_UInt8 outputNBChannels; /**< Output audio nb of channels */
- M4OSA_Bool b_DuckingNeedeed;
- M4OSA_Int32 InDucking_threshold;
- M4OSA_Float fBTVolLevel;
- M4OSA_Float fPTVolLevel;
- M4OSA_Float InDucking_lowVolume;
- M4OSA_Bool bLoop;
- M4OSA_UInt32 uiSamplingFrequency;
- M4OSA_UInt32 uiNumChannels;
-} M4VSS3GPP_AudioMixingSettings;
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_audioMixingInit(M4VSS3GPP_AudioMixingContext* pContext,
- * M4VSS3GPP_AudioMixingSettings* pSettings)
- * @brief Initializes the VSS audio mixing operation (allocates an execution context).
- * @note
- * @param pContext (OUT) Pointer on the VSS audio mixing context to allocate
- * @param pSettings (IN) Pointer to valid audio mixing settings
- * @param pFileReadPtrFct (IN) Pointer to OSAL file reader functions
- * @param pFileWritePtrFct (IN) Pointer to OSAL file writer functions
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL (debug only)
- * @return M4ERR_ALLOC: There is no more available memory
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_audioMixingInit(
- M4VSS3GPP_AudioMixingContext* pContext,
- M4VSS3GPP_AudioMixingSettings* pSettings,
- M4OSA_FileReadPointer* pFileReadPtrFct,
- M4OSA_FileWriterPointer* pFileWritePtrFct );
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_audioMixingStep()
- * @brief Perform one step of audio mixing.
- * @note
- * @param pContext (IN) VSS 3GPP audio mixing context
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pContext is M4OSA_NULL (debug only)
- * @param pProgress (OUT) Progress percentage (0 to 100)
- of the finalization operation
- * @return M4ERR_STATE: VSS is not in an appropriate state for
- this function to be called
- * @return M4VSS3GPP_WAR_END_OF_AUDIO_MIXING: Audio mixing is over, user should
- now call M4VSS3GPP_audioMixingCleanUp()
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_audioMixingStep(M4VSS3GPP_AudioMixingContext pContext,
- M4OSA_UInt8 *pProgress);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_audioMixingCleanUp()
- * @brief Free all resources used by the VSS audio mixing operation.
- * @note The context is no more valid after this call
- * @param pContext (IN) VSS 3GPP audio mixing context
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pContext is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_audioMixingCleanUp(M4VSS3GPP_AudioMixingContext pContext);
-
-
-/**
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- *
- * Extract Picture Feature
- *
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- */
-/**
- * Public type of the VSS extract picture context */
-typedef M4OSA_Void* M4VSS3GPP_ExtractPictureContext;
-
-/**
- ******************************************************************************
- * struct M4VSS3GPP_ExtractPictureSettings
- * @brief This structure defines the settings of the extract picture audio operation.
- ******************************************************************************
- */
-typedef struct {
- M4OSA_Void* pInputClipFile; /**< Input 3GPP clip file */
- M4OSA_Int32 iExtractionTime; /**< frame time (in ms) to be extracted */
- M4OSA_Void* pOutputYuvPic; /**< Output YUV picture name */
-} M4VSS3GPP_ExtractPictureSettings;
-
-
-/******************************************************************************
- * M4OSA_ERR M4VSS3GPP_extractPictureInit()
- * @brief Initializes the VSS extract picture operation (allocates an execution context).
- * @note
- * @param pContext (OUT) Pointer on the VSS extract picture context to allocate
- * @param pSettings (IN) Pointer to valid extract picture settings
- * @param pWidth (OUT) video stream width
- * @param pHeight (OUT) video stream height
- * @param pFileReadPtrFct (IN) Pointer to OSAL file reader functions
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: At least one parameter is M4OSA_NULL (debug only)
- * @return M4ERR_ALLOC: There is no more available memory
- * @return M4VSS3GPP_ERR_INVALID_CLIP1: The input clip is empty
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_extractPictureInit(
- M4VSS3GPP_ExtractPictureContext* pContext,
- M4VSS3GPP_ExtractPictureSettings* pSettings,
- M4OSA_UInt32 *pWidth,
- M4OSA_UInt32 *pHeight,
- M4OSA_FileReadPointer* pFileReadPtrFct );
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_extractPictureStep()
- * @brief Perform one step of picture extraction.
- * @note
- * @param pContext (IN) VSS extract picture context
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pContext is M4OSA_NULL (debug only)
- * @param pDecPlanes (OUT) Plane in wich the extracted picture is copied
- * @param pProgress (OUT) Progress percentage (0 to 100)
- of the picture extraction
- * @return M4ERR_STATE: VSS is not in an appropriate state for this
- function to be called
- * @return VSS_WAR_END_OF_EXTRACT_PICTURE: Picture extraction is over, user should now
- call M4VSS3GPP_extractPictureCleanUp()
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_extractPictureStep(M4VSS3GPP_ExtractPictureContext pContext,
- M4VIFI_ImagePlane *pDecPlanes, M4OSA_UInt8 *pProgress);
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_extractPictureCleanUp()
- * @brief Free all resources used by the VSS picture extraction.
- * @note The context is no more valid after this call
- * @param pContext (IN) VSS extract picture context
- * @return M4NO_ERROR: No error
- * @return M4ERR_PARAMETER: pContext is M4OSA_NULL (debug only)
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_extractPictureCleanUp(M4VSS3GPP_ExtractPictureContext pContext);
-
-/**
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- *
- * Common features
- *
- ******************************************************************************
- ******************************************************************************
- ******************************************************************************
- */
-
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_GetVersion()
- * @brief Get the VSS version.
- * @note Can be called anytime. Do not need any context.
- * @param pVersionInfo (OUT) Pointer to a version info structure
- * @return M4NO_ERROR: No error
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_GetVersion(M4_VersionInfo* pVersionInfo);
-
-
-#ifdef WIN32
-/**
- ******************************************************************************
- * M4OSA_ERR M4VSS3GPP_GetErrorMessage()
- * @brief Return a string describing the given error code
- * @note The input string must be already allocated (and long enough!)
- * @param err (IN) Error code to get the description from
- * @param sMessage (IN/OUT) Allocated string in which the description will be copied
- * @return M4NO_ERROR: Input error is from the VSS3GPP module
- * @return M4ERR_PARAMETER:Input error is not from the VSS3GPP module
- ******************************************************************************
- */
-M4OSA_ERR M4VSS3GPP_GetErrorMessage(M4OSA_ERR err, M4OSA_Char* sMessage);
-#endif /**< WIN32 */
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* __M4VSS3GPP_API_H__ */
-