...
|
...
|
@@ -252,6 +252,27 @@ static void gray8aToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, c
|
252
|
252
|
}
|
253
|
253
|
}
|
254
|
254
|
|
|
255
|
+static int packed_16bpc_bswap(SwsContext *c, const uint8_t* src[],
|
|
256
|
+ int srcStride[], int srcSliceY, int srcSliceH,
|
|
257
|
+ uint8_t* dst[], int dstStride[])
|
|
258
|
+{
|
|
259
|
+ int i, j;
|
|
260
|
+ int srcstr = srcStride[0] >> 1;
|
|
261
|
+ int dststr = dstStride[0] >> 1;
|
|
262
|
+ uint16_t *dstPtr = (uint16_t *)dst[0];
|
|
263
|
+ const uint16_t *srcPtr = (const uint16_t *)src[0];
|
|
264
|
+
|
|
265
|
+ for (i = 0; i < srcSliceH; i++) {
|
|
266
|
+ for (j = 0; j < srcstr; j++) {
|
|
267
|
+ dstPtr[j] = av_bswap16(srcPtr[j]);
|
|
268
|
+ }
|
|
269
|
+ srcPtr += srcstr;
|
|
270
|
+ dstPtr += dststr;
|
|
271
|
+ }
|
|
272
|
+
|
|
273
|
+ return srcSliceH;
|
|
274
|
+}
|
|
275
|
+
|
255
|
276
|
static int palToRgbWrapper(SwsContext *c, const uint8_t* src[], int srcStride[], int srcSliceY,
|
256
|
277
|
int srcSliceH, uint8_t* dst[], int dstStride[])
|
257
|
278
|
{
|
...
|
...
|
@@ -697,6 +718,15 @@ void ff_get_unscaled_swscale(SwsContext *c)
|
697
|
697
|
if (srcFormat==PIX_FMT_BGR24 && (dstFormat==PIX_FMT_YUV420P || dstFormat==PIX_FMT_YUVA420P) && !(flags & SWS_ACCURATE_RND))
|
698
|
698
|
c->swScale= bgr24ToYv12Wrapper;
|
699
|
699
|
|
|
700
|
+ /* bswap 16 bits per component packed formats */
|
|
701
|
+ if ((srcFormat == PIX_FMT_RGB48LE && dstFormat == PIX_FMT_RGB48BE) ||
|
|
702
|
+ (srcFormat == PIX_FMT_RGB48BE && dstFormat == PIX_FMT_RGB48LE) ||
|
|
703
|
+ (srcFormat == PIX_FMT_BGR48LE && dstFormat == PIX_FMT_BGR48BE) ||
|
|
704
|
+ (srcFormat == PIX_FMT_BGR48BE && dstFormat == PIX_FMT_BGR48LE) ||
|
|
705
|
+ (srcFormat == PIX_FMT_GRAY16LE && dstFormat == PIX_FMT_GRAY16BE) ||
|
|
706
|
+ (srcFormat == PIX_FMT_GRAY16BE && dstFormat == PIX_FMT_GRAY16LE))
|
|
707
|
+ c->swScale = packed_16bpc_bswap;
|
|
708
|
+
|
700
|
709
|
/* RGB/BGR -> RGB/BGR (no dither needed forms) */
|
701
|
710
|
if ( isAnyRGB(srcFormat)
|
702
|
711
|
&& isAnyRGB(dstFormat)
|