📄 fbm_sw.h
字号:
FBM_PICTURE next_displayed_picture_for_freeze;
FBM_PICTURE next_recov_picture_for_freeze;
FBM_PICTURE picture_found_for_freeze;
FBM_GOP gop;
FBM_VS Vs;
FBM_VS next_Vs;
unsigned long frame_store_y_odd_add[FRAME_STORE_NB_MAX];
unsigned long frame_store_y_even_add[FRAME_STORE_NB_MAX];
unsigned long frame_store_c_odd_add[FRAME_STORE_NB_MAX];
unsigned long frame_store_c_even_add[FRAME_STORE_NB_MAX];
/* Variable for feedback */
FBM_STATE fbm_state;
/* Variable for memory ressources */
} FBM_PARAM;
#define FBM_STATUS FBM_PARAM
/* New type for Osal messages */
typedef unsigned long FBM_MSG[4];
/*EMP=======================================================================*/
/*==========================================================================*/
/* G L O B A L F U N C T I O N P R O T O T Y P E S */
/*==========================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_supervisor
DESCRIPTION:
RETURNS:
CALLING SEQUENCE:
*/
extern int
MV_FBM_supervisor(
ULONG msg_buf[4],
FBM_STATUS* in_fbm_status_ptr
);
/*EMP=======================================================================*/
/*EMPF======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_synchro_VS
DESCRIPTION:
RETURNS:
CALLING SEQUENCE:
*/
extern int
MV_FBM_synchro_VS(
ULONG msg_buf[4],
FBM_STATUS* p
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_is_next_picture_new_frame
DESCRIPTION: Check whether the next picture is new frame
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int MV_FBM_is_next_picture_new_frame (
const FBM_STATUS *in_fbm_status_ptr,
BOOLEAN *ou_next_picture_is_new_frame_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_play_dec_algo
DESCRIPTION:
RETURNS:
MV_FBM_OK
MV_FBM_NOT_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_play_dec_algo(
FBM_PICTURE *io_next_picture_ptr,
FBM_PICTURE *ou_next_past_picture_ptr,
FBM_PICTURE *ou_next_future_picture_ptr,
BOOLEAN *ou_decode_picture_ptr,
BOOLEAN *ou_discard_picture_ptr,
const BOOLEAN in_next_picture_is_new_frame,
const FBM_PICTURE *in_cur_picture_ptr,
const FBM_PICTURE *in_cur_past_picture_ptr,
const FBM_PICTURE *in_cur_future_picture_ptr,
const BOOLEAN in_gop_found,
const FBM_GOP *in_gop_ptr,
const BOOLEAN in_dec_to_disp_N1,
const MV_FBM_FRAME_STORE in_forbidden_frame_store,
BOOLEAN *io_I_or_GI_P_found_after_trick_mode_broken_link_ptr,
BOOLEAN *io_trick_mode_broken_link_ptr,
BOOLEAN *io_decode_P_possible_ptr,
BOOLEAN *io_decode_B_possible_ptr,
MV_TAB_LABEL *io_last_tab_label_used_ptr,
UCHAR *io_toggle_24hz_ptr,
UCHAR *io_top_field_first_24hz_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_update_pic_info
DESCRIPTION: read information about next picture from the bitstream
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_update_pic_info(
FBM_PICTURE * in_picture_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_sw_update_gop_info
DESCRIPTION: read information about gop from the bitstream
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_update_gop_info(
FBM_GOP * in_gop_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_pip_store_seq_gop_hdr
DESCRIPTION: store SEQUENCE + GOP headers in PIP mode
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
int
MV_FBM_pip_store_seq_gop_hdr(
void
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_pip_store_pict_hdr
DESCRIPTION: store last PICTURE header in PIP mode
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
int
MV_FBM_pip_store_pict_hdr(
void
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_flag_trick_mode_broken_link
DESCRIPTION: read information about gop from the bitstream
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_flag_trick_mode_broken_link(
BOOLEAN *ou_trick_mode_broken_link_ptr,
BOOLEAN *ou_I_or_GI_P_found_after_trick_mode_broken_link_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_24_to_60
DESCRIPTION: set the repeat first field and top field first parameters
to force 3:2 pulldown
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_24_to_60(
FBM_PICTURE *io_next_picture_ptr,
UCHAR *io_toggle_24hz_ptr,
UCHAR *io_top_field_first_24hz_ptr,
FBM_PICTURE *ou_next_past_picture_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_check
DESCRIPTION: Performs the 'check' algorithm
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_check(
const FBM_PICTURE *in_displayed_picture_ptr,
const FBM_PICTURE *in_decoded_picture_ptr,
const BOOLEAN in_display_started
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_dealloc_after_display
DESCRIPTION: programs the deallocation after display permission
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_dealloc_after_display(
const BOOLEAN in_field_top_still_to_display_flag,
const BOOLEAN in_field_bot_still_to_display_flag,
const BOOLEAN in_progressive_filter,
const DISP_IN_FIELD_MODE in_displayed_field,
BOOLEAN * ou_field_top_data_deallocated_after_display_ptr,
BOOLEAN * ou_field_bot_data_deallocated_after_display_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_forced_dealloc
DESCRIPTION: performs forced buffer deallocation after a field has been displayed
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_forced_dealloc(
const FBM_PICTURE *in_previous_displayed_picture_ptr,
const FBM_PICTURE *in_cur_displayed_picture_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_discard_IP
DESCRIPTION: discard IP picture
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_discard_IP(
FBM_STATUS *in_fbm_status_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_discard_B
DESCRIPTION: discard B picture
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_discard_B(
FBM_STATUS *in_fbm_status_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_discard_D
DESCRIPTION: discard D picture (this picture D99 is used after a HW reset
in order to restart as soon as possible
RETURNS:
MV_FBM_OK
CALLING SEQUENCE:
*/
int
MV_FBM_discard_D(
FBM_STATUS *in_fbm_status_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_reset_and_restart_hw
DESCRIPTION: Reset all the video decoder HW, then start on the nest
sequence
RETURNS: MV_FBM_OK
CALLING SEQUENCE:
*/
int
MV_FBM_reset_and_restart_hw(
void
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_sw_reset
DESCRIPTION: Reset all the video decoder HW when a software reset is
requested
RETURNS: MV_FBM_OK
CALLING SEQUENCE:
*/
int
MV_FBM_sw_reset(
void
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_handle_recov_mode
DESCRIPTION:
Log info about
RETURNS:
MV_FBM_OK
MV_FBM_NOT_OK
CALLING SEQUENCE:
*/
extern int
MV_FBM_handle_disp_recov_mode(
const FBM_PICTURE *in_cur_future_picture_ptr,
const FBM_PICTURE *in_cur_past_picture_ptr,
const FBM_PICTURE *in_cur_displayed_picture_ptr,
FBM_PICTURE *ou_next_displayed_picture_ptr,
FBM_PICTURE *ou_next_recov_picture_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_toggle_field
DESCRIPTION:
RETURNS:
CALLING SEQUENCE:
*/
extern int
MV_FBM_toggle_fields(
const FBM_PICTURE *in_cur_displayed_picture_ptr,
FBM_PICTURE *ou_next_displayed_picture_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_compare_pictures
DESCRIPTION: compare 2 pictures
RETURNS:
CALLING SEQUENCE:
*/
extern int
MV_FBM_compare_pictures(
const FBM_PICTURE *in_picture1_ptr,
const FBM_PICTURE *in_picture2_ptr,
BOOLEAN *ou_same_picture_ptr
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
/*
FUNCTION NAME: MV_FBM_set_next_Vs
DESCRIPTION: Sets next Vs
RETURNS:
CALLING SEQUENCE:
*/
extern int
MV_FBM_set_next_Vs(
const BOOLEAN in_picture_controlled_mode,
const BOOLEAN in_decode_next_picture_request,
const FBM_VS in_cur_Vs,
const BOOLEAN in_decoding_launched,
const MV_PICTURE_STRUCTURE in_decoded_picture_structure,
const MV_BIT in_next_displayed_picture_repeat_first_field,
FBM_VS *ou_next_Vs
);
/*EMP=======================================================================*/
/*MPF=======================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -