| /* |
| * 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. |
| */ |
| |
| |
| #ifndef VIDEO_BROWSER_MAIN_H |
| #define VIDEO_BROWSER_MAIN_H |
| |
| /** |
| ************************************************************************ |
| * @file VideoBrowserMain.h |
| * @brief Video browser Interface functions |
| ************************************************************************ |
| */ |
| |
| #define VIDEOBROWSER 0x423 |
| |
| #include "M4OSA_Memory.h" |
| #include "M4OSA_CharStar.h" |
| #include "M4OSA_OptionID.h" |
| #include "M4OSA_Debug.h" |
| #include "M4VIFI_FiltersAPI.h" |
| #include "M4OSA_FileReader.h" |
| |
| |
| /** |
| ************************************************************************ |
| * @brief Error codes definition. |
| * @note These value are the Browser engine specific error codes. |
| ************************************************************************ |
| */ |
| #define M4ERR_VB_MEDIATYPE_NOT_SUPPORTED M4OSA_ERR_CREATE(M4_ERR, VIDEOBROWSER, 0x01) |
| #define M4ERR_VB_NO_VIDEO M4OSA_ERR_CREATE(M4_ERR, VIDEOBROWSER, 0x02) |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /* |
| * Video Browser draw mode, extension for angle based bliting can be done |
| */ |
| typedef enum |
| { |
| VideoBrowser_kVBNormalBliting |
| } VideoBrowser_videoBrowerDrawMode; |
| |
| |
| /*--- Video Browser output frame color type ---*/ |
| typedef enum |
| { |
| VideoBrowser_kYUV420, |
| VideoBrowser_kGB565 |
| } VideoBrowser_VideoColorType; |
| |
| /** |
| ************************************************************************ |
| * enumeration VideoBrowser_Notification |
| * @brief Video Browser notification type. |
| * @note This callback mechanism must be used to wait the completion of an asynchronous |
| * operation, before calling another API function. |
| ************************************************************************ |
| */ |
| typedef enum |
| { |
| /** |
| * A frame is ready to be displayed, it should be displayed in the callback function |
| * pCbData type = M4VIFI_ImagePlane* |
| */ |
| VIDEOBROWSER_DISPLAY_FRAME = 0x00000001, |
| VIDEOBROWSER_NOTIFICATION_NONE = 0xffffffff |
| }VideoBrowser_Notification; |
| |
| |
| /** |
| ************************************************************************ |
| * @brief videoBrowser_Callback type definition |
| * @param pInstance (IN) Video Browser context. |
| * @param notificationID (IN) Id of the callback which generated the error |
| * @param errCode (IN) Error code from the core |
| * @param pCbData (IN) pointer to data associated wit the callback. |
| * @param pCbUserData (IN) pointer to application user data passed in init. |
| * @note This callback mechanism is used to request display of an image |
| ************************************************************************ |
| */ |
| typedef M4OSA_Void (*videoBrowser_Callback) (M4OSA_Context pInstance, |
| VideoBrowser_Notification notificationID, |
| M4OSA_ERR errCode, |
| M4OSA_Void* pCbData, |
| M4OSA_Void* pCallbackUserData); |
| |
| |
| /****************************************************************************** |
| * @brief This function allocates the resources needed for browsing a video file. |
| * @param ppContext (OUT): Pointer on a context filled by this function. |
| * @param pURL (IN) : Path of File to browse |
| * @param DrawMode (IN) : Indicate which method is used to draw (Direct draw etc...) |
| * @param pfCallback (IN) : Callback function to be called when a frame must be displayed |
| * @param pCallbackData (IN) : User defined data that will be passed as parameter of the callback |
| * @param clrType (IN) : Required color type. |
| * @return M4NO_ERROR / M4ERR_PARAMETER / M4ERR_STATE / M4ERR_ALLOC |
| ******************************************************************************/ |
| M4OSA_ERR videoBrowserCreate(M4OSA_Context* ppContext, M4OSA_Char* pURL, |
| M4OSA_UInt32 DrawMode, |
| M4OSA_FileReadPointer* ptrF, |
| videoBrowser_Callback pfCallback, |
| M4OSA_Void* pCallbackData, |
| VideoBrowser_VideoColorType clrType); |
| |
| /****************************************************************************** |
| * @brief This function frees the resources needed for browsing a video file. |
| * @param pContext (IN) : Video browser context |
| * @return M4NO_ERROR / M4ERR_PARAMETER / M4ERR_STATE |
| ******************************************************************************/ |
| M4OSA_ERR videoBrowserCleanUp(M4OSA_Context pContext) ; |
| |
| |
| /****************************************************************************** |
| * @brief This function allocates the resources needed for browsing a video file. |
| * @param pContext (IN) : Video browser context |
| * @param pTime (IN/OUT) : Pointer on the time to reach. Updated by |
| * this function with the reached time |
| * @return M4NO_ERROR / M4ERR_PARAMETER / M4ERR_STATE / M4ERR_ALLOC |
| ******************************************************************************/ |
| M4OSA_ERR videoBrowserPrepareFrame(M4OSA_Context pContext, M4OSA_UInt32* pTime); |
| |
| /****************************************************************************** |
| * @brief This function sets the size and the position of the display. |
| * @param pContext (IN) : Video Browser context |
| * @param pixelArray (IN) : Array to hold the video frame. |
| * @param x (IN) : Horizontal position of the top left corner |
| * @param y (IN) : Vertical position of the top left corner |
| * @param dx (IN) : Width of the display window |
| * @param dy (IN) : Height of the video window |
| * @return M4NO_ERROR / M4ERR_PARAMETER / M4ERR_STATE / M4ERR_ALLOC |
| ******************************************************************************/ |
| M4OSA_ERR videoBrowserSetWindow(M4OSA_Context pContext, M4OSA_Int32* pixelArray, |
| M4OSA_UInt32 x, M4OSA_UInt32 y, |
| M4OSA_UInt32 dx, M4OSA_UInt32 dy); |
| |
| /****************************************************************************** |
| * @brief This function displays the current frame. |
| * @param pContext (IN) : Video browser context |
| * @return M4NO_ERROR / M4ERR_PARAMETER / M4ERR_STATE / M4ERR_ALLOC |
| ******************************************************************************/ |
| M4OSA_ERR videoBrowserDisplayCurrentFrame(M4OSA_Context pContext); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* VIDEO_BROWSER_MAIN_H */ |