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_API_H__
187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4VSS3GPP_API_H__
197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file    M4VSS3GPP_API.h
237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Video Studio Service 3GPP public API.
247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    VSS allows editing 3GPP files.
257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          It is a straightforward and fully synchronous API.
267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *  OSAL basic types and errors */
317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Types.h"
327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Error.h"
337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *  OSAL types for file access */
367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileReader.h"
377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileWriter.h"
387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *  Definition of M4_VersionInfo */
417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4TOOL_VersionInfo.h"
427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Image planes definition */
457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4VIFI_FiltersAPI.h"
467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Common definitions of video editing components */
497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4_VideoEditingCommon.h"
507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4ENCODER_AudioCommon.h"
517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4AD_Common.h"
527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4DA_Types.h"
537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Extended API (xVSS) */
567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4VSS3GPP_Extended_API.h"
587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#include "M4VD_HW_API.h"
617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#include "M4VE_API.h"
627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" {
667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      Edition Feature
767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *  Public type of the VSS edit context */
847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_Void* M4VSS3GPP_EditContext;
857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum     M4VSS3GPP_VideoEffectType
907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This enumeration defines the video effect types of the VSS3GPP
917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoEffectType_None           = 0,  /**< No video effect */
967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoEffectType_FadeFromBlack  = 8,  /**< Intended for begin effect */
977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoEffectType_FadeToBlack    = 16, /**< Intended for end effect */
987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoEffectType_External       = 256 /**< External effect function is used */
997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* reserved 256 + n */                          /**< External effect number n */
1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_VideoEffectType;
1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum     M4VSS3GPP_AudioEffectType
1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This enumeration defines the audio effect types of the VSS3GPP
1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioEffectType_None    = 0,
1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioEffectType_FadeIn  = 8, /**< Intended for begin effect */
1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioEffectType_FadeOut = 16 /**< Intended for end effect */
1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_AudioEffectType;
1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum     M4VSS3GPP_VideoTransitionType
1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This enumeration defines the video effect that can be applied during a transition.
1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoTransitionType_None      = 0,
1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoTransitionType_CrossFade = 1,
1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoTransitionType_External  = 256
1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* reserved 256 + n */                          /**< External transition number n */
1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_VideoTransitionType;
1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum     M4VSS3GPP_AudioTransitionType
1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This enumeration defines the audio effect that can be applied during a transition.
1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioTransitionType_None = 0,
1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioTransitionType_CrossFade
1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_AudioTransitionType;
1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4VSS3GPP_ExternalProgress
1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure contains information provided to the external Effect
1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          and Transition functions
1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The uiProgress value should be enough for most cases
1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Progress of the Effect or the Transition, from 0 to 1000 (one thousand) */
1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32    uiProgress;
1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Index of the current clip (first clip in case of a Transition), from 0 to N */
1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    //M4OSA_UInt8     uiCurrentClip;
1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Current time, in milliseconds, in the current clip time-line */
1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32    uiClipTime;
1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Current time, in milliseconds, in the output clip time-line */
1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32    uiOutputTime;
1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool        bIsLast;
1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_ExternalProgress;
1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum     M4VSS3GPP_codecType
1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    This enum defines the codec types used to create interfaces
1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    This enum is used internally by the VSS3GPP services to identify
1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             a currently supported codec interface. Each codec is
1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            registered with one of this type associated.
1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            When a codec instance is needed, this type is used to
1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            identify and retrieve its interface.
1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            This can be extended for other codecs.
1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* Video Decoder Types */
1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoDecMPEG4 = 0,
1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoDecH264,
1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* Video Encoder Types */
1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoEncMPEG4,
1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoEncH263,
1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kVideoEncH264,
1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* Audio Decoder Types */
1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioDecAMRNB,
1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioDecAAC,
1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioDecMP3,
1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* Audio Encoder Types */
2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioEncAMRNB,
2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kAudioEncAAC,
2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* number of codecs, keep it as last enum entry, before invlaid type */
2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kCodecType_NB,
2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /* invalid codec type */
2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_kCodecTypeInvalid = 255
2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_codecType;
2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * prototype    M4VSS3GPP_editVideoEffectFct
2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief       Begin and End video effect functions implemented by the integrator
2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              must match this prototype.
2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note        The function is provided with the original image of the clip.
2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              It must apply the video effect to build the output image.
2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              The progress of the effect is given, on a scale from 0 to 1000.
2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              When the effect function is called, all the image plane structures
2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              and buffers are valid and owned by the VSS 3GPP.
2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFunctionContext    (IN) The function context, previously set by the integrator
2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pInputPlanes        (IN) Input YUV420 image: pointer to an array of three valid
2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                     image planes (Y, U and V)
2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pOutputPlanes       (IN/OUT) Output (filtered) YUV420 image: pointer to an array
2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                         of three valid image planes (Y, U and V)
2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProgress           (IN) Set of information about the video transition progress.
2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   uiExternalEffectId  (IN) Which effect function should be used (for external effects)
2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (*M4VSS3GPP_editVideoEffectFct)
2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi(
2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void *pFunctionContext,
2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIFI_ImagePlane *pInputPlanes,
2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIFI_ImagePlane *pOutputPlanes,
2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_ExternalProgress *pProgress,
2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32 uiExternalEffectId
2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi);
2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * prototype    M4VSS3GPP_editVideoTransitionFct
2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief       External transition functions implemented by the integrator
2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              must match this prototype.
2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note        The function is provided with the image of the first clip and
2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              the image of the second clip. It must build the output image
2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              from the two input images.
2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              The progress of the transition is given, on a scale from 0 to 1000.
2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              When the external function is called, all the image plane
2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              structures and buffers are valid and owned by the VSS 3GPP.
2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFunctionContext    (IN) The function context, previously set by the integrator
2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pClip1InputPlanes   (IN) First input YUV420 image: pointer to an array of three
2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                     valid image planes (Y, U and V)
2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pClip2InputPlanes   (IN) Second input YUV420 image: pointer to an array of three
2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                     valid image planes (Y, U and V)
2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pOutputPlanes       (IN/OUT) Output (filtered) YUV420 image: pointer to an array
2637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                         of three valid image planes (Y, U and V)
2647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProgress           (IN) Set of information about the video effect progress.
2657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   uiExternalTransitionId    (IN) Which transition function should be used
2667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            (for external transitions)
2677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
2687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
2697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
2707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (*M4VSS3GPP_editVideoTransitionFct)
2737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi(
2747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void *pFunctionContext,
2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIFI_ImagePlane *pClip1InputPlanes,
2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIFI_ImagePlane *pClip2InputPlanes,
2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIFI_ImagePlane *pOutputPlanes,
2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_ExternalProgress *pProgress,
2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32 uiExternalTransitionId
2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi);
2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4VSS3GPP_EffectSettings
2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines an audio/video effect for the edition.
2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    Effect start time is relative to output clip.
2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                 uiStartTime;           /**< In ms */
2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                 uiDuration;            /**< In ms */
2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_VideoEffectType    VideoEffectType;       /**< None, FadeIn, FadeOut, etc. */
2957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_editVideoEffectFct ExtVideoEffectFct;     /**< External effect function */
2967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                  *pExtVideoEffectFctCtxt;/**< Context given to the external
2977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                             effect function */
2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_AudioEffectType    AudioEffectType;       /**< None, FadeIn, FadeOut */
2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_EffectSettings         xVSS;
3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
3037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_EffectSettings;
3057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum        M4VSS3GPP_TransitionBehaviour
3107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Transition behavior
3117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
3147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
3157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_TransitionBehaviour_SpeedUp = 0,
3167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_TransitionBehaviour_Linear,
3177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_TransitionBehaviour_SpeedDown,
3187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_TransitionBehaviour_SlowMiddle,
3197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_TransitionBehaviour_FastMiddle
3207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_TransitionBehaviour;
3217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4VSS3GPP_TransitionSettings
3267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines the transition to be applied when assembling two clips.
3277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
3307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
3317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Duration of the transition, in milliseconds (set to 0 to get no transition) */
3327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                     uiTransitionDuration;
3337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Type of the video transition */
3357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_VideoTransitionType    VideoTransitionType;
3367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< External transition video effect function */
3387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_editVideoTransitionFct ExtVideoTransitionFct;
3397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Context of the external transition video effect function */
3417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                      *pExtVideoTransitionFctCtxt;
3427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_AudioTransitionType    AudioTransitionType;   /**< Type of the audio transition */
3437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_TransitionBehaviour     TransitionBehaviour;    /**<Transition behaviour*/
3447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
3467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_TransitionSettings        xVSS;
3477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
3487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_TransitionSettings;
3507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4VSS3GPP_ClipSettings
3557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines an input clip for the edition.
3567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    It also contains the settings for the cut and begin/end effects applied to the clip.
3577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
3607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
3617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                     *pFile;            /**< Clip file descriptor */
3627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_FileType         FileType;         /**< .3gp, .amr, .mp3     */
3637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                    filePathSize;      /**< Clip path size
3647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                           (add because of UTF16 conversion)*/
3657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_ClipProperties   ClipProperties;   /**< Clip analysis previously computed
3667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                       with M4VSS3GPP_editAnalyseClip */
3677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                    uiBeginCutTime;   /**< Begin cut time, in milliseconds */
3687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                    uiEndCutTime;     /**< End cut time, in milliseconds */
3696e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury    M4OSA_Bool                      bTranscodingRequired;
3707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
3727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_ClipSettings             xVSS;
3737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
3747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_ClipSettings;
3767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4VSS3GPP_EditSettings
3817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure gathers all the information needed to define a complete
3827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          edition operation
3837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
3867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
3877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi      /**< Number of element of the clip list pClipList */
3887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                      uiClipNumber;
3897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< The properties of this clip will be used as a reference for compatibility checking */
3907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                      uiMasterClip;
3917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< List of the input clips settings. Pointer to an array of uiClipNumber
3927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi     clip settings pointers */
3937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_ClipSettings           **pClipList;
3947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< List of the transition settings. Pointer to an array of uiClipNumber-1
3957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi     transition settings pointers */
3967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_TransitionSettings     **pTransitionList;
3977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_EffectSettings         *Effects;         /**< List of effects */
3987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                         nbEffects;     /**< Number of effects in the above list */
3997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Frame rate at which the modified video sections will be encoded */
4007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_VideoFramerate    videoFrameRate;
4017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                       *pOutputFile;      /**< Output 3GPP clip file descriptor */
4027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                     uiOutputPathSize;    /**< Output file path size*/
4037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Temporary file to store metadata ("moov.bin") */
4047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                       *pTemporaryFile;
4057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_EXTENDED_FEATURES
4077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4xVSS_EditSettings              xVSS;
4087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
4097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Float                    PTVolLevel;
4107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_EditSettings;
4117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editAnalyseClip()
4167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This function allows checking if a clip is compatible with VSS 3GPP editing
4177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    It also fills a ClipAnalysis structure, which can be used to check if two
4187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          clips are compatible
4197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pClip               (IN) File descriptor of the input 3GPP/MP3 clip file.
4207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pClipProperties     (IN) Pointer to a valid ClipProperties structure.
4217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   FileType            (IN) Type of the input file (.3gp, .amr, .mp3)
4227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
4237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
4247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_H263_PROFILE_NOT_SUPPORTED
4257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_VERSION
4267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_AMR_EDITING_UNSUPPORTED
4277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_EDITING_UNSUPPORTED_H263_PROFILE
4287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_PROFILE
4297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_EDITING_UNSUPPORTED_MPEG4_RVLC
4307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT
4317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_VIDEO_STREAM_IN_FILE
4327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_EDITING_UNSUPPORTED_AUDIO_FORMAT
4337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4VSS3GPP_ERR_EDITING_NO_SUPPORTED_STREAM_IN_FILE
4347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editAnalyseClip(M4OSA_Void *pClip, M4VIDEOEDITING_FileType FileType,
4377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    M4VIDEOEDITING_ClipProperties  *pClipProperties,
4387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    M4OSA_FileReadPointer *pFileReadPtrFct);
4397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editCheckClipCompatibility()
4437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This function allows checking if two clips are compatible with each other
4447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          for VSS 3GPP editing assembly feature.
4457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
4467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pClip1Properties        (IN) Clip analysis of the first clip
4477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pClip2Properties        (IN) Clip analysis of the second clip
4487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
4497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
4507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_VERSION
4517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_INVALID_CLIP_ANALYSIS_PLATFORM
4527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FORMAT
4537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_FRAME_SIZE
4547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_TIME_SCALE
4557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_INCOMPATIBLE_VIDEO_DATA_PARTITIONING
4567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_UNSUPPORTED_MP3_ASSEMBLY
4577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_ERR_UNSUPPORTED_INPUT_VIDEO_FORMAT
4587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editCheckClipCompatibility(M4VIDEOEDITING_ClipProperties  *pClip1Properties,
4617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                               M4VIDEOEDITING_ClipProperties  *pClip2Properties);
4627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editInit()
4667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Initializes the VSS 3GPP edit operation (allocates an execution context).
4677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
4687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (OUT) Pointer on the VSS 3GPP edit context to allocate
4697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pFileReadPtrFct        (IN) Pointer to OSAL file reader functions
4707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFileWritePtrFct    (IN) Pointer to OSAL file writer functions
4717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
4727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL
4737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_ALLOC:        There is no more available memory
4747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editInit(
4777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_EditContext* pContext,
4787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_FileReadPointer* pFileReadPtrFct,
4797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_FileWriterPointer* pFileWritePtrFct );
4807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editCreateClipSettings()
4847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Allows filling a clip settings structure with default values
4857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
4867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    WARNING: pClipSettings->pFile      will be allocated in this function.
4877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
4887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pClipSettings        (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
4897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFile               (IN) Clip file name
4907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   filePathSize        (IN) Size of the clip path (needed for UTF16 conversion)
4917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    nbEffects           (IN) Nb of effect settings to allocate
4927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
4937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    pClipSettings is M4OSA_NULL (debug only)
4947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editCreateClipSettings(M4VSS3GPP_ClipSettings *pClipSettings,
4977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                           M4OSA_Void* pFile, M4OSA_UInt32 filePathSize,
4987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                           M4OSA_UInt8 nbEffects);
4997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editDuplicateClipSettings()
5037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Duplicates a clip settings structure, performing allocations if required
5047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
5057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pClipSettingsDest    (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
5067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pClipSettingsOrig    (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
5077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   bCopyEffects        (IN) Flag to know if we have to duplicate effects (deprecated)
5087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
5097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    pClipSettings is M4OSA_NULL (debug only)
5107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editDuplicateClipSettings(M4VSS3GPP_ClipSettings *pClipSettingsDest,
5137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                              M4VSS3GPP_ClipSettings *pClipSettingsOrig,
5147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                              M4OSA_Bool bCopyEffects);
5157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editFreeClipSettings()
5197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Free the pointers allocated in the ClipSetting structure (pFile, Effects).
5207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
5217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pClipSettings        (IN) Pointer to a valid M4VSS3GPP_ClipSettings structure
5227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
5237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    pClipSettings is M4OSA_NULL (debug only)
5247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editFreeClipSettings(M4VSS3GPP_ClipSettings *pClipSettings);
5277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editOpen()
5317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Set the VSS 3GPP input and output files, and set the settings.
5327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
5337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) VSS 3GPP edit context
5347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pSettings           (IN) Edit settings
5357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
5367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
5377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        VSS is not in an appropriate state for this function to be called
5387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_ALLOC:        There is no more available memory
5397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editOpen(M4VSS3GPP_EditContext pContext, M4VSS3GPP_EditSettings *pSettings);
5427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editStep()
5467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Perform one step of editing.
5477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
5487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext                (IN) VSS 3GPP edit context
5497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProgress               (OUT) Progress percentage (0 to 100) of the editing operation
5507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:             No error
5517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:        pContext is M4OSA_NULL (debug only)
5527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:            VSS 3GPP is not in an appropriate state for this function to
5537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                  be called
5547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_WAR_EDITING_DONE:Edition is done, user should now call M4VSS3GPP_editClose()
5557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editStep(M4VSS3GPP_EditContext pContext, M4OSA_UInt8 *pProgress);
5587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editClose()
5627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Finish the VSS 3GPP edit operation.
5637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The output 3GPP file is ready to be played after this call
5647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) VSS 3GPP edit context
5657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
5667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    pContext is M4OSA_NULL (debug only)
5677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        VSS 3GPP is not in an appropriate state for this function
5687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                              to be called
5697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editClose(M4VSS3GPP_EditContext pContext);
5727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_editCleanUp()
5767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Free all resources used by the VSS 3GPP edit operation.
5777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The context is no more valid after this call
5787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) VSS 3GPP edit context
5797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
5807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    pContext is M4OSA_NULL (debug only)
5817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_editCleanUp(M4VSS3GPP_EditContext pContext);
5847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
5907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      Audio Mixing Feature
5917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
5927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *  Public type of the VSS audio mixing context */
5987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_Void* M4VSS3GPP_AudioMixingContext;
5997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
6007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
6017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
6027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4VSS3GPP_AudioMixingSettings
6047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines the settings of the audio mixing operation.
6057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
6077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct {
6087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                             pOriginalClipFile;      /**< Input 3GPP clip file */
6097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                             pAddedAudioTrackFile;   /**< New audio track */
6107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_FileType                 AddedAudioFileType;     /**< File Format of the new audio file */
6117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                            uiAddCts;               /**< Time, in milliseconds,
6127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                    at which the added audio track is inserted */
6137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                            uiAddVolume;            /**< Volume, in percentage,
6147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                        of the added audio track */
6157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                            uiBeginLoop;            /**< Describes in milli-second the
6167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                        start time of the loop */
6177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                            uiEndLoop;              /**< Describes in milli-second the end
6187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                    time of the loop (0 means no loop) */
6197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                              bRemoveOriginal;      /**< If true, the original audio track
6207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                     is not taken into account */
6217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                             pOutputClipFile;      /**< Output 3GPP clip file */
6227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                             pTemporaryFile;       /**< Temporary file to store metadata
6237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                     ("moov.bin") */
6247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< The following parameters are optionnal. They are just used in case of MP3 replacement. */
6257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_AudioSamplingFrequency   outputASF;         /**< Output sampling frequency */
6267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_AudioFormat              outputAudioFormat; /**< Output audio codec(AAC/AMR)*/
6277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_Bitrate                  outputAudioBitrate; /**< Output audio bitrate */
6287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                             outputNBChannels; /**< Output audio nb of channels */
6297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                              b_DuckingNeedeed;
6307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Int32                             InDucking_threshold;
6317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Float                             fBTVolLevel;
6327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Float                             fPTVolLevel;
6337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Float                             InDucking_lowVolume;
6347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                              bLoop;
6357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                            uiSamplingFrequency;
6367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                            uiNumChannels;
6377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_AudioMixingSettings;
6387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
6397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
6407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_audioMixingInit(M4VSS3GPP_AudioMixingContext* pContext,
6427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                     M4VSS3GPP_AudioMixingSettings* pSettings)
6437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Initializes the VSS audio mixing operation (allocates an execution context).
6447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
6457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext        (OUT) Pointer on the VSS audio mixing context to allocate
6467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pSettings        (IN) Pointer to valid audio mixing settings
6477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pFileReadPtrFct        (IN) Pointer to OSAL file reader functions
6487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFileWritePtrFct    (IN) Pointer to OSAL file writer functions
6497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
6507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
6517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_ALLOC:        There is no more available memory
6527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
6547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_audioMixingInit(
6557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_AudioMixingContext* pContext,
6567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VSS3GPP_AudioMixingSettings* pSettings,
6577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_FileReadPointer* pFileReadPtrFct,
6587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_FileWriterPointer* pFileWritePtrFct );
6597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
6607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
6617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_audioMixingStep()
6637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Perform one step of audio mixing.
6647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
6657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext                        (IN) VSS 3GPP audio mixing context
6667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:                     No error
6677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:                pContext is M4OSA_NULL (debug only)
6687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProgress                       (OUT) Progress percentage (0 to 100)
6697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                  of the finalization operation
6707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:                    VSS is not in an appropriate state for
6717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            this function to be called
6727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4VSS3GPP_WAR_END_OF_AUDIO_MIXING: Audio mixing is over, user should
6737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                               now call M4VSS3GPP_audioMixingCleanUp()
6747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
6767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_audioMixingStep(M4VSS3GPP_AudioMixingContext pContext,
6777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                     M4OSA_UInt8 *pProgress);
6787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
6797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
6807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_audioMixingCleanUp()
6827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Free all resources used by the VSS audio mixing operation.
6837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The context is no more valid after this call
6847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) VSS 3GPP audio mixing context
6857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
6867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    pContext is M4OSA_NULL (debug only)
6877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
6897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_audioMixingCleanUp(M4VSS3GPP_AudioMixingContext pContext);
6907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
6917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
6927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
6937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
6967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
6977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      Extract Picture Feature
6987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
6997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
7037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
7047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *  Public type of the VSS extract picture context */
7057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_Void* M4VSS3GPP_ExtractPictureContext;
7067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
7087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4VSS3GPP_ExtractPictureSettings
7107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines the settings of the extract picture audio operation.
7117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
7137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct {
7147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                         pInputClipFile;  /**< Input 3GPP clip file */
7157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Int32                         iExtractionTime; /**< frame time (in ms) to be extracted */
7167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void*                         pOutputYuvPic;   /**< Output YUV picture name */
7177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4VSS3GPP_ExtractPictureSettings;
7187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/******************************************************************************
7217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_extractPictureInit()
7227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Initializes the VSS extract picture operation (allocates an execution context).
7237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
7247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (OUT) Pointer on the VSS extract picture context to allocate
7257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pSettings            (IN) Pointer to valid extract picture settings
7267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pWidth                (OUT) video stream width
7277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pHeight                (OUT) video stream height
7287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pFileReadPtrFct        (IN) Pointer to OSAL file reader functions
7297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:                        No error
7307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:                At least one parameter is M4OSA_NULL (debug only)
7317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_ALLOC:                    There is no more available memory
7327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4VSS3GPP_ERR_INVALID_CLIP1:    The input clip is empty
7337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
7357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_extractPictureInit(
7367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        M4VSS3GPP_ExtractPictureContext* pContext,
7377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        M4VSS3GPP_ExtractPictureSettings* pSettings,
7387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        M4OSA_UInt32 *pWidth,
7397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        M4OSA_UInt32 *pHeight,
7407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi        M4OSA_FileReadPointer* pFileReadPtrFct );
7417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
7437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_extractPictureStep()
7457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Perform one step of picture extraction.
7467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
7477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext                        (IN) VSS extract picture context
7487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:                     No error
7497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:                pContext is M4OSA_NULL (debug only)
7507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pDecPlanes                      (OUT) Plane in wich the extracted picture is copied
7517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProgress                       (OUT) Progress percentage (0 to 100)
7527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                 of the picture extraction
7537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:                    VSS is not in an appropriate state for this
7547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            function to be called
7557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  VSS_WAR_END_OF_EXTRACT_PICTURE: Picture extraction  is over, user should now
7567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            call M4VSS3GPP_extractPictureCleanUp()
7577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
7597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_extractPictureStep(M4VSS3GPP_ExtractPictureContext pContext,
7607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                       M4VIFI_ImagePlane *pDecPlanes, M4OSA_UInt8 *pProgress);
7617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
7637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_extractPictureCleanUp()
7657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Free all resources used by the VSS picture extraction.
7667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The context is no more valid after this call
7677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) VSS extract picture context
7687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
7697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    pContext is M4OSA_NULL (debug only)
7707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
7727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_extractPictureCleanUp(M4VSS3GPP_ExtractPictureContext pContext);
7737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
7757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
7797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      Common features
7807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
7817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
7857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
7877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_GetVersion()
7897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Get the VSS version.
7907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    Can be called anytime. Do not need any context.
7917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pVersionInfo        (OUT) Pointer to a version info structure
7927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
7937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
7947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
7957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_GetVersion(M4_VersionInfo* pVersionInfo);
7967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
7987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef WIN32
7997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
8007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
8017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_GetErrorMessage()
8027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Return a string describing the given error code
8037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The input string must be already allocated (and long enough!)
8047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   err             (IN) Error code to get the description from
8057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   sMessage        (IN/OUT) Allocated string in which the description will be copied
8067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:     Input error is from the VSS3GPP module
8077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:Input error is not from the VSS3GPP module
8087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
8097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
8107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_GetErrorMessage(M4OSA_ERR err, M4OSA_Char* sMessage);
8117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /**< WIN32 */
8127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
8137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
8147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
8157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}
8167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */
8177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
8187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __M4VSS3GPP_API_H__ */
8197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
820