Page MenuHome

Fix T87967: M2T video seeking is broken
ClosedPublic

Authored by Richard Antalik (ISS) on Jul 12 2021, 3:17 PM.

Details

Summary

Bug caused by integer overflow in ffmpeg_generic_seek_workaround().
Function max_ii() was used to limit int_64tvalue.

After fixing the issue there was another issue, where near-infinite loop
was caused by requested_pos being very large and stream being cut in a
way, that it was missing keyframe at beginning.
This was fixed by checking if we are reading beyond file content.

Diff Detail

Repository
rB Blender
Branch
T87967 (branched from master)
Build Status
Buildable 15753
Build 15753: arc lint + arc unit

Event Timeline

Richard Antalik (ISS) requested review of this revision.Jul 12 2021, 3:17 PM
Richard Antalik (ISS) created this revision.
  • Use AVStream.start_time to prevent loop
Richard Antalik (ISS) edited the summary of this revision. (Show Details)Jul 12 2021, 4:26 PM
  • use Clang-format

Update again, because I or arc did something wrong

Update manually this time...

The latest patch is wrong.

I thought we agreed to move the cur_pts == prev_pts check "down" and use that instead instead?

The latest patch is wrong.

I thought we agreed to move the cur_pts == prev_pts check "down" and use that instead instead?

Ah sorry forgot about that, will update patch later

This revision is now accepted and ready to land.Aug 13 2021, 5:11 PM
This revision was automatically updated to reflect the committed changes.