Commit Graph

1825 Commits

Author SHA1 Message Date
Max Kellermann e42b152037 decoder/faad: eliminate the adts_find_frame() loop
This loop is completely unnecessary.  We just need to find the first
ADTS frame and feed it into NeAACDecInit().
2014-07-12 01:51:39 +02:00
Max Kellermann da599e3f1a decoder/faad: split faad_stream_decode()
Eliminate duplicate cleanup code.
2014-07-12 01:47:07 +02:00
Max Kellermann 4c7b0b935b DecoderBuffer: remove unused method _is_empty() 2014-07-12 01:28:37 +02:00
Max Kellermann c400876df1 Merge branch 'v0.18.x' 2014-07-12 01:27:18 +02:00
Max Kellermann a960e2ef48 decoder/faad: estimate song duration for remote files
Previously, MPD tried to slurp the whole song file, count the number
of frames and calculate the song duration from that.  That however is
extremely expensive for remote files, and will delay playback for a
long time.  Workaround: check only the first 128 frames and try to
extrapolate from here.  Fixes Mantis ticket 0004035.
2014-07-12 00:37:00 +02:00
Max Kellermann 06aa689383 decoder/faad: bail out early if sample rate is invalid 2014-07-12 00:23:11 +02:00
Max Kellermann 835b0c44cd decoder/faad: use adts_check_frame() in faad_song_duration()
Eliminate more duplicate code.
2014-07-12 00:18:02 +02:00
Max Kellermann 54b6f8a4ae decoder/faad: test "seekable" after ADTS frame check
Don't bother to check for ADIF just because the stream is not
seekable.
2014-07-12 00:17:51 +02:00
Max Kellermann 18787ebe8f decoder/faad: move code to faad_decoder_new()
Merge some duplicate code.
2014-07-12 00:17:43 +02:00
Max Kellermann 47e8fcf37e decoder/faad: remove unnecessary read
Eliminate some overhead when the caller doesn't need the buffer.
2014-07-12 00:17:30 +02:00
Max Kellermann 9d9697b366 DecoderBuffer: add method _clear() 2014-07-12 00:15:35 +02:00
Max Kellermann 6585e18571 decoder/faad: check sample_rate, not frames_per_second
Checking the integer is faster, easier and more reliable.
2014-07-11 23:12:08 +02:00
Max Kellermann 6f1b4292f0 decoder/faad: make variables more local 2014-07-11 22:52:31 +02:00
Max Kellermann ef9ef03b1f decoder/faad: use MAX_CHANNELS
.. instead of declaring a new constant.
2014-07-11 22:40:28 +02:00
Max Kellermann c4bea3dfe4 decoder/sndfile: implement scan_stream() instead of scan_file() 2014-07-11 22:09:35 +02:00
Max Kellermann eaa9a1e33b decoder/sndfile: make variables more local 2014-07-11 22:03:26 +02:00
Max Kellermann 3e19298c9e decoder/sndfile: support more tag types 2014-07-11 22:03:13 +02:00
Max Kellermann 2a96ce97ee decoder/sndfile: add str_type to TagType table 2014-07-11 21:57:41 +02:00
Max Kellermann 8cfe901391 decoder/sndfile: move code to sndfile_handle_tag() 2014-07-11 21:56:02 +02:00
Max Kellermann 30f1ee7a1f decoder/sndfile: log libsndfile version on startup 2014-07-11 21:53:03 +02:00
Max Kellermann 828cd6fd0b Merge branch 'v0.18.x' 2014-07-11 21:33:50 +02:00
Max Kellermann ecb67a1ed1 decoder/sndfile: use decoder_read_full()
Replaces the loop in sndfile_vio_read(), eliminating duplicate and
fragile code.
2014-07-11 21:18:44 +02:00
Max Kellermann 0ef843f138 decoder/sndfile: use decoder_read()
.. instead of InputStream::LockRead(). The former is cancellable.
2014-07-11 21:18:44 +02:00
Max Kellermann eb79d83051 decoder/sndfile: log seek errors 2014-07-11 21:18:44 +02:00
Max Kellermann ca1a11493d decoder/audiofile: log seek errors 2014-07-11 21:18:44 +02:00
Max Kellermann 69bb086ba5 decoder/audiofile: fix typo in comment 2014-07-11 21:18:44 +02:00
Max Kellermann ccbb5c3e01 decoder/audiofile: log libaudiofile errors 2014-07-10 09:37:43 +02:00
Max Kellermann 49b63e084f decoder/audiofile: make variables more local 2014-07-10 09:26:12 +02:00
Max Kellermann 107321e385 decoder/audiofile: implement scan_stream() instead of scan_file() 2014-07-10 09:23:56 +02:00
Max Kellermann 1d214b4aed decoder/audiofile: use audiofile_get_duration() in _stream_decode() 2014-07-10 08:35:24 +02:00
Max Kellermann 2e1347aba4 decoder/audiofile: split audiofile_get_duration() 2014-07-10 08:31:41 +02:00
Max Kellermann 9ddb5931fb decoder/audiofile: remove unused Error variable 2014-07-09 20:03:11 +02:00
Max Kellermann 913064d6cc Merge branch 'v0.18.x' 2014-07-09 20:02:07 +02:00
Gustavo Zacarias 0e39b59700 decoder/plugins/FlacIOHandle: fix build failure due to missing stdio.h include
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
2014-07-09 19:54:35 +02:00
Max Kellermann 552af5455e decoder/dsdlib: use decoder_skip()
Reduce duplicate code.
2014-07-09 19:42:36 +02:00
Max Kellermann 8759bc1b41 decoder/dsdlib: pass unsigned offsets to dsdlib_skip*() 2014-07-09 19:39:10 +02:00
Joff 09384df32c decoder/dsd: use decoder_read_full() where appropriate
Addresses Mantis ticket 0004015.

