<div dir="ltr">Just to confirm, I would use opeint_* for all the OpusGenericEncoder-related functions?</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Mar 20, 2018 at 8:38 AM Jean-Marc Valin <<a href="mailto:jmvalin@jmvalin.ca">jmvalin@jmvalin.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Mark, Drew,<br>
<br>
On 03/20/2018 02:40 AM, Mark Harris wrote:<br>
> + int _oge_use_projection(int channel_mapping);<br>
><br>
> These functions are part of libopusenc, so I'd expect them to have an<br>
> ope prefix like the other functions in the libopusenc library.<br>
<br>
I'd like to avoid using the ope_ prefix for functions that's aren't in<br>
the public API. Right now there are other functions with a leading<br>
underscore, so we'll have to fix them as well (not in this patch of<br>
course). Maybe an "opeint_" prefix would do the job here (unless anyone<br>
has a better idea)?<br>
<br>
> +int ope_encoder_deferred_init_with_mapping(OggOpusEnc *enc, int<br>
> family, int streams,<br>
>      int coupled_streams, const unsigned char *mapping) {<br>
>    int ret;<br>
>    int i;<br>
><br>
> This code is allowing family 253 for a deferred init, but does not<br>
> create a projection encoder in that case, so it looks like it will<br>
> fail when writing the id header since it won't be able to get the<br>
> demixing matrix.  It should probably not be allowing family 253 here.<br>
<br>
Actually, in the case of ope_encoder_deferred_init_with_mapping(), I<br>
think it's probably best to just keep the existing code (not use<br>
wrappers), since that function cannot be used by the projection encoder<br>
at all.<br>
<br>
        Jean-Marc<br>
<br>
<br>
>  - Mark<br>
><br>
><br>
> On Mon, Mar 19, 2018 at 3:00 PM, Drew Allen <<a href="mailto:bitllama@google.com" target="_blank">bitllama@google.com</a>> wrote:<br>
>> Hi Jean-Marc,<br>
>><br>
>> I've modified my patches for libopus and libopusenc based on your<br>
>> suggestions.<br>
>><br>
>> Cheers,<br>
>> Drew<br>
>><br>
>> On Mon, Mar 19, 2018 at 2:05 PM Jean-Marc Valin <<a href="mailto:jmvalin@jmvalin.ca" target="_blank">jmvalin@jmvalin.ca</a>> wrote:<br>
>>><br>
>>> Hi Drew,<br>
>>><br>
>>> I think the libopusenc patch is better, but there's still a few issues<br>
>>> left:<br>
>>> 1) The static MAX_PACKET_BUFFER_SIZE value is still problematic because<br>
>>> if you link libopusenc with a new version of libopus that supports<br>
>>> higher order projection or just more projection channels for order 3,<br>
>>> then you will overflow the buffer. I think what you'd want is a<br>
>>> _ope_opus_header_get_size() call that would return how large the header<br>
>>> *actually* is. Then you can use that value instead of<br>
>>> MAX_PACKET_BUFFER_SIZE in init_stream()<br>
>>> 2) I think the remaining if()s in ope_encoder_ctl() can also be removed<br>
>>> by adding another ctl() macro (like _oge_ctl()) with an extra argument.<br>
>>> In the case of OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST, you can<br>
>>> simply use _oge_ctl(enc->st,<br>
>>> OPUS_MULTISTREAM_GET_ENCODER_STATE(stream_id, value))<br>
>>> 3) On libopus itself, why "#define OPUS_HAVE_OPUS_PROJECTION_H 9000"<br>
>>> instead of just "#define OPUS_HAVE_OPUS_PROJECTION_H"?<br>
>>><br>
>>> Cheers,<br>
>>><br>
>>>         Jean-Marc<br>
>>><br>
>>> On 03/19/2018 02:53 PM, Drew Allen wrote:<br>
>>>><br>
>>>> On Mon, Mar 19, 2018 at 11:52 AM Drew Allen <<a href="mailto:bitllama@google.com" target="_blank">bitllama@google.com</a><br>
>>>> <mailto:<a href="mailto:bitllama@google.com" target="_blank">bitllama@google.com</a>>> wrote:<br>
>>>><br>
>>>>     Hello all,<br>
>>>><br>
>>>>     Sorry for the delay (got really sick last week).<br>
>>>><br>
>>>>     Attached are updated patches for libopus, libopusenc, opusfile and<br>
>>>>     opus-tools.<br>
>>>><br>
>>>>     Note that the patches for libopusenc, opusfile and opus-tools are<br>
>>>>     dependent on the patch for libopus.<br>
>>>><br>
>>>>     Please let me know if you have any additional followup comments or<br>
>>>>     questions.<br>
>>>><br>
>>>>     Cheers,<br>
>>>>     Drew<br>
>>>><br>
>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> opus mailing list<br>
>>>> <a href="mailto:opus@xiph.org" target="_blank">opus@xiph.org</a><br>
>>>> <a href="http://lists.xiph.org/mailman/listinfo/opus" rel="noreferrer" target="_blank">http://lists.xiph.org/mailman/listinfo/opus</a><br>
>>>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> opus mailing list<br>
>> <a href="mailto:opus@xiph.org" target="_blank">opus@xiph.org</a><br>
>> <a href="http://lists.xiph.org/mailman/listinfo/opus" rel="noreferrer" target="_blank">http://lists.xiph.org/mailman/listinfo/opus</a><br>
>><br>
</blockquote></div>