summaryrefslogtreecommitdiff
path: root/apps/codecs/libcook/rm.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libcook/rm.c')
-rw-r--r--apps/codecs/libcook/rm.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/apps/codecs/libcook/rm.c b/apps/codecs/libcook/rm.c
index b2ccfc2480..86c4378d56 100644
--- a/apps/codecs/libcook/rm.c
+++ b/apps/codecs/libcook/rm.c
@@ -434,6 +434,17 @@ int real_parse_header(int fd, RMContext *rmctx)
434 skipped += 4; 434 skipped += 4;
435 if (!rmctx->nb_packets && (rmctx->flags & 4)) 435 if (!rmctx->nb_packets && (rmctx->flags & 4))
436 rmctx->nb_packets = 3600 * 25; 436 rmctx->nb_packets = 3600 * 25;
437
438 /***
439 * nb_packets correction :
440 * in some samples, number of packets may not exactly form
441 * an integer number of scrambling units. This is corrected
442 * by constructing a partially filled unit out of the few
443 * remaining samples at the end of decoding.
444 ***/
445 if(rmctx->nb_packets % rmctx->sub_packet_h)
446 rmctx->nb_packets += rmctx->sub_packet_h - (rmctx->nb_packets % rmctx->sub_packet_h);
447
437 printf(" data_nb_packets = %d\n",rmctx->nb_packets); 448 printf(" data_nb_packets = %d\n",rmctx->nb_packets);
438 printf(" next DATA offset = %d\n",next_data_off); 449 printf(" next DATA offset = %d\n",next_data_off);
439 header_end = 1; 450 header_end = 1;