Skip to content

VC-1 interlaced/deinterlaced (yadif hardware) software playback drops significantly more frames per seek than progressive VC-1 playback #492

Description

@classicjazz

What happened?

Across every interlaced 29.97i file tested (where [Deinterlace] engaged [hardware]: ... yadif_videotoolbox fires), the per-seek frame-drop rate is roughly 5–10x higher than on progressive 23.976fps VC-1 files, even in sessions with no other errors present:

File Profile Seeks Total drops Notes
FileA progressive 11 7 clean
FileB progressive 18 6 clean
FileE progressive 11 6 clean
FileG progressive 9 9 clean
FileF (session 1) interlaced 18 73 (4.9% of 1504 frames) clean, no errors
FileJ interlaced 9 49 clean, no errors
FileI interlaced 10 73 includes one +33 spike from Bug #491

Additionally, dpts (the reported inter-frame interval) occasionally doubles from the expected ~16.5–17ms field interval to ~33–34ms — observed twice in FileF, once each in FileI and FileJ, never in any progressive file — indicating an actual dropped/skipped field presentation, not just a counting quirk.

Steps to reproduce

  1. Open any interlaced VC-1 file that engages hardware deinterlacing (reproduces on FileF, FileI, FileJ).
  2. Perform a normal sequence of seeks (no special pattern needed — it reproduces on ordinary scrubbing).
  3. Compare layerDrop growth per seek against a progressive VC-1 file under the same seek pattern.

AetherEngine version or commit SHA

6.68.0

Host app

AetherPlayer

Platform

macOS

OS version

Mac OS 27

Device / chip

M1 Max Mac Studio

Playback path

Software (dav1d) host

Source media (for playback bugs)

No response

Error codes / log lines


Anything else

This is present even in sessions with zero hard errors (FileJ: 49 drops over 9 seeks, no Picture size 0x0, no rebuffer pause, corrupt=0 throughout), so it's a distinct, broader issue from Bug #490 rather than fully explained by it — though Bug #490 's failures do add to the total when they occur. The consistent 5–10x multiplier across three different interlaced files/sessions makes this look systemic to the deinterlace path rather than file-specific encoding quirks. Worth checking whether the yadif hardware pipeline (format=nv12,hwupload,yadif_videotoolbox=mode=send_field:parity=auto:deint=interlaced) is more sensitive to the same "landed on a frame without full reference chain" condition that produces the routine keyframe warnings, since a field-based GOP structure would double the number of presentation units per seek relative to progressive content.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions