summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/alac.c
diff options
context:
space:
mode:
authorroman.artiukhin <bahusdrive@gmail.com>2023-09-18 13:14:47 +0300
committerSolomon Peachy <pizza@shaftnet.org>2023-09-19 11:13:19 -0400
commit001a338e5126cbec422867481ef7485b1b3c8eea (patch)
tree6593e544ee074ca86f79df7d9f04814ce21c323d /lib/rbcodec/codecs/alac.c
parentef7d6009b4f8b2e64d6ced27bc97aad0b520271e (diff)
downloadrockbox-001a338e5126cbec422867481ef7485b1b3c8eea.tar.gz
rockbox-001a338e5126cbec422867481ef7485b1b3c8eea.zip
Codecs: mp4: Reuse lookup_table index from seek in m4a_check_sample_offset
Change-Id: If2fc3038ce8db8ddf2991406a5cce294a857eadc
Diffstat (limited to 'lib/rbcodec/codecs/alac.c')
-rw-r--r--lib/rbcodec/codecs/alac.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/rbcodec/codecs/alac.c b/lib/rbcodec/codecs/alac.c
index 141c5d6f91..7139b629b8 100644
--- a/lib/rbcodec/codecs/alac.c
+++ b/lib/rbcodec/codecs/alac.c
@@ -64,6 +64,7 @@ enum codec_status codec_run(void)
64 unsigned long resume_time; 64 unsigned long resume_time;
65 uint32_t resume_offset; 65 uint32_t resume_offset;
66 unsigned int did_resume; 66 unsigned int did_resume;
67 int lookup_table_idx = 0;
67 68
68 /* Clean and initialize decoder structures */ 69 /* Clean and initialize decoder structures */
69 memset(&demux_res , 0, sizeof(demux_res)); 70 memset(&demux_res , 0, sizeof(demux_res));
@@ -96,10 +97,10 @@ enum codec_status codec_run(void)
96 if (resume_time) 97 if (resume_time)
97 did_resume = m4a_seek(&demux_res, &input_stream, 98 did_resume = m4a_seek(&demux_res, &input_stream,
98 (uint64_t)resume_time * ci->id3->frequency / 1000ULL, 99 (uint64_t)resume_time * ci->id3->frequency / 1000ULL,
99 &samplesdone, (int *) &i); 100 &samplesdone, (int *) &i, &lookup_table_idx);
100 else if (resume_offset) 101 else if (resume_offset)
101 did_resume = m4a_seek_raw(&demux_res, &input_stream, resume_offset, 102 did_resume = m4a_seek_raw(&demux_res, &input_stream, resume_offset,
102 &samplesdone, (int *) &i); 103 &samplesdone, (int *) &i, &lookup_table_idx);
103 else 104 else
104 did_resume = 0; 105 did_resume = 0;
105 106
@@ -122,7 +123,7 @@ enum codec_status codec_run(void)
122 if (action == CODEC_ACTION_SEEK_TIME) { 123 if (action == CODEC_ACTION_SEEK_TIME) {
123 if (m4a_seek(&demux_res, &input_stream, 124 if (m4a_seek(&demux_res, &input_stream,
124 (uint64_t)param * ci->id3->frequency / 1000ULL, 125 (uint64_t)param * ci->id3->frequency / 1000ULL,
125 &samplesdone, (int *) &i)) 126 &samplesdone, (int *) &i, &lookup_table_idx))
126 set_elapsed_samples(samplesdone); 127 set_elapsed_samples(samplesdone);
127 128
128 ci->seek_complete(); 129 ci->seek_complete();