summaryrefslogtreecommitdiffstats
path: root/libvideoeditor/vss/common/inc/M4DECODER_Common.h
diff options
context:
space:
mode:
Diffstat (limited to 'libvideoeditor/vss/common/inc/M4DECODER_Common.h')
-rwxr-xr-xlibvideoeditor/vss/common/inc/M4DECODER_Common.h389
1 files changed, 0 insertions, 389 deletions
diff --git a/libvideoeditor/vss/common/inc/M4DECODER_Common.h b/libvideoeditor/vss/common/inc/M4DECODER_Common.h
deleted file mode 100755
index 93e3062..0000000
--- a/libvideoeditor/vss/common/inc/M4DECODER_Common.h
+++ /dev/null
@@ -1,389 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- ************************************************************************
- * @file M4DECODER_Common.h
- * @brief Shell Decoder common interface declaration
- * @note This file declares the common interfaces that decoder shells must implement
- *
- ************************************************************************
-*/
-#ifndef __M4DECODER_COMMON_H__
-#define __M4DECODER_COMMON_H__
-
-#include "M4OSA_Types.h"
-#include "M4OSA_Error.h"
-#include "M4OSA_OptionID.h"
-#include "M4OSA_CoreID.h"
-
-#include "M4READER_Common.h"
-#include "M4VIFI_FiltersAPI.h"
-
-#include "M4_Utils.h"
-
-/* ----- Errors and Warnings ----- */
-
-/**
- * Warning: there is no new decoded frame to render since the last rendering
- */
-#define M4WAR_VIDEORENDERER_NO_NEW_FRAME M4OSA_ERR_CREATE(M4_WAR, M4DECODER_COMMON, 0x0001)
-/**
- * Warning: the deblocking filter is not implemented
- */
-#define M4WAR_DEBLOCKING_FILTER_NOT_IMPLEMENTED M4OSA_ERR_CREATE(M4_WAR, M4DECODER_COMMON,\
- 0x000002)
-
-
-/* Error: Stream H263 profiles (other than 0) are not supported */
-#define M4ERR_DECODER_H263_PROFILE_NOT_SUPPORTED M4OSA_ERR_CREATE(M4_ERR,\
- M4DECODER_MPEG4, 0x0001)
-/* Error: Stream H263 not baseline not supported (Supported sizes are CIF, QCIF or SQCIF) */
-#define M4ERR_DECODER_H263_NOT_BASELINE M4OSA_ERR_CREATE(M4_ERR,\
- M4DECODER_MPEG4, 0x0002)
-
-/**
- ************************************************************************
- * enum M4DECODER_AVCProfileLevel
- * @brief This enum defines the AVC decoder profile and level for the current instance
- * @note This options can be read from decoder via M4DECODER_getOption_fct
- ************************************************************************
-*/
-typedef enum
-{
- M4DECODER_AVC_kProfile_0_Level_1 = 0,
- M4DECODER_AVC_kProfile_0_Level_1b,
- M4DECODER_AVC_kProfile_0_Level_1_1,
- M4DECODER_AVC_kProfile_0_Level_1_2,
- M4DECODER_AVC_kProfile_0_Level_1_3,
- M4DECODER_AVC_kProfile_0_Level_2,
- M4DECODER_AVC_kProfile_0_Level_2_1,
- M4DECODER_AVC_kProfile_0_Level_2_2,
- M4DECODER_AVC_kProfile_0_Level_3,
- M4DECODER_AVC_kProfile_0_Level_3_1,
- M4DECODER_AVC_kProfile_0_Level_3_2,
- M4DECODER_AVC_kProfile_0_Level_4,
- M4DECODER_AVC_kProfile_0_Level_4_1,
- M4DECODER_AVC_kProfile_0_Level_4_2,
- M4DECODER_AVC_kProfile_0_Level_5,
- M4DECODER_AVC_kProfile_0_Level_5_1,
- M4DECODER_AVC_kProfile_and_Level_Out_Of_Range = 255
-} M4DECODER_AVCProfileLevel;
-
-/**
- ************************************************************************
- * enum M4DECODER_OptionID
- * @brief This enum defines the decoder options
- * @note These options can be read from or written to a decoder via M4DECODER_getOption_fct
- ************************************************************************
-*/
-typedef enum
-{
- /**
- Get the version of the core decoder
- */
- M4DECODER_kOptionID_Version = M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x01),
- /**
- Get the size of the currently decoded video
- */
- M4DECODER_kOptionID_VideoSize = M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x02),
- /**
- Set the conversion filter to use at rendering
- */
- M4DECODER_kOptionID_OutputFilter = M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x03),
- /**
- Activate the Deblocking filter
- */
- M4DECODER_kOptionID_DeblockingFilter = M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x04),
- /**
- Get nex rendered frame CTS
- */
- M4DECODER_kOptionID_NextRenderedFrameCTS = M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON,\
- 0x05),
-
- /**
- Set the YUV data to the dummy video decoder
- */
- M4DECODER_kOptionID_DecYuvData =
- M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x06),
- /**
- Set the YUV data with color effect applied to the dummy video decoder
- */
- M4DECODER_kOptionID_YuvWithEffectNonContiguous =
- M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x07),
-
- M4DECODER_kOptionID_YuvWithEffectContiguous =
- M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x08),
-
- M4DECODER_kOptionID_EnableYuvWithEffect =
- M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x09),
-
- /**
- * Get the supported video decoders and capabilities */
- M4DECODER_kOptionID_VideoDecodersAndCapabilities =
- M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_COMMON, 0x10),
-
- /* common to MPEG4 decoders */
- /**
- * Get the DecoderConfigInfo */
- M4DECODER_MPEG4_kOptionID_DecoderConfigInfo = M4OSA_OPTION_ID_CREATE(M4_READ,\
- M4DECODER_MPEG4, 0x01),
-
- /* last decoded cts */
- M4DECODER_kOptionID_AVCLastDecodedFrameCTS = M4OSA_OPTION_ID_CREATE(M4_READ, M4DECODER_AVC,\
- 0x01)
-/* Last decoded cts */
-
-} M4DECODER_OptionID;
-
-
-/**
- ************************************************************************
- * struct M4DECODER_MPEG4_DecoderConfigInfo
- * @brief Contains info read from the MPEG-4 VideoObjectLayer.
- ************************************************************************
-*/
-typedef struct
-{
- M4OSA_UInt8 uiProfile; /**< profile and level as defined in the Visual
- Object Sequence header, if present */
- M4OSA_UInt32 uiTimeScale; /**< time scale as parsed in VOL header */
- M4OSA_UInt8 uiUseOfResynchMarker; /**< Usage of resynchronization marker */
- M4OSA_Bool bDataPartition; /**< If 1 data partitioning is used. */
- M4OSA_Bool bUseOfRVLC; /**< Usage of RVLC for the stream */
-
-} M4DECODER_MPEG4_DecoderConfigInfo;
-
-
-/**
- ***********************************************************************
- * structure M4DECODER_VideoSize
- * @brief This structure defines the video size (width and height)
- * @note This structure is used to retrieve via the M4DECODER_getOption_fct
- * function the size of the current decoded video
- ************************************************************************
-*/
-typedef struct _M4DECODER_VideoSize
-{
- M4OSA_UInt32 m_uiWidth; /**< video width in pixels */
- M4OSA_UInt32 m_uiHeight; /**< video height in pixels */
-
-} M4DECODER_VideoSize;
-
-/**
- ************************************************************************
- * structure M4DECODER_OutputFilter
- * @brief This structure defines the conversion filter
- * @note This structure is used to retrieve the filter function
- * pointer and its user data via the function
- * M4DECODER_getOption_fct with the option
- * M4DECODER_kOptionID_OutputFilter
- ************************************************************************
-*/
-typedef struct _M4DECODER_OutputFilter
-{
- M4OSA_Void *m_pFilterFunction; /**< pointer to the filter function */
- M4OSA_Void *m_pFilterUserData; /**< user data of the filter */
-
-} M4DECODER_OutputFilter;
-
-/**
- ************************************************************************
- * enum M4DECODER_VideoType
- * @brief This enum defines the video types used to create decoders
- * @note This enum is used internally by the VPS to identify a currently supported
- * video decoder interface. Each decoder is registered with one of this type associated.
- * When a decoder instance is needed, this type is used to identify and
- * and retrieve its interface.
- ************************************************************************
-*/
-typedef enum
-{
- M4DECODER_kVideoTypeMPEG4 = 0,
- M4DECODER_kVideoTypeMJPEG,
- M4DECODER_kVideoTypeAVC,
- M4DECODER_kVideoTypeWMV,
- M4DECODER_kVideoTypeREAL,
- M4DECODER_kVideoTypeYUV420P,
-
- M4DECODER_kVideoType_NB /* number of decoders, keep it as last enum entry */
-
-} M4DECODER_VideoType ;
-
-typedef struct {
- M4OSA_UInt32 mProfile;
- M4OSA_UInt32 mLevel;
-} VideoProfileLevel;
-
-typedef struct {
- VideoProfileLevel *profileLevel;
- M4OSA_UInt32 profileNumber;
-} VideoComponentCapabilities;
-
-typedef struct {
- M4_StreamType codec;
- VideoComponentCapabilities *component;
- M4OSA_UInt32 componentNumber;
-} VideoDecoder;
-
-typedef struct {
- VideoDecoder *decoder;
- M4OSA_UInt32 decoderNumber;
-} M4DECODER_VideoDecoders;
-/**
- ************************************************************************
- * @brief creates an instance of the decoder
- * @note allocates the context
- *
- * @param pContext: (OUT) Context of the decoder
- * @param pStreamHandler: (IN) Pointer to a video stream description
- * @param pGlobalInterface: (IN) Pointer to the M4READER_GlobalInterface structure that must
- * be used by the decoder to read data from the stream
- * @param pDataInterface: (IN) Pointer to the M4READER_DataInterface structure that must
- * be used by the decoder to read data from the stream
- * @param pAccessUnit (IN) Pointer to an access unit (allocated by the caller)
- * where the decoded data are stored
- *
- * @return M4NO_ERROR there is no error
- * @return M4ERR_STATE State automaton is not applied
- * @return M4ERR_ALLOC a memory allocation has failed
- * @return M4ERR_PARAMETER at least one parameter is not properly set (in DEBUG only)
- ************************************************************************
-*/
-typedef M4OSA_ERR (M4DECODER_create_fct) (M4OSA_Context *pContext,
- M4_StreamHandler *pStreamHandler,
- M4READER_GlobalInterface *pGlobalInterface,
- M4READER_DataInterface *pDataInterface,
- M4_AccessUnit *pAccessUnit,
- M4OSA_Void* pUserData);
-
-/**
- ************************************************************************
- * @brief destroy the instance of the decoder
- * @note after this call the context is invalid
- *
- * @param context: (IN) Context of the decoder
- *
- * @return M4NO_ERROR There is no error
- * @return M4ERR_PARAMETER The context is invalid (in DEBUG only)
- ************************************************************************
-*/
-typedef M4OSA_ERR (M4DECODER_destroy_fct) (M4OSA_Context context);
-
-/**
- ************************************************************************
- * @brief get an option value from the decoder
- * @note this function follows the set/get option mechanism described in OSAL 3.0
- * it allows the caller to retrieve a property value:
- * -the version number of the decoder
- * -the size (widthxheight) of the image
- *
- * @param context: (IN) Context of the decoder
- * @param optionId: (IN) indicates the option to set
- * @param pValue: (IN/OUT) pointer to structure or value (allocated by user) where
- * option is stored
- * @return M4NO_ERROR there is no error
- * @return M4ERR_PARAMETER The context is invalid (in DEBUG only)
- * @return M4ERR_BAD_OPTION_ID when the option ID is not a valid one
- * @return M4ERR_STATE State automaton is not applied
- ************************************************************************
-*/
-typedef M4OSA_ERR (M4DECODER_getOption_fct)(M4OSA_Context context, M4OSA_OptionID optionId,
- M4OSA_DataOption pValue);
-
-/**
- ************************************************************************
- * @brief set an option value of the decoder
- * @note this function follows the set/get option mechanism described in OSAL 3.0
- * it allows the caller to set a property value:
- * -the conversion filter to use at rendering
- *
- * @param context: (IN) Context of the decoder
- * @param optionId: (IN) Identifier indicating the option to set
- * @param pValue: (IN) Pointer to structure or value (allocated by user)
- * where option is stored
- * @return M4NO_ERROR There is no error
- * @return M4ERR_BAD_OPTION_ID The option ID is not a valid one
- * @return M4ERR_STATE State automaton is not applied
- * @return M4ERR_PARAMETER The option parameter is invalid
- ************************************************************************
-*/
-typedef M4OSA_ERR (M4DECODER_setOption_fct)(M4OSA_Context context, M4OSA_OptionID optionId,
- M4OSA_DataOption pValue);
-
-/**
- ************************************************************************
- * @brief Decode Access Units up to a target time
- * @note Parse and decode the stream until it is possible to output a decoded image for which
- * the composition time is equal or greater to the passed targeted time
- * The data are read from the reader data interface
- *
- * @param context: (IN) Context of the decoder
- * @param pTime: (IN/OUT) IN: Time to decode up to (in milli secondes)
- * OUT:Time of the last decoded frame (in ms)
- * @param bJump: (IN) 0 if no jump occured just before this call
- * 1 if a a jump has just been made
- * @param tolerance: (IN) We may decode an earlier frame within the tolerance.
- * The time difference is specified in milliseconds.
- *
- * @return M4NO_ERROR there is no error
- * @return M4ERR_PARAMETER at least one parameter is not properly set
- * @return M4WAR_NO_MORE_AU there is no more access unit to decode (end of stream)
- ************************************************************************
-*/
-typedef M4OSA_ERR (M4DECODER_decode_fct) (M4OSA_Context context, M4_MediaTime* pTime,
- M4OSA_Bool bJump, M4OSA_UInt32 tolerance);
-
-/**
- ************************************************************************
- * @brief Renders the video at the specified time.
- * @note
- * @param context: (IN) Context of the decoder
- * @param pTime: (IN/OUT) IN: Time to render to (in milli secondes)
- * OUT:Time of the actually rendered frame (in ms)
- * @param pOutputPlane:(OUT) Output plane filled with decoded data (converted)
- * @param bForceRender:(IN) 1 if the image must be rendered even it has already been
- * 0 if not (in which case the function can return
- * M4WAR_VIDEORENDERER_NO_NEW_FRAME)
- * @return M4NO_ERROR There is no error
- * @return M4ERR_PARAMETER At least one parameter is not properly set
- * @return M4ERR_STATE State automaton is not applied
- * @return M4ERR_ALLOC There is no more available memory
- * @return M4WAR_VIDEORENDERER_NO_NEW_FRAME If the frame to render has already been rendered
- ************************************************************************
-*/
-typedef M4OSA_ERR (M4DECODER_render_fct) (M4OSA_Context context, M4_MediaTime* pTime,
- M4VIFI_ImagePlane* pOutputPlane,
- M4OSA_Bool bForceRender);
-
-/**
- ************************************************************************
- * structure M4DECODER_VideoInterface
- * @brief This structure defines the generic video decoder interface
- * @note This structure stores the pointers to functions of one video decoder type.
- * The decoder type is one of the M4DECODER_VideoType
- ************************************************************************
-*/
-typedef struct _M4DECODER_VideoInterface
-{
- M4DECODER_create_fct* m_pFctCreate;
- M4DECODER_destroy_fct* m_pFctDestroy;
- M4DECODER_getOption_fct* m_pFctGetOption;
- M4DECODER_setOption_fct* m_pFctSetOption;
- M4DECODER_decode_fct* m_pFctDecode;
- M4DECODER_render_fct* m_pFctRender;
-} M4DECODER_VideoInterface;
-
-#endif /*__M4DECODER_COMMON_H__*/