diff options
author | Jan Alexander Steffens (heftig) <jsteffens@make.tv> | 2019-02-13 16:09:45 +0100 |
---|---|---|
committer | Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> | 2019-05-16 19:11:55 +0200 |
commit | beb88d94b5ae4a196e0b9b9f74111ee24414170d (patch) | |
tree | b653e777a17742b18c7a14728a34c75adfbced15 | |
parent | aa80d70aaaf5a1e1b0c271a17b041d0a50376a9d (diff) | |
download | gstreamer-plugins-bad-beb88d94b5ae4a196e0b9b9f74111ee24414170d.tar.gz |
fdkaacenc: Fix draining with libfdk-aac v2.0.0
This release requires all buffer descriptor pointers to be valid, even
when we provide zero input buffers.
-rw-r--r-- | ext/fdkaac/gstfdkaacenc.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/ext/fdkaac/gstfdkaacenc.c b/ext/fdkaac/gstfdkaacenc.c index 8410e684c..5a0556e03 100644 --- a/ext/fdkaac/gstfdkaacenc.c +++ b/ext/fdkaac/gstfdkaacenc.c @@ -486,9 +486,7 @@ gst_fdkaacenc_handle_frame (GstAudioEncoder * enc, GstBuffer * inbuf) info = gst_audio_encoder_get_audio_info (enc); - if (!inbuf) { - in_args.numInSamples = -1; - } else { + if (inbuf) { if (self->need_reorder) { inbuf = gst_buffer_copy (inbuf); gst_buffer_map (inbuf, &imap, GST_MAP_READWRITE); @@ -502,14 +500,21 @@ gst_fdkaacenc_handle_frame (GstAudioEncoder * enc, GstBuffer * inbuf) in_args.numInSamples = imap.size / GST_AUDIO_INFO_BPS (info); in_sizes = imap.size; - in_el_sizes = 2; - in_desc.bufferIdentifiers = &in_id; + in_el_sizes = GST_AUDIO_INFO_BPS (info); in_desc.numBufs = 1; - in_desc.bufs = (void *) &imap.data; - in_desc.bufSizes = &in_sizes; - in_desc.bufElSizes = &in_el_sizes; + } else { + in_args.numInSamples = -1; + + in_sizes = 0; + in_el_sizes = 0; + in_desc.numBufs = 0; } + in_desc.bufferIdentifiers = &in_id; + in_desc.bufs = (void *) &imap.data; + in_desc.bufSizes = &in_sizes; + in_desc.bufElSizes = &in_el_sizes; + outbuf = gst_audio_encoder_allocate_output_buffer (enc, self->outbuf_size); if (!outbuf) { ret = GST_FLOW_ERROR; |