This source file includes following definitions.
- streaming_
- Read
- GetPosition
- SetPosition
- GetSize
- IsStreaming
#include "media/filters/in_memory_url_protocol.h"
namespace media {
InMemoryUrlProtocol::InMemoryUrlProtocol(const uint8* data, int64 size,
bool streaming)
: data_(data),
size_(size >= 0 ? size : 0),
position_(0),
streaming_(streaming) {
}
InMemoryUrlProtocol::~InMemoryUrlProtocol() {}
int InMemoryUrlProtocol::Read(int size, uint8* data) {
int available_bytes = size_ - position_;
if (size > available_bytes)
size = available_bytes;
memcpy(data, data_ + position_, size);
position_ += size;
return size;
}
bool InMemoryUrlProtocol::GetPosition(int64* position_out) {
if (!position_out)
return false;
*position_out = position_;
return true;
}
bool InMemoryUrlProtocol::SetPosition(int64 position) {
if (position < 0 || position > size_)
return false;
position_ = position;
return true;
}
bool InMemoryUrlProtocol::GetSize(int64* size_out) {
if (!size_out)
return false;
*size_out = size_;
return true;
}
bool InMemoryUrlProtocol::IsStreaming() {
return streaming_;
}
}