⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video_comm.h

📁 最新MTK手机软件源码
💻 H
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*******************************************************************************
 *
 * Filename:
 * ---------
 *   video_comm.h
 *
 * Project:
 * --------
 *   MAUI
 *
 * Description:
 * ------------
 *   Video common definitions
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
 
#ifndef VIDEO_COMM_H
#define VIDEO_COMM_H

///////////////////////////////////////////////////////////////////
//                                                                                                    //
//                              decode and encode share difinitaions                     //
//////////////////////////////////////////////////////////////////

/* Maximu VOS bitstream length */
#define MAX_VOS_LENGTH 100

typedef enum 
{
      VIDEO_SCENARIO_DECODE=0,
      VIDEO_SCENARIO_ENCODE,
#ifdef __VIDEO_EDITOR__
      VIDEO_SCENARIO_EDITOR,
#endif   /*__VIDEO_EDITOR__*/
      VIDEO_TOTAL_SCENARIO
} VIDEO_SCENARIO_ENUM;

/* Mpeg4 VOS information */
typedef struct 
{
   kal_uint8       vos_data[MAX_VOS_LENGTH];
   kal_uint32      size;
}MP4VIDEO_VOS_STRUCT;


///////////////////////////////////////////////////////////////////
//                                                                                                    //
//                                       debug and timing difinitaions                       //
//////////////////////////////////////////////////////////////////

//#define VIDEO_DBG_OPTION_ENABLE

#define MAX_VISIAL_DBG_INFO_SIZE       1024

#define VIDEO_COMMON_TIME_BASE         65536
#define VIDEO_GPT_TIME_BASE            100

#define MAX_VIDEO_ERROR_LINE           4

#ifdef VIDEO_DBG_OPTION_ENABLE
#define VIDEO_ASSERT(_condition) \
   {                             \
      ASSERT(_condition);        \
   }
#else   /*!VIDEO_DBG_OPTION_ENABLE*/
#define VIDEO_ASSERT(_condition) \
   {                             \
      if (!(_condition))         \
      {                          \
         video_assert(__LINE__); \
      }                          \
   }
#endif   /*VIDEO_DBG_OPTION_ENABLE*/

#define VIDEO_ANYBASE_TO_MS(_TIME, _TIME_SCALE)                            ((kal_uint64)_TIME*1000/(kal_uint64)_TIME_SCALE)

#define VIDEO_ANYBASE_TO_COMMBASE(_TIME, _TIME_SCALE)                      ((kal_uint64)_TIME*VIDEO_COMMON_TIME_BASE/(kal_uint64)_TIME_SCALE)

#define VIDEO_COMMBASE_TO_ANYBASE(_TIME, _TIME_BASE)                       ((kal_uint64)_TIME*(kal_uint64)_TIME_BASE/VIDEO_COMMON_TIME_BASE)

#define VIDEO_ANYBASE_TO_GPTBASE(_TIME, _TIME_SCALE)                            ((kal_uint64)_TIME*VIDEO_GPT_TIME_BASE/(kal_uint64)_TIME_SCALE)

#define VIDEO_ANYBASE_TO_ANYBASE(_TIME_SRC, _TIME_BASE_SRC, _TIME_BASE_DST)    ((kal_uint64)_TIME_SRC*(kal_uint64)_TIME_BASE_DST/(kal_uint64)_TIME_BASE_SRC)

