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 M4VSS3GPP_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 VSS. 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#include "NXPSW_CompilerSwitches.h" 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Debug.h" 317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4VSS3GPP_InternalTypes.h" /**< Include for VSS specific types */ 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4VSS3GPP_InternalFunctions.h" /**< Registration module */ 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* _______________________ */ 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| reader subscription |*/ 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|_______________________|*/ 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Reader registration : at least one reader must be defined */ 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_READER_3GP 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_READER_AMR 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_READER_MP3 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_READER_PCM 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_AUDEC_NULL 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#error "no reader registered" 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_AUDEC_NULL */ 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_PCM */ 487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_MP3 */ 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_AMR */ 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_3GP */ 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* There must be at least one MPEG4 decoder */ 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#if !defined(M4VSS_SUPPORT_VIDEC_3GP) && !defined(M4VSS_ENABLE_EXTERNAL_DECODERS) 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#error "Wait, what?" 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* "Hey, this is the VSS3GPP speaking. Pray tell, how the heck do you expect me to be able to do 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiany editing without a built-in video decoder, nor the possibility to receive an external one?! 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiSeriously, I'd love to know." */ 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Include files for each reader to subscribe */ 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_3GP 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditor3gpReader.h" 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_AMR 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4READER_Amr.h" 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_MP3 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorMp3Reader.h" 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_PCM 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4READER_Pcm.h" 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ______________________________ */ 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| audio decoder subscription |*/ 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|______________________________|*/ 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorAudioDecoder.h" 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorVideoDecoder.h" 826e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury#include "M4DECODER_Null.h" 837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_NULL 847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4AD_Null.h" 857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* _______________________ */ 887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| writer subscription |*/ 907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|_______________________|*/ 917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Writer registration : at least one writer must be defined */ 937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#ifndef M4VSS_SUPPORT_WRITER_AMR 947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4VSS_SUPPORT_WRITER_3GPP 957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#error "no writer registered" 967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_WRITER_3GPP */ 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#endif /* M4VSS_SUPPORT_WRITER_AMR */ 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Include files for each writer to subscribe */ 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#ifdef M4VSS_SUPPORT_WRITER_AMR 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*extern M4OSA_ERR M4WRITER_AMR_getInterfaces( M4WRITER_OutputFileType* Type, 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4WRITER_GlobalInterface** SrcGlobalInterface, 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4WRITER_DataInterface** SrcDataInterface);*/ 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi//#endif 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_WRITER_3GPP 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern M4OSA_ERR M4WRITER_3GP_getInterfaces( M4WRITER_OutputFileType* Type, 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface** SrcGlobalInterface, 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface** SrcDataInterface); 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ______________________________ */ 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| video encoder subscription |*/ 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|______________________________|*/ 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorAudioEncoder.h" 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "VideoEditorVideoEncoder.h" 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ______________________________ */ 1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| |*/ 1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*| audio encoder subscription |*/ 1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*|______________________________|*/ 1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4ERR_CHECK_NULL_RETURN_VALUE(retval, pointer) if ((pointer) == M4OSA_NULL)\ 1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return ((M4OSA_ERR)(retval)); 1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4VSS3GPP_SubscribeMediaAndCodec() 1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This function registers the reader, decoders, writers and encoders 1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * in the VSS. 1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note 1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param pContext: (IN) Execution context. 1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: there is no error 1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER pContext is NULL 1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4VSS3GPP_subscribeMediaAndCodec(M4VSS3GPP_MediaAndCodecCtxt *pContext) 1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_ERR err = M4NO_ERROR; 1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_MediaType readerMediaType; 1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_GlobalInterface* pReaderGlobalInterface; 1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4READER_DataInterface* pReaderDataInterface; 1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OutputFileType writerMediaType; 1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_GlobalInterface* pWriterGlobalInterface; 1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_DataInterface* pWriterDataInterface; 1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Type audioDecoderType; 1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioFormat audioCodecType; 1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_AudioGlobalInterface* pAudioCodecInterface; 1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4AD_Interface* pAudioDecoderInterface; 1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4DECODER_VideoType videoDecoderType; 1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_Format videoCodecType; 1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_GlobalInterface* pVideoCodecInterface; 1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4DECODER_VideoInterface* pVideoDecoderInterface; 1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ERR_CHECK_NULL_RETURN_VALUE(M4ERR_PARAMETER, pContext); 1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* _______________________ */ 1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| reader subscription |*/ 1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|_______________________|*/ 1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- 3GP --- */ 1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_3GP 1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditor3gpReader_getInterface( &readerMediaType, &pReaderGlobalInterface, 1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderDataInterface); 1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4READER_3GP interface allocation error"); 1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerReader( pContext, readerMediaType, pReaderGlobalInterface, 1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderDataInterface); 1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register 3GP reader"); 1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_3GP */ 1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AMR --- */ 1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_AMR 1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4READER_AMR_getInterfaces( &readerMediaType, &pReaderGlobalInterface, 1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderDataInterface); 1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4READER_AMR interface allocation error"); 1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerReader( pContext, readerMediaType, pReaderGlobalInterface, 1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderDataInterface); 1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register AMR reader"); 1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_AMR */ 1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MP3 --- */ 2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_MP3 2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorMp3Reader_getInterface( &readerMediaType, &pReaderGlobalInterface, 2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderDataInterface); 2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4READER_MP3 interface allocation error"); 2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerReader( pContext, readerMediaType, pReaderGlobalInterface, 2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderDataInterface); 2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register MP3 reader"); 2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_MP3 */ 2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- PCM --- */ 2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_READER_PCM 2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4READER_PCM_getInterfaces( &readerMediaType, &pReaderGlobalInterface, 2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pReaderDataInterface); 2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4READER_PCM interface allocation error"); 2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerReader( pContext, readerMediaType, pReaderGlobalInterface, 2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pReaderDataInterface); 2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register PCM reader"); 2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_READER_PCM */ 2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| video decoder subscription |*/ 2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MPEG4 & H263 --- */ 2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_VIDEC_3GP 2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoDecoder_getInterface_MPEG4(&videoDecoderType, (M4OSA_Void *)&pVideoDecoderInterface); 2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4DECODER_MPEG4 interface allocation error"); 2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerVideoDecoder( pContext, videoDecoderType, pVideoDecoderInterface); 2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register MPEG4 decoder"); 2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_VIDEC_3GP */ 2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_VIDEO_AVC 2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoDecoder_getInterface_H264(&videoDecoderType, (M4OSA_Void *)&pVideoDecoderInterface); 2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4DECODER_H264 interface allocation error"); 2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerVideoDecoder( pContext, videoDecoderType, pVideoDecoderInterface); 2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register H264 decoder"); 2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_VIDEC_3GP */ 2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2636e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury#ifdef M4VSS_SUPPORT_VIDEC_NULL 2646e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury err = M4DECODER_NULL_getInterface( 2656e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury &videoDecoderType, &pVideoDecoderInterface); 2666e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury if (M4NO_ERROR != err) { 2676e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4OSA_TRACE1_0("M4VD NULL Decoder interface allocation error"); 2686e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury return err; 2696e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury } 2706e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury err = M4VSS3GPP_registerVideoDecoder( 2716e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury pContext, videoDecoderType, pVideoDecoderInterface); 2726e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, "M4VSS3GPP_subscribeMediaAndCodec: \ 2736e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury can't register video NULL decoder"); 2746e779fda8a4f6258f9b910290b2f296d18fb2585Rajneesh Chowdury#endif 2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| audio decoder subscription |*/ 2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AMRNB --- */ 2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_AMRNB 2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioDecoder_getInterface_AMRNB(&audioDecoderType, &pAudioDecoderInterface); 2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4 AMRNB interface allocation error"); 2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerAudioDecoder( pContext, audioDecoderType, pAudioDecoderInterface); 2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register AMRNB decoder"); 2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_AUDEC_AMRNB */ 2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AAC --- */ 2957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_AAC 2977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioDecoder_getInterface_AAC(&audioDecoderType, &pAudioDecoderInterface); 2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4 AAC interface allocation error"); 3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerAudioDecoder( pContext, audioDecoderType, pAudioDecoderInterface); 3047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register AAC decoder"); 3067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_AUDEC_AAC */ 3077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MP3 --- */ 3097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_MP3 3117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioDecoder_getInterface_MP3(&audioDecoderType, &pAudioDecoderInterface); 3127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4 MP3 interface allocation error"); 3157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerAudioDecoder( pContext, audioDecoderType, pAudioDecoderInterface); 3187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register MP3 decoder"); 320d67e9da63323d965760337913f86de28024531a4Basavapatna Dattaguru#endif /* M4VSS_SUPPORT_AUDEC_MP3 */ 3217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- NULL --- */ 3247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_AUDEC_NULL 3267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4AD_NULL_getInterface( &audioDecoderType, &pAudioDecoderInterface); 3277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4AD NULL Decoder interface allocation error"); 3307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerAudioDecoder( pContext, audioDecoderType, pAudioDecoderInterface); 3337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register EVRC decoder"); 3357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_AUDEC_NULL */ 3367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* _______________________ */ 3387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 3397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| writer subscription |*/ 3407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|_______________________|*/ 3417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- 3GPP --- */ 3447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_WRITER_3GPP 3467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the 3GPP writer media type and pointer to functions*/ 3477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4WRITER_3GP_getInterfaces( &writerMediaType, &pWriterGlobalInterface, 3487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi &pWriterDataInterface); 3497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4WRITER_3GP interface allocation error"); 3527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerWriter( pContext, writerMediaType, pWriterGlobalInterface, 3557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pWriterDataInterface); 3567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register 3GPP writer"); 3587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_WRITER_3GPP */ 3597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 3617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 3627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| video encoder subscription |*/ 3637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 3647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- MPEG4 --- */ 3667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_MPEG4 3687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the MPEG4 encoder type and pointer to functions*/ 3697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoEncoder_getInterface_MPEG4(&videoCodecType, &pVideoCodecInterface, 3707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_OPEN_ADVANCED); 3717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4MP4E_MPEG4 interface allocation error"); 3747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerVideoEncoder( pContext, videoCodecType, pVideoCodecInterface); 3777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register video MPEG4 encoder"); 3797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_MPEG4 */ 3807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- H263 --- */ 3827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_MPEG4 3847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the H263 encoder type and pointer to functions*/ 3857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoEncoder_getInterface_H263(&videoCodecType, &pVideoCodecInterface, 3867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_OPEN_ADVANCED); 3877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 3887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 3897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4MP4E_H263 interface allocation error"); 3907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 3917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 3927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerVideoEncoder( pContext, videoCodecType, pVideoCodecInterface); 3937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 3947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register video H263 encoder"); 3957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_MPEG4 */ 3967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_AVC 3987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the H264 encoder type and pointer to functions*/ 3997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorVideoEncoder_getInterface_H264(&videoCodecType, &pVideoCodecInterface, 4007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4ENCODER_OPEN_ADVANCED); 4017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 4027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 4037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4VSS3GPP_subscribeMediaAndCodec: M4H264E interface allocation error"); 4047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 4067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerVideoEncoder( pContext, videoCodecType, pVideoCodecInterface); 4077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register video H264 encoder"); 4097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_AVC */ 4107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* ______________________________ */ 4127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| |*/ 4137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*| audio encoder subscription |*/ 4147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /*|______________________________|*/ 4157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AMR --- */ 4177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_AMR 4197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the AMR encoder type and pointer to functions*/ 4207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioEncoder_getInterface_AMRNB(&audioCodecType, &pAudioCodecInterface); 4217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 4227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 4237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4AMR interface allocation error"); 4247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 4267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerAudioEncoder( pContext, audioCodecType, pAudioCodecInterface); 4277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register audio AMR encoder"); 4297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_AMR */ 4307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- AAC --- */ 4327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_AAC 4347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the AAC encoder type and pointer to functions*/ 4357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = VideoEditorAudioEncoder_getInterface_AAC(&audioCodecType, &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 = M4VSS3GPP_registerAudioEncoder( pContext, audioCodecType, pAudioCodecInterface); 4427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register audio AAC encoder"); 4447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_AAC */ 4457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* --- EVRC --- */ 4477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_ENCODER_EVRC 4497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* retrieves the EVRC encoder type and pointer to functions*/ 4507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4EVRC_getInterfaces( &audioCodecType, &pAudioCodecInterface); 4517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi if (M4NO_ERROR != err) 4527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 4537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_TRACE1_0("M4EVRC interface allocation error"); 4547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } 4567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi err = M4VSS3GPP_registerAudioEncoder( pContext, audioCodecType, pAudioCodecInterface); 4577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DEBUG_IF1((err != M4NO_ERROR), err, 4587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi "M4VSS3GPP_subscribeMediaAndCodec: can't register audio EVRC encoder"); 4597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* M4VSS_SUPPORT_ENCODER_EVRC */ 4607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef M4VSS_SUPPORT_OMX_CODECS 4627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi pContext->bAllowFreeingOMXCodecInterface = M4OSA_TRUE; /* when NXP SW codecs are registered, 4637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi then allow unregistration*/ 4647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 4657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi return err; 4687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 4697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 470