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.

codecs: aac: Prefer to resume by time instead of offset

m4a_seek_raw() is relatively inaccurate, so time-based resume
should be preferred.

Change-Id: I959ef165f9a99d12deb804c13d20413c1cecf867

+5 -5
+5 -5
lib/rbcodec/codecs/aac.c
··· 130 130 131 131 i = 0; 132 132 133 - if (file_offset > 0) { 133 + if (param) { 134 + elapsed_time = param; 135 + action = CODEC_ACTION_SEEK_TIME; 136 + } else if (file_offset > 0) { 134 137 /* Resume the desired (byte) position. Important: When resuming SBR 135 - * upsampling files the resulting sound_samples_done must be expanded 138 + * upsampling files the resulting sound_samples_done must be expanded 136 139 * by a factor of 2. This is done via using sbr_fac. */ 137 140 if (m4a_seek_raw(&demux_res, &input_stream, file_offset, 138 141 &sound_samples_done, (int*) &i)) { ··· 142 145 } 143 146 NeAACDecPostSeekReset(decoder, i); 144 147 elapsed_time = sound_samples_done * 1000LL / ci->id3->frequency; 145 - } else if (param) { 146 - elapsed_time = param; 147 - action = CODEC_ACTION_SEEK_TIME; 148 148 } else { 149 149 elapsed_time = 0; 150 150 sound_samples_done = 0;