37 int x,
int y,
int c,
int w,
38 int read_pal_component)
41 int plane = comp.
plane;
50 const uint8_t *p = data[plane] + y * linesize[plane] + (skip >> 3);
51 int shift = 8 - depth - (skip & 7);
55 if (read_pal_component)
56 val = data[1][4*val +
c];
63 const uint8_t *p = data[plane] + y * linesize[plane] +
65 int is_8bit = shift + depth <= 8;
71 int val = is_8bit ? *p :
73 val = (val >>
shift) & mask;
74 if (read_pal_component)
75 val = data[1][4 * val +
c];
85 int x,
int y,
int c,
int w)
88 int plane = comp.
plane;
95 uint8_t *p = data[plane] + y * linesize[plane] + (skip >> 3);
96 int shift = 8 - depth - (skip & 7);
99 *p |= *src++ <<
shift;
106 uint8_t *p = data[plane] + y * linesize[plane] +
109 if (shift + depth <= 8) {
112 *p |= (*src++ <<
shift);
130 #if !FF_API_PIX_FMT_DESC
634 .name =
"yuva420p9be",
647 .name =
"yuva420p9le",
660 .name =
"yuva422p9be",
673 .name =
"yuva422p9le",
686 .name =
"yuva444p9be",
699 .name =
"yuva444p9le",
712 .name =
"yuva420p10be",
725 .name =
"yuva420p10le",
738 .name =
"yuva422p10be",
751 .name =
"yuva422p10le",
764 .name =
"yuva444p10be",
777 .name =
"yuva444p10le",
790 .name =
"yuva420p16be",
803 .name =
"yuva420p16le",
816 .name =
"yuva422p16be",
829 .name =
"yuva422p16le",
842 .name =
"yuva444p16be",
855 .name =
"yuva444p16le",
869 .name =
"vdpau_h264",
875 .name =
"vdpau_mpeg1",
881 .name =
"vdpau_mpeg2",
887 .name =
"vdpau_wmv3",
899 .name =
"vdpau_mpeg4",
1150 .name =
"vaapi_moco",
1156 .name =
"vaapi_idct",
1162 .name =
"vaapi_vld",
1168 .name =
"yuv420p9le",
1180 .name =
"yuv420p9be",
1192 .name =
"yuv420p10le",
1204 .name =
"yuv420p10be",
1216 .name =
"yuv420p12le",
1228 .name =
"yuv420p12be",
1240 .name =
"yuv420p14le",
1252 .name =
"yuv420p14be",
1264 .name =
"yuv420p16le",
1276 .name =
"yuv420p16be",
1288 .name =
"yuv422p9le",
1300 .name =
"yuv422p9be",
1312 .name =
"yuv422p10le",
1324 .name =
"yuv422p10be",
1336 .name =
"yuv422p12le",
1348 .name =
"yuv422p12be",
1360 .name =
"yuv422p14le",
1372 .name =
"yuv422p14be",
1384 .name =
"yuv422p16le",
1396 .name =
"yuv422p16be",
1408 .name =
"yuv444p16le",
1420 .name =
"yuv444p16be",
1432 .name =
"yuv444p10le",
1444 .name =
"yuv444p10be",
1456 .name =
"yuv444p9le",
1468 .name =
"yuv444p9be",
1480 .name =
"yuv444p12le",
1492 .name =
"yuv444p12be",
1504 .name =
"yuv444p14le",
1516 .name =
"yuv444p14be",
1528 .name =
"dxva2_vld",
1694 .name =
"gbrap16le",
1707 .name =
"gbrap16be",
1750 #define BAYER8_DESC_COMMON \
1751 .nb_components= 3, \
1752 .log2_chroma_w= 0, \
1753 .log2_chroma_h= 0, \
1760 #define BAYER16_DESC_COMMON \
1761 .nb_components= 3, \
1762 .log2_chroma_w= 0, \
1763 .log2_chroma_h= 0, \
1771 .name =
"bayer_bggr8",
1776 .name =
"bayer_bggr16le",
1781 .name =
"bayer_bggr16be",
1786 .name =
"bayer_rggb8",
1791 .name =
"bayer_rggb16le",
1796 .name =
"bayer_rggb16be",
1801 .name =
"bayer_gbrg8",
1806 .name =
"bayer_gbrg16le",
1811 .name =
"bayer_gbrg16be",
1816 .name =
"bayer_grbg8",
1821 .name =
"bayer_grbg16le",
1826 .name =
"bayer_grbg16be",
1874 if (av_pix_fmt_descriptors[pix_fmt].name &&
1875 !strcmp(av_pix_fmt_descriptors[pix_fmt].name, name))
1888 # define X_NE(be, le) be
1890 # define X_NE(be, le) le
1897 if (!strcmp(name,
"rgb32"))
1898 name =
X_NE(
"argb",
"bgra");
1899 else if (!strcmp(name,
"bgr32"))
1900 name =
X_NE(
"abgr",
"rgba");
1906 snprintf(name2,
sizeof(name2),
"%s%s", name,
X_NE(
"be",
"le"));
1918 int s = c == 1 || c == 2 ? 0 : log2_pixels;
1922 return bits >> log2_pixels;
1933 int s = c == 1 || c == 2 ? 0 : log2_pixels;
1936 for (c = 0; c < 4; c++)
1942 return bits >> log2_pixels;
1949 snprintf (buf, buf_size,
"name" " nb_components" " nb_bits");
1952 snprintf(buf, buf_size,
"%-11s %7d %10d", pixdesc->
name,
1963 return &av_pix_fmt_descriptors[
pix_fmt];
1969 return &av_pix_fmt_descriptors[0];
1970 while (prev - av_pix_fmt_descriptors <
FF_ARRAY_ELEMS(av_pix_fmt_descriptors) - 1) {
1980 if (desc < av_pix_fmt_descriptors ||
1981 desc >= av_pix_fmt_descriptors +
FF_ARRAY_ELEMS(av_pix_fmt_descriptors))
1989 int *h_shift,
int *v_shift)
2003 int i, planes[4] = { 0 },
ret = 0;
2020 uint8_t fill[4][8+6+3] = {{0}};
2021 uint8_t *
data[4] = {fill[0], fill[1], fill[2], fill[3]};
2022 int linesize[4] = {0,0,0,0};
2046 if (!strncmp(d->
name,
"bayer_", 6))
2063 if (!desc || strlen(desc->
name) < 2)
2066 i = strlen(name) - 2;
2067 if (strcmp(name + i,
"be") && strcmp(name + i,
"le"))
2070 name[i] ^=
'b' ^
'l';