search for: coupled_streams

Displaying 20 results from an estimated 42 matches for "coupled_streams".

2015 Apr 02
1
Opus multi-stream/surround: Audio corruption on decoded content
...<defines and vars> #define CHANNELS 6 #define OPUS_SURROUND_MAPPING_FAMILY 1 #define SAMPLE_RATE 48000 typedef union t_SurroundInfo { unsigned char surroundInfo[1]; struct { unsigned char channels; unsigned char streams; unsigned char coupled_streams; unsigned char channel_mapping[MAX_SURROUND_CHANNELS]; }s; }SurroundInfo; </defines and vars> <encoder> int streams = 0; int coupled_streams = 0; m_SurroundInfo.s.channels = CHANNELS; // set to 6 m_MSEnc = opus_multistream_surround_encoder_creat...
2015 Apr 02
0
Opus multi-stream/surround: Audio corruption on decoded content
...<defines and vars> #define CHANNELS 6 #define OPUS_SURROUND_MAPPING_FAMILY 1 #define SAMPLE_RATE 48000 typedef union t_SurroundInfo { unsigned char surroundInfo[1]; struct { unsigned char channels; unsigned char streams; unsigned char coupled_streams; unsigned char channel_mapping[MAX_SURROUND_CHANNELS]; }s; }SurroundInfo; </defines and vars> <encoder> int streams = 0; int coupled_streams = 0; m_SurroundInfo.s.channels = CHANNELS; // set to 6 m_MSEnc = opus_multistream_surround_encoder_creat...
2018 Mar 20
2
[PATCH] Support for Ambisonics
...ld be simpler to omit the incorrectly-set family field and just check whether the corresponding pointer is non-NULL. -int ope_encoder_deferred_init_with_mapping(OggOpusEnc *enc, int family, int streams, +int ope_encoder_deferred_init_with_mapping(OggOpusEnc *enc, int family, int streams, int coupled_streams, const unsigned char *mapping) { int ret; int i; - OpusMSEncoder *st; + OpusGenericEncoder *st; if (enc->st!=NULL) { return OPE_TOO_LATE; } if (family < 0 || family > 255) return OPE_BAD_ARG; - else if (family != 1 && family != 255) return OPE_UNIMPLEMENTED;...
2018 Mar 19
3
[PATCH] Support for Ambisonics
Hi Drew, I think the libopusenc patch is better, but there's still a few issues left: 1) The static MAX_PACKET_BUFFER_SIZE value is still problematic because if you link libopusenc with a new version of libopus that supports higher order projection or just more projection channels for order 3, then you will overflow the buffer. I think what you'd want is a _ope_opus_header_get_size() call
2017 Jun 07
2
Initial implementation of ch.mapping 253/3
...function [-Wreturn-type] > } > ^ > > Running the test, an issue occurs in test_creation_arguments(). > opus_projection_ambisonics_encoder_create() is intentionally called > with invalid arguments (initially, channels=0), which causes an error > to be returned and streams and coupled_streams are left uninitialized. > These uninitialized values are passed to > opus_projection_decoder_create(), which does not check that the > arguments are not too large before using them to attempt allocation of > a ridiculous amount of memory. Results may vary depending on the > uninitia...
2014 Jan 06
2
Possible bug in opus_multistream_surround_encoder_create()
I get reliable crashes if I create a 6-channel encoder using opus_multistream_surround_encoder_create(). If I use opus_multistream_encoder_create() instead and pass in the same parameters that opus_multistream_surround_encoder_create() sends out (streams = 4, coupled_streams = 2, mapping = {0, 4, 1, 2, 3, 5}) I don't get the crashes. I notice that opus_demo.c uses opus_multistream_surround_encoder_create(), but then that file also doesn't support more than two channels. I only got my crashes when using 6 channels. Brendan
2017 May 30
2
Initial implementation of ch.mapping 253/3
Hello all, Attached is the initial proposed implementation for ch.mapping 253/3, based on the IETF proposal: https://tools.ietf.org/html/draft-ietf-codec-ambisonics-03 A brief overview of the patch, as it is slightly lengthy: After discussion with Jean-Marc, we determined that ch.253/3 will need the demixing matrix as part of the encoder/decoder struct stack and thus will require a new
2017 Jun 12
1
Initial implementation of ch.mapping 253/3
...^ >>> >>> Running the test, an issue occurs in test_creation_arguments(). >>> opus_projection_ambisonics_encoder_create() is intentionally called >>> with invalid arguments (initially, channels=0), which causes an error >>> to be returned and streams and coupled_streams are left uninitialized. >>> These uninitialized values are passed to >>> opus_projection_decoder_create(), which does not check that the >>> arguments are not too large before using them to attempt allocation of >>> a ridiculous amount of memory. Results may var...
2017 Jun 07
0
Initial implementation of ch.mapping 253/3
...g: control reaches end of non-void function [-Wreturn-type] } ^ Running the test, an issue occurs in test_creation_arguments(). opus_projection_ambisonics_encoder_create() is intentionally called with invalid arguments (initially, channels=0), which causes an error to be returned and streams and coupled_streams are left uninitialized. These uninitialized values are passed to opus_projection_decoder_create(), which does not check that the arguments are not too large before using them to attempt allocation of a ridiculous amount of memory. Results may vary depending on the uninitialized values of streams a...
2018 Mar 20
2
[PATCH] Support for Ambisonics
...we'll have to fix them as well (not in this patch of > course). Maybe an "opeint_" prefix would do the job here (unless anyone > has a better idea)? > > > +int ope_encoder_deferred_init_with_mapping(OggOpusEnc *enc, int > > family, int streams, > > int coupled_streams, const unsigned char *mapping) { > > int ret; > > int i; > > > > This code is allowing family 253 for a deferred init, but does not > > create a projection encoder in that case, so it looks like it will > > fail when writing the id header since it won't...
2017 Jun 12
0
Initial implementation of ch.mapping 253/3
...t;> } >> ^ >> >> Running the test, an issue occurs in test_creation_arguments(). >> opus_projection_ambisonics_encoder_create() is intentionally called >> with invalid arguments (initially, channels=0), which causes an error >> to be returned and streams and coupled_streams are left uninitialized. >> These uninitialized values are passed to >> opus_projection_decoder_create(), which does not check that the >> arguments are not too large before using them to attempt allocation of >> a ridiculous amount of memory. Results may vary depending on t...
2018 Oct 25
1
Proposal - Extended Channel Layouts in Opus
...o take one of these routes: Add new opus_multistream_surround_encoder_create and opus_multistream_surround_encoder_init variants that take a uint32_t (or uint64_t for future expansion) bitmask Have opus_multistream_surround_encoder_create/opus_multistream_surround_encoder_init read from streams and coupled_streams when mapping_family == 4 (and require the consumer to set them, and adjust the resulting mapping) Have opus_multistream_surround_encoder_create/opus_multistream_surround_encoder_init read from mapping when mapping_family == 4 (and require the consumer to set it) Anyone have preferences on this? Ad...
2018 Mar 20
2
[PATCH] Support for Ambisonics
...of > > course). Maybe an "opeint_" prefix would do the job here (unless > anyone > > has a better idea)? > > > > > +int ope_encoder_deferred_init_with_mapping(OggOpusEnc *enc, int > > > family, int streams, > > > int coupled_streams, const unsigned char *mapping) { > > > int ret; > > > int i; > > > > > > This code is allowing family 253 for a deferred init, but does not > > > create a projection encoder in that case, so it looks like it will > > &...
2018 Mar 22
2
[PATCH] Support for Ambisonics
...ix would do the job here > > (unless anyone > > > has a better idea)? > > > > > > > +int ope_encoder_deferred_init_with_mapping(OggOpusEnc *enc, > int > > > > family, int streams, > > > > int coupled_streams, const unsigned char *mapping) { > > > > int ret; > > > > int i; > > > > > > > > This code is allowing family 253 for a deferred init, but > > does not > > > > create a projection enc...
2017 Oct 12
2
[PATCH] Support for Channel Mapping 253.
thanks for all your feedback. here's the revised patch: On Wed, Oct 11, 2017 at 2:20 PM Timothy B. Terriberry <tterribe at xiph.org> wrote: > Jean-Marc Valin wrote: > > I think you'll want something like: > > (opus_int16)((unsigned)demixing_matrix[2*i+1] << 8) > > (though you might want to check it too) > > FWIW, we use the construct > int s =
2018 Mar 26
3
[PATCH] Support for Ambisonics
...nyone >>> > > has a better idea)? >>> > > >>> > > > +int ope_encoder_deferred_init_with_mapping(OggOpusEnc >>> *enc, int >>> > > > family, int streams, >>> > > > int coupled_streams, const unsigned char *mapping) { >>> > > > int ret; >>> > > > int i; >>> > > > >>> > > > This code is allowing family 253 for a deferred init, but >>> > does not >>&gt...
2017 Oct 31
7
[PATCH] Support for Channel Mapping 253.
...matrix. > > 9) In get_streams_from_channels(), I think it'd be simpler to just replace: > *streams = channels / 2 + (channels % 2 == 1); > with: > *streams = (channels+1) / 2; > Done. > > 10) In opus_projection_ambisonics_encoder_init(), you to see if streams > and coupled_streams are NULL, but unless I missed something I don't > think there's any valid case where you wouldn't want to get those > values. If you don't have them, then you have no way of knowing what > mapping the encoder used, so no way of decoding. Instead, I would just > return OP...
2014 Jan 06
0
Possible bug in opus_multistream_surround_encoder_create()
...Bolles wrote: > I get reliable crashes if I create a 6-channel encoder using > opus_multistream_surround_encoder_create(). If I use > opus_multistream_encoder_create() instead and pass in the same > parameters that opus_multistream_surround_encoder_create() sends out > (streams = 4, coupled_streams = 2, mapping = {0, 4, 1, 2, 3, 5}) I > don't get the crashes. > > I notice that opus_demo.c uses > opus_multistream_surround_encoder_create(), but then that file also > doesn't support more than two channels. I only got my crashes when > using 6 channels. > > &gt...
2018 Mar 20
0
[PATCH] Support for Ambisonics
...with a leading underscore, so we'll have to fix them as well (not in this patch of course). Maybe an "opeint_" prefix would do the job here (unless anyone has a better idea)? > +int ope_encoder_deferred_init_with_mapping(OggOpusEnc *enc, int > family, int streams, > int coupled_streams, const unsigned char *mapping) { > int ret; > int i; > > This code is allowing family 253 for a deferred init, but does not > create a projection encoder in that case, so it looks like it will > fail when writing the id header since it won't be able to get the > demi...
2017 Nov 03
1
[PATCH] Support for Channel Mapping 253.
...t; > replace: > > *streams = channels / 2 + (channels % 2 == 1); > > with: > > *streams = (channels+1) / 2; > > > > Done. > > > > > > 10) In opus_projection_ambisonics_encoder_init(), you to see if > streams > > and coupled_streams are NULL, but unless I missed something I don't > > think there's any valid case where you wouldn't want to get those > > values. If you don't have them, then you have no way of knowing what > > mapping the encoder used, so no way of decoding. Instead,...