diff options
author | Jean-Marc Valin <jmvalin@amazon.com> | 2023-05-08 17:59:40 -0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@amazon.com> | 2023-05-08 17:59:40 -0400 |
commit | 4f206c7347937fe43e7f8f91616e1f35b83b7aa4 (patch) | |
tree | 6d5c19f8f2f872ce446db797d180959888ab7777 /src | |
parent | 61c51875814c65b6d1d877cc80c5920bbeae196a (diff) | |
download | opus-4f206c7347937fe43e7f8f91616e1f35b83b7aa4.tar.gz |
Fix extensions padding for CBR
Diffstat (limited to 'src')
-rw-r--r-- | src/opus_demo.c | 10 | ||||
-rw-r--r-- | 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<remaining*channels;i++) @@ -732,11 +737,6 @@ int main(int argc, char *argv[]) opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate_bps)); } opus_encoder_ctl(enc, OPUS_GET_FINAL_RANGE(&enc_final_range)); - if (len < 0) - { - fprintf (stderr, "opus_encode() returned %d\n", len); - goto failure; - } curr_mode_count += frame_size; if (curr_mode_count > 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) { |