|
|
|
@@ -28,6 +28,7 @@ |
|
|
|
#include "pixdesc.h" |
|
|
|
|
|
|
|
#include "intreadwrite.h" |
|
|
|
#include "avstring.h" |
|
|
|
|
|
|
|
void av_read_image_line(uint16_t *dst, |
|
|
|
const uint8_t *data[4], const int linesize[4], |
|
|
|
@@ -1911,47 +1912,18 @@ void ff_check_pixfmt_descriptors(void){ |
|
|
|
|
|
|
|
enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt) |
|
|
|
{ |
|
|
|
#define PIX_FMT_SWAP_ENDIANNESS(fmt) \ |
|
|
|
case AV_PIX_FMT_ ## fmt ## BE: return AV_PIX_FMT_ ## fmt ## LE; \ |
|
|
|
case AV_PIX_FMT_ ## fmt ## LE: return AV_PIX_FMT_ ## fmt ## BE |
|
|
|
|
|
|
|
switch (pix_fmt) { |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(GRAY16); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(RGB48); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(RGB565); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(RGB555); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(RGB444); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(BGR48); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(BGR565); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(BGR555); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(BGR444); |
|
|
|
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); |
|
|
|
char name[16]; |
|
|
|
int i; |
|
|
|
|
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV420P9); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV422P9); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV444P9); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV420P10); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV422P10); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV444P10); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV420P16); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV422P16); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUV444P16); |
|
|
|
if (!desc || strlen(desc->name) < 2) |
|
|
|
return AV_PIX_FMT_NONE; |
|
|
|
av_strlcpy(name, desc->name, sizeof(name)); |
|
|
|
i = strlen(name) - 2; |
|
|
|
if (strcmp(name + i, "be") && strcmp(name + i, "le")) |
|
|
|
return AV_PIX_FMT_NONE; |
|
|
|
|
|
|
|
PIX_FMT_SWAP_ENDIANNESS(GBRP9); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(GBRP10); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(GBRP16); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA420P9); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA422P9); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA444P9); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA420P10); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA422P10); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA444P10); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA420P16); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA422P16); |
|
|
|
PIX_FMT_SWAP_ENDIANNESS(YUVA444P16); |
|
|
|
name[i] ^= 'b' ^ 'l'; |
|
|
|
|
|
|
|
PIX_FMT_SWAP_ENDIANNESS(XYZ12); |
|
|
|
default: |
|
|
|
return AV_PIX_FMT_NONE; |
|
|
|
} |
|
|
|
#undef PIX_FMT_SWAP_ENDIANNESS |
|
|
|
return get_pix_fmt_internal(name); |
|
|
|
} |