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
D11888-2 (branched from master)
Build Status
Buildable 15906
Build 15906: 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.