newVideo: slightly more descriptive error when given an invalid file

This commit is contained in:
Alex Szpakowski
2021-11-24 21:15:51 -04:00
parent ff12dbbd69
commit b87034404e
2 changed files with 9 additions and 5 deletions
+8 -4
View File
@@ -43,7 +43,7 @@ OggDemuxer::~OggDemuxer()
ogg_sync_clear(&sync);
}
void OggDemuxer::readPage(bool throweof)
bool OggDemuxer::readPage(bool erroreof)
{
char *syncBuffer = nullptr;
while (ogg_sync_pageout(&sync, &page) != 1)
@@ -53,11 +53,13 @@ void OggDemuxer::readPage(bool throweof)
syncBuffer = ogg_sync_buffer(&sync, 8192);
size_t read = file->read(syncBuffer, 8192);
if (read == 0 && throweof)
throw love::Exception("Invalid stream");
if (read == 0 && erroreof)
return false;
ogg_sync_wrote(&sync, read);
}
return true;
}
bool OggDemuxer::readPacket(ogg_packet &packet, bool mustSucceed)
@@ -129,8 +131,10 @@ OggDemuxer::StreamType OggDemuxer::findStream()
while (true)
{
if (!readPage(true))
return TYPE_UNKNOWN;
// If this page isn't at the start of a stream, we've seen all streams
readPage(true);
if (!ogg_page_bos(&page))
break;
+1 -1
View File
@@ -67,7 +67,7 @@ private:
int videoSerial;
bool eos;
void readPage(bool throweof = false);
bool readPage(bool erroreof = false);
StreamType determineType();
}; // OggDemuxer