diff options
Diffstat (limited to 'apps/codecs/librm/rm.c')
-rw-r--r-- | apps/codecs/librm/rm.c | 31 |
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 | |||
99 | static 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 | |||
111 | static void print_cook_extradata(RMContext *rmctx) { | 98 | static 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); |