1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
#pragma once
#include "defs.h"
namespace ffmpeg {
/**
* Class uses external memory buffer and implements a seekable interface.
*/
class MemoryBuffer {
public:
explicit MemoryBuffer(const uint8_t* buffer, size_t size);
int64_t seek(int64_t offset, int whence);
int read(uint8_t* buf, int size);
// static constructor for decoder callback.
static DecoderInCallback getCallback(const uint8_t* buffer, size_t size);
private:
const uint8_t* buffer_; // set at construction time
long pos_{0}; // current position
long len_{0}; // bytes in buffer
};
} // namespace ffmpeg
|