diff options
author | Nils Wallménius <nils@rockbox.org> | 2014-01-19 16:31:59 +0100 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2014-07-13 11:12:40 +0200 |
commit | 9b7ec42403073ee887efc531c153e6b1b6c15bab (patch) | |
tree | 07e72fe9d817c65a6fede22955344a870842d5e6 /lib/rbcodec/codecs/libopus/opus_defines.h | |
parent | e557951c94c1efa769900257e466900f0ffeb53b (diff) | |
download | rockbox-9b7ec42403073ee887efc531c153e6b1b6c15bab.tar.gz rockbox-9b7ec42403073ee887efc531c153e6b1b6c15bab.zip |
Sync to upstream libopus
Sync to commit bb4b6885a139644cf3ac14e7deda9f633ec2d93c
This brings in a bunch of optimizations to decode speed
and memory usage. Allocations are switched from using
the pseudostack to using the real stack. Enabled hacks
to reduce stack usage.
This should fix crashes on sansa clip, although some
files will not play due to failing allocations in the
codec buffer.
Speeds up decoding of the following test files:
H300 (cf) C200 (arm7tdmi) ipod classic (arm9e)
16 kbps (silk) 14.28 MHz 4.00 MHz 2.61 MHz
64 kbps (celt) 4.09 MHz 8.08 MHz 6.24 MHz
128 kbps (celt) 1.93 MHz 8.83 MHz 6.53 MHz
Change-Id: I851733a8a5824b61feb363a173091bc7e6629b58
Diffstat (limited to 'lib/rbcodec/codecs/libopus/opus_defines.h')
-rw-r--r-- | lib/rbcodec/codecs/libopus/opus_defines.h | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/lib/rbcodec/codecs/libopus/opus_defines.h b/lib/rbcodec/codecs/libopus/opus_defines.h index 265089f65e..84df7c7a18 100644 --- a/lib/rbcodec/codecs/libopus/opus_defines.h +++ b/lib/rbcodec/codecs/libopus/opus_defines.h | |||
@@ -454,14 +454,6 @@ extern "C" { | |||
454 | * @hideinitializer */ | 454 | * @hideinitializer */ |
455 | #define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x) | 455 | #define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x) |
456 | 456 | ||
457 | /** Gets the sampling rate the encoder or decoder was initialized with. | ||
458 | * This simply returns the <code>Fs</code> value passed to opus_encoder_init() | ||
459 | * or opus_decoder_init(). | ||
460 | * @param[out] x <tt>opus_int32 *</tt>: Sampling rate of encoder or decoder. | ||
461 | * @hideinitializer | ||
462 | */ | ||
463 | #define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x) | ||
464 | |||
465 | /** Gets the total samples of delay added by the entire codec. | 457 | /** Gets the total samples of delay added by the entire codec. |
466 | * This can be queried by the encoder and then the provided number of samples can be | 458 | * This can be queried by the encoder and then the provided number of samples can be |
467 | * skipped on from the start of the decoder's output to provide time aligned input | 459 | * skipped on from the start of the decoder's output to provide time aligned input |
@@ -545,11 +537,6 @@ extern "C" { | |||
545 | * @hideinitializer */ | 537 | * @hideinitializer */ |
546 | #define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x) | 538 | #define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x) |
547 | 539 | ||
548 | /** Gets the duration (in samples) of the last packet successfully decoded or concealed. | ||
549 | * @param[out] x <tt>opus_int32 *</tt>: Number of samples (at current sampling rate). | ||
550 | * @hideinitializer */ | ||
551 | #define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x) | ||
552 | |||
553 | /** Configures the encoder's use of variable duration frames. | 540 | /** Configures the encoder's use of variable duration frames. |
554 | * When variable duration is enabled, the encoder is free to use a shorter frame | 541 | * When variable duration is enabled, the encoder is free to use a shorter frame |
555 | * size than the one requested in the opus_encode*() call. | 542 | * size than the one requested in the opus_encode*() call. |
@@ -649,18 +636,6 @@ extern "C" { | |||
649 | * @hideinitializer */ | 636 | * @hideinitializer */ |
650 | #define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x) | 637 | #define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x) |
651 | 638 | ||
652 | /** Gets the pitch of the last decoded frame, if available. | ||
653 | * This can be used for any post-processing algorithm requiring the use of pitch, | ||
654 | * e.g. time stretching/shortening. If the last frame was not voiced, or if the | ||
655 | * pitch was not coded in the frame, then zero is returned. | ||
656 | * | ||
657 | * This CTL is only implemented for decoder instances. | ||
658 | * | ||
659 | * @param[out] x <tt>opus_int32 *</tt>: pitch period at 48 kHz (or 0 if not available) | ||
660 | * | ||
661 | * @hideinitializer */ | ||
662 | #define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x) | ||
663 | |||
664 | /** Gets the encoder's configured bandpass or the decoder's last bandpass. | 639 | /** Gets the encoder's configured bandpass or the decoder's last bandpass. |
665 | * @see OPUS_SET_BANDWIDTH | 640 | * @see OPUS_SET_BANDWIDTH |
666 | * @param[out] x <tt>opus_int32 *</tt>: Returns one of the following values: | 641 | * @param[out] x <tt>opus_int32 *</tt>: Returns one of the following values: |
@@ -675,6 +650,14 @@ extern "C" { | |||
675 | * @hideinitializer */ | 650 | * @hideinitializer */ |
676 | #define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) | 651 | #define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) |
677 | 652 | ||
653 | /** Gets the sampling rate the encoder or decoder was initialized with. | ||
654 | * This simply returns the <code>Fs</code> value passed to opus_encoder_init() | ||
655 | * or opus_decoder_init(). | ||
656 | * @param[out] x <tt>opus_int32 *</tt>: Sampling rate of encoder or decoder. | ||
657 | * @hideinitializer | ||
658 | */ | ||
659 | #define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x) | ||
660 | |||
678 | /**@}*/ | 661 | /**@}*/ |
679 | 662 | ||
680 | /** @defgroup opus_decoderctls Decoder related CTLs | 663 | /** @defgroup opus_decoderctls Decoder related CTLs |
@@ -699,6 +682,23 @@ extern "C" { | |||
699 | * @hideinitializer */ | 682 | * @hideinitializer */ |
700 | #define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x) | 683 | #define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x) |
701 | 684 | ||
685 | /** Gets the duration (in samples) of the last packet successfully decoded or concealed. | ||
686 | * @param[out] x <tt>opus_int32 *</tt>: Number of samples (at current sampling rate). | ||
687 | * @hideinitializer */ | ||
688 | #define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x) | ||
689 | |||
690 | /** Gets the pitch of the last decoded frame, if available. | ||
691 | * This can be used for any post-processing algorithm requiring the use of pitch, | ||
692 | * e.g. time stretching/shortening. If the last frame was not voiced, or if the | ||
693 | * pitch was not coded in the frame, then zero is returned. | ||
694 | * | ||
695 | * This CTL is only implemented for decoder instances. | ||
696 | * | ||
697 | * @param[out] x <tt>opus_int32 *</tt>: pitch period at 48 kHz (or 0 if not available) | ||
698 | * | ||
699 | * @hideinitializer */ | ||
700 | #define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x) | ||
701 | |||
702 | /**@}*/ | 702 | /**@}*/ |
703 | 703 | ||
704 | /** @defgroup opus_libinfo Opus library information functions | 704 | /** @defgroup opus_libinfo Opus library information functions |