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
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to