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 * @file    M4MCS_InternalFunctions.h
197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This file contains all functions declarations internal
207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          to the MCS.
217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *************************************************************************
227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef __M4MCS_INTERNALFUNCTIONS_H__
257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4MCS_INTERNALFUNCTIONS_H__
267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" {
297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4VPP_API.h"
327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4ENCODER_common.h"
337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_intApplyVPP( M4VPP_Context pContext,
377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                              M4VIFI_ImagePlane* pPlaneIn,
387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                              M4VIFI_ImagePlane* pPlaneOut)
397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Do the video rendering and the resize (if needed)
407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    It is called by the video encoder
417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext    (IN)     VPP context, which actually is the MCS
427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                               internal context in our case
437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pPlaneIn    (IN)     Contains the image
447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pPlaneOut   (IN/OUT) Pointer to an array of 3 planes that will
457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                               contain the output YUV420 image
467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:                 No error
477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  ERR_MCS_VIDEO_DECODE_ERROR: the video decoding failed
487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  ERR_MCS_RESIZE_ERROR:       the resizing failed
497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  Any error returned by an underlaying module
507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_intApplyVPP(M4VPP_Context pContext, M4VIFI_ImagePlane* pPlaneIn,
537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                            M4VIFI_ImagePlane* pPlaneOut);
547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_SubscribeMediaAndCodec(M4MCS_Context pContext);
587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    This function registers the reader, decoders, writers and encoders
597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *           in the MCS.
607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note
617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext:    (IN) Execution context.
627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:        there is no error
637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4ERR_PARAMETER    pContext is NULL
647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_subscribeMediaAndCodec(M4MCS_Context pContext);
677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Clear encoders, decoders, reader and writers interfaces tables
717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (IN/OUT) MCS context.
727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    The context is null
747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_clearInterfaceTables(M4MCS_Context pContext);
777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR   M4MCS_registerWriter(M4MCS_Context pContext,
817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                  M4VIDEOEDITING_FileType MediaType,
827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                  M4WRITER_GlobalInterface *pWtrGlobalInterface,
837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                  M4WRITER_DataInterface *pWtrDataInterface)
847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This function will register a specific file format writer.
857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    According to the Mediatype, this function will store in the internal
867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          context the writer context.
877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext:    (IN) Execution context.
887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         there is no error
897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER     pContext,pWtrGlobalInterface or pWtrDataInterface
907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                              is M4OSA_NULL (debug only), or invalid MediaType
917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_registerWriter(
947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4MCS_Context pContext,
957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4WRITER_OutputFileType MediaType,
967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4WRITER_GlobalInterface* pWtrGlobalInterface,
977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4WRITER_DataInterface* pWtrDataInterface);
987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR   M4MCS_registerEncoder(   M4MCS_Context pContext,
1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                      M4VIDEOEDITING_VideoFormat mediaType,
1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                      M4ENCODER_GlobalInterface *pEncGlobalInterface)
1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This function will register a specific video encoder.
1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    According to the Mediatype, this function will store in the internal
1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          context the encoder context.
1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext:    (IN) Execution context.
1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         there is no error
1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER     pContext or pEncGlobalInterface is
1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                              M4OSA_NULL (debug only), or invalid MediaType
1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_registerVideoEncoder(
1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4MCS_Context pContext,
1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4ENCODER_Format MediaType,
1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4ENCODER_GlobalInterface *pEncGlobalInterface);
1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR   M4MCS_registerAudioEncoder(  M4MCS_Context pContext,
1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                          M4ENCODER_AudioFormat mediaType,
1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                                          M4ENCODER_AudioGlobalInterface *pEncGlobalInterface)
1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   This function will register a specific audio encoder.
1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    According to the Mediatype, this function will store in the internal
1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *          context the encoder context.
1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext:               (IN)   Execution context.
1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   mediaType:              (IN)   The media type.
1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pEncGlobalInterface:    (OUT)  The encoder interface functions.
1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:       there is no error
1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:  pContext or pEncGlobalInterface is
1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                              M4OSA_NULL (debug only)
1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_registerAudioEncoder(
1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4MCS_Context pContext,
1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4ENCODER_AudioFormat MediaType,
1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                        M4ENCODER_AudioGlobalInterface *pEncGlobalInterface);
1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Register reader.
1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (IN/OUT) MCS context.
1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    A parameter is null (in DEBUG only)
1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_registerReader(   M4MCS_Context pContext,
1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    M4READER_MediaType mediaType,
1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    M4READER_GlobalInterface *pRdrGlobalInterface,
1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    M4READER_DataInterface *pRdrDataInterface);
1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Register video decoder
1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext             (IN/OUT) MCS context.
1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   decoderType          (IN) Decoder type
1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pDecoderInterface    (IN) Decoder interface.
1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:            No error
1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    A parameter is null (in DEBUG only),or the
1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *                              decoder type is invalid
1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi **************************************************************************
1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_registerVideoDecoder( M4MCS_Context pContext,
1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                        M4DECODER_VideoType decoderType,
1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                        M4DECODER_VideoInterface *pDecoderInterface);
1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Register audio decoder
1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note    This function is used internaly by the MCS to register Core audio decoders,
1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   context            (IN/OUT) MCS context.
1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   decoderType        (IN)     Audio decoder type
1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pDecoderInterface  (IN)     Audio decoder interface.
1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:        No error
1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:   A parameter is null, or the decoder type is invalid(in DEBUG only)
1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_registerAudioDecoder(M4MCS_Context pContext, M4AD_Type decoderType,
1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                        M4AD_Interface *pDecoderInterface);
1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Unregister writer
1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN/OUT) MCS context.
1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    A parameter is null (in DEBUG only)
1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_unRegisterAllWriters(M4MCS_Context pContext);
1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Unregister the encoders
1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN/OUT) MCS context.
1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    A parameter is null (in DEBUG only)
1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_unRegisterAllEncoders(M4MCS_Context pContext);
2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Unregister reader
2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN/OUT) MCS context.
2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    A parameter is null (in DEBUG only)
2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_unRegisterAllReaders(M4MCS_Context pContext);
2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Unregister the decoders
2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN/OUT) MCS context.
2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:    A parameter is null (in DEBUG only)
2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_unRegisterAllDecoders(M4MCS_Context pContext);
2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief   Set current writer
2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   pContext            (IN/OUT) MCS context.
2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param   mediaType           (IN) Media type.
2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4NO_ERROR:         No error
2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4ERR_PARAMETER:                    A parameter is null (in DEBUG only)
2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return  M4WAR_MCS_MEDIATYPE_NOT_SUPPORTED:  Media type not supported
2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_setCurrentWriter( M4MCS_Context pContext,
2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    M4VIDEOEDITING_FileType mediaType);
2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Set a video encoder
2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (IN/OUT) MCS context.
2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    MediaType           (IN) Encoder type
2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:                    A parameter is null (in DEBUG only)
2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4WAR_MCS_MEDIATYPE_NOT_SUPPORTED:    Media type not supported
2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_setCurrentVideoEncoder(   M4MCS_Context pContext,
2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4VIDEOEDITING_VideoFormat mediaType);
2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Set an audio encoder
2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    context            (IN/OUT) MCS context.
2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    MediaType        (IN) Encoder type
2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    A parameter is null (in DEBUG only)
2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_setCurrentAudioEncoder(   M4MCS_Context pContext,
2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4VIDEOEDITING_AudioFormat mediaType);
2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Set current reader
2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext            (IN/OUT) MCS context.
2637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    mediaType           (IN) Media type.
2647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:        No error
2657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:   A parameter is null (in DEBUG only)
2667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4WAR_MCS_MEDIATYPE_NOT_SUPPORTED:    Media type not supported
2677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_setCurrentReader( M4MCS_Context pContext,
2707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                    M4VIDEOEDITING_FileType mediaType);
2717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Set a video decoder
2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext           (IN/OUT) MCS context.
2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    decoderType        (IN) Decoder type
2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:            No error
2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:       A parameter is null (in DEBUG only)
2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4WAR_MCS_MEDIATYPE_NOT_SUPPORTED:    Media type not supported
2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_setCurrentVideoDecoder(   M4MCS_Context pContext,
2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4_StreamType mediaType);
2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Set an audio decoder
2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    context            (IN/OUT) MCS context.
2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    decoderType        (IN) Decoder type
2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR:         No error
2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER:    A parameter is null (in DEBUG only)
2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************
2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR   M4MCS_setCurrentAudioDecoder(M4MCS_Context pContext, M4_StreamType mediaType);
2957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_intCheckAudioEffects(M4MCS_InternalContext* pContext)
2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Check if an effect has to be applied currently
3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note     It is called by the stepEncoding function
3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pContext    (IN)   MCS internal context
3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:        No error
3037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_intCheckAudioEffects(M4MCS_InternalContext* pC);
3067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_editAudioEffectFct_FadeIn()
3107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Apply audio effect FadeIn to pPCMdata
3117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pC           (IN/OUT) Internal edit context
3127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pPCMdata     (IN/OUT) Input and Output PCM audio data
3137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    uiPCMsize    (IN)     Size of pPCMdata
3147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pProgress    (IN)     Effect progress
3157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:           No error
3167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_editAudioEffectFct_FadeIn(  M4OSA_Void *pFunctionContext,
3197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4OSA_Int16 *pPCMdata,
3207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4OSA_UInt32 uiPCMsize,
3217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4MCS_ExternalProgress *pProgress);
3227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
3247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_editAudioEffectFct_FadeIn()
3267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Apply audio effect FadeIn to pPCMdata
3277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pC           (IN/OUT) Internal edit context
3287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pPCMdata     (IN/OUT) Input and Output PCM audio data
3297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    uiPCMsize    (IN)     Size of pPCMdata
3307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pProgress    (IN)     Effect progress
3317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return   M4NO_ERROR:           No error
3327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
3337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
3347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_editAudioEffectFct_FadeOut( M4OSA_Void *pFunctionContext,
3357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4OSA_Int16 *pPCMdata,
3367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4OSA_UInt32 uiPCMsize,
3377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                                            M4MCS_ExternalProgress *pProgress);
3387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
3407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}
3417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
3427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
3437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __M4MCS_INTERNALFUNCTIONS_H__ */
3447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
345