Commit Graph

10740 Commits

Author SHA1 Message Date
Max Kellermann f01b991108 decoder/opus: use class OggStreamState in _scan_stream() 2016-05-09 15:40:59 +02:00
Max Kellermann f80736c3d7 lib/xiph/OggStreamState: add method GetSerialNo() 2016-05-09 15:40:50 +02:00
Max Kellermann 2c7f69cf85 lib/xiph/OggStreamState: add constructor with ogg_page 2016-05-09 15:38:29 +02:00
Max Kellermann 348ecc1118 lib/xiph/OggStreamState: add method PageIn() 2016-05-09 15:29:37 +02:00
Max Kellermann a9678f0ae0 decoder/opus: fix minor typo 2016-05-09 15:00:04 +02:00
Max Kellermann 461f298d2c lib/xiph/OggStream: remove obsolete class 2016-05-09 14:55:58 +02:00
Max Kellermann 068de7cf40 encoder/ogg: use class OggStreamState 2016-05-09 14:51:07 +02:00
Max Kellermann d04eb87c4f encoder/opus: divert to OggEncoder::Read() 2016-05-09 14:51:05 +02:00
Max Kellermann 8af68db965 lib/xiph/OggStreamState: new ogg_stream_state wrapper 2016-05-09 14:50:39 +02:00
Max Kellermann 1cf632e98b lib/xiph/OggStream: move code to ReadPage() 2016-05-09 14:22:12 +02:00
Max Kellermann 58c11c3128 encoder/vorbis: move vorbis_info_init() call to constructor 2016-05-09 13:22:59 +02:00
Max Kellermann efcda95dda encoder/vorbis: remove vorbis_info_clear() calls from error code paths
The destructor will call this in any case.
2016-05-09 13:22:43 +02:00
Max Kellermann 80d2028bac encoder/vorbis: merge Clear() into the destructor 2016-05-09 13:22:27 +02:00
Max Kellermann 215213fc2c encoder/vorbis: add wrapper class for vorbis_comment 2016-05-09 12:22:22 +02:00
Max Kellermann 99d32dc0b4 Makefile.am: fix build failure when libxiph.a is not used
Some "ar" implementations don't allow empty archives, and failed to
build it.  The real reason (which is hidden with GNU binutils) is that
our Makefile.am was incorrect, and didn't completely disable
libxiph.a.

See https://bugs.musicpd.org/view.php?id=4526
2016-05-07 22:47:45 +02:00
Max Kellermann 0998097253 encoder/{vorbis,opus}: move common code to class OggEncoder 2016-05-04 18:52:57 +02:00
Max Kellermann c17be5af6b test/run_encoder: use std::unique_ptr 2016-05-04 18:46:06 +02:00
Max Kellermann b376536a3b encoder/Interface: convert PreparedEncoder to abstract class 2016-05-04 18:32:52 +02:00
Max Kellermann e7edc02647 encoder/Interface: move instance methods to abstract class
Rename struct Encoder to PreparedEncoder, and add a new (abstract)
class Encoder which represents one encoder instance.
2016-05-04 16:32:31 +02:00
Max Kellermann 69bf835059 encoder/vorbis: move code into the struct 2016-05-04 16:22:59 +02:00
Max Kellermann b97ffddfe8 encoder/vorbis: use CamelCase 2016-05-04 16:21:47 +02:00
Max Kellermann 6407b7c591 output/recorder: use C++11 initializers 2016-05-04 15:18:57 +02:00
Max Kellermann e14cd92d59 output/shout: use AudioOutputWrapper 2016-05-04 15:06:29 +02:00
Max Kellermann 73cadd1798 output/shout: dispose encoder in destructor 2016-05-04 15:05:48 +02:00
Max Kellermann fb9840f1f8 output/shout: call shout_shutdown() in destructor 2016-05-04 15:03:55 +02:00
Max Kellermann 492aaa3375 output/shout: use C++11 initializers 2016-05-04 14:46:45 +02:00
Max Kellermann 33c5da700d encoder/opus: move functions into the struct 2016-05-03 23:56:47 +02:00
Max Kellermann 48d3af7d9a encoder/opus: use CamelCase 2016-05-03 23:53:42 +02:00
Max Kellermann 9b3470eabd lib/xiph/OggStream: use C++11 initializer 2016-05-03 23:46:56 +02:00
Max Kellermann 86a505b4f3 lib/xiph/OggSyncState: disallow copying 2016-05-03 23:45:32 +02:00
Max Kellermann ed6c6296eb {de,en}coder/{vorbis,flac,opus}: move several libraries to lib/xiph/ 2016-05-03 23:40:29 +02:00
Max Kellermann b27a41812f configure.ac: enable HAVE_XIPH if Vorbis/FLAC encoder is enabled 2016-05-03 23:40:21 +02:00
Max Kellermann 6c933d2b77 configure.ac: detect libogg
Will be needed to compile libxiph.a.
2016-05-03 23:31:17 +02:00
Max Kellermann fb5610f9bd configure.ac: improve HAVE_XIPH declaration, add HAVE_OGG 2016-05-03 13:01:23 +02:00
Max Kellermann 7adbd00811 decoder/{vorbis,flac,opus}: move OggCodec.cxx to libxiph.a 2016-05-03 12:54:47 +02:00
Max Kellermann 1c91d19163 decoder/OggUtil: pass Reader instance to OggFeed() 2016-05-03 00:05:31 +02:00
Max Kellermann f491135318 decoder/Reader: new Reader implementation 2016-05-03 00:05:31 +02:00
Max Kellermann a7ced00520 input/Reader: new Reader implementation wrapping InputStream 2016-05-03 00:05:31 +02:00
Max Kellermann be3359fc67 Makefile.am: fix library link order 2016-05-03 00:05:31 +02:00
Max Kellermann 69ed35ed71 test/{run_input,dump_text_file}: use class ScopeLock 2016-05-02 23:35:43 +02:00
Max Kellermann 280d35a053 decoder/api: use class ScopeLock 2016-05-02 23:33:08 +02:00
Max Kellermann eca6b9f0af thread/Mutex: add method ScopeLock::Unlock() 2016-05-02 23:32:44 +02:00
Max Kellermann cc9345e703 encoder/wave: use CamelCase 2016-04-30 14:29:14 +02:00
Max Kellermann 3fb8f3ec95 Merge tag 'v0.19.15'
release v0.19.15
2016-04-30 14:28:25 +02:00
Max Kellermann 04ed50fb0f release v0.19.15 v0.19.15 2016-04-30 14:21:52 +02:00
Max Kellermann c9553411bb encoder/wave: add constant WAVE_FORMAT_PCM 2016-04-30 13:57:09 +02:00
Max Kellermann 62221adf55 encoder/wave: fix indent 2016-04-30 13:45:52 +02:00
Max Kellermann a6bf4746c6 test/test_byte_reverse: use gcc_alignas() for gcc<4.8 compatibility 2016-04-30 13:41:24 +02:00
Michael Cree 72637d00e8 Bug#822848: mpd FTBFS on Alpha; misaligned arrays in the test suite
Source: mpd
Version: 0.19.14-2
Severity: important
Justification: fails to build form source (but built in the past)
Tags: patch
User: debian-alpha@lists.debian.org
Usertags: alpha

mpd FTBFS on Alpha with a failure in the test suite [1]:

FAIL: test/test_byte_reverse
============================

.F...

!!!FAILURES!!!
Test Results:
Run:  4   Failures: 1   Errors: 0

1) test: ByteReverseTest::TestByteReverse2 (F) line: 58 test/test_byte_reverse.cxx
assertion failed
- Expression: strcmp(result, (const char *)dest) == 0

This occurs because the test suite (in test/test_byte_reversal.cxx)
allocates static char arrays and passes the char arrays to functions
whose respective arguments were declared to be uint16_t *, etc., in
the main code.

This is in the realm of undefined behaviour on architectures with
strict memory alignment requirements.  Although the test only fails
on Alpha (because Alpha has a particular CPU load instruction that
gcc likes to use to add bugs ..., ahem,  optimise the code on the
assumption of alignment) it is potentially a latent bug for other
architectures with strict alignment requirements.

Since the code is compiled with the c++11 standard I attach a patch
that modifies the test suite to align the non-compliant strings with
the alignas() attribute.  The test suite now passes on Alpha with
that patch.

Cheers
Michael

[1] https://buildd.debian.org/status/fetch.php?pkg=mpd&arch=alpha&ver=0.19.14-2&stamp=1461542099
2016-04-28 13:29:41 +02:00
Florian Schlichting 27d4b15925 DecoderBuffer: add missing include
> In file included from src/decoder/DecoderBuffer.cxx:21:0:
> src/decoder/DecoderBuffer.hxx:41:20: error: 'uint8_t' was not declared in this scope
>   DynamicFifoBuffer<uint8_t> buffer;
>                     ^
> src/decoder/DecoderBuffer.hxx:41:27: error: template argument 1 is invalid
>   DynamicFifoBuffer<uint8_t> buffer;
>                            ^
> src/decoder/DecoderBuffer.hxx: In member function 'void DecoderBuffer::Clear()':
> src/decoder/DecoderBuffer.hxx:61:10: error: request for member 'Clear' in '((DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'int'
>    buffer.Clear();
>           ^
> src/decoder/DecoderBuffer.hxx: In member function 'size_t DecoderBuffer::GetAvailable() const':
> src/decoder/DecoderBuffer.hxx:78:17: error: request for member 'GetAvailable' in '((const DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'const int'
>    return buffer.GetAvailable();
>                  ^
> src/decoder/DecoderBuffer.hxx: In member function 'ConstBuffer<void> DecoderBuffer::Read() const':
> src/decoder/DecoderBuffer.hxx:87:19: error: request for member 'Read' in '((const DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'const int'
>    auto r = buffer.Read();
>                    ^
> src/decoder/DecoderBuffer.hxx:88:27: error: could not convert '{<expression error>, <expression error>}' from '<brace-enclosed initializer list>' to 'ConstBuffer<void>'
>    return { r.data, r.size };
>                            ^
> src/decoder/DecoderBuffer.hxx: In member function 'void DecoderBuffer::Consume(size_t)':
> src/decoder/DecoderBuffer.hxx:105:10: error: request for member 'Consume' in '((DecoderBuffer*)this)->DecoderBuffer::buffer', which is of non-class type 'int'
>    buffer.Consume(nbytes);
>           ^

This seems to be caused by a lacking include, fixed by the below patch.

I'm unsure what made this appear now, though, compiler and toolchain
libraries seem to be the same upstream versions that built 0.19.14-1
just fine in late March.
2016-04-25 08:30:27 +02:00