/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2009-2019. All rights reserved. * Description: Defines avplay control api * Author: Hisilicon * Create: 2009-12-21 * History: */ #ifndef __AVPLAY_CONTROL_H__ #define __AVPLAY_CONTROL_H__ #include "mpi_avplay_ext.h" #include "avplay_context.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif td_bool avplay_ctrl_event_registered(const avplay_context *ctx, avplay_notify_event_type event); td_s32 avplay_ctrl_event_report(const avplay_context *ctx, avplay_notify_event_type event, const void *param, td_u32 param_size, td_bool sync); td_s32 avplay_check_stream_attr(const uapi_avplay_attr *attr); td_s32 avplay_ctrl_set_state(avplay_context *ctx, uapi_avplay_status state); td_s32 avplay_ctrl_start(avplay_context *ctx, uapi_avplay_media_chan chn); td_s32 avplay_ctrl_stop(avplay_context *ctx, uapi_avplay_media_chan chn, const uapi_avplay_stop_opt *option); td_s32 avplay_ctrl_prestart(avplay_context *ctx, uapi_avplay_media_chan chn); td_s32 avplay_ctrl_tplay(avplay_context *ctx, const uapi_avplay_tplay_opt *option); td_s32 avplay_ctrl_resume(avplay_context *ctx); td_s32 avplay_ctrl_pause(avplay_context *ctx); td_s32 avplay_ctrl_reset(avplay_context *ctx, uapi_avplay_media_chan chan, const uapi_avplay_reset_opt *option); td_s32 avplay_ctrl_open_channel(avplay_context *ctx, uapi_avplay_media_chan chn, const void *param); td_s32 avplay_ctrl_close_channel(avplay_context *ctx, uapi_avplay_media_chan chn); td_s32 avplay_ctrl_set_attr(avplay_context *ctx, uapi_avplay_attr_id attr_id, const void *param); td_s32 avplay_ctrl_get_attr(const avplay_context *ctx, uapi_avplay_attr_id attr_id, void *param); td_s32 avplay_ctrl_decode_iframe(avplay_context *ctx, const uapi_avplay_iframe_info *frame, uapi_video_frame_info *out); td_s32 avplay_ctrl_release_iframe(avplay_context *ctx, uapi_video_frame_info *frame); td_s32 avplay_ctrl_set_vcodec_mode(avplay_context *ctx, uapi_vdec_work_mode mode); td_s32 avplay_ctrl_register_event(avplay_context *ctx, uapi_avplay_event_type event, uapi_avplay_event_callback_fn callback); td_s32 avplay_ctrl_unregister_event(avplay_context *ctx, uapi_avplay_event_type event); td_s32 avplay_ctrl_getbuf(avplay_context *ctx, uapi_avplay_buf_id buf_id, td_u32 req_len, uapi_stream_buf *buf, td_u32 timeout_ms); td_s32 avplay_ctrl_putbuf(avplay_context *ctx, uapi_avplay_buf_id buf_id, td_u32 len, td_s64 pts, const uapi_avplay_put_buf_opt *option); td_s32 avplay_ctrl_step(avplay_context *ctx, const uapi_avplay_step_opt *opt); td_s32 avplay_ctrl_attach_window(avplay_context *ctx, td_handle window); td_s32 avplay_ctrl_detach_window(avplay_context *ctx, td_handle window); td_s32 avplay_ctrl_attach_track(avplay_context *ctx, td_handle track); td_s32 avplay_ctrl_detach_track(avplay_context *ctx, td_handle track); td_s32 avplay_ctrl_attach_snd(avplay_context *ctx, td_handle snd); td_s32 avplay_ctrl_detach_snd(avplay_context *ctx, td_handle snd); td_s32 avplay_ctrl_attach_render(avplay_context *ctx, td_handle render); td_s32 avplay_ctrl_dettach_render(avplay_context *ctx, td_handle render); td_s32 avplay_ctrl_get_status_info(avplay_context *ctx, uapi_avplay_status_type type, td_void *info); td_s32 avplay_ctrl_get_stream_info(avplay_context *ctx, uapi_avplay_stream_info *stream_info); td_s32 avplay_ctrl_get_aud_spectrum(avplay_context *ctx, td_u16 *spectrum, td_u32 band_num); td_s32 avplay_ctrl_switch_to_external_audio(avplay_context *ctx, td_bool external_aud); td_s32 avplay_ctrl_switch_aud_dmx(avplay_context *ctx, td_handle new_dmx, td_handle *old_dmx); td_s32 avplay_ctrl_acq_user_data(const avplay_context *ctx, uapi_video_userdata_type type, uapi_video_userdata *data); td_s32 avplay_ctrl_rls_user_data(const avplay_context *ctx, uapi_video_userdata_type type, const uapi_video_userdata *data); td_s32 avplay_ctrl_set_hdr_info(avplay_context *ctx, const uapi_hdr_info *hdr, uapi_avplay_hdr_opt *opt); td_s32 avplay_ctrl_get_hdr_info(const avplay_context *ctx, uapi_hdr_info *hdr); td_s32 avplay_ctrl_flush_stream(avplay_context *ctx, const uapi_avplay_flush_stream_opt *opt); td_s32 avplay_ctrl_is_buffer_empty(const avplay_context *ctx, td_bool *is_empty); td_s32 avplay_ctrl_is_support_random_stream(const avplay_context *ctx, td_bool *support); td_s32 avplay_ctrl_get_dmx_handle(const avplay_context *ctx, uapi_avplay_demux_handle_type id, td_handle *dmx); td_s32 avplay_ctrl_set_framebuffer_mode(avplay_context *ctx, ext_avplay_framebuffer_mode mode); td_s32 avplay_ctrl_set_external_framebuffer(const avplay_context *ctx, const ext_avplay_framebuffer_info *fb, td_u32 cnt); td_s32 avplay_ctrl_unset_external_framebuffer(const avplay_context *ctx, const ext_avplay_framebuffer_info *fb, td_u32 cnt); td_s32 avplay_ctrl_stc_calibration(const avplay_context *ctx, td_s32 stc_ppm); td_s32 avplay_ctrl_set_disp_ctrl(const avplay_context *ctx, td_bool is_stream_continuos, const uapi_avplay_tplay_opt *option); td_s32 avplay_ctrl_set_session_info(avplay_context *ctx, const uapi_avplay_session_info *info); td_s32 avplay_ctrl_get_aud_status(avplay_context *ctx, uapi_avplay_aud_chan_status *status); td_s32 avplay_ctrl_get_snd_handle(const avplay_context *ctx, td_handle *snd); td_s32 avplay_ctrl_get_win_handle(const avplay_context *ctx, td_handle *win); td_s32 avplay_get_aud_dmx_buffer_status(const avplay_aud_ctx *aud, uapi_avplay_buf_status *status); td_s32 avplay_ctrl_invoke(avplay_context *ctx, uapi_avplay_invoke_type invoke_type, void *param); #ifdef __cplusplus #if __cplusplus } #endif #endif #endif