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
>>>...
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.
>
>
>...
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,...