Skip to content

Add VapourSynth audio source filters - #135

Merged
msg7086 merged 5 commits into
masterfrom
codex/vapoursynth-audio-source
Jul 20, 2026
Merged

Add VapourSynth audio source filters#135
msg7086 merged 5 commits into
masterfrom
codex/vapoursynth-audio-source

Conversation

@msg7086

@msg7086 msg7086 commented Jul 14, 2026

Copy link
Copy Markdown
Member

This code is a direct translation by LLM from AviSynth interface to VapourSynth interface. As integration testing validates, the result produced by both platform are byte-for-byte identical.

@msg7086

msg7086 commented Jul 19, 2026

Copy link
Copy Markdown
Member Author
Path AviSynth Comparison Result
LWLibavAudioSource, 48 kHz FLAC Full PCM output is byte-for-byte identical.
LWLibavAudioSource, AAC with gaps and fill_agaps=1 Full PCM output is byte-for-byte identical.
LibavSMASHAudioSource / LSMASHAudioSource, AAC The VapourSynth and AviSynth outputs are byte-for-byte identical.
LWLibavAudioSource, regular AAC at 44.1/48 kHz VapourSynth fails on the final audio frame with failed to output an audio frame.

@msg7086

msg7086 commented Jul 19, 2026

Copy link
Copy Markdown
Member Author
Path AviSynth Comparison Result
LWLibavAudioSource, 48 kHz FLAC Full PCM output is byte-for-byte identical.
LWLibavAudioSource, AAC at 44.1 kHz Full PCM output is byte-for-byte identical.
LWLibavAudioSource, AAC resampled to 48 kHz Full PCM output is byte-for-byte identical.
LWLibavAudioSource, AAC with gaps and fill_agaps=1 Full PCM output is byte-for-byte identical.
LWLibavAudioSource, AAC with gaps and fill_agaps=0 Full PCM output is byte-for-byte identical.
LibavSMASHAudioSource / LSMASHAudioSource, AAC The VapourSynth and AviSynth outputs are byte-for-byte identical.

@msg7086
msg7086 marked this pull request as ready for review July 19, 2026 04:36
@Asd-g

Asd-g commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

The changes look good but there are some inherited problems:

  • lwlibav audio seeking bug (not related to the agaps);
  • the used POS=-1 for the dummy gap packets is valid for real audio too;
  • incomplete iTunSMPB handling (AviSynth inherited problem)(LibavSmash gapless issue);
  • ignored padding and duration (AviSynth inherited problem)(LibavSmash gapless issue);
  • priming rescaling issue when output rate differs (AviSynth inherited problem)(LibavSmash gapless issue).

Specific behavior of the VapourSynth port - the EOF sample-count check is more strict compared to the AviSynth.

I created new more_audio branch from this codex/vapoursynth-audio-source branch. There I apply fixes for the inherited problems. I think this PR can be merged.

@msg7086

msg7086 commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

Sounds good, merging and you can aply fixes on top of it.

@msg7086
msg7086 merged commit 6ae441a into master Jul 20, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants