[vlc-devel] [PATCH] add ARM/NEON conversions for audio_filter/channel_mixer/simple

Rémi Denis-Courmont remi at remlab.net
Wed Apr 4 16:21:59 CEST 2012


Le mercredi 4 avril 2012 16:03:45 David Geldreich, vous avez écrit :
> Le 4 avr. 2012 à 14:36, Rémi Denis-Courmont a écrit :
> > We have a separate directory for NEON acceleration plugins, aptly named
> > arm_neon. Please stick the code there in a dedicated plugin.
> 
> As j-b mentioned, this is a tradeoff between duplicating the code or
> "polluting" the original file. Also, I am not expert with the VLC code
> architecture so all advices are welcome.

What do you think will happen when someone adds another series of 
optimizations? The plugin code will become unreadable. We've been there and 
done that with the deinterlacer already. No thanks.

Also if someone adds another unaccelerated case, you cannot expect him/her to 
know NEON and be able to write the corresponding assembler.

> >> inline assembly is in separate functions for clarity and will be inlined
> >> by the compiler
> > 
> > Yes but inlined assembler is harder to read and it cannot selected at
> > run-time. The overhead of a function is neglible here. Inlining assembler
> > makes sense if you want to mix C code, especially for branching. But you
> > have already implemented branching in assembler anyway. So you might as
> > well use a dedicated assembler source file, then.
> 
> There is some branching in the DoWork function to switch between all the
> input/output combinations

In other C functions, so totally irrelevant and orthogonal to my point.

Besides, all those if's really should be done once during plugin instantiation 
rather than at every filtering iteration. I do not expect you to clean up the 
existing code, but please don't reproduce the same mistakes again.

-- 
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis



More information about the vlc-devel mailing list