summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/opus/gstopusenc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c
index 94c43ddf3..718643a68 100644
--- a/ext/opus/gstopusenc.c
+++ b/ext/opus/gstopusenc.c
@@ -960,6 +960,10 @@ gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buf)
size = ((bsize / bytes) + 1) * bytes;
mdata = g_malloc0 (size);
+ /* FIXME: Instead of silence, use LPC with the last real samples.
+ * Otherwise we will create a discontinuity here, which will distort the
+ * last few encoded samples
+ */
memcpy (mdata, bdata, bsize);
data = mdata;
} else {
@@ -981,6 +985,10 @@ gst_opus_enc_encode (GstOpusEnc * enc, GstBuffer * buf)
}
} else {
if (enc->encoded_samples < enc->consumed_samples) {
+ /* FIXME: Instead of silence, use LPC with the last real samples.
+ * Otherwise we will create a discontinuity here, which will distort the
+ * last few encoded samples
+ */
data = mdata = g_malloc0 (bytes);
size = bytes;
output_samples = enc->consumed_samples - enc->encoded_samples;