| Index: src/opus.c
|
| diff --git a/src/opus.c b/src/opus.c
|
| index 30890b9cbfd6f61cb3e8276df7a4f4fa9df32961..e9ce93b3084ae53b5675320886ab6280d9e2f6d3 100644
|
| --- a/src/opus.c
|
| +++ b/src/opus.c
|
| @@ -166,6 +166,27 @@ static int parse_size(const unsigned char *data, opus_int32 len, opus_int16 *siz
|
| }
|
| }
|
|
|
| +int opus_packet_get_samples_per_frame(const unsigned char *data,
|
| + opus_int32 Fs)
|
| +{
|
| + int audiosize;
|
| + if (data[0]&0x80)
|
| + {
|
| + audiosize = ((data[0]>>3)&0x3);
|
| + audiosize = (Fs<<audiosize)/400;
|
| + } else if ((data[0]&0x60) == 0x60)
|
| + {
|
| + audiosize = (data[0]&0x08) ? Fs/50 : Fs/100;
|
| + } else {
|
| + audiosize = ((data[0]>>3)&0x3);
|
| + if (audiosize == 3)
|
| + audiosize = Fs*60/1000;
|
| + else
|
| + audiosize = (Fs<<audiosize)/100;
|
| + }
|
| + return audiosize;
|
| +}
|
| +
|
| int opus_packet_parse_impl(const unsigned char *data, opus_int32 len,
|
| int self_delimited, unsigned char *out_toc,
|
| const unsigned char *frames[48], opus_int16 size[48],
|
|
|