Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Solve possible glitch after seeking in mpc files. Documented the special treatment after seek.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17829 a1c6a512-1295-4272-9138-f99709370657

+11 -3
+8
apps/codecs/libmusepack/decoder.h
··· 43 43 #include "reader.h" 44 44 #include "streaminfo.h" 45 45 46 + // define this to enable/disable support for streamversion SV4-6 46 47 //#define MPC_SUPPORT_SV456 48 + 49 + // SCF_HACK is used to avoid possible distortion after seeking with mpc files 50 + // background: scf's are coded differential in time domain. if you seek to the 51 + // desired postion it might happen that the baseline is missed and the resulting 52 + // scf is much too high (hissing noise). this hack uses the lowest scaling until 53 + // a non-differential scf could be decoded after seek. through this hack subbands 54 + // are faded out until there was at least a single non-differential scf found. 47 55 #define SCF_HACK 48 56 49 57 enum {
+3 -3
apps/codecs/libmusepack/mpc_decoder.c
··· 65 65 #endif 66 66 67 67 #ifdef SCF_HACK 68 - #define SCF_DIFF(SCF, D) (SCF == -128 ? -128 : SCF + D) 68 + #define SCF_DIFF(SCF, D) (SCF == 127 ? 127 : SCF + D) 69 69 #else 70 70 #define SCF_DIFF(SCF, D) SCF + D 71 71 #endif ··· 1565 1565 memset(d->Y_L , 0, sizeof Y_L ); 1566 1566 memset(d->Y_R , 0, sizeof Y_R ); 1567 1567 #ifdef SCF_HACK 1568 - memset(d->SCF_Index_L , -128, sizeof d->SCF_Index_L ); 1569 - memset(d->SCF_Index_R , -128, sizeof d->SCF_Index_R ); 1568 + memset(d->SCF_Index_L , 127, sizeof d->SCF_Index_L ); 1569 + memset(d->SCF_Index_R , 127, sizeof d->SCF_Index_R ); 1570 1570 #else 1571 1571 memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L ); 1572 1572 memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R );