You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
7.6 KiB
133 lines
7.6 KiB
/*
|
|
* Copyright (c) Hisilicon Technologies Co., Ltd. 2009-2019. All rights reserved.
|
|
* Description: Defines avplay adapter api
|
|
* Author: Hisilicon
|
|
* Create: 2009-12-21
|
|
* History:
|
|
*/
|
|
#ifndef __AVPLAY_ADAPTER_H__
|
|
#define __AVPLAY_ADAPTER_H__
|
|
|
|
#include "mpi_avplay_ext.h"
|
|
#include "mpi_sync_ext.h"
|
|
#include "mpi_demux_ext.h"
|
|
#include "drv_video_ext.h"
|
|
#include "avplay_context.h"
|
|
#include "drv_ioctl_avplay.h"
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif
|
|
|
|
td_u32 avplay_adp_get_video_packing_user_type(td_u32 drv_type);
|
|
td_u32 avplay_adp_get_video_packing_drv_type(td_u32 user_type);
|
|
td_u32 avplay_adp_get_video_codec_user_type(td_u32 drv_type);
|
|
td_u32 avplay_adp_get_video_bitdepth_user_type(td_u32 bit_depth); /* u32 to uapi_pixel_bit_depth */
|
|
|
|
td_s32 avplay_adp_open_decoder(td_handle *decoder, td_bool is_vid, const avplay_com_ctx *com);
|
|
td_s32 avplay_adp_open_dmx_band(td_handle *dmx_band, td_u32 dmx_id);
|
|
td_s32 avplay_adp_open_demux(td_handle *dmx, td_bool is_vid, td_bool secure, const avplay_com_ctx *com);
|
|
td_s32 avplay_adp_open_multi_aud_dmx(avplay_aud_ctx *aud, td_u32 aud_cnt, td_bool first);
|
|
td_s32 avplay_adp_close_decoder(td_handle *decoder, td_bool is_vid);
|
|
td_s32 avplay_adp_close_dmx_band(td_handle *dmx_band);
|
|
td_s32 avplay_adp_close_demux(td_handle *demux, td_handle *pid_ch);
|
|
td_s32 avplay_adp_close_multi_aud_dmx(avplay_aud_ctx *aud, td_bool close_first);
|
|
|
|
td_s32 avplay_adp_config_dmx(td_handle dmx, uapi_vcodec_type vcodec_type);
|
|
td_s32 avplay_adp_ctrl_dmx_index(td_handle dmx, td_bool is_start);
|
|
td_s32 avplay_adp_start_dmx(const avplay_context *ctx, td_bool is_vid);
|
|
td_s32 avplay_adp_stop_dmx(avplay_context *ctx, td_bool is_vid);
|
|
td_s32 avplay_adp_discard_dmx_es(td_handle avplay, td_handle dmx, td_bool is_vid, dmx_buffer *buf_info);
|
|
|
|
td_s32 avplay_adp_malloc_es_buffer(avplay_vid_ctx *vid, const uapi_avplay_attr *attr);
|
|
td_s32 avplay_adp_free_es_buffer(avplay_vid_ctx *vid, const uapi_avplay_attr *attr);
|
|
td_s32 avplay_adp_malloc_user_data(avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_free_user_data(avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_malloc_frm_buffer(avplay_vid_ctx *vid, const avplay_resolution_param *param);
|
|
td_s32 avplay_adp_free_frm_buffer(avplay_vid_ctx *vid, td_mem_handle_t frm_fd, td_bool destroy);
|
|
|
|
td_s32 avplay_adp_set_pid(td_handle dmx_band, td_handle dmx, td_u32 pid, td_handle *pid_ch);
|
|
td_s32 avplay_adp_set_ad_balance(const avplay_aud_ctx *aud, td_s16 balance);
|
|
td_s32 avplay_adp_set_adec_attr(td_handle adec,
|
|
td_u32 es_buf_size, td_u32 out_buf_num, const uapi_audio_decode_attr *attr);
|
|
td_s32 avplay_adp_get_adec_attr(td_handle adec, uapi_audio_decode_attr *attr);
|
|
td_s32 avplay_adp_set_ad_adec_attr(td_handle adec, td_handle ad_adec);
|
|
td_s32 avplay_adp_set_track_attr(td_handle track, const uapi_audio_decode_attr *attr);
|
|
td_s32 avplay_adp_check_acodec_support(uapi_acodec_id codec_id, td_bool *support);
|
|
td_s32 avplay_adp_set_vdec_attr(const avplay_vid_ctx *vid, const avplay_vdec_attr *v_attr);
|
|
td_s32 avplay_adp_set_dolbyvision_attr(td_handle vdec, td_bool is_el, const uapi_avplay_dolby_hdr_attr *attr);
|
|
td_s32 avplay_adp_reopen_vdec(avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_set_framerate(td_handle vdec, const uapi_avplay_frame_rate_param *framerate);
|
|
td_s32 avplay_adp_get_framerate(td_handle vdec, uapi_avplay_frame_rate_param *framerate);
|
|
td_s32 avplay_adp_set_vpeek(td_handle vdec, const avplay_peek_frame_info *peek);
|
|
|
|
td_s32 avplay_adp_set_vcodec_mode(td_handle vdec, uapi_vdec_work_mode mode);
|
|
td_s32 avplay_adp_decode_vid_iframe(td_handle vdec, const uapi_avplay_iframe_info *in, ext_drv_video_frame *out);
|
|
td_s32 avplay_adp_release_vid_iframe(td_handle vdec, const ext_drv_video_frame *in);
|
|
td_s32 avplay_adp_send_vid_iframe(td_handle window, td_handle vdec, ext_drv_video_frame *frame);
|
|
td_s32 avplay_adp_release_vid_frame(td_handle vdec, ext_vdec_frame *vdec_frame, td_bool is_close_fence);
|
|
td_s32 avplay_adp_start_vid(avplay_vid_ctx *vid, const avplay_com_ctx *com, td_bool only_flush);
|
|
td_s32 avplay_adp_stop_vid(avplay_vid_ctx *vid, avplay_com_ctx *com, td_bool only_flush, uapi_avplay_stop_mode mode);
|
|
td_s32 avplay_adp_start_adec_ao(avplay_aud_ctx *aud);
|
|
td_s32 avplay_adp_stop_adec_ao(const avplay_aud_ctx *aud);
|
|
td_s32 avplay_adp_start_aud(avplay_aud_ctx *aud, const avplay_com_ctx *com, td_bool only_flush);
|
|
td_s32 avplay_adp_stop_aud(const avplay_aud_ctx *aud, const avplay_com_ctx *com, td_bool only_flush);
|
|
td_s32 avplay_adp_open_pcr(avplay_com_ctx *com, td_u32 pid);
|
|
td_s32 avplay_adp_close_pcr(avplay_com_ctx *com);
|
|
td_s32 avplay_adp_set_vid_eos(const avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_set_aud_eos(const avplay_aud_ctx *aud);
|
|
|
|
td_s32 avplay_adp_freeze_vid(avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_unfreeze_vid(avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_pause_vid(const avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_pause_aud(const avplay_aud_ctx *aud);
|
|
|
|
td_s32 avplay_adp_vid_tplay(const avplay_vid_ctx *vid_ctx, const uapi_avplay_tplay_opt *speed);
|
|
td_s32 avplay_adp_aud_tplay(const avplay_aud_ctx *aud_ctx, const uapi_avplay_tplay_opt *speed);
|
|
td_s32 avplay_adp_resume(const avplay_context *ctx, uapi_avplay_media_chan chn, td_bool is_resume_sync);
|
|
td_s32 avplay_adp_get_vid_buf(avplay_vid_ctx *vid, td_u32 req_len, avplay_vid_buf *buf);
|
|
td_s32 avplay_adp_put_vid_buf(avplay_vid_ctx *vid, const avplay_vid_buf *buf);
|
|
td_s32 avplay_adp_get_aud_buf(td_handle handle, avplay_aud_mode mode, td_bool is_ad,
|
|
td_u32 req_len, ext_stream_buf *buf);
|
|
td_s32 avplay_adp_put_aud_buf(td_handle handle, avplay_aud_mode mode, td_bool is_ad,
|
|
const ext_stream_buf *buf, td_s64 pts);
|
|
|
|
td_s32 avplay_adp_get_vid_feature(td_handle vdec, uapi_video_stream_info *feature);
|
|
td_s32 avplay_adp_get_aud_feature(td_handle handle, td_bool is_track, uapi_audio_stream_info *feature);
|
|
td_s32 avplay_adp_vdec_register_event(td_handle vdec, const avplay_com_ctx *com);
|
|
td_s32 avplay_adp_vdec_read_user_data(td_handle vdec, uapi_video_userdata_type *type, uapi_video_userdata *data);
|
|
td_s32 avplay_adp_vdec_acq_user_data(const avplay_vid_ctx *vid, uapi_video_userdata_type type,
|
|
uapi_video_userdata *data);
|
|
td_s32 avplay_adp_vdec_rls_user_data(const avplay_vid_ctx *vid, uapi_video_userdata_type type,
|
|
const uapi_video_userdata *data);
|
|
td_void avplay_adp_hdrinfo_drv_to_user(ext_drv_hdr_type drv_hdr_type, const ext_drv_color_descript *drv_color,
|
|
const ext_drv_hdr_metadata *drv_hdr_info, uapi_hdr_info *usr_hdr_info);
|
|
td_void avplay_adp_hdrinfo_user_to_drv(const uapi_hdr_info *usr_hdr_info, ext_drv_hdr_type *drv_hdr_type,
|
|
ext_drv_color_descript *drv_color, ext_drv_hdr_metadata *drv_hdr_info);
|
|
|
|
td_s32 avplay_adp_frminfo_drv_to_user(const ext_drv_video_frame *drv_frame, uapi_video_frame_info *user_frame);
|
|
td_s32 avplay_adp_frminfo_user_to_drv(const uapi_video_frame_info *user_frame, ext_drv_video_frame *drv_frame);
|
|
|
|
td_bool avplay_adp_is_ts_live_play(const avplay_com_ctx *com);
|
|
td_bool avplay_adp_is_support_random_stream(const avplay_vid_ctx *vid);
|
|
td_s32 avplay_adp_vdec_cmd(td_handle vdec, td_u32 cmd, void *param, td_u32 param_size);
|
|
td_s32 avplay_adp_vid_invoke(const avplay_vid_ctx *vid_ctx, uapi_avplay_codec_cmd_param *cmd);
|
|
td_u32 avplay_adp_sync_result_drv_to_user(td_u32 sync_result);
|
|
td_u32 avplay_adp_sync_result_user_to_drv(td_u32 sync_result);
|
|
td_u32 avplay_adp_pts_chan_drv_to_user(td_u32 pts_chan);
|
|
|
|
td_s32 avplay_adp_get_vdec_capability(uapi_vcodec_type type, uapi_vdec_output_capability *capability);
|
|
td_s32 avplay_adp_set_low_delay_sync_mode(avplay_context *ctx, ext_mpi_sync_ref_mode ref_mode);
|
|
|
|
td_s32 avplay_adp_set_hdr_strategy_info(const avplay_context *ctx, td_bool is_reset);
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
#endif
|