|
|
/*
|
|
|
* Copyright (c) Hisilicon Technologies Co., Ltd. 2009-2019. All rights reserved.
|
|
|
* Description: Defines avplay config api
|
|
|
* Author: Hisilicon
|
|
|
* Create: 2009-12-21
|
|
|
* History:
|
|
|
*/
|
|
|
#ifndef __AVPLAY_CONFIG_H__
|
|
|
#define __AVPLAY_CONFIG_H__
|
|
|
|
|
|
#include "td_type.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
#if __cplusplus
|
|
|
extern "C" {
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
#define AVPLAY_SUPPORT_DEBUGGER
|
|
|
#define AVPLAY_SUPPORT_VDEC_DEINIT_INPUT_BUF
|
|
|
|
|
|
#define AVPLAY_MAX_VDEC_ERR_COVER 100
|
|
|
|
|
|
#define AVPLAY_BUFF_TIME_MAX 1000
|
|
|
#define AVPLAY_BUFF_TIME_NORMAL 800
|
|
|
#define AVPLAY_BUFF_TIME_MIN 200
|
|
|
|
|
|
/* video buffer dither waterline */
|
|
|
/* CNcomment: 视频缓冲管理抖动水线的百分比,0-99 */
|
|
|
#define AVPLAY_ES_VID_FULL_PERCENT 85
|
|
|
#define AVPLAY_ES_VID_HIGH_PERCENT 70
|
|
|
#define AVPLAY_ES_VID_LOW_PERCENT 30
|
|
|
#define AVPLAY_ES_VID_EMPTY_PERCENT 10
|
|
|
|
|
|
#define AVPLAY_ES_VID_DROP_PERCENT 60
|
|
|
#define AVPLAY_ES_VID_BPS_THRESHOLD (128 * 100)
|
|
|
|
|
|
#define AVPLAY_ES_VID_DELAY_TIME_EMPTY 100
|
|
|
#define AVPLAY_ES_VID_DELAY_TIME_LOW 200
|
|
|
|
|
|
/* audio buffer dither waterline */
|
|
|
/* CNcomment: 音频缓冲管理抖动水线的百分比,0-99 */
|
|
|
#define AVPLAY_ES_AUD_FULL_PERCENT 98
|
|
|
#define AVPLAY_ES_AUD_HIGH_PERCENT 85
|
|
|
#define AVPLAY_ES_AUD_LOW_PERCENT 5
|
|
|
#define AVPLAY_ES_AUD_EMPTY_PERCENT 2
|
|
|
|
|
|
/* CNcomment: 音频攒流缓冲管理抖动水线的百分比,0-99 */
|
|
|
|
|
|
#define AVPLAY_BUF_PERCENT_MAX 25 /* 预同步后攒流最大值 */
|
|
|
#define AVPLAY_FUND_STREAM_TIMEOUT 1000 /* 预同步后攒流时间 */
|
|
|
#define AVPLAY_ADEC_BUF_PERCENT_MIN 4 /* 断流进入攒流条件时ADEC buff状态 */
|
|
|
#define AVPLAY_FUND_BUF_TIME_MAX 1000 /* 断流退出攒流条件时AO buff time 状态 */
|
|
|
#define AVPLAY_FUND_BUF_TIME_MIN 400 /* 断流进入攒流条件时AO buff time状态 */
|
|
|
#define AVPLAY_AO_BUF_TIME_MIN 50 /* 同步攒流ao delay最小值 */
|
|
|
#define AVPLAY_BREAK_TIME_MIN 200 /* 断流最小时间 */
|
|
|
|
|
|
#define AVPLAY_BUF_PERCENT_MAX_PRE_SYNC 4 /* 预同步后攒流最大值 */
|
|
|
#define AVPLAY_FUND_MIN_TIME 400 /* 攒流buf最小值 */
|
|
|
#define AVPLAY_PRE_FUND_TIME 200 /* 起播攒流buf最小值 */
|
|
|
|
|
|
#define AVPLAY_FUND_CODEX 0x80340007
|
|
|
|
|
|
#define AVPLAY_ES_AUD_DELAY_TIME_EMPTY 150
|
|
|
#define AVPLAY_ES_AUD_DELAY_TIME_LOW 240
|
|
|
|
|
|
#define AVPLAY_EFIFO_DEFAULT_SIZE (32 * 1024)
|
|
|
#define AVPLAY_EFIFO_MAX_SIZE (512 * 1024)
|
|
|
#define AVPLAY_EFIFO_MAX_PARAM_SIZE 128
|
|
|
#define AVPLAY_EFIFO_INVALID_ID 0xff
|
|
|
|
|
|
#define AVPLAY_MAX_BUFQ_SIZE (64 * 1024 * 1024)
|
|
|
#define AVPLAY_MIN_UVMOS_FRAME_CNT 40
|
|
|
#define AVPLAY_MAX_UVMOS_INFO_CNT 16
|
|
|
#define AVPLAY_MIN_UVMOS_INFO_CNT 5
|
|
|
|
|
|
#define AVPLAY_INVALID_AUD_TYPE 0xffffffff
|
|
|
#define AVPLAY_INVALID_ID 0xFF
|
|
|
#define AVPLAY_MAX_CNT 32
|
|
|
|
|
|
#define AVPLAY_MAX_DMX_AUD_CHAN_NUM 32
|
|
|
#define AVPLAY_MAX_TRACK_NUM 6
|
|
|
#define AVPLAY_MAX_VIR_FRMCHAN 1
|
|
|
#define AVPLAY_MAX_VDP_FRAME_NUM 3
|
|
|
|
|
|
/* adapt the audio driver range : -32 ~ 32 */
|
|
|
#define avplay_ad_balance_user_to_drv(balance) (td_s16)((balance) / 3.125)
|
|
|
#define AVPLAY_MAX_AD_BALANCE_VALUE 100
|
|
|
#define AVPLAY_MAX_ADEC_FRAME 32
|
|
|
#define AVPLAY_DEFAULT_ADEC_FRAME_NUM 8
|
|
|
|
|
|
/* TPLAY */
|
|
|
#define AVPLAY_MAX_TPLAY_INTEGER 64
|
|
|
#define AVPLAY_MAX_TPLAY_DECIMAL 999
|
|
|
|
|
|
#define AVPLAY_MAX_AUD_TPLAY_SPEED 2000 /* Double speed */
|
|
|
#define AVPLAY_MIN_AUD_TPLAY_SPEED 200 /* 0.2 speed */
|
|
|
|
|
|
#define AVPLAY_DEFAULT_FRAME_DURATION 40
|
|
|
|
|
|
#define AVPLAY_MULTIAUD_SYNC_NOVEL_REGION (3000 * 1000) /* unit: us */
|
|
|
#define AVPLAY_MULTIAUD_SYNC_START_REGION (100 * 1000) /* unit: us */
|
|
|
#define AVPLAY_DMX_BUF_HIGH_THRESHOLD 85
|
|
|
|
|
|
#define AVPLAY_MAX_BUF_BLK_CNT (1024 * 1024)
|
|
|
#define AVPLAY_DEFAULT_BUF_BLK_CNT 4096
|
|
|
|
|
|
#define AVPLAY_ALLOC_USER_DATA_SIZE (16 * 1024) /* 4K byte alignment required */
|
|
|
|
|
|
typedef enum {
|
|
|
AVPLAY_LOOP_DEBUG_WAKEUP_SIGNAL = 1 << 0,
|
|
|
AVPLAY_LOOP_DEBUG_DISABLE_VDMX = 1 << 1,
|
|
|
AVPLAY_LOOP_DEBUG_DISABLE_VDEC = 1 << 2,
|
|
|
AVPLAY_LOOP_DEBUG_DISABLE_VOUT = 1 << 3,
|
|
|
AVPLAY_LOOP_DEBUG_DISABLE_ADMX = 1 << 4,
|
|
|
AVPLAY_LOOP_DEBUG_DISABLE_ADEC = 1 << 5,
|
|
|
AVPLAY_LOOP_DEBUG_DISABLE_AOUT = 1 << 6,
|
|
|
} avplay_loop_debug_flag;
|
|
|
|
|
|
/* config_step 1: define the config tag here */
|
|
|
typedef enum {
|
|
|
AVPLAY_CONFIG_TAG_GLOBAL_SETTING = 0,
|
|
|
AVPLAY_CONFIG_TAG_LOOP_SHOW,
|
|
|
AVPLAY_CONFIG_TAG_LOOP_POLL, /* polling or event-driven, value: 1: polling; 0: event-driven */
|
|
|
AVPLAY_CONFIG_TAG_LOOP_DEBUG, /* value: avplay_loop_debug_flag */
|
|
|
AVPLAY_CONFIG_TAG_AUD_THREAD_PRIO,
|
|
|
AVPLAY_CONFIG_TAG_VID_THREAD_PRIO,
|
|
|
AVPLAY_CONFIG_TAG_EVT_THREAD_PRIO,
|
|
|
AVPLAY_CONFIG_TAG_RPT_THREAD_PRIO,
|
|
|
AVPLAY_CONFIG_TAG_MUTEX_TYPE, /* 0: default mutex, 1: recursive mutex */
|
|
|
AVPLAY_CONFIG_TAG_UVMOS_ENABLE,
|
|
|
AVPLAY_CONFIG_TAG_VID_EB_SIZE,
|
|
|
AVPLAY_CONFIG_TAG_AUD_EB_SIZE,
|
|
|
AVPLAY_CONFIG_TAG_MAX
|
|
|
} avplay_config_tag;
|
|
|
|
|
|
void avplay_config_init(void);
|
|
|
td_u32 avplay_config_get(avplay_config_tag tag);
|
|
|
td_u32 avplay_property_get(avplay_config_tag tag);
|
|
|
|
|
|
#ifdef AVPLAY_SUPPORT_DEBUGGER
|
|
|
td_s32 avplay_config_set(void *private, avplay_config_tag tag, td_u32 val);
|
|
|
td_s32 avplay_config_set_by_name(void *private, const td_char *name, const td_char *val);
|
|
|
td_s32 avplay_config_help(td_u32 id, td_char *help_info, td_u32 info_length);
|
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
#if __cplusplus
|
|
|
}
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
#endif
|