mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 11:11:08 +00:00
gstaudiodecoder: do not aggregate output if buffers are planar
Aggregation will break the layout, as it concatenates buffers, and fixing it here would be much more inefficient than configuring the actual decoder implementation to output larger buffers. https://bugzilla.gnome.org/show_bug.cgi?id=705977
This commit is contained in:
parent
bea4d13a99
commit
2d38d2f1d3
1 changed files with 6 additions and 2 deletions
|
@ -93,7 +93,10 @@
|
||||||
*
|
*
|
||||||
* In non-live pipelines, baseclass can also (configurably) arrange for
|
* In non-live pipelines, baseclass can also (configurably) arrange for
|
||||||
* output buffer aggregation which may help to redue large(r) numbers of
|
* output buffer aggregation which may help to redue large(r) numbers of
|
||||||
* small(er) buffers being pushed and processed downstream.
|
* small(er) buffers being pushed and processed downstream. Note that this
|
||||||
|
* feature is only available if the buffer layout is interleaved. For planar
|
||||||
|
* buffers, the decoder implementation is fully responsible for the output
|
||||||
|
* buffer size.
|
||||||
*
|
*
|
||||||
* On the other hand, it should be noted that baseclass only provides limited
|
* On the other hand, it should be noted that baseclass only provides limited
|
||||||
* seeking support (upon explicit subclass request), as full-fledged support
|
* seeking support (upon explicit subclass request), as full-fledged support
|
||||||
|
@ -992,7 +995,8 @@ gst_audio_decoder_output (GstAudioDecoder * dec, GstBuffer * buf)
|
||||||
|
|
||||||
again:
|
again:
|
||||||
inbuf = NULL;
|
inbuf = NULL;
|
||||||
if (priv->agg && dec->priv->latency > 0) {
|
if (priv->agg && dec->priv->latency > 0 &&
|
||||||
|
priv->ctx.info.layout == GST_AUDIO_LAYOUT_INTERLEAVED) {
|
||||||
gint av;
|
gint av;
|
||||||
gboolean assemble = FALSE;
|
gboolean assemble = FALSE;
|
||||||
const GstClockTimeDiff tol = 10 * GST_MSECOND;
|
const GstClockTimeDiff tol = 10 * GST_MSECOND;
|
||||||
|
|
Loading…
Reference in a new issue