[mk: use decoder_read_full() only when needed, and a few formal
changes]
2014-07-09 19:18:36 +02:00
Max Kellermann 20538516b9 decoder/audiofile: use decoder_read_full()
Works around WAV stream playback bug, because libaudiofile does not
like partial reads (Mantis 0004028).
2014-07-09 19:05:20 +02:00
Max Kellermann 0759421d11 DecoderAPI: add function decoder_read_full()
Move code from the "mad" plugin.
2014-07-09 19:03:58 +02:00
Max Kellermann bf7417981f DecoderAPI: add function decoder_skip()
Move code from the "mad" plugin.
2014-07-09 19:03:31 +02:00
Max Kellermann bc6472bb9e decoder/audiofile: use decoder_read()
.. instead of InputStream::LockRead(). The former is cancellable.
2014-07-09 18:57:50 +02:00
Gustavo Zacarias a70443af31 decoder/OpusDecoderPlugin: fix build failure due to missing stdio.h include
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
2014-07-09 17:41:31 +02:00
Gustavo Zacarias 3f221e2edb decoder/AudiofileDecoderPlugin: fix build failure due to missing stdio.h include
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
2014-07-09 17:41:31 +02:00
Christoph Tieben 88433bca22 Added Comment/Description to decoder/plugins/XiphTags.cxx 2014-06-27 21:14:55 +02:00
Christoph Tieben 34689eb2d2 decoder: vorbis, flac, opus: honor DESCRIPTION= tag in Xiph-based files as a comment to the song
(see https://www.xiph.org/vorbis/doc/v-comment.html for Details)
2014-06-27 21:14:17 +02:00
Max Kellermann 07b93dcf80 InputStream: make Seek() always absolute
Remove the "whence" parameter that is not actually necessary, and only
complicates the InputStream implementations.
2014-05-22 13:52:00 +02:00
Max Kellermann 374c6a27db decoder/vorbis: make VorbisInputStream::input_stream a reference 2014-05-22 13:52:00 +02:00
Max Kellermann 36c9e95969 decoder/vorbis: add VorbisInputStream constructor 2014-05-22 13:52:00 +02:00
Max Kellermann a3142ee4e6 decoder/vorbis: rename struct vorbis_input_stream to VorbisInputStream 2014-05-22 13:52:00 +02:00
Max Kellermann 437caeb90f decoder/vorbis: add "restrict" to pointers in vorbis_interleave()
Allows more compiler optimizations.
2014-05-22 13:52:00 +02:00