| /* |
| * 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_INTERNAL_H |
| #define VIDEO_BROWSER_INTERNAL_H |
| |
| #include "VideoBrowserMain.h" |
| |
| #include "M4READER_Common.h" |
| #include "M4DECODER_Common.h" |
| |
| |
| #define VIDEO_BROWSER_BGR565 |
| |
| /*---------------------------- MACROS ----------------------------*/ |
| #define CHECK_PTR(fct, p, err, errValue) \ |
| { \ |
| if (M4OSA_NULL == p) \ |
| { \ |
| err = errValue ; \ |
| M4OSA_TRACE1_1("" #fct "(L%d): " #p " is NULL, returning " #errValue "", __LINE__) ; \ |
| goto fct##_cleanUp; \ |
| } \ |
| } |
| |
| #define CHECK_ERR(fct, err) \ |
| { \ |
| if (M4OSA_ERR_IS_ERROR(err)) \ |
| { \ |
| M4OSA_TRACE1_2("" #fct "(L%d): ERROR 0x%.8x returned", __LINE__,err) ; \ |
| goto fct##_cleanUp; \ |
| } \ |
| else if (M4OSA_ERR_IS_WARNING(err)) \ |
| { \ |
| M4OSA_TRACE2_2("" #fct "(L%d): WARNING 0x%.8x returned", __LINE__,err) ; \ |
| } \ |
| } |
| |
| #define CHECK_STATE(fct, state, pC) \ |
| { \ |
| if (state != pC->m_state) \ |
| { \ |
| M4OSA_TRACE1_1("" #fct " called in bad state %d", pC->m_state) ; \ |
| err = M4ERR_STATE ; \ |
| goto fct##_cleanUp; \ |
| } \ |
| } |
| |
| #define SAFE_FREE(p) \ |
| { \ |
| if (M4OSA_NULL != p) \ |
| { \ |
| free(p) ; \ |
| p = M4OSA_NULL ; \ |
| } \ |
| } |
| |
| /*--- Video Browser state ---*/ |
| typedef enum |
| { |
| VideoBrowser_kVBCreating, |
| VideoBrowser_kVBOpened, |
| VideoBrowser_kVBBrowsing |
| } VideoBrowser_videoBrowerState; |
| |
| |
| /*--- Video Browser execution context. ---*/ |
| typedef struct |
| { |
| VideoBrowser_videoBrowerState m_state ; |
| VideoBrowser_videoBrowerDrawMode m_drawmode; |
| |
| M4OSA_Context g_hbmp2; |
| M4OSA_Context dc; |
| M4OSA_Int16* g_bmPixels2; |
| |
| /*--- Reader parameters ---*/ |
| M4OSA_FileReadPointer m_fileReadPtr; |
| M4READER_GlobalInterface* m_3gpReader ; |
| M4READER_DataInterface* m_3gpData ; |
| M4READER_MediaType m_mediaType ; |
| M4OSA_Context m_pReaderCtx ; |
| |
| M4_StreamHandler* m_pStreamHandler ; |
| M4_AccessUnit m_accessUnit ; |
| |
| /*--- Decoder parameters ---*/ |
| M4DECODER_VideoInterface* m_pDecoder ; |
| M4OSA_Context m_pDecoderCtx ; |
| |
| /*--- Common display parameters ---*/ |
| M4OSA_UInt32 m_x ; |
| M4OSA_UInt32 m_y ; |
| M4VIFI_ImagePlane m_outputPlane[3] ; |
| |
| /*--- Current browsing time ---*/ |
| M4OSA_UInt32 m_currentCTS ; |
| |
| /*--- Platform dependent display parameters ---*/ |
| M4OSA_Context m_pCoreContext ; |
| |
| /*--- Callback function settings ---*/ |
| videoBrowser_Callback m_pfCallback; |
| M4OSA_Void* m_pCallbackUserData; |
| |
| /*--- Codec Loader core context ---*/ |
| M4OSA_Context m_pCodecLoaderContext; |
| |
| /*--- Required color type ---*/ |
| VideoBrowser_VideoColorType m_frameColorType; |
| |
| } VideoBrowserContext; |
| |
| #endif /* VIDEO_BROWSER_INTERNAL_H */ |