From 4f206c7347937fe43e7f8f91616e1f35b83b7aa4 Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Mon, 8 May 2023 17:59:40 -0400 Subject: Fix extensions padding for CBR --- src/opus_demo.c | 10 +++++----- src/opus_encoder.c | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/opus_demo.c b/src/opus_demo.c index 54249b5f..294dd858 100644 --- a/src/opus_demo.c +++ b/src/opus_demo.c @@ -712,6 +712,11 @@ int main(int argc, char *argv[]) stop = 1; } len = opus_encode(enc, in, frame_size, data, max_payload_bytes); + if (len < 0) + { + fprintf (stderr, "opus_encode() returned %d\n", len); + goto failure; + } nb_encoded = opus_packet_get_samples_per_frame(data, sampling_rate)*opus_packet_get_nb_frames(data, len); remaining = frame_size-nb_encoded; for(i=0;i mode_switch_time && curr_mode < nb_modes_in_list-1) { diff --git a/src/opus_encoder.c b/src/opus_encoder.c index b3c4208f..e05a65ab 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -2213,6 +2213,8 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_ ret = opus_packet_pad_impl(data, ret, max_data_bytes, !st->use_vbr, &extension, 1); } else if (!st->use_vbr) { ret = opus_packet_pad(data, ret, max_data_bytes); + if (ret == OPUS_OK) + ret = max_data_bytes; } if (ret < 0) { -- cgit v1.2.1