summaryrefslogtreecommitdiff
path: root/apps/codecs/librm/rm.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/librm/rm.c')
-rw-r--r--apps/codecs/librm/rm.c31
1 files changed, 8 insertions, 23 deletions
diff --git a/apps/codecs/librm/rm.c b/apps/codecs/librm/rm.c
index bfad7e8b36..c9c40986ba 100644
--- a/apps/codecs/librm/rm.c
+++ b/apps/codecs/librm/rm.c
@@ -95,27 +95,14 @@ static int read_uint32be(int fd, uint32_t* buf)
95} 95}
96 96
97 97
98
99static int read_cook_extradata(int fd, RMContext *rmctx) {
100 read_uint32be(fd, &rmctx->cook_version);
101 read_uint16be(fd, &rmctx->samples_pf_pc);
102 read_uint16be(fd, &rmctx->nb_subbands);
103 if(rmctx->extradata_size == 16) {
104 read_uint32be(fd, &rmctx->unused);
105 read_uint16be(fd, &rmctx->js_subband_start);
106 read_uint16be(fd, &rmctx->js_vlc_bits);
107 }
108 return rmctx->extradata_size; /* for 'skipped' */
109}
110
111static void print_cook_extradata(RMContext *rmctx) { 98static void print_cook_extradata(RMContext *rmctx) {
112 99
113 DEBUGF(" cook_version = 0x%08x\n", rmctx->cook_version); 100 DEBUGF(" cook_version = 0x%08x\n", get_uint32be(rmctx->codec_extradata));
114 DEBUGF(" samples_per_frame_per_channel = %d\n", rmctx->samples_pf_pc); 101 DEBUGF(" samples_per_frame_per_channel = %d\n", get_uint16be(&rmctx->codec_extradata[4]));
115 DEBUGF(" number_of_subbands_in_freq_domain = %d\n", rmctx->nb_subbands); 102 DEBUGF(" number_of_subbands_in_freq_domain = %d\n", get_uint16be(&rmctx->codec_extradata[6]));
116 if(rmctx->extradata_size == 16) { 103 if(rmctx->extradata_size == 16) {
117 DEBUGF(" joint_stereo_subband_start = %d\n",rmctx->js_subband_start); 104 DEBUGF(" joint_stereo_subband_start = %d\n",get_uint16be(&rmctx->codec_extradata[12]));
118 DEBUGF(" joint_stereo_vlc_bits = %d\n", rmctx->js_vlc_bits); 105 DEBUGF(" joint_stereo_vlc_bits = %d\n", get_uint16be(&rmctx->codec_extradata[14]));
119 } 106 }
120} 107}
121 108
@@ -250,10 +237,8 @@ static int real_read_audio_stream_info(int fd, RMContext *rmctx)
250 237
251 read_uint32be(fd, &rmctx->extradata_size); 238 read_uint32be(fd, &rmctx->extradata_size);
252 skipped += 4; 239 skipped += 4;
253 if(!strncmp(fourcc2str(fourcc),"cook",4)){ 240 read(fd, rmctx->codec_extradata, rmctx->extradata_size);
254 skipped += read_cook_extradata(fd, rmctx); 241 skipped += rmctx->extradata_size;
255 rmctx->codec_type = cook;
256 }
257 242
258 243
259 DEBUGF(" flavor = %d\n",flavor); 244 DEBUGF(" flavor = %d\n",flavor);