input/InputStream: migrate from class Error to C++ exceptions
This commit is contained in:
@@ -61,8 +61,8 @@ struct FfmpegInputStream final : public InputStream {
|
||||
|
||||
/* virtual methods from InputStream */
|
||||
bool IsEOF() override;
|
||||
size_t Read(void *ptr, size_t size, Error &error) override;
|
||||
bool Seek(offset_type offset, Error &error) override;
|
||||
size_t Read(void *ptr, size_t size) override;
|
||||
void Seek(offset_type offset) override;
|
||||
};
|
||||
|
||||
static inline bool
|
||||
@@ -103,15 +103,15 @@ input_ffmpeg_open(const char *uri,
|
||||
}
|
||||
|
||||
size_t
|
||||
FfmpegInputStream::Read(void *ptr, size_t read_size, Error &error)
|
||||
FfmpegInputStream::Read(void *ptr, size_t read_size)
|
||||
{
|
||||
auto result = avio_read(h, (unsigned char *)ptr, read_size);
|
||||
if (result <= 0) {
|
||||
if (result < 0)
|
||||
SetFfmpegError(error, result, "avio_read() failed");
|
||||
throw MakeFfmpegError(result, "avio_read() failed");
|
||||
|
||||
eof = true;
|
||||
return false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
offset += result;
|
||||
@@ -124,19 +124,16 @@ FfmpegInputStream::IsEOF()
|
||||
return eof;
|
||||
}
|
||||
|
||||
bool
|
||||
FfmpegInputStream::Seek(offset_type new_offset, Error &error)
|
||||
void
|
||||
FfmpegInputStream::Seek(offset_type new_offset)
|
||||
{
|
||||
auto result = avio_seek(h, new_offset, SEEK_SET);
|
||||
|
||||
if (result < 0) {
|
||||
SetFfmpegError(error, result, "avio_seek() failed");
|
||||
return false;
|
||||
}
|
||||
if (result < 0)
|
||||
throw MakeFfmpegError(result, "avio_seek() failed");
|
||||
|
||||
offset = result;
|
||||
eof = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
const InputPlugin input_plugin_ffmpeg = {
|
||||
|
||||
Reference in New Issue
Block a user