1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-27 09:32:40 +00:00
mpv/common
wm4 b74c09efbf audio: refactor how data is passed to AO
This replaces the two buffers (ao_chain.ao_buffer in the core, and
buffer_state.buffers in the AO) with a single queue. Instead of having a
byte based buffer, the queue is simply a list of audio frames, as output
by the decoder. This should make dataflow simpler and reduce copying.

It also attempts to simplify fill_audio_out_buffers(), the function I
always hated most, because it's full of subtle and buggy logic.

Unfortunately, I got assaulted by corner cases, dumb features (attempt
at seamless looping, really?), and other crap, so it got pretty
complicated again. fill_audio_out_buffers() is still full of subtle and
buggy logic. Maybe it got worse. On the other hand, maybe there really
is some progress. Who knows.

Originally, the data flow parts was meant to be in f_output_chain, but
due to tricky interactions with the playloop code, it's now in the dummy
filter in audio.c.

At least this improves the way the audio PTS is passed to the encoder in
encoding mode. Now it attempts to pass frames directly, along with the
pts, which should minimize timestamp problems. But to be honest, encoder
mode is one big kludge that shouldn't exist in this way.

This commit should be considered pre-alpha code. There are lots of bugs
still hiding.
2020-08-29 13:12:32 +02:00
..
av_common.c demux: use no overlapping packets for lossless audio 2019-09-19 20:37:04 +02:00
av_common.h demux: use no overlapping packets for lossless audio 2019-09-19 20:37:04 +02:00
av_log.c player: rearrange libav* library check 2020-03-08 19:38:10 +01:00
av_log.h player: rearrange libav* library check 2020-03-08 19:38:10 +01:00
codecs.c codecs: remove unused family field 2018-02-01 10:21:55 +01:00
codecs.h codecs: remove unused family field 2018-02-01 10:21:55 +01:00
common.c common: add helper for subtracting rectangles 2020-05-22 14:17:46 +02:00
common.h common: add helper for subtracting rectangles 2020-05-22 14:17:46 +02:00
encode_lavc.c audio: refactor how data is passed to AO 2020-08-29 13:12:32 +02:00
encode_lavc.h audio: refactor how data is passed to AO 2020-08-29 13:12:32 +02:00
encode.h audio: refactor how data is passed to AO 2020-08-29 13:12:32 +02:00
global.h stats: some more performance graphs 2020-04-09 00:33:38 +02:00
msg_control.h player: add --term-title option 2020-05-25 20:39:37 +02:00
msg.c player: add --term-title option 2020-05-25 20:39:37 +02:00
msg.h msg: add function to reduce log level 2020-05-10 16:40:26 +02:00
playlist.c client API: report IDs of inserted playlist entries on loading playlist 2020-03-27 00:57:11 +01:00
playlist.h client API: report IDs of inserted playlist entries on loading playlist 2020-03-27 00:57:11 +01:00
recorder.c Remove remains of Libav compatibility 2020-02-16 15:14:55 +01:00
recorder.h recorder: don't use a magic index for mp_recorder_get_sink() 2019-09-29 01:41:19 +02:00
stats.c player, stats: more silly debug stuff 2020-04-10 00:55:39 +02:00
stats.h player, stats: more silly debug stuff 2020-04-10 00:55:39 +02:00
tags.c demux: support for some kinds of timed metadata 2018-04-18 01:17:42 +03:00
tags.h demux: support for some kinds of timed metadata 2018-04-18 01:17:42 +03:00
version.c build: change filenames of generated files 2020-06-04 16:59:05 +02:00