--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/khronosfws/openmax_al/src/mmf_adaptation/xaadaptationmmf.h Fri Apr 16 15:29:42 2010 +0300
@@ -0,0 +1,221 @@
+/*
+* Copyright (c) 2009 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:
+*
+*/
+
+#ifndef XAADAPTATION_H_
+#define XAADAPTATION_H_
+
+#include <pthread.h>
+#include <semaphore.h>
+#include <garray.h>
+#include <string.h>
+#include <unistd.h>
+#include "openmaxalwrapper.h"
+#include "xaadaptationcontextbasemmf.h"
+#include "xaglobals.h"
+//#include "OpenMAXAL_ContentPipe.h"
+#include "xaplatform.h"
+
+#ifdef XA_IMPL_MEASURE_GST_DELAY
+#include <time.h>
+#endif /* XA_IMPL_MEASURE_GST_DELAY */
+
+/* MACROS */
+#define FLIP_NONE 0
+#define FLIP_CLOCKWISE 1 /* Rotate clockwise 90 degrees */
+#define FLIP_ROTATE_180 2 /* Rotate 180 degrees */
+#define FLIP_COUNTERCLOCKWISE 3 /* Rotate counter-clockwise 90 degrees */
+#define FLIP_HORIZONTAL 4 /* Flip image horizontally */
+#define FLIP_VERTICAL 5 /* Flip image vertically */
+
+/* TYPEDEFS */
+//typedef gboolean (*GstBusCb)( GstBus *bus, GstMessage *message, gpointer data );
+#define XA_IMPL_SUPPORTED_AUDIO_OUT_NUM 3
+#define XA_IMPL_OMIX_MAX_CONNECTED_MEDIAPLAYERS 10
+#define CONTENT_PIPE_BUFFER_SIZE 1000
+#define TEST_VIDEO_WIDTH 640
+#define TEST_VIDEO_HEIGHT 480
+
+typedef enum
+{
+ XA_AUDIO_WAVENC = 0,
+ XA_AUDIO_VORBISENC,
+ XA_AUDIO_PCM,
+ XA_NUM_OF_AUDIOENCODERS /* Do not move this line */
+} XAAudioEnc;
+
+typedef enum
+{
+ XA_VIDEO_JPEGENC = 0,
+ XA_VIDEO_THEORAENC,
+ XA_NUM_OF_VIDEOENCODERS /* Do not move this line */
+} XAVideoEnc;
+
+typedef enum CP_STATE
+{
+ CPStateNull =0,
+ CPStateInitialized,
+ CPStatePrerolling,
+ CPStateStarted,
+ CPStateRunning,
+ CPStatePaused,
+ CPStateStopped,
+ CPStateWaitForData,
+ CPStateEOS,
+ CPStateError
+}CP_STATE;
+
+typedef struct XAAdaptEvtHdlrMMF_
+{
+ xaAdaptEventHandlerMMF handlerfunc; /* function handling the callback */
+ void *handlercontext; /* context of handler */
+ XAuint32 eventtypes; /* what kind of events this handles */
+} XAAdaptEvtHdlrMMF;
+
+/*
+ * Structure that holds all common variables for every
+ * mmf-Adaptation context structures.
+ */
+typedef struct XAAdaptationBaseMMFCtx_
+{
+ /* Common Variables for all adaptation elements */
+ GArray* evtHdlrs; /* array of event handlers */
+ XAuint32 ctxId;
+ XAboolean placeholder;
+
+} XAAdaptationBaseMMFCtx_;
+
+typedef struct XAEngineAdaptationMMFCtx_
+{
+ /* Parent*/
+ XAAdaptationBaseMMFCtx_ baseObj;
+
+} XAEngineAdaptationMMFCtx_;
+
+/*
+ * Structure for Media Player specific gst-adaptation.
+ */
+typedef struct XAMediaPlayerAdaptationMMFCtx_
+{
+ /* Parent*/
+ XAAdaptationBaseMMFCtx_ baseObj;
+
+ /* OMX-AL Variables */
+ XADataSource *xaSource, *xaBankSrc;
+ XADataSink *xaAudioSink, *xaVideoSink, *xaLEDArray, *xaVibra;
+
+ /* MMF elements */
+ XAboolean isobjsrc; /*is source another XA object?*/
+
+ XAboolean isobjasink; /*is audio sink another XA object?*/
+ XAboolean isobjvsink; /*is video sink another XA object?*/
+
+ XAboolean mute;
+ XAuint32 imageEffectID;
+ XAboolean isStereoPosition;
+ XAmillidegree curRotation;
+ XAuint32 curMirror;
+
+ XAint32 buffering;
+
+ /* internals */
+ XAboolean trackpositionenabled;
+
+
+ XAboolean loopingenabled;
+
+ XAboolean cameraSinkSynced;
+ void* mmfContext;
+
+
+} XAMediaPlayerAdaptationMMFCtx_;
+
+typedef struct XAMediaRecorderAdaptationMMFCtx_
+{
+ /* Parent*/
+ XAAdaptationBaseMMFCtx_ baseObj;
+
+ /* OMX-AL Variables */
+ XADataSource *xaAudioSource, *xaVideoSource;
+ XADataSink *xaSink;
+ XAuint8 recModes;
+
+ /* GST elements */
+ XAboolean isobjsink; /*is sink another XA object?*/
+ XAboolean isobjasrc; /*is audio source another XA object?*/
+ XAboolean isobjvsrc; /*is video source another XA object?*/
+ XAboolean encodingchanged;
+
+ XAboolean mute;
+ XAuint32 imageEffectID;
+ XAboolean isStereoPosition;
+ XAuint32 xaRecordState;
+ XAmillidegree curRotation;
+ XAuint32 curMirror;
+ XAboolean isRecord;
+
+ /* internals */
+ XAboolean trackpositionenabled;
+ gboolean runpositiontimer;
+
+ XAImplThreadHandle recordingEventThr;
+
+ /* Variables for encoders */
+ XAAudioEncoderSettings audioEncSettings;
+ XAVideoSettings videoEncSettings;
+ XAImageSettings imageEncSettings;
+
+ void* mmfContext;
+
+
+} XAMediaRecorderAdaptationMMFCtx_;
+
+
+/* FUNCTIONS */
+/*
+ * gboolean XAAdaptationBase_GstBusCb( GstBus *bus, GstMessage *message, gpointer data );
+ * Default CallBack handler for gst-bus messages. This will be called if object specific callback is
+ * not implemented.
+ */
+
+
+void XAAdaptationBaseMMF_SendAdaptEvents(XAAdaptationBaseMMFCtx* ctx, XAAdaptEventMMF* event);
+
+//void XAAdaptationBase_PrepareAsyncWait(XAAdaptationBaseCtx* ctx);
+//void XAAdaptationBase_StartAsyncWait(XAAdaptationBaseCtx* ctx);
+//gboolean XAAdaptationBase_CancelAsyncWait(gpointer ctx);
+//void XAAdaptationBase_CompleteAsyncWait(XAAdaptationBaseCtx* ctx);
+
+
+//XAresult XAMediaPlayerAdapt_UpdatePositionCbTimer(XAMediaPlayerAdaptationCtx_* mCtx);
+
+//XAresult XAMediaRecorderAdapt_ChangeEncoders( XAMediaRecorderAdaptationCtx_* mCtx );
+//XAresult XAMediaRecorderAdapt_CheckCodec( XAMediaRecorderAdaptationCtx_* mCtx, XACapsType encType, XAuint32 encoderId );
+
+//XAresult XAMetadataAdapt_TryWriteTags(XAAdaptationBaseCtx* mCtx, GstBin* binToWriteTo);
+//void XAMetadataAdapt_FreeVars(XAMetadataAdaptVars *vars);
+
+//GstElement* XAOutputMixAdapt_GetSink(XAAdaptationBaseCtx* bCtx);
+
+
+//XAresult XAOutputMixAdapt_ConnectObject(XAAdaptationBaseCtx* omCtx, XAAdaptationBaseCtx* bCtx, GstElement* usedMix);
+//XAresult XAOutputMixAdapt_DisconnectObject(XAAdaptationBaseCtx* omCtx, XAAdaptationBaseCtx* bCtx);
+//void* XAAdaptationBase_ContentPipeScrThrFunc( void* arg);
+//void* XAAdaptationBase_ContentPipeSinkThrFunc( void* arg);
+//CPresult XAAdaptationBase_ContentPipeSrcCb(CP_EVENTTYPE eEvent, CPuint iParam);
+//CPresult XAAdaptationBase_ContentPipeSinkCb(CP_EVENTTYPE eEvent, CPuint iParam);
+
+#endif /* XAADAPTATION_H_ */