summaryrefslogtreecommitdiff
path: root/apps/codecs/libmusepack/decoder.h
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2008-05-22 09:58:19 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2008-05-22 09:58:19 +0000
commit6a74a5dd3b625f1143e301b9d6a840e3b4969bd3 (patch)
tree76da0d77f0727f819521a0e18378f3d9d41e4908 /apps/codecs/libmusepack/decoder.h
parent5f8bd63cba88186b05d22581ea9edf02b1538caf (diff)
downloadrockbox-6a74a5dd3b625f1143e301b9d6a840e3b4969bd3.zip
rockbox-6a74a5dd3b625f1143e301b9d6a840e3b4969bd3.tar.gz
rockbox-6a74a5dd3b625f1143e301b9d6a840e3b4969bd3.tar.bz2
rockbox-6a74a5dd3b625f1143e301b9d6a840e3b4969bd3.tar.xz
Commit FS#9015. Rework of musepack buffered seek. Now a static seek buffer of 8192 entries is used. The seeking precision is adapted to the length of the file (e.g. 26ms for files <=3.5min and 0.4s for files ~60min).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17604 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libmusepack/decoder.h')
-rw-r--r--apps/codecs/libmusepack/decoder.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/apps/codecs/libmusepack/decoder.h b/apps/codecs/libmusepack/decoder.h
index b035ae9..41ffe1c 100644
--- a/apps/codecs/libmusepack/decoder.h
+++ b/apps/codecs/libmusepack/decoder.h
@@ -49,7 +49,7 @@
enum {
MPC_V_MEM = 2304,
MPC_DECODER_MEMSIZE = 16384, // overall buffer size (words)
- MPC_SEEK_BUFFER_SIZE = 65536, // seek buffer size (words)
+ MPC_SEEK_BUFFER_SIZE = 8192, // seek buffer size (words)
};
typedef struct {
@@ -78,9 +78,6 @@ typedef struct mpc_decoder_t {
mpc_uint32_t DecodedFrames;
mpc_uint32_t OverallFrames;
- mpc_uint32_t MaxDecodedFrames; // Maximum frames decoded (indicates usable seek table entries)
- mpc_uint16_t SeekTableIndex;
- mpc_uint32_t SeekTableCounter;
mpc_int32_t SampleRate; // Sample frequency
mpc_uint32_t StreamVersion; // version of bitstream
@@ -110,8 +107,10 @@ typedef struct mpc_decoder_t {
mpc_int8_t SCFI_R [32]; // describes order of transmitted SCF
mpc_bool_t MS_Flag[32]; // MS used?
- mpc_uint32_t* SeekTable;
- mpc_uint8_t SeekTable_Step;
+ mpc_uint32_t SeekTableCounter; // used to sum up skip info, if SeekTable_Step != 1
+ mpc_uint32_t MaxDecodedFrames; // Maximum frames decoded (indicates usable seek table entries)
+ mpc_uint32_t* SeekTable; // seek table itself
+ mpc_uint8_t SeekTable_Step; // frames per seek table index
#ifdef MPC_FIXED_POINT
mpc_uint8_t SCF_shift[256];