Updates:
        Owner: hc...@chromium.org

Comment #15 on issue 19917 by hc...@chromium.org: still1.ogg and still1.ogv  
crash break FFmpegDemuxer::SeekTask in linux.
http://code.google.com/p/chromium/issues/detail?id=19917

Yup, with the patch to FFmpeg there's no more crashing. It was due to  
reading a bad
offset withint FFmpeg.

The reason FFmpeg wasn't able to obtain the desired frame is due the  
following reasons:

1. oggdec.c doesn't assign data_offset in AVFormatContext which points to  
the first
data after the header. Instead the generic FFmpeg code assigns this  
position by using
url_ftell() after having obtained a header from oggdec.c. However, due to  
how ogg is
formatted, each page carries header and oggdec.c only declares finding a  
header after
the first page is decoded. The end results is data_offset is pointing to  
the page
behind the first decodable packet. Thus seeking would never go over the  
first packet.

2. get_timestamp() in oggdec.c reports the offset to the packet "behind"  
the packet
which has the desired timestamp. Thus when you request an offset of a  
timestamp, it
always points the packet behind the actual one. Once again, this will  
overlook the
actual packet.

After fixing these two problems, seek(0) would really find the first frame  
and thus
not crashing again.

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs
-~----------~----~----~----~------~----~------~--~---

Reply via email to