diff options
Diffstat (limited to 'apps/codecs/libcook/rm.c')
-rw-r--r-- | apps/codecs/libcook/rm.c | 11 |
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; |