quiet readpage only speaks on errors. also invokes debugger if sync is lost
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6573 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -141,7 +141,7 @@ OggSeekable::GetSize(off_t * size)
|
|||||||
status_t
|
status_t
|
||||||
OggSeekable::ReadPage(ogg_page * page, int read_size)
|
OggSeekable::ReadPage(ogg_page * page, int read_size)
|
||||||
{
|
{
|
||||||
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
// TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
BAutolock autolock(fPositionLock);
|
BAutolock autolock(fPositionLock);
|
||||||
// align to page boundary
|
// align to page boundary
|
||||||
int offset;
|
int offset;
|
||||||
@@ -150,15 +150,18 @@ OggSeekable::ReadPage(ogg_page * page, int read_size)
|
|||||||
char * buffer = ogg_sync_buffer(&fSync, read_size);
|
char * buffer = ogg_sync_buffer(&fSync, read_size);
|
||||||
ssize_t bytes = fPositionIO->ReadAt(fPosition, buffer, read_size);
|
ssize_t bytes = fPositionIO->ReadAt(fPosition, buffer, read_size);
|
||||||
if (bytes == 0) {
|
if (bytes == 0) {
|
||||||
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
TRACE("OggSeekable::ReadPage: ReadAt: no data\n");
|
TRACE("OggSeekable::ReadPage: ReadAt: no data\n");
|
||||||
return B_LAST_BUFFER_ERROR;
|
return B_LAST_BUFFER_ERROR;
|
||||||
}
|
}
|
||||||
if (bytes < 0) {
|
if (bytes < 0) {
|
||||||
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
TRACE("OggSeekable::ReadPage: ReadAt: error\n");
|
TRACE("OggSeekable::ReadPage: ReadAt: error\n");
|
||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
fPosition += bytes;
|
fPosition += bytes;
|
||||||
if (ogg_sync_wrote(&fSync, bytes) != 0) {
|
if (ogg_sync_wrote(&fSync, bytes) != 0) {
|
||||||
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
TRACE("OggSeekable::ReadPage: ogg_sync_wrote failed?: error\n");
|
TRACE("OggSeekable::ReadPage: ogg_sync_wrote failed?: error\n");
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
@@ -172,24 +175,30 @@ OggSeekable::ReadPage(ogg_page * page, int read_size)
|
|||||||
char * buffer = ogg_sync_buffer(&fSync, read_size);
|
char * buffer = ogg_sync_buffer(&fSync, read_size);
|
||||||
ssize_t bytes = fPositionIO->ReadAt(fPosition, buffer, read_size);
|
ssize_t bytes = fPositionIO->ReadAt(fPosition, buffer, read_size);
|
||||||
if (bytes == 0) {
|
if (bytes == 0) {
|
||||||
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
TRACE("OggSeekable::ReadPage: ReadAt 2: no data\n");
|
TRACE("OggSeekable::ReadPage: ReadAt 2: no data\n");
|
||||||
return B_LAST_BUFFER_ERROR;
|
return B_LAST_BUFFER_ERROR;
|
||||||
}
|
}
|
||||||
if (bytes < 0) {
|
if (bytes < 0) {
|
||||||
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
TRACE("OggSeekable::ReadPage: ReadAt 2: error\n");
|
TRACE("OggSeekable::ReadPage: ReadAt 2: error\n");
|
||||||
return bytes;
|
return bytes;
|
||||||
}
|
}
|
||||||
fPosition += bytes;
|
fPosition += bytes;
|
||||||
if (ogg_sync_wrote(&fSync, bytes) != 0) {
|
if (ogg_sync_wrote(&fSync, bytes) != 0) {
|
||||||
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
TRACE("OggSeekable::ReadPage: ogg_sync_wrote 2 failed?: error\n");
|
TRACE("OggSeekable::ReadPage: ogg_sync_wrote 2 failed?: error\n");
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (result == -1) {
|
if (result == -1) {
|
||||||
TRACE("OggSeekable::ReadPage: ogg_sync_pageout: not synced??\n");
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
|
TRACE("OggSeekable::ReadPage: ogg_sync_pageout: not synced!\n");
|
||||||
|
debugger("lost sync");
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
}
|
}
|
||||||
if (ogg_page_version(page) != 0) {
|
if (ogg_page_version(page) != 0) {
|
||||||
|
TRACE("OggSeekable::ReadPage (%llu)\n", fPosition);
|
||||||
TRACE("OggSeekable::ReadPage: ogg_page_version: error in page encoding??\n");
|
TRACE("OggSeekable::ReadPage: ogg_page_version: error in page encoding??\n");
|
||||||
#ifdef STRICT_OGG
|
#ifdef STRICT_OGG
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
|||||||
Reference in New Issue
Block a user