17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*
27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project
37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License");
57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License.
67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at
77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      http://www.apache.org/licenses/LICENSE-2.0
97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software
117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS,
127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and
147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License.
157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file    M4MCS_API.h
207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Media Conversion Service public API.
217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    MCS allows transcoding a 3gp/mp4 file into a new 3gp/mp4 file changing the
227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          video and audio encoding settings.
237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          It is a straightforward and fully synchronous API.
247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef __M4MCS_API_H__
287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4MCS_API_H__
297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *    OSAL basic types and errors */
327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Types.h"
337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Error.h"
347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *    OSAL types for file access */
377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileReader.h"
387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileWriter.h"
397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *    Definition of M4_VersionInfo */
427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4TOOL_VersionInfo.h"
437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Common definitions of video editing components */
467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4_VideoEditingCommon.h"
477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * To enable external audio codecs registering*/
507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4AD_Common.h"
517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4ENCODER_AudioCommon.h"
527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" {
557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *    Public type of the MCS context */
597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_Void* M4MCS_Context;
607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum        M4MCS_MediaRendering
657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    This enum defines different media rendering
667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResizing = 0,    /**< The media is resized, the aspect ratio can be
717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                              different from the original one.
727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                              All of the media is rendered */
737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kCropping,        /**< The media is cropped, the aspect ratio is the
747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                              same as the original one.
757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                              The media is not rendered entirely */
767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kBlackBorders     /**< Black borders are rendered in order to keep the
777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                              original aspect ratio. All the media is rendered */
787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_MediaRendering;
797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4MCS_ExternalProgress
847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure contains information provided to the external Effect functions
857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The uiProgress value should be enough for most cases
867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32    uiProgress;     /**< Progress of the Effect from 0 to 1000 (one thousand) */
917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32    uiClipTime;     /**< Current time, in milliseconds,
927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                          in the current clip time-line */
937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32    uiOutputTime;   /**< Current time, in milliseconds,
947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                          in the output clip time-line */
957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_ExternalProgress;
977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum     M4MCS_AudioEffectType
1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This enumeration defines the audio effect types of the MCS
1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kAudioEffectType_None    = 0,
1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kAudioEffectType_FadeIn  = 8, /**< Intended for begin effect */
1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kAudioEffectType_FadeOut = 16, /**< Intended for end effect */
1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kAudioEffectType_External = 256
1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_AudioEffectType;
1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * prototype    M4MCS_editAudioEffectFct
1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief       Audio effect functions implemented by the integrator
1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              must match this prototype.
1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note        The function is provided with the original PCM data buffer and its size.
1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              Audio effect have to be applied on it.
1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              The progress of the effect is given, on a scale from 0 to 1000.
1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              When the effect function is called, all the buffers are valid and
1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *              owned by the MCS.
1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFunctionContext    (IN) The function context, previously set by the integrator
1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pPCMdata            (IN/OUT) valid PCM data buffer
1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   uiPCMsize           (IN/OUT) PCM data buffer corresponding size
1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProgress           (IN) Set of information about the audio effect progress.
1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (*M4MCS_editAudioEffectFct)
1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi(
1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void *pFunctionContext,
1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Int16 *pPCMdata,
1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32 uiPCMsize,
1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_ExternalProgress *pProgress
1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi);
1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct   M4MCS_EffectSettings
1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This structure defines an audio effect for the edition.
1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                 uiStartTime;              /**< In ms */
1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                 uiDuration;               /**< In ms */
1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_editAudioEffectFct     ExtAudioEffectFct;        /**< External effect function */
1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Void                   *pExtAudioEffectFctCtxt;  /**< Context given to the external
1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                                effect function */
1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_AudioEffectType        AudioEffectType;         /**< None, FadeIn, FadeOut */
1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_EffectSettings;
1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct    M4MCS_OutputParams
1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    MCS Output parameters
1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note     Following parameters are used for still picture inputs :
1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - OutputFileType (must be set to M4VIDEOEDITING_kFileType_JPG)
1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - bDiscardExif must be set to M4OSA_TRUE or M4OSA_FALSE
1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - bAdjustOrientation must be set to M4OSA_TRUE or M4OSA_FALSE
1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - (MediaRendering is not handled : output image resolution is always
1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                 set according to BestFit criteria)
1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            bDiscardExif and bAdjustOrientation are still picture only parameters
1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Format of the output file */
1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_FileType                 OutputFileType;
1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output video compression format, see enum */
1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_VideoFormat              OutputVideoFormat;
1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output frame size : QQVGA, QCIF or SQCIF */
1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_VideoFrameSize           OutputVideoFrameSize;
1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Targeted Output framerate, see enum */
1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_VideoFramerate           OutputVideoFrameRate;
1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Format of the audio in the stream */
1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_AudioFormat              OutputAudioFormat;
1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Sampling frequency of the audio in the stream */
1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_AudioSamplingFrequency   OutputAudioSamplingFrequency;
1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Set to M4OSA_TRUE if the output audio is mono */
1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                              bAudioMono;
1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Output PCM file if not NULL */
1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Char                              *pOutputPCMfile;
1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< To crop, resize, or render black borders*/
1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_MediaRendering                    MediaRendering;
1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< List of effects */
1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_EffectSettings                    *pEffects;
1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Number of effects in the above list */
1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt8                             nbEffects;
1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /*--- STILL PICTURE ---*/
2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< TRUE: Even if the input file contains an EXIF section,
2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    the output file won't contain any EXIF section.*/
2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                              bDiscardExif ;
2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< =TRUE : picture must be rotated if Exif tags hold a rotation info
2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    (and rotation info is set to 0)*/
2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Bool                              bAdjustOrientation ;
2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /*--- STILL PICTURE ---*/
2090a25bd5bacf5408ca205b15e53cfb6dc2fc1d171Rajneesh Chowdury    M4OSA_Int32 outputVideoProfile;
2100a25bd5bacf5408ca205b15e53cfb6dc2fc1d171Rajneesh Chowdury    M4OSA_Int32 outputVideoLevel;
2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_OutputParams;
2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*--- STILL PICTURE ---*/
2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum      M4MCS_SPOutputResolution
2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Still picture specific : MCS output targeted file resolution
2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResSameAsInput       = 0x00, /*width x height*/
2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResQVGA              = 0x01, /*320x240*/
2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResVGA               = 0x02, /*640x480*/
2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResWQVGA             = 0x03, /*400x240*/
2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResWVGA              = 0x04, /*800x480*/
2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResXGA               = 0x05, /*1024x768*/
2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kResCustom            = 0xFF  /*Size is set via StillPictureCustomWidth/Height*/
2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_SPOutputResolution ;
2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum      M4MCS_SPStrategy
2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Still picture specific : MCS strategy to configure the encoding parameters
2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kFileSizeOnlyFixed            = 0x00, /*StillPictureResolution and
2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                 QualityFactor are ignored*/
2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kFileSizeAndResFixed          = 0x01, /*QualityFactor is ignored*/
2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kQualityAndResFixed           = 0x02  /*OutputFileSize is ignored*/
2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_SPStrategy ;
2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum      M4MCS_SPCrop
2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Still picture specific : indicate whether cropping should be done
2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                     before changing the resolution
2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum
2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kNoCrop                = 0x00, /*No Cropping is performed*/
2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_kCropBeforeResize      = 0x01  /*Input image is cropped (before changing resolution)*/
2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_SPCrop ;
2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct    M4MCS_EncodingParams
2647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    MCS file size, bitrate and cut parameters
2657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note     Following parameters are used for still picture inputs :
2667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - OutputFileSize
2677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - StillPictureResolution
2687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - QualityFactor
2697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - StillPictureStrategy
2707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *             - StillPictureCustomWidth/Height (if StillPictureResolution==M4MCS_kResCustom)
2717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            Still picture only parameters : StillPictureResolution, QualityFactor,
2727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *            StillPictureStrategy and StillPictureCustomWidth/Height
2737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct
2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{
2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_Bitrate    OutputVideoBitrate;     /**< Targeted video bitrate */
2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4VIDEOEDITING_Bitrate    OutputAudioBitrate;     /**< Targeted audio bitrate */
2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32              BeginCutTime;           /**< Beginning cut time in input file */
2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32              EndCutTime;             /**< End cut time in input file */
2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32              OutputFileSize;         /**< Expected resulting file size */
2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32              OutputVideoTimescale;   /**< Optional parameter used to fix a
2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                           timescale during transcoding */
2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /*--- STILL PICTURE ---*/
2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_Int32               QualityFactor ;         /**< =-1 (undefined) or 0(lowest)..
2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            50(best) : This parameter is the
2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            quality indication for the JPEG output
2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            file (if =-1 the MCS will set quality
2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            automatically)*/
2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_SPStrategy            StillPictureStrategy ; /**< Defines which input parameters
2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            will be taken into account by MCS*/
2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_SPOutputResolution    StillPictureResolution;/**< Desired output resolution for
2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                                            a still picture file */
2957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< (only if Resolution==M4MCS_kResCustom) : Custom output image width */
2967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                StillPictureCustomWidth;
2977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< (only if Resolution==M4MCS_kResCustom) : Custom output image height */
2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                StillPictureCustomHeight;
2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< Indicate whether Crop should be performed */
3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4MCS_SPCrop                StillPictureCrop;
3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< (only if cropping) X coordinate of topleft corner of the crop window */
3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                StillPictureCrop_X;
3037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< (only if cropping) Y coordinate of topleft corner of the crop window */
3047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                StillPictureCrop_Y;
3057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< (only if cropping) Width of the crop window (in pixels) */
3067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                StillPictureCrop_W;
3077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /**< (only if cropping) Height of the crop window (in pixels) */
3087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4OSA_UInt32                StillPictureCrop_H;
3097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    /*--- STILL PICTURE ---*/
3107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4MCS_EncodingParams;
3117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_getVersion(M4_VersionInfo* pVersionInfo);
3157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Get the MCS version.
3167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note Can be called anytime. Do not need any context.
3177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pVersionInfo        (OUT) Pointer to a version info structure
3187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:         No error
3197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_PARAMETER:    pVersionInfo is M4OSA_NULL (If Debug Level >= 2)
3207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_getVersion(M4_VersionInfo* pVersionInfo);
3237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_init(M4MCS_Context* pContext, M4OSA_FileReadPointer* pFileReadPtrFct,
3277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4OSA_FileWriterPointer* pFileWritePtrFct);
3287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Initializes the MCS (allocates an execution context).
3297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
3307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (OUT) Pointer on the MCS context to allocate
3317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pFileReadPtrFct     (IN) Pointer to OSAL file reader functions
3327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pFileWritePtrFct    (IN) Pointer to OSAL file writer functions
3337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:         No error
3347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (If Debug Level >= 2)
3357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_ALLOC:        There is no more available memory
3367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_init(M4MCS_Context* pContext, M4OSA_FileReadPointer* pFileReadPtrFct,
3397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                      M4OSA_FileWriterPointer* pFileWritePtrFct);
3407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_open(M4MCS_Context pContext, M4OSA_Void* pFileIn, M4OSA_Void* pFileOut,
3447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                          M4OSA_UInt32 uiMaxMetadataSize);
3457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Set the MCS input and output files.
3467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    It opens the input file, but the output file is not created yet.
3477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          In case of still picture, four InputFileType are possible
3487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          (M4VIDEOEDITING_kFileType_JPG/BMP/GIF/PNG
3497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          If one of them is set, the OutputFileType SHALL be set to M4VIDEOEDITING_kFileType_JPG
3507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) MCS context
3517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFileIn             (IN) Input file to transcode (The type of this parameter
3527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                    (URL, pipe...) depends on the OSAL implementation).
3537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   mediaType           (IN) Container type (.3gp,.amr, ...) of input file.
3547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pFileOut            (IN) Output file to create  (The type of this parameter
3557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                    (URL, pipe...) depends on the OSAL implementation).
3567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pTempFile           (IN) Temporary file for the constant memory writer to store
3577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                    metadata ("moov.bin").
3587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
3597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
3607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
3617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_ALLOC:        There is no more available memory
3627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_FILE_NOT_FOUND:   The input file has not been found
3637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_INVALID_INPUT_FILE:   The input file is not a valid file, or is corrupted
3647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_INPUT_FILE_CONTAINS_NO_SUPPORTED_STREAM:  The input file contains no
3657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                                               supported audio or video stream
3667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_open(M4MCS_Context pContext, M4OSA_Void* pFileIn,
3697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                     M4VIDEOEDITING_FileType InputFileType,
3707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                     M4OSA_Void* pFileOut, M4OSA_Void* pTempFile);
3717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_step(M4MCS_Context pContext, M4OSA_UInt8 *pProgress);
3757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Perform one step of trancoding.
3767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
3777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) MCS context
3787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProgress           (OUT) Progress percentage (0 to 100) of the transcoding
3797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    pProgress must be a valid address.
3807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
3817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    One of the parameters is M4OSA_NULL (debug only)
3827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
3837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_WAR_TRANSCODING_DONE: Transcoding is over, user should now call M4MCS_close()
3847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_AUDIO_CONVERSION_FAILED: The audio conversion (AAC to AMR-NB, MP3) failed
3857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_INVALID_AAC_SAMPLING_FREQUENCY: The input file contains an AAC audio track
3867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                                     with an invalid sampling frequency
3877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                                     (should never happen)
3887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_WAR_PICTURE_AUTO_RESIZE: Picture will be automatically resized to fit
3897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                          into requirements
3907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_step(M4MCS_Context pContext, M4OSA_UInt8 *pProgress);
3937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_pause(M4MCS_Context pContext);
3977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Pause the transcoding i.e. release the (external hardware) video decoder.
3987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    This function is not needed if no hardware accelerators are used.
3997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          In that case, pausing the MCS is simply achieved by temporarily suspending
4007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          the M4MCS_step function calls.
4017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) MCS context
4027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
4037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    pContext is M4OSA_NULL (debug only)
4047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
4057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_pause(M4MCS_Context pContext);
4087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_resume(M4MCS_Context pContext);
4127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Resume the transcoding after a pause (see M4MCS_pause).
4137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    This function is not needed if no hardware accelerators are used.
4147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          In that case, resuming the MCS is simply achieved by calling
4157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          the M4MCS_step function.
4167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) MCS context
4177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
4187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    pContext is M4OSA_NULL (debug only)
4197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
4207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_resume(M4MCS_Context pContext);
4237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_close(M4MCS_Context pContext);
4277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Finish the MCS transcoding.
4287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note The output 3GPP file is ready to be played after this call
4297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (IN) MCS context
4307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:         No error
4317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_PARAMETER:    pContext is M4OSA_NULL (If Debug Level >= 2)
4327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
4337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_close(M4MCS_Context pContext);
4367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_cleanUp(M4MCS_Context pContext);
4407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Free all resources used by the MCS.
4417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note The context is no more valid after this call
4427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (IN) MCS context
4437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:         No error
4447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_PARAMETER:    pContext is M4OSA_NULL (If Debug Level >= 2)
4457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
4467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_cleanUp(M4MCS_Context pContext);
4497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_abort(M4MCS_Context pContext);
4537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Finish the MCS transcoding and free all resources used by the MCS
4547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          whatever the state is.
4557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The context is no more valid after this call
4567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (IN) MCS context
4577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
4587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    pContext is M4OSA_NULL (debug only)
4597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_abort(M4MCS_Context pContext);
4627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_getInputFileProperties(M4MCS_Context pContext,
4667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                          M4VIDEOEDITING_ClipProperties* pFileProperties);
4677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Retrieves the properties of the audio and video streams from the input file.
4687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) MCS context
4697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pProperties         (OUT) Pointer on an allocated M4VIDEOEDITING_ClipProperties
4707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                structure which is filled with the input stream properties.
4717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    The structure pProperties must be allocated and further de-allocated
4727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi            by the application. The function must be called in the opened state.
4737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
4747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL
4757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
4767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
4787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_getInputFileProperties(M4MCS_Context pContext,
4797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                        M4VIDEOEDITING_ClipProperties *pFileProperties);
4807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
4817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
4827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
4837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_setOutputParams(M4MCS_Context pContext, M4MCS_OutputParams* pParams);
4847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Set the MCS video output parameters.
4857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    Must be called after M4MCS_open. Must be called before M4MCS_step.
4867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN) MCS context
4877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pParams             (IN/OUT) Transcoding parameters
4887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
4897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
4907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
4917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_INVALID_VIDEO_FRAME_SIZE_FOR_H263 : Output video frame size parameter is
4927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                                          incompatible with H263 encoding
4937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_INVALID_VIDEO_FRAME_RATE_FOR_H263 : Output video frame size parameter is
4947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                                          incompatible with H263 encoding
4957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FORMAT     : Undefined output video format parameter
4967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FRAME_SIZE : Undefined output video frame size
4977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_UNDEFINED_OUTPUT_VIDEO_FRAME_RATE : Undefined output video frame rate
4987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_UNDEFINED_OUTPUT_AUDIO_FORMAT : Undefined output audio format parameter
4997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_DURATION_IS_NULL : Specified output parameters define a null duration stream
5007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                        (no audio and video)
5017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_setOutputParams(M4MCS_Context pContext, M4MCS_OutputParams* pParams);
5047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_setEncodingParams(M4MCS_Context pContext, M4MCS_EncodingParams* pRates)
5087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Set the values of the encoding parameters
5097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    Must be called before M4MCS_checkParamsAndStart().
5107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext           (IN) MCS context
5117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pRates             (IN) Transcoding parameters
5127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
5137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
5147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
5157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_AUDIOBITRATE_TOO_HIGH: Audio bitrate too high (we limit to 96 kbps)
5167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_AUDIOBITRATE_TOO_LOW: Audio bitrate is too low (16 kbps min for aac,
5177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                           12.2 for amr, 8 for mp3)
5187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_BEGIN_CUT_EQUALS_END_CUT: Begin cut and End cut are equals
5197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_BEGIN_CUT_LARGER_THAN_DURATION: Begin cut time is larger than
5207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                                     the input clip duration
5217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_END_CUT_SMALLER_THAN_BEGIN_CUT: End cut time is smaller than begin cut time
5227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_MAXFILESIZE_TOO_SMALL: Not enough space to store whole output
5237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                            file at given bitrates
5247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_VIDEOBITRATE_TOO_HIGH: Video bitrate too high (we limit to 800 kbps)
5257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_VIDEOBITRATE_TOO_LOW: Video bitrate too low
5267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_setEncodingParams(M4MCS_Context pContext, M4MCS_EncodingParams* pRates);
5297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_getExtendedEncodingParams(M4MCS_Context pContext, M4MCS_EncodingParams* pRates)
5337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Get the extended values of the encoding parameters
5347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    Could be called after M4MCS_setEncodingParams.
5357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext           (IN) MCS context
5367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pRates             (OUT) Transcoding parameters
5377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
5387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
5397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
5407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_BEGIN_CUT_EQUALS_END_CUT: Encoding settings would produce a
5417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                              null duration clip = encoding is impossible
5427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_getExtendedEncodingParams(M4MCS_Context pContext, M4MCS_EncodingParams* pRates);
5457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
5477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_checkParamsAndStart(M4MCS_Context pContext)
5497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief
5507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
5517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext           (IN) MCS context
5527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
5537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    At least one parameter is M4OSA_NULL (debug only)
5547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_STATE:        MCS is not in an appropriate state for this function to be called
5557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_AUDIOBITRATE_TOO_HIGH: Audio bitrate too high (we limit to 96 kbps)
5567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_AUDIOBITRATE_TOO_LOW: Audio bitrate is too low (16 kbps min for aac,
5577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                           12.2 for amr, 8 for mp3)
5587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_BEGIN_CUT_EQUALS_END_CUT: Begin cut and End cut are equals
5597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_BEGIN_CUT_LARGER_THAN_DURATION: Begin cut time is larger than
5607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                                    the input clip duration
5617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_END_CUT_SMALLER_THAN_BEGIN_CUT: End cut time is smaller than begin cut time
5627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_MAXFILESIZE_TOO_SMALL: Not enough space to store whole output
5637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                            file at given bitrates
5647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_VIDEOBITRATE_TOO_HIGH: Video bitrate too high (we limit to 800 kbps)
5657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4MCS_ERR_VIDEOBITRATE_TOO_LOW:  Video bitrate too low
5667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
5677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
5687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_checkParamsAndStart(M4MCS_Context pContext);
5697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
5717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}
5727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */
5737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
5747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __M4MCS_API_H__ */
5757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
576