From 26cee86a0ca354ac15d46fb92db0cc9a776dd4b2 Mon Sep 17 00:00:00 2001 From: Mohamed Tarek Date: Tue, 4 Aug 2009 13:54:06 +0000 Subject: Add support for AC3 audio in RM container. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22155 a1c6a512-1295-4272-9138-f99709370657 --- apps/metadata/rm.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'apps/metadata/rm.c') diff --git a/apps/metadata/rm.c b/apps/metadata/rm.c index 4be0de647f..c74acef5dd 100644 --- a/apps/metadata/rm.c +++ b/apps/metadata/rm.c @@ -160,24 +160,32 @@ static inline int real_read_audio_stream_info(int fd, RMContext *rmctx) skipped += 1; } - read_uint32be(fd, &rmctx->extradata_size); - skipped += 4; - read(fd, rmctx->codec_extradata, rmctx->extradata_size); - skipped += rmctx->extradata_size; switch(fourcc) { case FOURCC('c','o','o','k'): rmctx->codec_type = CODEC_COOK; + read_uint32be(fd, &rmctx->extradata_size); + skipped += 4; + read(fd, rmctx->codec_extradata, rmctx->extradata_size); + skipped += rmctx->extradata_size; break; case FOURCC('r','a','a','c'): case FOURCC('r','a','c','p'): rmctx->codec_type = CODEC_AAC; + read_uint32be(fd, &rmctx->extradata_size); + skipped += 4; + read(fd, rmctx->codec_extradata, rmctx->extradata_size); + skipped += rmctx->extradata_size; + break; + + case FOURCC('d','n','e','t'): + rmctx->codec_type = CODEC_AC3; break; default: /* Not a supported codec */ return -1; } - + DEBUGF(" flavor = %d\n",flavor); DEBUGF(" coded_frame_size = %ld\n",coded_framesize); DEBUGF(" sub_packet_h = %d\n",rmctx->sub_packet_h); @@ -407,6 +415,10 @@ bool get_rm_metadata(int fd, struct mp3entry* id3) case CODEC_AAC: id3->codectype = AFMT_RM_AAC; break; + + case CODEC_AC3: + id3->codectype = AFMT_RM_AC3; + break; } id3->bitrate = rmctx->bit_rate / 1000; -- cgit v1.2.3