audiodecoder: add _finish_subframe() method
authorTim-Philipp Müller <tim@centricular.com>
Mon, 25 Feb 2019 23:57:13 +0000 (23:57 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 5 Mar 2019 19:49:13 +0000 (19:49 +0000)
commit8d1122013bf86aac2c3e4192e7e5e04f4b9ca853
treee27f025ec2d4782b78a7e1f0d4392724301782e3
parent2e5f5e67cee2f2e08670c5aa1d524c55daa9e9e9
audiodecoder: add _finish_subframe() method

This allows us to output audio samples without discarding
any input frames, which is useful for some formats/codecs
(e.g. the MonkeysAudio decoder implementation in ffmpeg
which will might return e.g. 16 output buffers for an
input buffer for certain files).

In the past decoder implementations just concatenated
the returned audio buffers until a full frame had been
decoded, but that's no longer possible to do efficiently
when the decoder returns audio samples in non-interleaved
layout.

Allowing subframes to be output before the entire input
frame is decoded can also be useful to decrease startup
latency/delay.

https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/49
docs/libs/gst-plugins-base-libs-sections.txt
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudiodecoder.h