Add ability to create video frames, where all lines will be X-bytes memory aligned.

This would create a frame, whose strides may not always match its width.
Disabled at present, as our rendering code doesn’t always properly display those (only Xv, Qt and VDPAU handle those properly). OpenGL being the most problematic.
For a YV12/YV420P frame to be properly aligned, a value of 64 needs to be used (so chroma planes are 16 bytes aligned).
Add NV12 format support to VideoFrame class, and fast NV12->YV12 format conversion

Include SSE optimised NV12->YV12 conversion routine.
SSE deinterleaver is 687% faster on my i7-2600 than the C version.

Add related unit tests and benchmarks
Add VAAPI vaDerive support, and re-add NV12 image format support

vaDerive provides a greater level of performance than vaGetImage, however there’s an added cost of having to convert NV12 into YV12 later which in practice negates the benefit.

Re-add NV12 support, but as least preferred format.
Fix strides size calculation for YV12/NV12 frames when the dimensions are odd.

Make sure to get the very last chroma component for each row.
Revert "Fix strides size calculation for YV12/NV12 frames when the dimensions are odd."

This reverts commit bab9fb8d1dbe7360b43407d0040ceffcba6d6e55.
Revert "Add VAAPI vaDerive support, and re-add NV12 image format support"

This reverts commit a1313671dd3d4be8325713fd97f07f2f0eec8418.
Revert "Add NV12 format support to VideoFrame class, and fast NV12->YV12 format conversion"

This reverts commit f75ae4b7d06d8c4d06b2676369664980156eb4e2.
Add NV12 format support to VideoFrame class, and fast NV12->YV12 format conversion

Include SSE optimised NV12->YV12 conversion routine.
SSE deinterleaver is 687% faster on my i7-2600 than the C version.

Add related unit tests and benchmarks
Add VAAPI vaDerive support, and re-add NV12 image format support

vaDerive provides a greater level of performance than vaGetImage, however there’s an added cost of having to convert NV12 into YV12 later which in practice negates the benefit.

Re-add NV12 support, but as least preferred format.
Fix strides size calculation for YV12/NV12 frames when the dimensions are odd.

Make sure to get the very last chroma component for each row.
Allow toggling between "List Recorded Episodes" and "List All Recordings".

Refs #12157.

Signed-off-by: Jim Stichnoth <jstichnoth@mythtv.org>
re-add —extra-cxxflags that got lost during a FFmpeg resync
Fix 32 bits compilation
Revert "Fix 32 bits compilation"

This reverts commit 885ba8bce4a030e5fb551b7f3e187482dc4d12a6.
Fix 32 bits compilation
Add nsecsElapsed() method to MythTimer class
Add MythUSWCCopy YV12/SV12 conversion utility class

This commit adds Uncacheable Speculative Write Combining memory optimised methods to copy and convert frames.
USWC are typically used by hardware decoder, in particular it is use by VAAPI and DXVA2.
Using this method yield significant speed increase when working with USWC memory; however it is significantly slower with standard, cached memory.

So we add a crude detection method by simply checking on which one is the fastest and use the appropriate method for future calls.

More information is available at:
https://software.intel.com/en-us/articles/copying-accelerated-video-decode-frame-buffers
Make VAAPI use new MythUSWCCopy class

if vaDeriveImage is used, USWC accelerated code will be used. vaGetImage appears to return a buffer located in standard memory
Fix a thinko in the 'This time' and 'This day and time' filters.

Fixes #12175
Serialise access to QScriptEngine. It's not thread safe. Refs #12178