#45 H264 seeking bug

closed
nobody
None
5
2008-02-02
2007-12-02
Anonymous
No

When seeking through an H264-encoded AVI file, after several seeks it breaks:

ffdshow_beta3_rev1324_20070701_clsid -- video freezes, heavy disk activity occurs, seems to be reading the entire file from the beginning to the end. Only by restarting the player will it work again. This happens after 6-7 random seeks.

ffdshow_prebeta4_rev1656_20071029_clsid -- almost all seeks are unsuccessful, resulting in "Microsoft Visual C++ : Abnormal program termination" message and the player crashes. Only once or twice have I been able to seek successfully.

I've tried quite a few H264 encoded files (some downloaded from Internet, some I encoded myself), and this bug seems to occur more often on larger files but could be reproduced with all of them.

Pentium 4 3.6GHz
Windows 98SE and XP (bug appears under both)
256MB RAM

Discussion

  • Nobody/Anonymous

    Logged In: NO

    Also ffdshow_beta2a_20070322_clsid fails with same behavior as ffdshow_beta3_rev1324_20070701_clsid

     
  • h.yamagata

    h.yamagata - 2007-12-02

    Logged In: YES
    user_id=1460523
    Originator: NO

    Which AVI splitter do you use?
    What is the application?

     
  • Nobody/Anonymous

    Logged In: NO

    - The AVI splitter is the one that MS provides with DirectShow
    - I used ActiveMovie, but same thing happens in WMP and GraphEdit

     
  • Nobody/Anonymous

    Logged In: NO

    I can't reproduce. I have some H.264-AVI files, but they are not very large. Could you send us any samples?

     
  • Nobody/Anonymous

    Logged In: NO

    It is only 3 seconds long sample but you can open it in media player then perform the following action:

    - Play: it plays properly from start to finish.
    - Drag seek slider around randomly several times (4-5 is enough for this to happen)
    - Press play again, it doesn't play now.

    http://rapidshare.com/files/75579048/3seconds.avi.html

     
  • Nobody/Anonymous

    Logged In: NO

    Thank you for the sample.
    Now I can reproduce. I believe that the sample is broken.
    All the frames of the sample is labeled as sync point.
    Only I-frames should be labeled as sync point. The file has only one I-frame.
    libavcodec can only accept I frame as a first frame after seeking.
    Please reconsider encoding option and label sync point correctly in AVI container.

    VLC and MPUI doesn't crash though. It may be possible to work around.

    More technical discussion:
    ffdshow judges if the frame is I-frame by calling IMediaSample::IsSyncPoint().

     
  • Nobody/Anonymous

    Logged In: NO

    Anyway, I would like to fix this problem.
    Could you send me longer sample? I need a sample which have more than two I-frames.

     
  • h.yamagata

    h.yamagata - 2008-02-02
    • status: open --> closed
     

Log in to post a comment.