On Thu, Jun 11, 2015 at 8:54 PM, wm4 <nfx...@googlemail.com> wrote: > On Thu, 11 Jun 2015 17:24:45 +0200 > Stefano Sabatini <stefa...@gmail.com> wrote: > >> Next step would be the use of YASM, but I only want to test if the >> general approach is fine (and if the API is not too specific). Also if >> someone wants to step up and port it to YASM I'm all for it, since >> ASM/YASM is far from being my area of expertise. > > Personally, I'd probably just > 1. export the GPU memcpy function, and > 2. export a function to copy AVFrames using this function
I concur. A basic optimized memcpy with specific constraints (ie. requires aligned input/output, always copies in 16-byte chunks, so in/out buffers need to be padded appropriately), to keep the required ASM code simple. These constraints are generally always fulfilled if you have a GPU frame on the input, since they will have appropriate strides (and if in question, we control allocation of the GPU surfaces as well), and we control the output memory buffer anyway. On top of that a convenience function that deals with pixel formats, strides, planes, and whatnot, and then uses this function. A generic C version of the basic copy function shouldn't be needed, we could just use memcpy for that.. or a tiny wrapper that calls memcpy, anyway. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel