Files
2025-12-03 11:12:34 +08:00

73 lines
2.3 KiB
C

//----------------------------------------------------------------------------//
/**
******************************************************************************
* @file net_download.h
* @author
* @version
* @brief This file provides the api of net audio download.
******************************************************************************
* @attention
*
* Copyright(c) 2017, ZhuHai JieLi Technology Co.Ltd. All rights reserved.
******************************************************************************
*/
#ifndef NET_DOWNLOAD_H
#define NET_DOWNLOAD_H
#include "typedef.h"
struct net_download_parm {
const char *url;
u32 seek_low_range;
u32 seek_high_range;
u32 cbuf_size;
u32 timeout_millsec; //socket的连接和读数的超时
u32 read_timeout; //解码器读网络buf的超时(ms)
u8 prio;
u8 max_reconnect_cnt;
u8 save_file;
u8 no_wait_close;
const char *file_dir;
u16 dir_len; //路径长度
u8 cpu_index;
void *net_buf; //填NULL由库分配
u32 start_play_threshold;//下载缓存了多少个字节才开始播放
u32 seek_threshold;//跳转范围超过此值就直接重建链接
};
enum {
AI_SPEAK_PRIO,
AI_ALARM_PRIO,
AI_MEDIA_PRIO,
};
enum {
NET_DOWNLOAD_STATUS_NONE = 0,
NET_DOWNLOAD_CONNECT_OK = 1,
NET_DOWNLOAD_COMPLETE = 2,
NET_DOWNLOAD_CONNECT_FAIL = -1,
NET_DOWNLOAD_RECONNECT_MAX = -2,
NET_DOWNLOAD_CLOSED_MANUAL = -3,
};
int net_download_open(void **priv, struct net_download_parm *parm);
int net_download_read(void *priv, void *buf, u32 len);
int net_download_seek(void *priv, u32 offset, int orig);
int net_download_close(void *priv);
int net_download_check_ready(void *priv);
char *net_download_get_media_type(void *priv);
int net_download_get_file_len(void *priv);
u32 net_download_get_tmp_data_size(void *priv);
void net_download_set_tmp_data_threshold(void *priv, u32 threshold);
int net_download_set_pp(void *priv, u8 pp);
int net_download_set_read_timeout(void *priv, u32 timeout_ms);
void net_download_buf_inactive(void *priv);
int net_download_restart(void *priv, struct net_download_parm *parm);
void net_download_get_status(void *priv, int *download_status, int *http_err_status);
int net_download_exit_flag(void *priv);
int net_download_check_if_is_m3u8_url(void *priv);
#endif