| Index: media/filters/in_memory_url_protocol.cc
|
| diff --git a/media/filters/in_memory_url_protocol.cc b/media/filters/in_memory_url_protocol.cc
|
| index 85fa290e501988e480598f4f65f66dc28c45aa40..da8a7dd8da9c2c84ecae753d188e5e65746c83a8 100644
|
| --- a/media/filters/in_memory_url_protocol.cc
|
| +++ b/media/filters/in_memory_url_protocol.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "media/filters/in_memory_url_protocol.h"
|
|
|
| +#include "media/ffmpeg/ffmpeg_common.h"
|
| +
|
| namespace media {
|
|
|
| InMemoryUrlProtocol::InMemoryUrlProtocol(const uint8* data, int64 size,
|
| @@ -17,12 +19,18 @@ InMemoryUrlProtocol::InMemoryUrlProtocol(const uint8* data, int64 size,
|
| InMemoryUrlProtocol::~InMemoryUrlProtocol() {}
|
|
|
| int InMemoryUrlProtocol::Read(int size, uint8* data) {
|
| - int available_bytes = size_ - position_;
|
| + if (size < 0)
|
| + return AVERROR(EIO);
|
| +
|
| + int64 available_bytes = size_ - position_;
|
| if (size > available_bytes)
|
| size = available_bytes;
|
|
|
| - memcpy(data, data_ + position_, size);
|
| - position_ += size;
|
| + if (size > 0) {
|
| + memcpy(data, data_ + position_, size);
|
| + position_ += size;
|
| + }
|
| +
|
| return size;
|
| }
|
|
|
|
|