>> thanks, in my case I download sequentially the block so (block1, >> block2...) >> which are all buffer in memory(or saved as files on disk), what I'm >> trying >> to understand is how to start the decoding since I've no full video file >> but just blocks, do I have to use av_open_input_stream or >> av_open_input_file? >1. implement a URLProtocol >2. register it >3. use av_open_input_file() >4. try to read the source code if you have questions >5. help improving the documentation Thanks a lot! I implemented my own URLProtocol and now I can intercept all the access to file. I'm still having some difficulties because sometimes I get on my seek a call for a offset=0 and whence=65536 (In this case I just return -1) followed by another request for offset=-1 and whence=2 I don't know if my problem is due to the fact that I'm using fopen, fread, fseek (I'm on windows) or do I have to do something particular on those seek requests? thanks in advance Here my code for clarity (for the moment I'm just trying to reproduce URLProtocol file_protocol found in file.c, avoiding my blocks) static FILE *pFile = NULL; static int my_file_open(URLContext *h, const char *filename, int flags) { pFile=fopen("C:\\a.avi", "rb"); if(pFile==NULL) return -1; return 0; } static int my_file_read(URLContext *h, unsigned char *buf, int size) { size_t p = fread(buf, 1, size, pFile); return p; } static int my_file_write(URLContext *h, unsigned char *buf, int size) { return 0; } static offset_t my_file_seek(URLContext *h, offset_t pos, int whence) { if(whence < 3) return fseek(pFile, pos, whence); else return -1; } static int my_file_close(URLContext *h) { if(pFile) return fclose(pFile); else return 0; } URLProtocol my_file_protocol = { "test", my_file_open, my_file_read, my_file_write, my_file_seek, my_file_close, };
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4