typedef enum
{
    MP4_ENC_DMA_LISR_ENTRY = 1,
    MP4_ENC_DMA_LISR_ENTRY1,
    MP4_ENC_DMA_LISR_END,
    MP4_ENC_DMA_LISR_END_1,
    MP4_ENC_DMA_LISR_FRAMEQUICK,
    MP4_ENC_HISR_OK = 10,
    MP4_ENC_HISR_DMA,
    MP4_ENC_HISR_END,
    MP4_ENC_ERR_REPT_HISR,
    MP4_DEC_LISR_ENTRY = 20,
    MP4_DEC_LISR_END,
    MP4_ENC_MP4LISR_ENTRY,
    MP4_DEC_HISR_DONE,
    MP4_DEC_HISR_LAST_ONE,
    MP4_DEC_HISR_ENTRY,
    MP4_DEC_HISR_SEND_ILM,
    MP4_DEC_HISR_END,
    MP4_DEC_SEEK_LISR_START = 30,
    MP4_DEC_SEEK_LISR_END,
    MP4_DEC_SEEK_HISR_START,
    MP4_DEC_SEEK_HISR_DONE,
    MP4_DEC_SEEK_HISR_END,
    MP4_DEC_TASK_IND_START = 40,
    MP4_DEC_TASK_IND_END,
    MP4_DEC_TASK_SEEK,
    MP4_DEC_TASK_IMG_HWPATH_OPEN,
    MP4_DEC_TASK_IMG_HWPATH_CLOSE,
    MP4_DEC_TASK_IMG_SWPATH_OPEN,
    MP4_DEC_TASK_IMG_SWPATH_DISP,
    MP4_DEC_TASK_IMG_SWPATH_CLOSE,
    MP4_DEC_SEEK_END_FRAME = 50,
    MP4_DEC_SEEK_ERROR_PARAMETER,
    MP4_ENC_TASK_IND_BITS_START = 60,
    MP4_ENC_TASK_IND_BITS_END,
    MP4_ENC_TASK_IND_META_START,
    MP4_ENC_TASK_IND_META_END,
    MP4_DEC_VIDEO_SEEK,
    MP4_DEC_AUDIO_SEEK,
    MP4_DEC_PLAY,
    MP4_DEC_DISPLAY_OK,
    MP4_DEC_DISPLAY_FAIL,
    MP4_DEC_PREV_DISPLAY_OK,
    MP4_DEC_PREV_DISPLAY_FAIL,
    MP4_MAY_ISR_ERROR,
    VISUAL_DBG_MAX_ID
}VIDEO_DBG_ID;

typedef struct
{
    VIDEO_DBG_ID tag;
    kal_uint32 time;
} VIDEO_DBG_DATA;

typedef struct
{
    VIDEO_DBG_DATA dbg_data[MAX_VISIAL_DBG_INFO_SIZE];
    kal_uint16 dbg_data_idx;
} VIDEO_DBG_STRUCT;


 /* Mpeg4 reset function for MT6219 series.
 * @param None
 * @return None                                                        
 */
extern void mp4_reset(void);

 /* Mpeg4 decode reset function.
 * @param None
 * @return None                                                        
 */
extern void mpeg4_dec_reset(void);

 /* Mpeg4 encode reset function.
 * @param None
 * @return None                                                        
 */
extern void mpeg4_enc_reset(void);

 /* Mpeg4 core reset function for MT6228 series.
 * @param None
 * @return None                                                        
 */
extern void mpeg4_core_reset(void);

 /* Mpeg4 wait done function for MT6219 series.
 * @param None
 * @return None                                                        
 */
extern void mpeg4_wait_done(void);

 /* Mpeg4 decode wait done function.
 * @param None
 * @return None                                                        
 */
extern void mpeg4_dec_wait_done(void);

 /* Mpeg4 encode wait done function.
 * @param None
 * @return None                                                        
 */
extern void mpeg4_enc_wait_done(void);

 /* Mpeg4 check hardware complete function.
 * @param None
 * @return None                                                        
 */
extern kal_bool mpeg4_dec_check_complete(void);

 /* Get current time function. (32K resolution)
 * @param None
 * @return None                                                        
 */
extern kal_uint32 video_get_current_time(void);

 /* Get duration time. (32K resolution)
 * @param previous_time. The previous time get from 32K ticks
 * @param current_time. The current time get from 32K ticks
 * @return time difference. (calculate limit)                                                       
 */
extern kal_uint32 video_get_duration_tick(kal_uint32 previous_time, kal_uint32 current_time);

/* Get duration time. (ms)
 * @param previous_time. The previous time get from 32K ticks
 * @return time difference from previous to current time. (calculate limit, and translate to ms)                                                       
 */
extern kal_uint32 video_get_duration_ms(kal_uint32 previous_time);

/* This function will obtain the current video status.
 * @param None.
 * @return Media status, which is based MED_STATUS structure.                                                
 */
extern MED_STATUS VIDEO_GetLastError(void);

 /* Video assert debug function.
 * @param   line      file line number
 * @return  None                                         
 */
extern void video_assert(kal_uint32 line);

 /* This function add debug trace information to memory
 * @param  index  VIDEO debug id.
 * @param  time   Time stamp.
 * @return None
 */
extern void video_dbg_trace(VIDEO_DBG_ID index, kal_uint32 time);

/* This function will obtain the debug information of video driver.
 * @param  data1  video debug information1
 * @param  data2  video debug information2
 * @param  data3  video debug information3
 * @param  data4  video debug information4
 * @param  data_index  video debug information index
 * @return None
 */
extern void VIDEO_DbgInfo(kal_uint32 * data1, kal_uint32 * data2, kal_uint32 * data3, kal_uint32 * data4,
                          kal_uint32 * data_index);

#endif /*VIDEO_COMM_H*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -