[FFmpeg-devel] [PATCH v2 2/2] avfilter/interlace: add complex vertical low-pass filter

Thomas Mundt loudmax at yahoo.de
Thu Apr 13 12:31:12 EEST 2017


>>>James Almer <jamrial at gmail.com> schrieb am Do, 13.4.2017:
>>>>On 4/12/2017 9:39 PM, Thomas Mundt wrote:
>> 
>> James Almer suggested to change the function prototype. Which was easy in c, but for simd this is the best I can do.
>
> I didn't check, but I think the reason i told you to change the prototype here
> was to share the function pointer with lowpass_line_complex, so you can do
> something like
> 
> if (tinterlace->flags & TINTERLACE_FLAG_VLPF)
>     tinterlace->lowpass_line = lowpass_line_c;
> else if (tinterlace->flags & TINTERLACE_FLAG_CVLPF)
>     tinterlace->lowpass_line = lowpass_line_complex_c;
> 
> instead of adding a new one to InterlaceContext and TInterlaceContext.
> Otherwise you wouldn't really gain much changing the prototype for linear here.

Okay, I will change that when I´m back from vacation in a week.

>> I asked for help a month ago but get no reply. Can you tell me how to avoid this?
> 
> Yes, sorry, i kinda lost track of this since for some reason your emails start
> a new thread each instead of showing up as a reply.

Yes, the yahoo web cient is buggy. I will change this also.

> You just need to turn mref and pref into the equivalent of the old srcp_above
> and srcp_below pointers, like so:
> 
> diff --git a/libavfilter/x86/vf_interlace.asm b/libavfilter/x86/vf_interlace.asm
> index f70c700965..8a0dd3bdea 100644
> --- a/libavfilter/x86/vf_interlace.asm
> +++ b/libavfilter/x86/vf_interlace.asm
> @@ -28,32 +28,32 @@ SECTION_RODATA
>  SECTION .text
>  
>  %macro LOWPASS_LINE 0
> -cglobal lowpass_line, 5, 5, 7
> -    add r0, r1
> -    add r2, r1
> -    add r3, r1
> -    add r4, r1
> -    neg r1
> +cglobal lowpass_line, 5, 5, 7, dst, h, src, mref, pref
> +    add dstq, hq
> +    add srcq, hq
> +    add mrefq, srcq
> +    add prefq, srcq
> +    neg hq

Thanks a lot!

Regards,
Thomas


More information about the ffmpeg-devel mailing list