Displaying 18 results from an estimated 18 matches for "demixing_matrix".
2017 Oct 11
2
[PATCH] Support for Channel Mapping 253.
Hi Drew,
Thanks for addressing these issues. A few remaining things:
1) In this line:
buf[i] = (opus_int16)demixing_matrix[2*i] +
((opus_int16)demixing_matrix[2*i+1] << 8);
you might want to test it with undefined-behaviour sanitizer, but I
believe the second term will be undefined for negative values (the value
would be positive after the cast and only be negative because of the
shift).
I think you'll want...
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 = buf[2*i + 1] << 8 | buf[2*i];
> s = ((s & 0xFFFF) ^ 0x8000) - 0x8000;
>
> to manually sign-extend the result in opus_compare (and also opus_demo).
> If...
2017 Jun 07
2
Initial implementation of ch.mapping 253/3
...by 0x10000140D: test_creation_arguments (test_opus_projection.c:273)
> by 0x100001D06: main (test_opus_projection.c:396)
> Uninitialised value was created by a stack allocation
> at 0x100001330: test_creation_arguments (test_opus_projection.c:252)
>
> Additionally, the demixing_matrix appears to be used uninitialized
> when order_plus_one is 1 (or greater than 4):
>
> Conditional jump or move depends on uninitialised value(s)
> at 0x10006A6DF: opus_projection_encoder_init_impl
> (opus_projection_encoder.c:125)
> by 0x10006A9CA: opus_projection_ambisoni...
2017 Oct 31
7
[PATCH] Support for Channel Mapping 253.
...eplaced by an asssert or (if the user can cause a
> failure) actually checked.
>
> Done.
> 8) I see there's a "gain" field in the matrix, but I can't see it used
> anywhere. Did I miss something?
>
Gain should be pulled out by the user via
a OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN call and add it to the overall
output gain. We assume the mixing matrix gain is always zero and that this
only matters for the output gain from the demixing matrix.
>
> 9) In get_streams_from_channels(), I think it'd be simpler to just replace:
> *streams = channels / 2 + (channe...
2017 Oct 10
2
[PATCH] Support for Channel Mapping 253.
Hi Drew,
On 10/10/17 02:29 PM, Drew Allen wrote:
> 2) Someone on this list might know better than I do on that one, but for
> the new _ctl_va_list() calls, I believe the convention is for va_start()
> and va_end() to appear in the caller rather than in in the va_list()
> function itself.
>
> *My understanding is that it's impossible to pass ellipsis to another
>
2017 Oct 11
0
[PATCH] Support for Channel Mapping 253.
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 = buf[2*i + 1] << 8 | buf[2*i];
s = ((s & 0xFFFF) ^ 0x8000) - 0x8000;
to manually sign-extend the result in opus_compare (and also opus_demo).
If you ultimately cast s to (opus_int16)...
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
...ents (test_opus_projection.c:273)
>>> by 0x100001D06: main (test_opus_projection.c:396)
>>> Uninitialised value was created by a stack allocation
>>> at 0x100001330: test_creation_arguments (test_opus_projection.c:252)
>>>
>>> Additionally, the demixing_matrix appears to be used uninitialized
>>> when order_plus_one is 1 (or greater than 4):
>>>
>>> Conditional jump or move depends on uninitialised value(s)
>>> at 0x10006A6DF: opus_projection_encoder_init_impl
>>> (opus_projection_encoder.c:125)
>>&...
2017 Nov 03
1
[PATCH] Support for Channel Mapping 253.
...ually checked.
> >
> > Done.
> >
> > 8) I see there's a "gain" field in the matrix, but I can't see it
> used
> > anywhere. Did I miss something?
> >
> > Gain should be pulled out by the user via
> > a OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN call and add it to the
> > overall output gain. We assume the mixing matrix gain is always zero and
> > that this only matters for the output gain from the demixing matrix.
> >
> >
> > 9) In get_streams_from_channels(), I think it'd be simpler to just
>...
2017 Oct 31
0
[PATCH] Support for Channel Mapping 253.
...ere's the revised patch:
>
> On Wed, Oct 11, 2017 at 2:20 PM Timothy B. Terriberry <tterribe at xiph.org
> <mailto: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 = buf[2*i + 1] << 8 | buf[2*i];
> s = ((s & 0xFFFF) ^ 0x8000) - 0x8000;
>
> to manually sign-extend the result in opus_compare (and als...
2017 Nov 09
2
[PATCH] Support for Channel Mapping 253.
...> it used
> > > > > anywhere. Did I miss something?
> > > > >
> > > > > Gain should be pulled out by the user via
> > > > > a OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN
> > call and add
> > > it to the
> > > > > overall output gain. We assume the mixing
> > matrix gain is
> > > always
> > > > zero and
> >...
2017 Jun 07
0
Initial implementation of ch.mapping 253/3
...projection_decoder.c:68)
by 0x10000140D: test_creation_arguments (test_opus_projection.c:273)
by 0x100001D06: main (test_opus_projection.c:396)
Uninitialised value was created by a stack allocation
at 0x100001330: test_creation_arguments (test_opus_projection.c:252)
Additionally, the demixing_matrix appears to be used uninitialized
when order_plus_one is 1 (or greater than 4):
Conditional jump or move depends on uninitialised value(s)
at 0x10006A6DF: opus_projection_encoder_init_impl
(opus_projection_encoder.c:125)
by 0x10006A9CA: opus_projection_ambisonics_encoder_init
(opus_project...
2017 Nov 02
0
[PATCH] Support for Channel Mapping 253.
...he user can cause a
> failure) actually checked.
>
> Done.
>
> 8) I see there's a "gain" field in the matrix, but I can't see it used
> anywhere. Did I miss something?
>
> Gain should be pulled out by the user via
> a OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN call and add it to the
> overall output gain. We assume the mixing matrix gain is always zero and
> that this only matters for the output gain from the demixing matrix.
>
>
> 9) In get_streams_from_channels(), I think it'd be simpler to just
> replace:
>...
2017 Jun 12
0
Initial implementation of ch.mapping 253/3
...test_creation_arguments (test_opus_projection.c:273)
>> by 0x100001D06: main (test_opus_projection.c:396)
>> Uninitialised value was created by a stack allocation
>> at 0x100001330: test_creation_arguments (test_opus_projection.c:252)
>>
>> Additionally, the demixing_matrix appears to be used uninitialized
>> when order_plus_one is 1 (or greater than 4):
>>
>> Conditional jump or move depends on uninitialised value(s)
>> at 0x10006A6DF: opus_projection_encoder_init_impl
>> (opus_projection_encoder.c:125)
>> by 0x10006A9CA:...
2017 Nov 10
2
[PATCH] Support for Channel Mapping 253.
On 11/09/2017 01:58 PM, Drew Allen wrote:
> Attached is a quick patch that addresses a bug when exporting the matrix
> from the encoder.
Actually, I don't see what your encoder change is supposed to do. Are
there cases where demixing_matrix->rows != nb_output_streams ?
Cheers,
Jean-Marc
> Cheers,
> Drew
>
> On Wed, Nov 8, 2017 at 4:44 PM Drew Allen <bitllama at google.com
> <mailto:bitllama at google.com>> wrote:
>
> Sure, ill send that asap
> On Wed, Nov 8, 2017 at 4:44 PM Jean-Ma...
2017 Nov 07
0
[PATCH] Support for Channel Mapping 253.
..." field in the matrix, but I
> can't see
> > it used
> > > anywhere. Did I miss something?
> > >
> > > Gain should be pulled out by the user via
> > > a OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN call and add
> it to the
> > > overall output gain. We assume the mixing matrix gain is
> always
> > zero and
> > > that this only matters for the output gain from the
> demixing matrix.
> &...
2017 Nov 09
0
[PATCH] Support for Channel Mapping 253.
...> > it used
> > > > anywhere. Did I miss something?
> > > >
> > > > Gain should be pulled out by the user via
> > > > a OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN
> call and add
> > it to the
> > > > overall output gain. We assume the mixing
> matrix gain is
> > always
> > > zero and
> > > > that...
2017 Nov 09
0
[PATCH] Support for Channel Mapping 253.
...ed
>> > > > > anywhere. Did I miss something?
>> > > > >
>> > > > > Gain should be pulled out by the user via
>> > > > > a OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN
>> > call and add
>> > > it to the
>> > > > > overall output gain. We assume the mixing
>> > matrix gain is
>> > > always
>> > > >...