From 0ab3184526e7b9b95c06a3ec7a6674283a5922d0 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sun, 29 Apr 2018 19:42:18 +0200 Subject: encode: get rid of the output packet queue Until recently, ao_lavc and vo_lavc started encoding whenever the core happened to send them data. Since audio and video are not initialized at the same time, and the muxer was not necessarily opened when the first encoder started to produce data, the resulting packets were put into a queue. As soon as the muxer was opened, the queue was flushed. Change this to make the core wait with sending data until all encoders are initialized. This has the advantage that we don't need to queue up the packets. --- audio/out/internal.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'audio/out/internal.h') diff --git a/audio/out/internal.h b/audio/out/internal.h index 33e8a8c6a9..bf769d7e1c 100644 --- a/audio/out/internal.h +++ b/audio/out/internal.h @@ -130,6 +130,10 @@ struct ao_driver { const char *name; // Description shown with --ao=help. const char *description; + // This requires waiting for a AO_EVENT_INITIAL_UNBLOCK event before the + // first play() call is done. Encode mode uses this, and push mode + // respects it automatically (don't use with pull mode). + bool initially_blocked; // Init the device using ao->format/ao->channels/ao->samplerate. If the // device doesn't accept these parameters, you can attempt to negotiate // fallback parameters, and set the ao format fields accordingly. -- cgit v1.2.3