diff options
author | Andrew Allen <bitllama@google.com> | 2017-12-04 15:32:18 -0800 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2017-12-07 13:04:19 -0500 |
commit | 65f11d326db773b2353d5066fd6b9191e9b3df81 (patch) | |
tree | d88b0ff49cf750d169c234e345d65a8dc5eb6496 /src/opus_private.h | |
parent | eee689824288c905eadffe9aef04bfc0c4753485 (diff) | |
download | opus-65f11d326db773b2353d5066fd6b9191e9b3df81.tar.gz |
Fix memory issues in Projection API.
Modified by Jean-Marc Valin
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
Diffstat (limited to 'src/opus_private.h')
-rw-r--r-- | src/opus_private.h | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/opus_private.h b/src/opus_private.h index acbb0ae8..193ff938 100644 --- a/src/opus_private.h +++ b/src/opus_private.h @@ -88,7 +88,25 @@ int get_left_channel(const ChannelLayout *layout, int stream_id, int prev); int get_right_channel(const ChannelLayout *layout, int stream_id, int prev); int get_mono_channel(const ChannelLayout *layout, int stream_id, int prev); - +typedef void (*opus_copy_channel_in_func)( + opus_val16 *dst, + int dst_stride, + const void *src, + int src_stride, + int src_channel, + int frame_size, + void *user_data +); + +typedef void (*opus_copy_channel_out_func)( + void *dst, + int dst_stride, + int dst_channel, + const opus_val16 *src, + int src_stride, + int frame_size, + void *user_data +); #define MODE_SILK_ONLY 1000 #define MODE_HYBRID 1001 @@ -156,4 +174,30 @@ opus_int32 opus_repacketizer_out_range_impl(OpusRepacketizer *rp, int begin, int int pad_frame(unsigned char *data, opus_int32 len, opus_int32 new_len); +int opus_multistream_encode_native +( + struct OpusMSEncoder *st, + opus_copy_channel_in_func copy_channel_in, + const void *pcm, + int analysis_frame_size, + unsigned char *data, + opus_int32 max_data_bytes, + int lsb_depth, + downmix_func downmix, + int float_api, + void *user_data +); + +int opus_multistream_decode_native( + struct OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + void *pcm, + opus_copy_channel_out_func copy_channel_out, + int frame_size, + int decode_fec, + int soft_clip, + void *user_data +); + #endif /* OPUS_PRIVATE_H */ |