diff options
author | Max Kellermann <max@duempel.org> | 2014-08-13 18:49:44 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2014-08-13 18:49:44 +0200 |
commit | 8b7718fbdc539a799c1c081f43263813613b26a3 (patch) | |
tree | 8cf2d4b586ff84a74ae8d30d03779d9e2348ab73 | |
parent | b44957ad914296cb53456d3fb56b380d81ec5fb6 (diff) | |
download | mpd-8b7718fbdc539a799c1c081f43263813613b26a3.tar.gz mpd-8b7718fbdc539a799c1c081f43263813613b26a3.tar.xz mpd-8b7718fbdc539a799c1c081f43263813613b26a3.zip |
encoder/shine: require libshine 3.1, adapt to new API
The "written" argument to shine_encode_buffer() and shine_flush() was
changed from "long" to "int", which breaks API and ABI compatibility.
This is a big deal, and it doesn't seem worthwile to keep support for
the (broken) 3.0 release.
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/encoder/plugins/ShineEncoderPlugin.cxx | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac index 0d528c61a..e3d4730f4 100644 --- a/configure.ac +++ b/configure.ac @@ -1447,7 +1447,7 @@ AM_CONDITIONAL(ENABLE_FLAC_ENCODER, test x$enable_flac_encoder = xyes) dnl ------------------------------- Shine Encoder ------------------------------ -MPD_AUTO_PKG(shine_encoder, SHINE, [shine >= 3], +MPD_AUTO_PKG(shine_encoder, SHINE, [shine >= 3.1], [shine encoder], [libshine not found]) if test x$enable_shine_encoder = xyes; then diff --git a/src/encoder/plugins/ShineEncoderPlugin.cxx b/src/encoder/plugins/ShineEncoderPlugin.cxx index 00b8eec7c..61cb8609e 100644 --- a/src/encoder/plugins/ShineEncoderPlugin.cxx +++ b/src/encoder/plugins/ShineEncoderPlugin.cxx @@ -172,8 +172,6 @@ bool ShineEncoder::WriteChunk(bool flush) { if (flush || input_pos == frame_size) { - long written; - if (flush) { /* fill remaining with 0s */ for (; input_pos < frame_size; input_pos++) { @@ -181,6 +179,7 @@ ShineEncoder::WriteChunk(bool flush) } } + int written; const uint8_t *out = shine_encode_buffer(shine, stereo, &written); @@ -229,10 +228,11 @@ static bool shine_encoder_flush(Encoder *_encoder, gcc_unused Error &error) { ShineEncoder *encoder = (ShineEncoder *)_encoder; - long written; /* flush buffers and flush shine */ encoder->WriteChunk(true); + + int written; const uint8_t *data = shine_flush(encoder->shine, &written); if (written > 0) |