| Summary: | ALAudioSink: AV Synchronization Broken, Regression in-between JogAmp Version [2.4.0 - 2.5.0] | ||
|---|---|---|---|
| Product: | [JogAmp] Joal | Reporter: | Sven Gothel <sgothel> |
| Component: | core | Assignee: | Sven Gothel <sgothel> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | P4 | ||
| Version: | 2.6.0 | ||
| Hardware: | All | ||
| OS: | all | ||
| Type: | DEFECT | SCM Refs: |
gluegen e23a4c7fcc0b585c0708be114fa364e391da4843
joal edf181e8a75f41c7d7e8de5d65c51d66f01fd61c
jogl d0dd0c04463c6b09b1f15ce6cc3a2c50286c57bf
|
| Workaround: | --- | ||
| Bug Depends on: | |||
| Bug Blocks: | 1472 | ||
|
Description
Sven Gothel
2023-10-04 09:54:09 CEST
commit edf181e8a75f41c7d7e8de5d65c51d66f01fd61c
Bug 1473 - ALAudioSink: AV Synchronization Broken, Regression in-between JogAmp Version [2.4.0 - 2.5.0]
- Adopt to simplified AudioSink
- Add lastBufferedPTS and expose it
- Cleanup short* and perf*String() trace/debug presentations to simplify review
- Hence drop growBuffers()
- Set initial avgFrameDuration to latency, at least a good start
+++
dequeueBuffer(..):
- Pass releaseBufferCountReq directly, tangible only if wait == true,
have enqueueData(..) determine the wait and releaseBufferCountReq value.
- Drop dequeueBuffer(..) overload caller, simplifying code
- Don't change playingPTS(..) in overload caller, enqueueData(..) takes care of it
- Align DEBUG trace with enqueueData(..) to simplify review
- Otherwise no semnatic change in dequeueBuffer(..)
enqueueData(..):
- Dropped growBuffers()
- Show DEBUG trace before actual dequeueBuffer(..) to have meanigful output
- SOFT (no-wait) dequeueBuffer(..) triggers on 2/3rd full queue
- HARD (wait) dequeueBuffer(..) if queue is full
- Set playingPTS, either use
- old queue-tip (too old) and add (forward) 60% of queue-buffer time
- new queue-tail (too young), subtract (delay) 40% of queue-buffer time
Commit e23a4c7fcc0b585c0708be114fa364e391da4843
AudioSink: Just pass a finte buffer size (KISS), add getLastBufferedPTS() to access the last buffered audio pts
Commit d0dd0c04463c6b09b1f15ce6cc3a2c50286c57bf
ALAudioSink: AV Synchronization: Adopt to JOAL ALAudioSink changes
FFMPEGMediaPlayer: This also effectively reduces the audio buffer size from 3000ms -> 768ms,
the new default for audio streams with video.
|