omxilvideocomps/omxil3gpdemuxer/src/comxil3gpdemuxervideooutputport.cpp
author hgs
Fri, 08 Oct 2010 22:09:17 +0100
changeset 0 5d29cba61097
permissions -rw-r--r--
2010wk38_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     1
/*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     3
* All rights reserved.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     8
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    11
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    12
* Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    13
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    14
* Description:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    15
*
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    16
*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    17
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    18
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    19
/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    20
@file
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    21
@internalComponent
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    22
*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    23
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    24
#include "comxil3gpdemuxervideooutputport.h"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    25
#include "comxil3gpdemuxerprocessingfunction.h"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    26
#include "tvideoformat.h"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    27
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    28
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    29
_LIT(K3GPDemuxerVideoPortPanic, "COmxIL3GPDemuxerVideoOutputPort");
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    30
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    31
COmxIL3GPDemuxerVideoOutputPort* COmxIL3GPDemuxerVideoOutputPort::NewL(const TOmxILCommonPortData& aCommonPortData, COmxIL3GPDemuxerProcessingFunction& aProcessingFunction)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    32
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    33
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    34
	// TODO these arrays must left empty, to be removed from the video port constructor
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    35
	RArray<OMX_VIDEO_CODINGTYPE> supportedCodings;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    36
	RArray<OMX_COLOR_FORMATTYPE> supportedColorFormats;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    37
	CleanupClosePushL(supportedCodings);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    38
	CleanupClosePushL(supportedColorFormats);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    39
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    40
	COmxIL3GPDemuxerVideoOutputPort* self = new(ELeave) COmxIL3GPDemuxerVideoOutputPort(aProcessingFunction);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    41
	CleanupStack::PushL(self);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    42
	self->ConstructL(aCommonPortData, supportedCodings, supportedColorFormats);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    43
	CleanupStack::Pop(self);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    44
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    45
	CleanupStack::PopAndDestroy(2, &supportedCodings);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    46
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    47
	return self;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    48
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    49
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    50
COmxIL3GPDemuxerVideoOutputPort::COmxIL3GPDemuxerVideoOutputPort(COmxIL3GPDemuxerProcessingFunction& aProcessingFunction) :
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    51
 iProcessingFunction(&aProcessingFunction)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    52
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    53
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    54
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    55
void COmxIL3GPDemuxerVideoOutputPort::ConstructL(const TOmxILCommonPortData& aCommonPortData,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    56
                                                const RArray<OMX_VIDEO_CODINGTYPE>& aSupportedCodings,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    57
                                                const RArray<OMX_COLOR_FORMATTYPE>& aSupportedColorFormats)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    58
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    59
    COmxILVideoPort::ConstructL(aCommonPortData, aSupportedCodings, aSupportedColorFormats);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    60
    GetParamPortDefinition().format.video.eCompressionFormat = OMX_VIDEO_CodingAutoDetect;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    61
	// as there are only four items, do not require a sort order
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    62
	// if this list gets larger consider using binary search
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    63
    GetSupportedVideoFormats().AppendL(OMX_VIDEO_CodingAutoDetect);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    64
	GetSupportedVideoFormats().AppendL(OMX_VIDEO_CodingAVC);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    65
	GetSupportedVideoFormats().AppendL(OMX_VIDEO_CodingH263);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    66
	GetSupportedVideoFormats().AppendL(OMX_VIDEO_CodingMPEG4);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    67
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    68
	GetSupportedColorFormats().AppendL(OMX_COLOR_FormatUnused);			
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    69
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    70
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    71
COmxIL3GPDemuxerVideoOutputPort::~COmxIL3GPDemuxerVideoOutputPort()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    72
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    73
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    74
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    75
OMX_ERRORTYPE COmxIL3GPDemuxerVideoOutputPort::GetLocalOmxParamIndexes(RArray<TUint>& aIndexArray) const
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    76
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    77
	OMX_ERRORTYPE omxRetValue = COmxILVideoPort::GetLocalOmxParamIndexes(aIndexArray);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    78
	if (omxRetValue != OMX_ErrorNone)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    79
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    80
		return omxRetValue;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    81
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    82
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    83
	TInt err = aIndexArray.InsertInOrder(OMX_IndexParamNumAvailableStreams);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    84
	// Note that index duplication is OK.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    85
	if (err == KErrNone || err == KErrAlreadyExists)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    86
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    87
		err = aIndexArray.InsertInOrder(OMX_IndexParamActiveStream);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    88
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    89
				
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    90
	if (err != KErrNone && err != KErrAlreadyExists)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    91
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    92
		return OMX_ErrorInsufficientResources;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    93
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    94
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    95
	return OMX_ErrorNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    96
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    97
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    98
OMX_ERRORTYPE COmxIL3GPDemuxerVideoOutputPort::GetLocalOmxConfigIndexes(RArray<TUint>& aIndexArray) const
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    99
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   100
	return COmxILVideoPort::GetLocalOmxConfigIndexes(aIndexArray);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   101
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   102
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   103
OMX_ERRORTYPE COmxIL3GPDemuxerVideoOutputPort::GetParameter(OMX_INDEXTYPE aParamIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   104
                                                            TAny* apComponentParameterStructure) const
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   105
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   106
	switch(aParamIndex)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   107
		{		
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   108
		case OMX_IndexParamNumAvailableStreams:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   109
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   110
			OMX_PARAM_U32TYPE* u32Type = reinterpret_cast<OMX_PARAM_U32TYPE*>(apComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   111
			u32Type->nU32 = iProcessingFunction->NumAvailableStreams(COmxIL3GPDemuxer::EPortIndexVideoOutput);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   112
			return OMX_ErrorNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   113
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   114
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   115
		case OMX_IndexParamActiveStream:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   116
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   117
			OMX_PARAM_U32TYPE* u32Type = reinterpret_cast<OMX_PARAM_U32TYPE*>(apComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   118
			u32Type->nU32 = iProcessingFunction->ActiveStream(COmxIL3GPDemuxer::EPortIndexVideoOutput);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   119
			return OMX_ErrorNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   120
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   121
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   122
		default:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   123
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   124
			return COmxILVideoPort::GetParameter(aParamIndex, apComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   125
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   126
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   127
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   128
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   129
OMX_ERRORTYPE COmxIL3GPDemuxerVideoOutputPort::SetParameter(OMX_INDEXTYPE aParamIndex,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   130
                                                            const TAny* apComponentParameterStructure,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   131
                                                            TBool& aUpdateProcessingFunction)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   132
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   133
	switch(aParamIndex)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   134
		{		
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   135
		case OMX_IndexParamActiveStream:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   136
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   137
			const OMX_PARAM_U32TYPE* u32Type = reinterpret_cast<const OMX_PARAM_U32TYPE*>(apComponentParameterStructure);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   138
			return iProcessingFunction->SetActiveStream(COmxIL3GPDemuxer::EPortIndexVideoOutput, u32Type->nU32);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   139
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   140
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   141
		default:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   142
			{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   143
			return COmxILVideoPort::SetParameter(aParamIndex, apComponentParameterStructure, aUpdateProcessingFunction);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   144
			}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   145
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   146
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   147
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   148
OMX_ERRORTYPE COmxIL3GPDemuxerVideoOutputPort::SetFormatInPortDefinition(const OMX_PARAM_PORTDEFINITIONTYPE& aPortDefinition,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   149
                                                                TBool& aUpdateProcessingFunction)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   150
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   151
	const OMX_VIDEO_PORTDEFINITIONTYPE& newVidDef = aPortDefinition.format.video;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   152
	OMX_VIDEO_PORTDEFINITIONTYPE&  myVidDef = GetParamPortDefinition().format.video;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   153
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   154
	if (aPortDefinition.nBufferCountActual > KMaxVideoBuffers)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   155
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   156
		return OMX_ErrorBadParameter;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   157
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   158
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   159
	if(newVidDef.eColorFormat != OMX_COLOR_FormatUnused)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   160
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   161
		return OMX_ErrorBadParameter;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   162
		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   163
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   164
	// change to FindInUnsignedKeyOrder if many more formats are added
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   165
	// TODO this should allow OMX_VIDEO_CodingAutoDetect
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   166
	if(GetSupportedVideoFormats().Find(newVidDef.eCompressionFormat) == KErrNotFound)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   167
		{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   168
		return OMX_ErrorBadParameter;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   169
 		}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   170
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   171
	// copy the new port definition
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   172
	myVidDef = newVidDef;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   173
	// ignore parameters which make no sense, either because the output is compressed or because
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   174
	// we are not a display component
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   175
	myVidDef.nSliceHeight = 0;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   176
	myVidDef.nStride = 0;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   177
	myVidDef.pNativeRender = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   178
	myVidDef.pNativeWindow = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   179
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   180
	// ignore the MIME type - the field eCompressionFormat will identify the stream type.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   181
	// if we want to support GetParameter() for the MIME type, I think the component needs to
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   182
	// make a copy of the C string passed in and return a pointer to that. (cMIMEType is a char*).
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   183
	myVidDef.cMIMEType = NULL;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   184
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   185
	aUpdateProcessingFunction = ETrue;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   186
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   187
	return OMX_ErrorNone;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   188
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   189
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   190
TBool COmxIL3GPDemuxerVideoOutputPort::IsTunnelledPortCompatible(const OMX_PARAM_PORTDEFINITIONTYPE& /*aPortDefinition*/) const
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   191
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   192
	// This function only gets called on input ports, so panic if this is ever called
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   193
	User::Panic(K3GPDemuxerVideoPortPanic, KErrGeneral);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   194
	return EFalse; // to keep compiler happy
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   195
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   196
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   197
void COmxIL3GPDemuxerVideoOutputPort::FormatDetected(const TSize& aFrameSize, const TVideoFormat& aFormat)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   198
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   199
	GetParamPortDefinition().format.video.nFrameWidth  = aFrameSize.iWidth;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   200
	GetParamPortDefinition().format.video.nFrameHeight = aFrameSize.iHeight;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   201
	GetParamPortDefinition().format.video.eCompressionFormat = aFormat.iCoding;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   202
	// TODO deal with H263/AVC profile
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   203
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   204
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   205
OMX_VIDEO_CODINGTYPE COmxIL3GPDemuxerVideoOutputPort::VideoFormat()
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   206
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   207
	return GetParamPortDefinition().format.video.eCompressionFormat;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   208
	}
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   209
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   210
/** Returns the number of buffers configured on this port. */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   211
TInt COmxIL3GPDemuxerVideoOutputPort::BufferCount() const
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   212
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   213
	return GetParamPortDefinition().nBufferCountActual;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   214
	}