|
@@ -187,18 +187,19 @@ begin
|
|
Frames := 0;
|
|
Frames := 0;
|
|
Result := TRUE;
|
|
Result := TRUE;
|
|
|
|
|
|
- for i := 1 to 64 do
|
|
|
|
|
|
+ i := 1;
|
|
|
|
+ while TRUE do
|
|
begin
|
|
begin
|
|
ogg_sync_reset( @TheoraData.SyncState );
|
|
ogg_sync_reset( @TheoraData.SyncState );
|
|
- buffer_Seek( TheoraData, -4096 * i, FSM_END );
|
|
|
|
|
|
+ buffer_Seek( TheoraData, -4 * i, FSM_END );
|
|
|
|
|
|
- buffer_ReadData( TheoraData, 4096 * i );
|
|
|
|
|
|
+ buffer_ReadData( TheoraData, 4 * i );
|
|
ogg_sync_pageseek( @TheoraData.SyncState, @page );
|
|
ogg_sync_pageseek( @TheoraData.SyncState, @page );
|
|
|
|
|
|
while TRUE do
|
|
while TRUE do
|
|
begin
|
|
begin
|
|
ret := ogg_sync_pageout( @TheoraData.SyncState, @page );
|
|
ret := ogg_sync_pageout( @TheoraData.SyncState, @page );
|
|
- if ret = 0 Then break;
|
|
|
|
|
|
+ if ret <> 1 Then break;
|
|
if ogg_page_serialno( @page ) <> TheoraData.StreamState.serialno Then continue;
|
|
if ogg_page_serialno( @page ) <> TheoraData.StreamState.serialno Then continue;
|
|
|
|
|
|
granulePos := ogg_page_granulepos( @page );
|
|
granulePos := ogg_page_granulepos( @page );
|
|
@@ -209,6 +210,7 @@ begin
|
|
INC( Frames );
|
|
INC( Frames );
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+ INC( i );
|
|
if Frames > 0 Then break;
|
|
if Frames > 0 Then break;
|
|
end;
|
|
end;
|
|
|
|
|