1 /* 2 * Copyright (C) 2015-2020 Alibaba Group Holding Limited 3 * 4 */ 5 6 #ifndef __HTTP_LOAD_H__ 7 #define __HTTP_LOAD_H__ 8 9 10 #ifdef VOICELOUDER_APP 11 #define HTTP_URL_LEN 1024 12 #else 13 #define HTTP_URL_LEN 512 14 #endif 15 #define HTTP_HOSTNAME_LEN HTTP_URL_LEN 16 17 #define HTTP_STAT_SUCCESS 200 18 #define HTTP_CODE_BREAKPOINT 206 19 #define HTTP_CODE_PERM_REDIRECT 301 20 #define HTTP_CODE_TEMP_REDIRECT 302 21 22 #define HTTP_READ_BUFF_SIZE 1024 23 24 25 typedef struct { 26 char *source; 27 char filename[64]; 28 net_cache_t *nc; 29 } http_dload_t; 30 31 typedef struct { 32 char base[HTTP_URL_LEN]; 33 os_file_t fp; 34 char *content; 35 char *pos; 36 char *sub; 37 int len; 38 int *seg_offset; 39 char seg_desc[64]; 40 uint8_t live_stream:1; 41 int seg_begin; 42 int seg_index; 43 int seg_count; 44 int seg_current; 45 int duration; 46 os_mutex_t lock; 47 } hls_t; 48 49 typedef struct { 50 uint16_t port; 51 int sock; 52 int http_status; 53 uint16_t https:1; 54 uint16_t start:1; 55 uint16_t chunked:1; 56 uint16_t redirect:1; 57 uint16_t download:1; 58 uint16_t cache_on:1; 59 uint16_t seeking:1; 60 uint16_t deep_pause:1; 61 uint16_t force_restart:1; 62 uint16_t read_paused:1; 63 int content_length; 64 int breakpoint_pos; 65 int load_pos; 66 int seek_offset; 67 long long pause_time; 68 uint32_t host_addr; 69 char host_name[HTTP_HOSTNAME_LEN]; 70 char uri[HTTP_URL_LEN]; 71 char url[HTTP_URL_LEN]; 72 char redirect_url[HTTP_URL_LEN]; 73 http_dload_t dload; 74 net_cache_t *nc; 75 hls_t *hls; 76 os_task_t download_task; 77 void *priv; 78 } http_loader_t; 79 80 81 #endif /* __HTTP_LOAD_H__ */ 82