[Theora] problem with theora files inside container

David Kment davidkment at web.de
Tue Aug 16 13:48:33 PDT 2005


ok, thanks a lot for this info.
i soluted it the following way:

i added those 2 lines to buffer_data() in the splayer code:
totalBytesRead += bytes; // new global variable
if(totalBytesRead >= myVirtualFilesSize) {bytes = 0;}

works well as far as i can see, hope this won't cause problems......

please tell me if this is suboptimal.

regards,

---david


Ralph Giles wrote:

>On Tue, Aug 16, 2005 at 12:20:03PM +0200, david kment wrote:
>
>  
>
>>i modified the fopen call in the source to open the main archive, find out where the requested embedded file begins, and set the file pointer to this offset using fseek().
>>
>>the video is decoded without problems, but in some cases, the stream end doesn't seem to be detected correctly.....
>>this means i cannot tell my main program that the video playback has stopped, since the Ogg part continues to load data, but now from the next file in sequence and so on, until EOF is reported.
>>    
>>
>
>Yes, this sort of thing happens a lot. The Ogg layer treats the data 
>past the end of the valid segment as corruption and just keeps reading
>until it finds another Ogg stream or hits EOF. You need to modify the 
>read command as well to check against your file index and signal EOF
>when it hits the end of the virtual file. In the context of splayer,
>that's just returning 'zero bytes read' from buffer_data().
>
>The way splayer is written it only decides playback is done when there 
>are no decoded frames *and* no more data available which could be 
>decoded, so it keeps pulling on the Ogg layer until it hits EOF.
>
>There is an end-of-stream flag on the last Ogg page you could look for, 
>but relying on that is not robust. It's also not technically correct for
>multiplexed streams. So returning EOF properly past the end of your 
>virtual file is really the best approach.
>
>  
>
>>do you know how i can detect if video stream ended in a more reliable way, and hopefully without hacking the 
>>Ogg source at all?
>>    
>>
>
>All this is just guessing based on what you've told us, but hopefully
>is of some help.
>
>HTH,
> -r
>
>  
>



More information about the Theora mailing list