summaryrefslogtreecommitdiffstats
path: root/src/dabplus-enc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dabplus-enc.cpp')
-rw-r--r--src/dabplus-enc.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dabplus-enc.cpp b/src/dabplus-enc.cpp
index 7ab23d1..a91e4c9 100644
--- a/src/dabplus-enc.cpp
+++ b/src/dabplus-enc.cpp
@@ -624,7 +624,7 @@ int main(int argc, char *argv[])
uint8_t outbuf[24*120];
- unsigned char pad_buf[padlen];
+ unsigned char pad_buf[padlen + 1];
if(outbuf_size % 5 != 0) {
fprintf(stderr, "(outbuf_size mod 5) = %d\n", outbuf_size % 5);
@@ -683,7 +683,7 @@ int main(int argc, char *argv[])
// --------------- Read data from the PAD fifo
int ret;
if (padlen != 0) {
- ret = read(pad_fd, pad_buf, padlen);
+ ret = read(pad_fd, pad_buf, padlen + 1);
}
else {
ret = 0;
@@ -802,11 +802,11 @@ int main(int argc, char *argv[])
// -------------- AAC Encoding
- int calculated_padlen = ret > 0 ? padlen : 0;
+ int calculated_padlen = ret > 0 ? pad_buf[padlen] : 0;
in_ptr[0] = input_buf;
- in_ptr[1] = pad_buf;
+ in_ptr[1] = pad_buf + (padlen - calculated_padlen); // offset due to unused PAD bytes
in_size[0] = read;
in_size[1] = calculated_padlen;
in_elem_size[0] = BYTES_PER_SAMPLE;