OLD | NEW |
1 /* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited | 1 /* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited |
2 Written by Jean-Marc Valin and Koen Vos */ | 2 Written by Jean-Marc Valin and Koen Vos */ |
3 /* | 3 /* |
4 Redistribution and use in source and binary forms, with or without | 4 Redistribution and use in source and binary forms, with or without |
5 modification, are permitted provided that the following conditions | 5 modification, are permitted provided that the following conditions |
6 are met: | 6 are met: |
7 | 7 |
8 - Redistributions of source code must retain the above copyright | 8 - Redistributions of source code must retain the above copyright |
9 notice, this list of conditions and the following disclaimer. | 9 notice, this list of conditions and the following disclaimer. |
10 | 10 |
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 /**@}*/ | 609 /**@}*/ |
610 | 610 |
611 /** @defgroup opus_repacketizer Repacketizer | 611 /** @defgroup opus_repacketizer Repacketizer |
612 * @{ | 612 * @{ |
613 * | 613 * |
614 * The repacketizer can be used to merge multiple Opus packets into a single | 614 * The repacketizer can be used to merge multiple Opus packets into a single |
615 * packet or alternatively to split Opus packets that have previously been | 615 * packet or alternatively to split Opus packets that have previously been |
616 * merged. Splitting valid Opus packets is always guaranteed to succeed, | 616 * merged. Splitting valid Opus packets is always guaranteed to succeed, |
617 * whereas merging valid packets only succeeds if all frames have the same | 617 * whereas merging valid packets only succeeds if all frames have the same |
618 * mode, bandwidth, and frame size, and when the total duration of the merged | 618 * mode, bandwidth, and frame size, and when the total duration of the merged |
619 * packet is no more than 120 ms. | 619 * packet is no more than 120 ms. The 120 ms limit comes from the |
| 620 * specification and limits decoder memory requirements at a point where |
| 621 * framing overhead becomes negligible. |
| 622 * |
620 * The repacketizer currently only operates on elementary Opus | 623 * The repacketizer currently only operates on elementary Opus |
621 * streams. It will not manipualte multistream packets successfully, except in | 624 * streams. It will not manipualte multistream packets successfully, except in |
622 * the degenerate case where they consist of data from a single stream. | 625 * the degenerate case where they consist of data from a single stream. |
623 * | 626 * |
624 * The repacketizing process starts with creating a repacketizer state, either | 627 * The repacketizing process starts with creating a repacketizer state, either |
625 * by calling opus_repacketizer_create() or by allocating the memory yourself, | 628 * by calling opus_repacketizer_create() or by allocating the memory yourself, |
626 * e.g., | 629 * e.g., |
627 * @code | 630 * @code |
628 * OpusRepacketizer *rp; | 631 * OpusRepacketizer *rp; |
629 * rp = (OpusRepacketizer*)malloc(opus_repacketizer_get_size()); | 632 * rp = (OpusRepacketizer*)malloc(opus_repacketizer_get_size()); |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
969 */ | 972 */ |
970 OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_packet_unpad(uns
igned char *data, opus_int32 len, int nb_streams); | 973 OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_packet_unpad(uns
igned char *data, opus_int32 len, int nb_streams); |
971 | 974 |
972 /**@}*/ | 975 /**@}*/ |
973 | 976 |
974 #ifdef __cplusplus | 977 #ifdef __cplusplus |
975 } | 978 } |
976 #endif | 979 #endif |
977 | 980 |
978 #endif /* OPUS_H */ | 981 #endif /* OPUS_H */ |
OLD | NEW |