summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohamed Tarek <mt@rockbox.org>2009-08-06 05:45:54 +0000
committerMohamed Tarek <mt@rockbox.org>2009-08-06 05:45:54 +0000
commitcc68b632cb6134ad158b1f15871809f00e8673d4 (patch)
treee3e05b29ef4d42c790433dfe3214b8f372aaede5
parent0f70c4d4ccf6eaef42ac2b2ba433278c61d59845 (diff)
downloadrockbox-cc68b632cb6134ad158b1f15871809f00e8673d4.tar.gz
rockbox-cc68b632cb6134ad158b1f15871809f00e8673d4.zip
Add a couple of functions for the rm metadata parser for debugging, and add a comment to codecs/a52_rm.c to indicate the source of the decode
function. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22182 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/a52_rm.c1
-rw-r--r--apps/metadata/rm.c14
2 files changed, 14 insertions, 1 deletions
diff --git a/apps/codecs/a52_rm.c b/apps/codecs/a52_rm.c
index ae4f542b02..50269aea9d 100644
--- a/apps/codecs/a52_rm.c
+++ b/apps/codecs/a52_rm.c
@@ -45,6 +45,7 @@ static void init_rm(RMContext *rmctx)
/* used outside liba52 */
static uint8_t buf[3840] IBSS_ATTR;
+/* The following two functions, a52_decode_data and output_audio are taken from apps/codecs/a52.c */
static inline void output_audio(sample_t *samples)
{
ci->yield();
diff --git a/apps/metadata/rm.c b/apps/metadata/rm.c
index c74acef5dd..7ab85794ff 100644
--- a/apps/metadata/rm.c
+++ b/apps/metadata/rm.c
@@ -38,9 +38,21 @@
#define DEBUGF(...)
#endif
+#ifdef DEBUG_RM
+static uint16_t get_uint16be(uint8_t *buf)
+{
+ return (uint16_t)((buf[0] << 8)|buf[1]);
+}
+
+static uint32_t get_uint32be(uint8_t *buf)
+{
+ return (uint32_t)((buf[0] << 24) | (buf[1] << 16) | (buf[2] << 8) | buf[3]);
+}
+#endif
+
static inline void print_cook_extradata(RMContext *rmctx) {
- DEBUGF(" cook_version = 0x%08x\n", get_uint32be(rmctx->codec_extradata));
+ DEBUGF(" cook_version = 0x%08lx\n", get_uint32be(rmctx->codec_extradata));
DEBUGF(" samples_per_frame_per_channel = %d\n", get_uint16be(&rmctx->codec_extradata[4]));
DEBUGF(" number_of_subbands_in_freq_domain = %d\n", get_uint16be(&rmctx->codec_extradata[6]));
if(rmctx->extradata_size == 16) {