12345678910111213141516171819202122232425262728293031 |
- #pragma once
- #include "../nsavi/avi_reader.h"
- #include "../../..\Components\wac_network\wac_network_http_receiver_api.h"
- class AVIReaderHTTP : public nsavi::avi_reader
- {
- public:
- AVIReaderHTTP(HANDLE killswitch, HANDLE seek_event);
- int Open(const wchar_t *url);
- void Close();
- int Connect();
- int Buffer();
- /* avi_reader implementation */
- int Read(void *buffer, uint32_t read_length, uint32_t *bytes_read);
- int Peek(void *buffer, uint32_t read_length, uint32_t *bytes_read);
- //void OverlappedHint(uint32_t read_length);
- int Seek(uint64_t position);
- uint64_t Tell();
- int Skip(uint32_t skip_bytes);
- uint64_t GetContentLength();
- void GetFilename(wchar_t *fn, size_t len);
- private:
- /* internal methods */
- int Open(const char *url, uint64_t start_offset=0);
- private:
- api_httpreceiver *http;
- uint64_t position;
- bool seekable;
- HANDLE handles[2];
- };
|