|
@@ -0,0 +1,228 @@
|
|
|
|
+From 484275de103b2214cb8ff3868a2562e2c61ce0e1 Mon Sep 17 00:00:00 2001
|
|
|
|
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
|
+Date: Thu, 8 Nov 2018 20:57:08 +0100
|
|
|
|
+Subject: [PATCH] Fix static linking with libmagic
|
|
|
|
+
|
|
|
|
+libmagic (from file package) already provides the buffer_init function
|
|
|
|
+so to avoid a build failure for applications wanting to statically link
|
|
|
|
+with twolame and libmagic (for example sox), rename buffer_init into
|
|
|
|
+bitbuffer_init (also rename buffer_deinit into bitbuffer_deinit and
|
|
|
|
+buffer_sstell into bitbuffer_sstell for consistency)
|
|
|
|
+
|
|
|
|
+Fixes:
|
|
|
|
+ - http://autobuild.buildroot.org/results/b3fc62e7f372fe595966e84091c11ccdb4cfa77c
|
|
|
|
+
|
|
|
|
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
|
|
+[Upstream status: https://github.com/njh/twolame/pull/81]
|
|
|
|
+---
|
|
|
|
+ libtwolame/bitbuffer.c | 4 ++--
|
|
|
|
+ libtwolame/bitbuffer.h | 6 +++---
|
|
|
|
+ libtwolame/energy.c | 2 +-
|
|
|
|
+ libtwolame/twolame.c | 32 ++++++++++++++++----------------
|
|
|
|
+ 4 files changed, 22 insertions(+), 22 deletions(-)
|
|
|
|
+
|
|
|
|
+diff --git a/libtwolame/bitbuffer.c b/libtwolame/bitbuffer.c
|
|
|
|
+index 38a632b..5b2fc4b 100644
|
|
|
|
+--- a/libtwolame/bitbuffer.c
|
|
|
|
++++ b/libtwolame/bitbuffer.c
|
|
|
|
+@@ -33,7 +33,7 @@
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /*create bit buffer*/
|
|
|
|
+-bit_stream *buffer_init(unsigned char *buffer, int buffer_size)
|
|
|
|
++bit_stream *bitbuffer_init(unsigned char *buffer, int buffer_size)
|
|
|
|
+ {
|
|
|
|
+ bit_stream *bs = (bit_stream *) TWOLAME_MALLOC(sizeof(bit_stream));
|
|
|
|
+
|
|
|
|
+@@ -49,7 +49,7 @@ bit_stream *buffer_init(unsigned char *buffer, int buffer_size)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* Dellocate bit buffer */
|
|
|
|
+-void buffer_deinit(bit_stream ** bs)
|
|
|
|
++void bitbuffer_deinit(bit_stream ** bs)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ if (bs == NULL || *bs == NULL)
|
|
|
|
+diff --git a/libtwolame/bitbuffer.h b/libtwolame/bitbuffer.h
|
|
|
|
+index 0201347..f377c8f 100644
|
|
|
|
+--- a/libtwolame/bitbuffer.h
|
|
|
|
++++ b/libtwolame/bitbuffer.h
|
|
|
|
+@@ -39,11 +39,11 @@ typedef struct bit_stream_struc {
|
|
|
|
+ } bit_stream;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+-bit_stream *buffer_init(unsigned char *buffer, int buffer_size);
|
|
|
|
+-void buffer_deinit(bit_stream ** bs);
|
|
|
|
++bit_stream *bitbuffer_init(unsigned char *buffer, int buffer_size);
|
|
|
|
++void bitbuffer_deinit(bit_stream ** bs);
|
|
|
|
+
|
|
|
|
+ /*return the current bit stream length (in bits)*/
|
|
|
|
+-#define buffer_sstell(bs) (bs->totbit)
|
|
|
|
++#define bitbuffer_sstell(bs) (bs->totbit)
|
|
|
|
+
|
|
|
|
+ #endif
|
|
|
|
+
|
|
|
|
+diff --git a/libtwolame/energy.c b/libtwolame/energy.c
|
|
|
|
+index 219bd2c..312d8ae 100644
|
|
|
|
+--- a/libtwolame/energy.c
|
|
|
|
++++ b/libtwolame/energy.c
|
|
|
|
+@@ -73,7 +73,7 @@ void do_energy_levels(twolame_options * glopts, bit_stream * bs)
|
|
|
|
+ unsigned char rhibyte, rlobyte, lhibyte, llobyte;
|
|
|
|
+
|
|
|
|
+ // Get the position (in butes) of the end of the mpeg audio frame
|
|
|
|
+- int frameEnd = buffer_sstell(bs) / 8;
|
|
|
|
++ int frameEnd = bitbuffer_sstell(bs) / 8;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // find the maximum in the left and right channels
|
|
|
|
+diff --git a/libtwolame/twolame.c b/libtwolame/twolame.c
|
|
|
|
+index fa4bcc0..d3b8450 100644
|
|
|
|
+--- a/libtwolame/twolame.c
|
|
|
|
++++ b/libtwolame/twolame.c
|
|
|
|
+@@ -442,7 +442,7 @@ static int encode_frame(twolame_options * glopts, bit_stream * bs)
|
|
|
|
+ glopts->num_crc_bits = 0;
|
|
|
|
+
|
|
|
|
+ // Store the number of bits initially in the bit buffer
|
|
|
|
+- initial_bits = buffer_sstell(bs);
|
|
|
|
++ initial_bits = bitbuffer_sstell(bs);
|
|
|
|
+
|
|
|
|
+ adb = available_bits(glopts);
|
|
|
|
+
|
|
|
|
+@@ -580,7 +580,7 @@ static int encode_frame(twolame_options * glopts, bit_stream * bs)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // Calulate the number of bits in this frame
|
|
|
|
+- frameBits = buffer_sstell(bs) - initial_bits;
|
|
|
|
++ frameBits = bitbuffer_sstell(bs) - initial_bits;
|
|
|
|
+ if (frameBits % 8) { /* a program failure */
|
|
|
|
+ fprintf(stderr, "Sent %ld bits = %ld slots plus %ld\n", frameBits, frameBits / 8,
|
|
|
|
+ frameBits % 8);
|
|
|
|
+@@ -630,7 +630,7 @@ int twolame_encode_buffer(twolame_options * glopts,
|
|
|
|
+
|
|
|
|
+ // now would be a great time to validate the size of the buffer.
|
|
|
|
+ // samples/1152 * sizeof(frame) < mp2buffer_size
|
|
|
|
+- mybs = buffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
++ mybs = bitbuffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // Use up all the samples in in_buffer
|
|
|
|
+@@ -658,7 +658,7 @@ int twolame_encode_buffer(twolame_options * glopts,
|
|
|
|
+ if (glopts->samples_in_buffer >= TWOLAME_SAMPLES_PER_FRAME) {
|
|
|
|
+ int bytes = encode_frame(glopts, mybs);
|
|
|
|
+ if (bytes <= 0) {
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+ return bytes;
|
|
|
|
+ }
|
|
|
|
+ mp2_size += bytes;
|
|
|
|
+@@ -667,7 +667,7 @@ int twolame_encode_buffer(twolame_options * glopts,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // free up the bit stream buffer structure
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+
|
|
|
|
+ return (mp2_size);
|
|
|
|
+ }
|
|
|
|
+@@ -687,7 +687,7 @@ int twolame_encode_buffer_interleaved(twolame_options * glopts,
|
|
|
|
+
|
|
|
|
+ // now would be a great time to validate the size of the buffer.
|
|
|
|
+ // samples/1152 * sizeof(frame) < mp2buffer_size
|
|
|
|
+- mybs = buffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
++ mybs = bitbuffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
+
|
|
|
|
+ // Use up all the samples in in_buffer
|
|
|
|
+ while (num_samples) {
|
|
|
|
+@@ -714,7 +714,7 @@ int twolame_encode_buffer_interleaved(twolame_options * glopts,
|
|
|
|
+ if (glopts->samples_in_buffer >= TWOLAME_SAMPLES_PER_FRAME) {
|
|
|
|
+ int bytes = encode_frame(glopts, mybs);
|
|
|
|
+ if (bytes <= 0) {
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+ return bytes;
|
|
|
|
+ }
|
|
|
|
+ mp2_size += bytes;
|
|
|
|
+@@ -723,7 +723,7 @@ int twolame_encode_buffer_interleaved(twolame_options * glopts,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // free up the bit stream buffer structure
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return (mp2_size);
|
|
|
|
+@@ -771,7 +771,7 @@ int twolame_encode_buffer_float32(twolame_options * glopts,
|
|
|
|
+
|
|
|
|
+ // now would be a great time to validate the size of the buffer.
|
|
|
|
+ // samples/1152 * sizeof(frame) < mp2buffer_size
|
|
|
|
+- mybs = buffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
++ mybs = bitbuffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // Use up all the samples in in_buffer
|
|
|
|
+@@ -800,7 +800,7 @@ int twolame_encode_buffer_float32(twolame_options * glopts,
|
|
|
|
+ if (glopts->samples_in_buffer >= TWOLAME_SAMPLES_PER_FRAME) {
|
|
|
|
+ int bytes = encode_frame(glopts, mybs);
|
|
|
|
+ if (bytes <= 0) {
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+ return bytes;
|
|
|
|
+ }
|
|
|
|
+ mp2_size += bytes;
|
|
|
|
+@@ -809,7 +809,7 @@ int twolame_encode_buffer_float32(twolame_options * glopts,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // free up the bit stream buffer structure
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+
|
|
|
|
+ return (mp2_size);
|
|
|
|
+ }
|
|
|
|
+@@ -829,7 +829,7 @@ int twolame_encode_buffer_float32_interleaved(twolame_options * glopts,
|
|
|
|
+
|
|
|
|
+ // now would be a great time to validate the size of the buffer.
|
|
|
|
+ // samples/1152 * sizeof(frame) < mp2buffer_size
|
|
|
|
+- mybs = buffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
++ mybs = bitbuffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
+
|
|
|
|
+ // Use up all the samples in in_buffer
|
|
|
|
+ while (num_samples) {
|
|
|
|
+@@ -857,7 +857,7 @@ int twolame_encode_buffer_float32_interleaved(twolame_options * glopts,
|
|
|
|
+ if (glopts->samples_in_buffer >= TWOLAME_SAMPLES_PER_FRAME) {
|
|
|
|
+ int bytes = encode_frame(glopts, mybs);
|
|
|
|
+ if (bytes <= 0) {
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+ return bytes;
|
|
|
|
+ }
|
|
|
|
+ mp2_size += bytes;
|
|
|
|
+@@ -866,7 +866,7 @@ int twolame_encode_buffer_float32_interleaved(twolame_options * glopts,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // free up the bit stream buffer structure
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return (mp2_size);
|
|
|
|
+@@ -885,7 +885,7 @@ int twolame_encode_flush(twolame_options * glopts, unsigned char *mp2buffer, int
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ // Create bit stream structure
|
|
|
|
+- mybs = buffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
++ mybs = bitbuffer_init(mp2buffer, mp2buffer_size);
|
|
|
|
+
|
|
|
|
+ // Pad out the PCM buffers with 0 and encode the frame
|
|
|
|
+ for (i = glopts->samples_in_buffer; i < TWOLAME_SAMPLES_PER_FRAME; i++) {
|
|
|
|
+@@ -897,7 +897,7 @@ int twolame_encode_flush(twolame_options * glopts, unsigned char *mp2buffer, int
|
|
|
|
+ glopts->samples_in_buffer = 0;
|
|
|
|
+
|
|
|
|
+ // free up the bit stream buffer structure
|
|
|
|
+- buffer_deinit(&mybs);
|
|
|
|
++ bitbuffer_deinit(&mybs);
|
|
|
|
+
|
|
|
|
+ return mp2_size;
|
|
|
|
+ }
|
|
|
|
+--
|
|
|
|
+2.17.1
|
|
|
|
+
|