Better audio timing test: compensate for audio server latency

This commit is contained in:
dec05eba
2024-04-09 23:34:35 +02:00
parent d5bf41fed6
commit e7aa4a5499
2 changed files with 8 additions and 1 deletions

5
TODO
View File

@@ -113,4 +113,7 @@ Modify ffmpeg to accept opengl texture for nvenc encoding. Removes extra buffers
When vulkan encode is added, mention minimum nvidia driver required. (550.54.14?).
Support drm plane rotation. Neither X11 nor any Wayland compositor currently rotates drm planes so this might not be needed.
Support drm plane rotation. Neither X11 nor any Wayland compositor currently rotates drm planes so this might not be needed.
Investigate if there is a way to do gpu->gpu copy directly without touching system ram to enable video encoding on a different gpu. On nvidia this is possible with cudaMemcpyPeer, but how about from an intel/amd gpu to an nvidia gpu or the other way around or any combination of iGPU and dedicated GPU?
Maybe something with clEnqueueMigrateMemObjects? on AMD something with DirectGMA maybe?

View File

@@ -2388,6 +2388,10 @@ int main(int argc, char **argv) {
double received_audio_time = clock_get_monotonic_seconds();
const int64_t timeout_ms = std::round((1000.0 / (double)audio_track.codec_context->sample_rate) * 1000.0);
// Move audio back by around 252 ms. This is just a shitty way to handle audio latency but pulseaudio latency calculation
// returns much lower value which isn't helpful.
audio_device.frame->pts = audio_track.codec_context->frame_size * 12;
while(running) {
void *sound_buffer;
int sound_buffer_size = -1;