omxilvideocomps/omxil3gpmuxer/src/comxil3gpmuxeraudioinputport.cpp
changeset 0 5d29cba61097
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omxilvideocomps/omxil3gpmuxer/src/comxil3gpmuxeraudioinputport.cpp	Fri Oct 08 22:09:17 2010 +0100
@@ -0,0 +1,125 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+/**
+@file
+@internalComponent
+*/
+
+#include "comxil3gpmuxeraudioinputport.h"
+#include "log.h"
+
+// TODO: Possibly add other mime types, for now only AAC handled
+_LIT8(KMimeTypeAudioAac, "audio/aac");
+
+COmxIL3GPMuxerAudioInputPort* COmxIL3GPMuxerAudioInputPort::NewL(const TOmxILCommonPortData& aCommonPortData)
+	{
+	DEBUG_PRINTF(_L8("COmxIL3GPMuxerAudioInputPort::NewL"));
+
+	COmxIL3GPMuxerAudioInputPort* self = new(ELeave) COmxIL3GPMuxerAudioInputPort();
+	CleanupStack::PushL(self);
+	self->ConstructL(aCommonPortData);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+void COmxIL3GPMuxerAudioInputPort::ConstructL(const TOmxILCommonPortData& aCommonPortData)
+	{
+	RArray<OMX_AUDIO_CODINGTYPE> supportedCodings;
+	CleanupClosePushL(supportedCodings);
+	supportedCodings.AppendL(OMX_AUDIO_CodingAAC);
+	COmxILAudioPort::ConstructL(aCommonPortData, supportedCodings);
+	CleanupStack::PopAndDestroy(&supportedCodings);
+	
+	// We have to finish with iParamPortDefinition
+	GetParamPortDefinition().eDomain = OMX_PortDomainAudio;
+	GetParamPortDefinition().format.audio.pNativeRender = 0;
+
+	// TODO: Possible add in the future other mime types that can be handled by
+	// this audio port... for now only AAC Check
+	// COmxILAudioPort::iParamAudioPortFormat.nIndex and use
+	// COmxILAudioPort::iSupportedAudioFormats[iParamAudioPortFormat.nIndex]
+
+	iMimeTypeBuf.CreateL(KMimeTypeAudioAac(), KMimeTypeAudioAac().Length() + 1);
+
+	TUint8* pTUint = const_cast<TUint8*>(iMimeTypeBuf.PtrZ());
+	GetParamPortDefinition().format.audio.cMIMEType = reinterpret_cast<OMX_STRING>(pTUint);
+
+	GetParamPortDefinition().format.audio.bFlagErrorConcealment = OMX_FALSE;
+	GetParamPortDefinition().format.audio.eEncoding = OMX_AUDIO_CodingAAC;	
+	}
+
+COmxIL3GPMuxerAudioInputPort::COmxIL3GPMuxerAudioInputPort()
+	{
+	}
+	
+COmxIL3GPMuxerAudioInputPort::~COmxIL3GPMuxerAudioInputPort()
+	{
+	DEBUG_PRINTF(_L8("COmxIL3GPMuxerAudioInputPort::~COmxIL3GPMuxerAudioInputPort"));
+	iMimeTypeBuf.Close();
+	}
+
+OMX_U32 COmxIL3GPMuxerAudioInputPort::GetAudioFrameRate() const
+	{
+	// TODO return nSamplingRate
+	return 0;
+	}
+
+OMX_ERRORTYPE COmxIL3GPMuxerAudioInputPort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
+	{
+	return COmxILAudioPort::GetLocalOmxParamIndexes(aIndexArray);
+	}
+
+OMX_ERRORTYPE COmxIL3GPMuxerAudioInputPort::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
+	{
+	return COmxILAudioPort::GetLocalOmxConfigIndexes(aIndexArray);
+	}
+
+OMX_ERRORTYPE COmxIL3GPMuxerAudioInputPort::GetParameter(OMX_INDEXTYPE aParamIndex, TAny* apComponentParameterStructure) const
+	{
+	DEBUG_PRINTF2(_L8("COmxIL3GPMuxerAudioInputPort::GetParameter : aParamIndex[%u]"), aParamIndex);
+	return COmxILAudioPort::GetParameter(aParamIndex, apComponentParameterStructure);
+	}
+
+OMX_ERRORTYPE COmxIL3GPMuxerAudioInputPort::SetParameter(OMX_INDEXTYPE aParamIndex,
+                           const TAny* apComponentParameterStructure,
+                           TBool& aUpdateProcessingFunction)
+	{
+	DEBUG_PRINTF2(_L8("COmxIL3GPMuxerAudioInputPort::SetParameter : aParamIndex[%u]"), aParamIndex);
+	return COmxILAudioPort::SetParameter(aParamIndex, apComponentParameterStructure, aUpdateProcessingFunction);
+	}
+
+OMX_ERRORTYPE COmxIL3GPMuxerAudioInputPort::SetFormatInPortDefinition(
+	const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
+	TBool& /*aUpdateProcessingFunction*/)
+	{
+	if (aPortDefinition.nBufferCountActual > KMaxAudioBuffers)
+		{
+		return OMX_ErrorBadParameter;
+		}
+
+	GetParamPortDefinition().format.audio = aPortDefinition.format.audio;
+	
+	return OMX_ErrorNone;
+	}
+
+TBool COmxIL3GPMuxerAudioInputPort::IsTunnelledPortCompatible(const OMX_PARAM_PORTDEFINITIONTYPE& /*aPortDefinition*/) const
+	{
+	// TODO (The base class should do this checking) 
+	return ETrue;
+	}