--- /dev/null
+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
+