diff options
author | Mohamed Tarek <mt@rockbox.org> | 2009-07-25 15:47:13 +0000 |
---|---|---|
committer | Mohamed Tarek <mt@rockbox.org> | 2009-07-25 15:47:13 +0000 |
commit | b8cccb5ae18f35ea7d210c513bafe10b19fafbd7 (patch) | |
tree | 901a2d75ad40134a005c3bbb68949f551fc9c50e /apps/codecs/librm | |
parent | 8f572ca525bf3812799e627a4a716300e412c244 (diff) | |
download | rockbox-b8cccb5ae18f35ea7d210c513bafe10b19fafbd7.tar.gz rockbox-b8cccb5ae18f35ea7d210c513bafe10b19fafbd7.zip |
Adding support for playback of aac audio in rm container, with seeking.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22031 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/librm')
-rw-r--r-- | apps/codecs/librm/rm.c | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/apps/codecs/librm/rm.c b/apps/codecs/librm/rm.c index c9c40986ba..a48fb51cc6 100644 --- a/apps/codecs/librm/rm.c +++ b/apps/codecs/librm/rm.c | |||
@@ -529,13 +529,28 @@ int rm_get_packet(uint8_t **src,RMContext *rmctx, RMPacket *pkt) | |||
529 | 529 | ||
530 | advance_buffer(src,12); | 530 | advance_buffer(src,12); |
531 | consumed += 12; | 531 | consumed += 12; |
532 | for(x = 0 ; x < w/sps; x++) | 532 | if (rmctx->codec_type == cook) { |
533 | { | 533 | for(x = 0 ; x < w/sps; x++) |
534 | place = sps*(h*x+((h+1)/2)*(y&1)+(y>>1)); | 534 | { |
535 | pkt->frames[place/sps] = *src; | 535 | place = sps*(h*x+((h+1)/2)*(y&1)+(y>>1)); |
536 | advance_buffer(src,sps); | 536 | pkt->frames[place/sps] = *src; |
537 | consumed += sps; | 537 | advance_buffer(src,sps); |
538 | } | 538 | consumed += sps; |
539 | } | ||
540 | } | ||
541 | else if (rmctx->codec_type == aac) { | ||
542 | rmctx->sub_packet_cnt = (get_uint16be(*src) & 0xf0) >> 4; | ||
543 | advance_buffer(src, 2); | ||
544 | consumed += 2; | ||
545 | if (rmctx->sub_packet_cnt) { | ||
546 | for(x = 0; x < rmctx->sub_packet_cnt; x++) { | ||
547 | rmctx->sub_packet_lengths[x] = get_uint16be(*src); | ||
548 | advance_buffer(src, 2); | ||
549 | consumed += 2; | ||
550 | } | ||
551 | rmctx->audio_pkt_cnt = --rmctx->sub_packet_cnt; | ||
552 | } | ||
553 | } | ||
539 | rmctx->audio_pkt_cnt++; | 554 | rmctx->audio_pkt_cnt++; |
540 | }while(++(rmctx->sub_packet_cnt) < h); | 555 | }while(++(rmctx->sub_packet_cnt) < h); |
541 | 556 | ||