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_MediaAndCodecSubscription.c 197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Media readers and codecs subscription 207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This file implements the subscription of supported media 217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * readers and decoders for the MCS. Potential support can 227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * be activated or de-activated 237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * using compilation flags set in the projects settings. 247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ************************************************************************ 257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************** 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Includes 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************** 317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "NXPSW_CompilerSwitches.h" 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Debug.h" 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4MCS_InternalTypes.h" /**< Include for MCS specific types */ 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4MCS_InternalFunctions.h" /**< Registration module */ 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* _______________________ */ 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| reader subscription |*/ 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|_______________________|*/ 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Reader registration : at least one reader must be defined */ 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_READER_3GP 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_READER_AMR 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_READER_MP3 487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#error "no reader registered" 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_MP3 */ 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_AMR */ 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_3GP */ 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Include files for each reader to subscribe */ 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_3GP 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditor3gpReader.h" 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_AMR 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4READER_Amr.h" 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_MP3 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorMp3Reader.h" 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ______________________________ */ 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| video decoder subscription |*/ 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|______________________________|*/ 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorAudioDecoder.h" 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorVideoDecoder.h" 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* _______________________ */ 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| writer subscription |*/ 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|_______________________|*/ 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Writer registration : at least one writer must be defined */ 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_WRITER_AMR 827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_WRITER_3GPP 837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_WRITER_PCM 847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_WRITER_MP3 857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#error "no writer registered" 867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_WRITER_MP3 */ 877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_WRITER_PCM */ 887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_WRITER_3GPP */ 897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_WRITER_AMR */ 907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Include files for each writer to subscribe */ 927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_WRITER_AMR 937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern M4OSA_ERR M4WRITER_AMR_getInterfaces( M4WRITER_OutputFileType* Type, 947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface** SrcGlobalInterface, 957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface** SrcDataInterface); 967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_WRITER_3GPP 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern M4OSA_ERR M4WRITER_3GP_getInterfaces( M4WRITER_OutputFileType* Type, 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface** SrcGlobalInterface, 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface** SrcDataInterface); 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_WRITER_PCM 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern M4OSA_ERR M4WRITER_PCM_getInterfaces( M4WRITER_OutputFileType* Type, 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface** SrcGlobalInterface, 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface** SrcDataInterface); 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_WRITER_MP3 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern M4OSA_ERR M4WRITER_MP3_getInterfaces( M4WRITER_OutputFileType* Type, 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface** SrcGlobalInterface, 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface** SrcDataInterface); 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ______________________________ */ 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| video encoder subscription |*/ 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|______________________________|*/ 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorAudioEncoder.h" 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorVideoEncoder.h" 1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Include files for each video encoder to subscribe */ 1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_MPEG4 1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#include "M4MP4E_interface.h" 1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4ERR_CHECK_NULL_RETURN_VALUE(retval, pointer) \ 1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if ((pointer) == M4OSA_NULL) return ((M4OSA_ERR)(retval)); 1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4MCS_SubscribeMediaAndCodec(M4MCS_Context pContext); 1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This function registers the reader, decoders, writers and encoders 1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * in the MCS. 1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note 1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param pContext: (IN) Execution context. 1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: there is no error 1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER pContext is NULL 1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MCS_subscribeMediaAndCodec(M4MCS_Context pContext) 1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_ERR err = M4NO_ERROR; 1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_MediaType readerMediaType; 1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_GlobalInterface* pReaderGlobalInterface; 1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_DataInterface* pReaderDataInterface; 1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OutputFileType writerMediaType; 1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface* pWriterGlobalInterface; 1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface* pWriterDataInterface; 1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Type audioDecoderType; 1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioFormat audioCodecType; 1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioGlobalInterface* pAudioCodecInterface; 1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Interface* pAudioDecoderInterface; 1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4DECODER_VideoType videoDecoderType; 1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_Format videoCodecType; 1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_GlobalInterface* pVideoCodecInterface; 1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4DECODER_VideoInterface* pVideoDecoderInterface; 1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ERR_CHECK_NULL_RETURN_VALUE(M4ERR_PARAMETER, pContext); 1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* _______________________ */ 1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| reader subscription |*/ 1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|_______________________|*/ 1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- 3GP --- */ 1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_3GP 1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditor3gpReader_getInterface(&readerMediaType, 1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderGlobalInterface, 1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderDataInterface); 1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4READER_3GP interface allocation error"); 1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerReader( pContext, readerMediaType, 1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderGlobalInterface, 1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderDataInterface); 1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register 3GP reader"); 1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_3GP */ 1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AMR --- */ 1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_AMR 1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4READER_AMR_getInterfaces( &readerMediaType, 1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderGlobalInterface, 1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderDataInterface); 1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4READER_AMR interface allocation error"); 1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerReader( pContext, readerMediaType, 2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderGlobalInterface, 2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderDataInterface); 2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register AMR reader"); 2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_AMR */ 2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MP3 --- */ 2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_MP3 2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorMp3Reader_getInterface(&readerMediaType, 2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderGlobalInterface, 2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderDataInterface); 2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4READER_MP3 interface allocation error"); 2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerReader( pContext, readerMediaType, 2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderGlobalInterface, 2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderDataInterface); 2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register MP3 reader"); 2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_MP3 */ 2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| video decoder subscription |*/ 2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MPEG4 & H263 --- */ 2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_VIDEC_3GP 2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoDecoder_getInterface_MPEG4( &videoDecoderType, 2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (M4OSA_Void *)&pVideoDecoderInterface); 2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4DECODER_MPEG4 interface allocation error"); 2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerVideoDecoder( pContext, videoDecoderType, 2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pVideoDecoderInterface); 2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register MPEG4 decoder"); 2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_VIDEC_3GP */ 2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_VIDEO_AVC 2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoDecoder_getInterface_H264( &videoDecoderType, 2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi (M4OSA_Void *)&pVideoDecoderInterface); 2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4DECODER_AVC interface allocation error"); 2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerVideoDecoder( pContext, videoDecoderType, 2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pVideoDecoderInterface); 2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register AVC decoder"); 2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_VIDEO_AVC */ 2637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 2667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 2677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| audio decoder subscription |*/ 2687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 2697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AMRNB --- */ 2717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_AMRNB 2737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioDecoder_getInterface_AMRNB(&audioDecoderType, 2747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pAudioDecoderInterface); 2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4AD PHILIPS AMRNB interface allocation error"); 2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerAudioDecoder( pContext, audioDecoderType, 2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pAudioDecoderInterface); 2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register PHILIPS AMRNB decoder"); 2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_AUDEC_AMRNB */ 2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AAC --- */ 2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_AAC 2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioDecoder_getInterface_AAC(&audioDecoderType, 2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pAudioDecoderInterface); 2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4AD PHILIPS AAC interface allocation error"); 2957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerAudioDecoder( pContext, audioDecoderType, 2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pAudioDecoderInterface); 2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register PHILIPS AAC decoder"); 3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_AUDEC_AAC */ 3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MP3 --- */ 3047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_MP3 3067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioDecoder_getInterface_MP3(&audioDecoderType, 3087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pAudioDecoderInterface); 3097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4AD PHILIPS MP3 interface allocation error"); 3127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerAudioDecoder( pContext, audioDecoderType, 3157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pAudioDecoderInterface); 3167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register PHILIPS MP3 decoder"); 3187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_AUDEC_MP3 */ 3197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- EVRC --- */ 3217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* _______________________ */ 3247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 3257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| writer subscription |*/ 3267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|_______________________|*/ 3277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- PCM --- */ 3297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- 3GPP --- */ 3327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_WRITER_3GPP 3347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the 3GPP writer media type and pointer to functions*/ 3357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4WRITER_3GP_getInterfaces( &writerMediaType, 3367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pWriterGlobalInterface, 3377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pWriterDataInterface); 3387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4WRITER_3GP interface allocation error"); 3417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerWriter( pContext, writerMediaType, 3447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pWriterGlobalInterface, 3457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pWriterDataInterface); 3467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register 3GPP writer"); 3487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_WRITER_3GPP */ 3497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 3527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 3537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| video encoder subscription |*/ 3547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 3557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MPEG4 --- */ 3577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_MPEG4 3597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the MPEG4 encoder type and pointer to functions*/ 3607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoEncoder_getInterface_MPEG4(&videoCodecType, 3617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pVideoCodecInterface, 3627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_OPEN_ADVANCED); 3637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4MP4E_MPEG4 interface allocation error"); 3667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerVideoEncoder( pContext, videoCodecType, 3697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pVideoCodecInterface); 3707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register video MPEG4 encoder"); 3727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_MPEG4 */ 3737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- H263 --- */ 3757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_MPEG4 3777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the H263 encoder type and pointer to functions*/ 3787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoEncoder_getInterface_H263(&videoCodecType, 3797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pVideoCodecInterface, 3807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_OPEN_ADVANCED); 3817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4MP4E_H263 interface allocation error"); 3857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerVideoEncoder( pContext, videoCodecType, 3887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pVideoCodecInterface); 3897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register video H263 encoder"); 3917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_MPEG4 */ 3927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_AVC 3947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the H263 encoder type and pointer to functions*/ 3957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoEncoder_getInterface_H264(&videoCodecType, 3967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pVideoCodecInterface, 3977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_OPEN_ADVANCED); 3987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 4007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4H264E interface allocation error"); 4017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 4037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerVideoEncoder( pContext, videoCodecType, pVideoCodecInterface); 4047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register video H264 encoder"); 4067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_AVC */ 4077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 4097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 4107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| audio encoder subscription |*/ 4117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 4127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AMR --- */ 4147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_AMR 4167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the AMR encoder type and pointer to functions*/ 4177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioEncoder_getInterface_AMRNB(&audioCodecType, 4187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pAudioCodecInterface); 4197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 4207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 4217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4AMR interface allocation error"); 4227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 4247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerAudioEncoder( pContext, audioCodecType, 4257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pAudioCodecInterface); 4267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register audio AMR encoder"); 4287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_AMR */ 4297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AAC --- */ 4317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_AAC 4337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the AAC encoder type and pointer to functions*/ 4347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioEncoder_getInterface_AAC(&audioCodecType, 4357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pAudioCodecInterface); 4367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 4377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 4387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4AAC interface allocation error"); 4397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 4417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerAudioEncoder( pContext, audioCodecType, 4427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pAudioCodecInterface); 4437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register audio AAC encoder"); 4457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_AAC */ 4467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MP3 --- */ 4507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_MP3 4517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the MP3 encoder type and pointer to functions*/ 4527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioEncoder_getInterface_MP3(&audioCodecType, 4537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pAudioCodecInterface); 4547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 4557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 4567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4MP3E interface allocation error"); 4577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 4597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4MCS_registerAudioEncoder( pContext, audioCodecType, 4607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pAudioCodecInterface); 4617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4MCS_subscribeMediaAndCodec: can't register audio MP3 encoder"); 4637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_MP3 */ 4647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 4677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 468