On 19/03/14 18:56, Martin Storsjö wrote:
> On Wed, 19 Mar 2014, Luca Barbato wrote:
>
>> On 19/03/14 18:24, Ben Avison wrote:
>>> Verified with profiling that this doesn't have a measurable effect upon
>>> overall performance.
>>> ---
>>> libavcodec/mlpdec.c | 37 ++++++++++++-------------------------
>>> libavcodec/mlpdsp.c | 33 +++++++++++++++++++++++++++++++++
>>> libavcodec/mlpdsp.h | 23 +++++++++++++++++++++++
>>> 3 files changed, 68 insertions(+), 25 deletions(-)
>>>
>>> diff --git a/libavcodec/mlpdsp.h b/libavcodec/mlpdsp.h
>>> index c985a17..bd864d9 100644
>>> --- a/libavcodec/mlpdsp.h
>>> +++ b/libavcodec/mlpdsp.h
>>> @@ -24,11 +24,34 @@
>>>
>>> #include <stdint.h>
>>>
>>> +void ff_mlp_rematrix_channel(int32_t *samples,
>>> + const int32_t *coeffs,
>>> + const uint8_t *bypassed_lsbs,
>>> + const int8_t *noise_buffer,
>>> + int index,
>>> + unsigned int dest_ch,
>>> + uint16_t blockpos,
>>> + unsigned int maxchan,
>>> + int matrix_noise_shift,
>>> + int access_unit_size_pow2,
>>> + int32_t mask);
>>> +
>>> typedef struct MLPDSPContext {
>>> void (*mlp_filter_channel)(int32_t *state, const int32_t *coeff,
>>> int firorder, int iirorder,
>>> unsigned int filter_shift, int32_t mask,
>>> int blocksize, int32_t *sample_buffer);
>>> + void (*mlp_rematrix_channel)(int32_t *samples,
>>> + const int32_t *coeffs,
>>> + const uint8_t *bypassed_lsbs,
>>> + const int8_t *noise_buffer,
>>> + int index,
>>> + unsigned int dest_ch,
>>> + uint16_t blockpos,
>>> + unsigned int maxchan,
>>> + int matrix_noise_shift,
>>> + int access_unit_size_pow2,
>>> + int32_t mask);
>>
>> Could you please try to have the function accept the m and s context
>> instead of having all those parameters? Does it work equally well?
>
> That requires hand-coding (and manually updating) the struct element
> offsets (see libavcodec/arm/asm-offsets.h and mpegvideo_arm.c) and IIRC
> we generally tend to move away from it.
>
Fine as it is then.
lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel