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