6#ifdef QT_COMPILER_SUPPORTS_SSSE3
12template<
int a,
int r,
int g,
int b>
19#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN
20 __m128i shuffleMask = _mm_set_epi8(12 +
a, 12 +
r, 12 +
g, 12 +
b,
21 8 +
a, 8 +
r, 8 +
g, 8 +
b,
22 4 +
a, 4 +
r, 4 +
g, 4 +
b,
23 0 +
a, 0 +
r, 0 +
g, 0 +
b);
25 __m128i shuffleMask = _mm_set_epi8(15 -
a, 15 -
r, 15 -
g, 15 -
b,
26 11 -
a, 11 -
r, 11 -
g, 11 -
b,
27 7 -
a, 7 -
r, 7 -
g, 7 -
b,
28 3 -
a, 3 -
r, 3 -
g, 3 -
b);
34 const auto *pixel =
reinterpret_cast<const Pixel *
>(
src);
38 *argb = pixel->convert();
44 __m128i pixelData = _mm_loadu_si128(
reinterpret_cast<const __m128i*
>(pixel));
45 __m128i pixelData2 = _mm_loadu_si128(
reinterpret_cast<const __m128i*
>(pixel + 4));
47 pixelData = _mm_shuffle_epi8(pixelData, shuffleMask);
48 pixelData2 = _mm_shuffle_epi8(pixelData2, shuffleMask);
49 _mm_store_si128(
reinterpret_cast<__m128i*
>(argb), pixelData);
50 _mm_store_si128(
reinterpret_cast<__m128i*
>(argb + 4), pixelData2);
56 *argb = pixel->convert();
The QVideoFrame class represents a frame of video data.
Combined button and popup list for selecting options.
GLboolean GLboolean GLboolean b
GLint GLint GLint GLint GLint x
[0]
GLint GLsizei GLsizei height
GLboolean GLboolean GLboolean GLboolean a
[7]
const void GLsizei GLsizei stride
#define MERGE_LOOPS(width, height, stride, bpp)
#define FETCH_INFO_PACKED(frame)
QT_BEGIN_NAMESPACE typedef uchar * output