memory_buffer.h 591 Bytes
Newer Older
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