GNOME Bugzilla – Bug 171777
Ogm seek support is broken
Last modified: 2005-04-25 17:40:04 UTC
When i seek in ogm files the playback of video hangs after a while. From backtrace it hangs in an _element_wait call, it seems some broken timestamps are pushed from oggdemux. I can provide some files but they are quite big: 130Mb of ogm + divx + vorbis. Mplayer and xine plays them fine.. I've tried with ubuntu's packages and cvs from a week ago. It would be also really cool to support seek in keyframe (like mplayer and xine) but this is a different matter..
Created attachment 39302 [details] simple test that triggers the problem
Maybe the information about the backtrace is not totally right.. I have a somewhat modified tree here so i can't produce a right bt right now.. I can confirm that it hangs in totem + gstreamer with ubuntu hoary with all ogm files (not theora) that i have..
Created attachment 39303 [details] output from the test case
Created attachment 39514 [details] [review] patch Yeah, I know it's been broken... I've looked into it rather a lot today, and came up with the attached patch. This fixes seeking in OGM files that I have, they include subtitles and everything. Please confirm.
Please reopen if still broken, and then supply a sample file. Thanks.
I have tested current cvs with 0.0.1 of aldegonde. I don't have totem installed from source right now.. i'll try with totem this w-end if that matters. Seeking is a lot better now but if fails (block) sometime and i also have bad synch between video,subtitle and audio. Video and subtitle seem always to be in synch, it's the audio that sometime is not in synch.. I'm uploading two ogm file here: http://skaboy.no-ip.org/~luogni/stor/ Tell me if you need something! btw, viewing these files in my system (athlon k7 550Mhz) eats 100% cpu with aldegonde..
550MHz is not much, sync problems can be caused by that. Our scheduling model causes some overhead, which makes us a bit slower than xine/mplayer right now. We're trying to improve that. Aldegonde vs. Totem shouldn't matter. I'll try the movies and work on it further if I can reproduce it. To come back to your initial post, I have implemented keyframe seeking in 0.9 already, and will try it for 0.8 at some point, too.
I implemented keyframe syncing here: http://cvs.freedesktop.org/gstreamer/gst-ffmpeg/ext/ffmpeg/gstffmpegdec.c?r1=1.92&r2=1.93&makepatch=1&diff_format=u
The Last Attack movie that you sent me contains subtitles. Apparently, at some point after some seeks, the subtitle thread gets messed up and causes a filled queue. Therefore, the chain function of ogmtextparse hangs. There is no video/audio, and thus the video/audio outputs hang. I'll try to find out why the subtitle track is messed up.
Ah, found it, fixed in CVS. My testcase on that movie works again, let me know if more breaks. Sync is bad after a seek, I don't know how come... :-(.