[FFmpeg-devel] [PATCH v2 6/9] swscale/arm/yuv2rgb: macro-ify

Matthieu Bouron matthieu.bouron at gmail.com
Thu Mar 31 15:29:31 CEST 2016


On Thu, Mar 31, 2016 at 10:48 AM, Benoit Fouet <benoit.fouet at free.fr> wrote:

> Hi,
>
> (sorry for the first mail, fuzzy fingers...)
>
> On 28/03/2016 21:19, Matthieu Bouron wrote:
>
>> ---
>>   libswscale/arm/yuv2rgb_neon.S | 137
>> ++++++++++++++++++------------------------
>>   1 file changed, 60 insertions(+), 77 deletions(-)
>>
>> diff --git a/libswscale/arm/yuv2rgb_neon.S b/libswscale/arm/yuv2rgb_neon.S
>> index ef7b0a6..e1b68c1 100644
>> --- a/libswscale/arm/yuv2rgb_neon.S
>> +++ b/libswscale/arm/yuv2rgb_neon.S
>> @@ -64,7 +64,7 @@
>>       vmov.u8             \a2, #255
>>   .endm
>>   -.macro compute_16px dst y0 y1 ofmt
>> +.macro compute dst y0 y1 ofmt
>>       vmovl.u8            q14, \y0
>>  @ 8px of y
>>       vmovl.u8            q15, \y1
>>  @ 8px of y
>>   @@ -99,23 +99,23 @@
>>     .endm
>>   -.macro process_1l_16px ofmt
>> +.macro process_1l ofmt
>>       compute_premult     d28, d29, d30, d31
>>       vld1.8              {q7}, [r4]!
>> -    compute_16px        r2, d14, d15, \ofmt
>> +    compute             r2, d14, d15, \ofmt
>>   .endm
>>   -.macro process_2l_16px ofmt
>> +.macro process_2l ofmt
>>       compute_premult     d28, d29, d30, d31
>>         vld1.8              {q7}, [r4]!
>>   @ first line of luma
>> -    compute_16px        r2, d14, d15, \ofmt
>> +    compute             r2, d14, d15, \ofmt
>>         vld1.8              {q7}, [r12]!
>>  @ second line of luma
>> -    compute_16px        r11, d14, d15, \ofmt
>> +    compute             r11, d14, d15, \ofmt
>>   .endm
>>
>>
>
> This renaming could be split
>

Splitted locally.


>
> [...]
>
>
> @@ -232,68 +204,79 @@ function ff_\ifmt\()_to_\ofmt\()_neon, export=1
>>       vld1.8              d3, [r10]!
>>  @ d3: chroma blue line
>>       vsubl.u8            q14, d2, d10
>>  @ q14 = U - 128
>>       vsubl.u8            q15, d3, d10
>>  @ q15 = V - 128
>> +.endm
>>   -    process_2l_16px \ofmt
>> -.endif
>> -
>> -.ifc \ifmt,yuv422p
>> +.macro load_chroma_yuv422p
>>       pld [r10, #64*3]
>>         vld1.8              d2, [r6]!
>>   @ d2: chroma red line
>>       vld1.8              d3, [r10]!
>>  @ d3: chroma blue line
>>       vsubl.u8            q14, d2, d10
>>  @ q14 = U - 128
>>       vsubl.u8            q15, d3, d10
>>  @ q15 = V - 128
>> +.endm
>>   -    process_1l_16px \ofmt
>> -.endif
>> -
>> -    subs                r8, r8, #16                                    @
>> width -= 16
>> -    bgt                 2b
>> -
>> -    add                 r2, r2, r3                                     @
>> dst   += padding
>> -    add                 r4, r4, r5                                     @
>> srcY  += paddingY
>> -
>> -.ifc \ifmt,nv12
>> +.macro increment_nv12
>>
>
> How about increment_and test_nv12? Same for the other ones.
> (I'm not happy with the name I found, but am trying to come up with a
> solution to have a more explicit naming)


Renamed to increment_and_test_* locally.

Thanks,
Matthieu

[...]


More information about the ffmpeg-devel mailing list