?? decoder.h
字號:
#ifndef _DECODER_H_#define _DECODER_H_//#include "xvid.h"#include "portab.h"#include "mp4vdec.h"#include "global.h"#include "image/image_d.h"#undef API_VERSION //ivan for both using decoder and encoder header files#define API_VERSION ((2 << 16) | (2))/***************************************************************************** * Structures ****************************************************************************/typedef struct{ // ben 2005/3/26 uint32_t u32CacheAlign; DMA_MALLOC_PTR pfnDmaMalloc; DMA_FREE_PTR pfnDmaFree; void * pvSemaphore; SEM_WAIT_PTR pfnSemWait; SEM_SIGNAL_PTR pfnSemSignal; REQUEST_BS_PTR pfnRequestBS; uint32_t u32MaxWidth; uint32_t u32MaxHeight; // ben 2004/10/22 uint32_t u32BS_used_byte; uint32_t * pu32BaseAddr; // ben 2004/10/21 uint8_t *pu8BS_start_virt; uint8_t *pu8BS_start_phy; uint8_t *pu8BS_ptr_virt; uint8_t *pu8BS_ptr_phy; uint32_t u32BS_buf_sz; uint32_t u32BS_buf_sz_remain; boolean bBS_end_of_data; // ben 2004/6 uint8_t * output_base_phy; uint8_t * output_base_ref_phy; uint32_t output_stride; uint32_t output_height; #if (OUTPUT_FMT == OUTPUT_FMT_YUV) // ben 2005/5 uint8_t * output_base_u_phy; uint8_t * output_base_v_phy; #endif // ben 2004/6/14 int16_t *pu16ACDC_ptr_virt; int16_t *pu16ACDC_ptr_phy; // bitstream uint32_t shape; uint32_t time_inc_bits; uint32_t quant_bits; uint32_t quant_type; uint32_t quarterpel; uint32_t resync_marker_disable; uint32_t data_partitioned; uint32_t reversible_vlc; uint32_t interlacing; uint32_t top_field_first; uint32_t alternate_vertical_scan; // h263 rogers 11/05/2003 uint32_t h263; uint32_t split_screen_indicator; uint32_t document_camera_indicator; uint32_t full_picture_freeze_release; uint32_t picture_coding_type; uint32_t source_format; // image uint32_t width; uint32_t height;#if 0 uint32_t edged_width; uint32_t edged_height;#endif IMAGE cur; IMAGE refn; IMAGE refh; IMAGE refv; IMAGE refhv; // macroblock uint32_t mb_width; uint32_t mb_height; MACROBLOCK *mbs; // for B-frame int32_t frames; // total frame number int8_t scalability; int64_t time; // for record time int64_t time_base; int64_t last_time_base; int64_t last_non_b_time; uint32_t time_pp; uint32_t time_bp; uint8_t low_delay; // low_delay flage (1 means no B_VOP)}DECODER;/***************************************************************************** * Decoder prototypes ****************************************************************************/// ben-mark-04'10/21: void init_decoder(uint32_t cpu_flags);int32_t decoder_create(FMP4_DEC_PARAM * ptParam, void ** pptDecHandle);void decoder_destroy(void * ptDecHandle);int32_t decoder_decode(void * ptDecHandle, FMP4_DEC_RESULT * ptResult);#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -