#ifndef AVIO_LPBUF_HEADER #define AVIO_LPBUF_HEADER #include #include #include #include "stdio.h" #define lock_t pthread_mutex_t #define lp_lock_init(x, v) pthread_mutex_init(x, v) #define lp_lock(x) pthread_mutex_lock(x) #define lp_unlock(x) pthread_mutex_unlock(x) #define lp_trylock(x) pthread_mutex_trylock(x) /*URL flags*/ #define LESS_READ_SEEK (0x10000) #define MORE_READ_SEEK (0x20000) #define LESS_BUFF_DATA (0x40000) //do not buffering more data,just buffered need.. #define NO_READ_RETRY (0x80000) //do not retry read,if have get data and then get eagain. #define PLAYER_ON_SEEKING (0x100000) //on seek now, #define URL_SEEK_FAIL_NO_BACK (0x200000) #define AVSEEK_TO_TIME 0x30000 #define AVSEEK_BUFFERED_TIME 0x40000 #define AVSEEK_FULLTIME 0x50000 #define AVSEEK_SLICE_BYINDEX (0x80000 + 1) #define AVSEEK_SLICE_BYTIME (0x80000 + 2) #define AVSEEK_ITEM_TIME (0x80000 + 3) #define AVSEEK_CMF_TS_TIME (0x80000 + 4) #define AVSEEK_CURL_HTTP_KEEPALIVE (0x80000 + 5) #define AVSEEK_LOOPBUFFER_OFFSET (0x80000 + 6) #define AVERROR_BSF_NOT_FOUND (-MKTAG(0xF8, 'B', 'S', 'F')) ///< Bitstream filter not found #define AVERROR_DECODER_NOT_FOUND (-MKTAG(0xF8, 'D', 'E', 'C')) ///< Decoder not found #define AVERROR_DEMUXER_NOT_FOUND (-MKTAG(0xF8, 'D', 'E', 'M')) ///< Demuxer not found #define AVERROR_ENCODER_NOT_FOUND (-MKTAG(0xF8, 'E', 'N', 'C')) ///< Encoder not found #define AVERROR_EOF (-MKTAG('E', 'O', 'F', ' ')) ///< End of file #define AVERROR_EXIT (-MKTAG('E', 'X', 'I', 'T')) ///< Immediate exit was requested; the called function should not be restarted #define AVERROR_FILTER_NOT_FOUND (-MKTAG(0xF8, 'F', 'I', 'L')) ///< Filter not found #define AVERROR_INVALIDDATA (-MKTAG('I', 'N', 'D', 'A')) ///< Invalid data found when processing input #define AVERROR_MUXER_NOT_FOUND (-MKTAG(0xF8, 'M', 'U', 'X')) ///< Muxer not found #define AVERROR_OPTION_NOT_FOUND (-MKTAG(0xF8, 'O', 'P', 'T')) ///< Option not found #define AVERROR_PATCHWELCOME (-MKTAG('P', 'A', 'W', 'E')) ///< Not yet implemented in FFmpeg, patches welcome #define AVERROR_PROTOCOL_NOT_FOUND (-MKTAG(0xF8, 'P', 'R', 'O')) ///< Protocol not found #define AVERROR_STREAM_NOT_FOUND (-MKTAG(0xF8, 'S', 'T', 'R')) ///< Stream not found #define AVERROR_STREAM_SIZE_NOTVALID (-MKTAG(0xF8, 'E', 'S', 'Z')) ///< Stream not found #define AVERROR_MODULE_UNSUPPORT (-MKTAG(0xF8, 'U', 'S', 'T')) ///< module not support the function #define IO_LP_BUFFER_SIZE (1024 * 1024 * 64) #define IO_LP_BUFFER_MINI_SIZE (1024 * 32) int url_lpopen(URLContext *s, int size); int url_lpfillbuffer(URLContext *s, int size); int64_t url_lpexseek(URLContext *s, int64_t offset, int whence); int64_t url_lpexseekoffset(URLContext *s, int64_t offset); int url_lpread(URLContext *s, unsigned char *buf, int size); int64_t url_lpseek(URLContext *s, int64_t offset, int whence); int url_lpreset(URLContext *s); int url_lpfree(URLContext *s); int url_lp_intelligent_buffering(URLContext *s, int size); int url_lp_getbuffering_size(URLContext *s, int *forward_data, int *back_data); int url_lp_set_seekflags(URLContext *s, int seekflagmask); int url_lp_clear_seekflags(URLContext *s, int seekflagmask); int64_t url_lp_get_buffed_pos(URLContext *s); int64_t url_buffed_size(AVIOContext *s); int url_lpopen_ex(URLContext *s, int size, int flags, int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), int64_t (*seek)(void *opaque, int64_t offset, int whence)); #endif