-#if HAVE_MMX
-#include "x86/mmx.h"
-#include "x86/dsputil_mmx.h"
-#endif
-
-#define xglue(x, y) x ## y
-#define glue(x, y) xglue(x, y)
-
-#define FF_COLOR_RGB 0 /**< RGB color space */
-#define FF_COLOR_GRAY 1 /**< gray color space */
-#define FF_COLOR_YUV 2 /**< YUV color space. 16 <= Y <= 235, 16 <= U, V <= 240 */
-#define FF_COLOR_YUV_JPEG 3 /**< YUV color space. 0 <= Y <= 255, 0 <= U, V <= 255 */
-
-#define FF_PIXEL_PLANAR 0 /**< each channel has one component in AVPicture */
-#define FF_PIXEL_PACKED 1 /**< only one components containing all the channels */
-#define FF_PIXEL_PALETTE 2 /**< one components containing indexes for a palette */
-
-typedef struct PixFmtInfo {
- const char *name;
- uint8_t nb_channels; /**< number of channels (including alpha) */
- uint8_t color_type; /**< color type (see FF_COLOR_xxx constants) */
- uint8_t pixel_type; /**< pixel storage type (see FF_PIXEL_xxx constants) */
- uint8_t is_alpha : 1; /**< true if alpha can be specified */
- uint8_t is_hwaccel : 1; /**< true if this is an HW accelerated format */
- uint8_t x_chroma_shift; /**< X chroma subsampling factor is 2 ^ shift */
- uint8_t y_chroma_shift; /**< Y chroma subsampling factor is 2 ^ shift */
- uint8_t depth; /**< bit depth of the color components */
-} PixFmtInfo;
-
-/* this table gives more information about formats */
-static const PixFmtInfo pix_fmt_info[PIX_FMT_NB] = {
- /* YUV formats */
- [PIX_FMT_YUV420P] = {
- .name = "yuv420p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_YUV422P] = {
- .name = "yuv422p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUV444P] = {
- .name = "yuv444p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUYV422] = {
- .name = "yuyv422",
- .nb_channels = 1,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 0,
- },
- [PIX_FMT_UYVY422] = {
- .name = "uyvy422",
- .nb_channels = 1,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUV410P] = {
- .name = "yuv410p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 2, .y_chroma_shift = 2,
- },
- [PIX_FMT_YUV411P] = {
- .name = "yuv411p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 2, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUV440P] = {
- .name = "yuv440p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 1,
- },
- [PIX_FMT_YUV420PLE] = {
- .name = "yuv420ple",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_YUV422PLE] = {
- .name = "yuv422ple",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- .x_chroma_shift = 1, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUV444PLE] = {
- .name = "yuv444ple",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUV420PBE] = {
- .name = "yuv420pbe",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_YUV422PBE] = {
- .name = "yuv422pbe",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- .x_chroma_shift = 1, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUV444PBE] = {
- .name = "yuv444pbe",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
-
-
- /* YUV formats with alpha plane */
- [PIX_FMT_YUVA420P] = {
- .name = "yuva420p",
- .nb_channels = 4,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
-
- /* JPEG YUV */
- [PIX_FMT_YUVJ420P] = {
- .name = "yuvj420p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV_JPEG,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_YUVJ422P] = {
- .name = "yuvj422p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV_JPEG,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUVJ444P] = {
- .name = "yuvj444p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV_JPEG,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_YUVJ440P] = {
- .name = "yuvj440p",
- .nb_channels = 3,
- .color_type = FF_COLOR_YUV_JPEG,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 1,
- },
-
- /* RGB formats */
- [PIX_FMT_RGB24] = {
- .name = "rgb24",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR24] = {
- .name = "bgr24",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_ARGB] = {
- .name = "argb",
- .nb_channels = 4, .is_alpha = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB48BE] = {
- .name = "rgb48be",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 16,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB48LE] = {
- .name = "rgb48le",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 16,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB565BE] = {
- .name = "rgb565be",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB565LE] = {
- .name = "rgb565le",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB555BE] = {
- .name = "rgb555be",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB555LE] = {
- .name = "rgb555le",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
-
- /* gray / mono formats */
- [PIX_FMT_GRAY16BE] = {
- .name = "gray16be",
- .nb_channels = 1,
- .color_type = FF_COLOR_GRAY,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- },
- [PIX_FMT_GRAY16LE] = {
- .name = "gray16le",
- .nb_channels = 1,
- .color_type = FF_COLOR_GRAY,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 16,
- },
- [PIX_FMT_GRAY8] = {
- .name = "gray",
- .nb_channels = 1,
- .color_type = FF_COLOR_GRAY,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- },
- [PIX_FMT_MONOWHITE] = {
- .name = "monow",
- .nb_channels = 1,
- .color_type = FF_COLOR_GRAY,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 1,
- },
- [PIX_FMT_MONOBLACK] = {
- .name = "monob",
- .nb_channels = 1,
- .color_type = FF_COLOR_GRAY,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 1,
- },
-
- /* paletted formats */
- [PIX_FMT_PAL8] = {
- .name = "pal8",
- .nb_channels = 4, .is_alpha = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PALETTE,
- .depth = 8,
- },
- [PIX_FMT_XVMC_MPEG2_MC] = {
- .name = "xvmcmc",
- .is_hwaccel = 1,
- },
- [PIX_FMT_XVMC_MPEG2_IDCT] = {
- .name = "xvmcidct",
- .is_hwaccel = 1,
- },
- [PIX_FMT_VDPAU_MPEG1] = {
- .name = "vdpau_mpeg1",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_VDPAU_MPEG2] = {
- .name = "vdpau_mpeg2",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_VDPAU_H264] = {
- .name = "vdpau_h264",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_VDPAU_WMV3] = {
- .name = "vdpau_wmv3",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_VDPAU_VC1] = {
- .name = "vdpau_vc1",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_UYYVYY411] = {
- .name = "uyyvyy411",
- .nb_channels = 1,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 2, .y_chroma_shift = 0,
- },
- [PIX_FMT_ABGR] = {
- .name = "abgr",
- .nb_channels = 4, .is_alpha = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR565BE] = {
- .name = "bgr565be",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR565LE] = {
- .name = "bgr565le",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR555BE] = {
- .name = "bgr555be",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR555LE] = {
- .name = "bgr555le",
- .nb_channels = 3,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 5,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB8] = {
- .name = "rgb8",
- .nb_channels = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB4] = {
- .name = "rgb4",
- .nb_channels = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 4,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGB4_BYTE] = {
- .name = "rgb4_byte",
- .nb_channels = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR8] = {
- .name = "bgr8",
- .nb_channels = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR4] = {
- .name = "bgr4",
- .nb_channels = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 4,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_BGR4_BYTE] = {
- .name = "bgr4_byte",
- .nb_channels = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_NV12] = {
- .name = "nv12",
- .nb_channels = 2,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_NV21] = {
- .name = "nv12",
- .nb_channels = 2,
- .color_type = FF_COLOR_YUV,
- .pixel_type = FF_PIXEL_PLANAR,
- .depth = 8,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
-
- [PIX_FMT_BGRA] = {
- .name = "bgra",
- .nb_channels = 4, .is_alpha = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
- [PIX_FMT_RGBA] = {
- .name = "rgba",
- .nb_channels = 4, .is_alpha = 1,
- .color_type = FF_COLOR_RGB,
- .pixel_type = FF_PIXEL_PACKED,
- .depth = 8,
- .x_chroma_shift = 0, .y_chroma_shift = 0,
- },
-
- /* VA API formats */
- [PIX_FMT_VAAPI_MOCO] = {
- .name = "vaapi_moco",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_VAAPI_IDCT] = {
- .name = "vaapi_idct",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
- [PIX_FMT_VAAPI_VLD] = {
- .name = "vaapi_vld",
- .is_hwaccel = 1,
- .x_chroma_shift = 1, .y_chroma_shift = 1,
- },
-};
-
-void avcodec_get_chroma_sub_sample(enum PixelFormat pix_fmt, int *h_shift, int *v_shift)
-{
- *h_shift = pix_fmt_info[pix_fmt].x_chroma_shift;
- *v_shift = pix_fmt_info[pix_fmt].y_chroma_shift;
-}
-
-const char *avcodec_get_pix_fmt_name(enum PixelFormat pix_fmt)
-{
- if (pix_fmt < 0 || pix_fmt >= PIX_FMT_NB)
- return NULL;
- else
- return pix_fmt_info[pix_fmt].name;
-}
-
-static enum PixelFormat avcodec_get_pix_fmt_internal(const char *name)
-{
- int i;
-
- for (i=0; i < PIX_FMT_NB; i++)
- if (pix_fmt_info[i].name && !strcmp(pix_fmt_info[i].name, name))
- return i;
- return PIX_FMT_NONE;
-}
-
-#ifdef WORDS_BIGENDIAN
-# define X_NE(be, le) be
-#else
-# define X_NE(be, le) le
-#endif
-
-enum PixelFormat avcodec_get_pix_fmt(const char *name)
-{
- enum PixelFormat pix_fmt;
-
- if (!strcmp(name, "rgb32"))
- name = X_NE("argb", "bgra");
- else if (!strcmp(name, "bgr32"))
- name = X_NE("abgr", "rgba");
-
- pix_fmt = avcodec_get_pix_fmt_internal(name);
- if (pix_fmt == PIX_FMT_NONE) {
- char name2[32];
- snprintf(name2, sizeof(name2), "%s%s", name, X_NE("be", "le"));
- pix_fmt = avcodec_get_pix_fmt_internal(name2);
- }
- return pix_fmt;
-}
-
-void avcodec_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt)
-{
- /* print header */
- if (pix_fmt < 0)
- snprintf (buf, buf_size,
- "name " " nb_channels" " depth" " is_alpha"
- );
- else{
- PixFmtInfo info= pix_fmt_info[pix_fmt];
-
- char is_alpha_char= info.is_alpha ? 'y' : 'n';
-
- snprintf (buf, buf_size,
- "%-10s" " %1d " " %2d " " %c ",
- info.name,
- info.nb_channels,
- info.depth,
- is_alpha_char
- );
- }
-}
-
-int ff_is_hwaccel_pix_fmt(enum PixelFormat pix_fmt)
-{
- return pix_fmt_info[pix_fmt].is_hwaccel;
-}
-
-int ff_set_systematic_pal(uint32_t pal[256], enum PixelFormat pix_fmt){
- int i;
-
- for(i=0; i<256; i++){
- int r,g,b;
-
- switch(pix_fmt) {
- case PIX_FMT_RGB8:
- r= (i>>5 )*36;
- g= ((i>>2)&7)*36;
- b= (i&3 )*85;
- break;
- case PIX_FMT_BGR8:
- b= (i>>6 )*85;
- g= ((i>>3)&7)*36;
- r= (i&7 )*36;
- break;
- case PIX_FMT_RGB4_BYTE:
- r= (i>>3 )*255;
- g= ((i>>1)&3)*85;
- b= (i&1 )*255;
- break;
- case PIX_FMT_BGR4_BYTE:
- b= (i>>3 )*255;
- g= ((i>>1)&3)*85;
- r= (i&1 )*255;
- break;
- case PIX_FMT_GRAY8:
- r=b=g= i;
- break;
- default:
- return -1;
- }
- pal[i] = b + (g<<8) + (r<<16);
- }
-
- return 0;
-}
-
-int ff_fill_linesize(AVPicture *picture, enum PixelFormat pix_fmt, int width)
-{
- int w2;
- const PixFmtInfo *pinfo;
-
- memset(picture->linesize, 0, sizeof(picture->linesize));
-
- pinfo = &pix_fmt_info[pix_fmt];
- switch(pix_fmt) {
- case PIX_FMT_YUV420P:
- case PIX_FMT_YUV422P:
- case PIX_FMT_YUV444P:
- case PIX_FMT_YUV410P:
- case PIX_FMT_YUV411P:
- case PIX_FMT_YUV440P:
- case PIX_FMT_YUVJ420P:
- case PIX_FMT_YUVJ422P:
- case PIX_FMT_YUVJ444P:
- case PIX_FMT_YUVJ440P:
- w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift;
- picture->linesize[0] = width;
- picture->linesize[1] = w2;
- picture->linesize[2] = w2;
- break;
- case PIX_FMT_YUV420PLE:
- case PIX_FMT_YUV422PLE:
- case PIX_FMT_YUV444PLE:
- case PIX_FMT_YUV420PBE:
- case PIX_FMT_YUV422PBE:
- case PIX_FMT_YUV444PBE:
- w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift;
- picture->linesize[0] = 2*width;
- picture->linesize[1] = 2*w2;
- picture->linesize[2] = 2*w2;
- break;
- case PIX_FMT_YUVA420P:
- w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift;
- picture->linesize[0] = width;
- picture->linesize[1] = w2;
- picture->linesize[2] = w2;
- picture->linesize[3] = width;
- break;
- case PIX_FMT_NV12:
- case PIX_FMT_NV21:
- w2 = (width + (1 << pinfo->x_chroma_shift) - 1) >> pinfo->x_chroma_shift;
- picture->linesize[0] = width;
- picture->linesize[1] = w2;
- break;
- case PIX_FMT_RGB24:
- case PIX_FMT_BGR24:
- picture->linesize[0] = width * 3;
- break;
- case PIX_FMT_ARGB:
- case PIX_FMT_ABGR:
- case PIX_FMT_RGBA:
- case PIX_FMT_BGRA:
- picture->linesize[0] = width * 4;
- break;
- case PIX_FMT_RGB48BE:
- case PIX_FMT_RGB48LE:
- picture->linesize[0] = width * 6;
- break;
- case PIX_FMT_GRAY16BE:
- case PIX_FMT_GRAY16LE:
- case PIX_FMT_BGR555:
- case PIX_FMT_BGR565:
- case PIX_FMT_RGB555:
- case PIX_FMT_RGB565:
- case PIX_FMT_YUYV422:
- picture->linesize[0] = width * 2;
- break;
- case PIX_FMT_UYVY422:
- picture->linesize[0] = width * 2;
- break;
- case PIX_FMT_UYYVYY411:
- picture->linesize[0] = width + width/2;
- break;
- case PIX_FMT_RGB4:
- case PIX_FMT_BGR4:
- picture->linesize[0] = width / 2;
- break;
- case PIX_FMT_MONOWHITE:
- case PIX_FMT_MONOBLACK:
- picture->linesize[0] = (width + 7) >> 3;
- break;
- case PIX_FMT_PAL8:
- case PIX_FMT_RGB8:
- case PIX_FMT_BGR8:
- case PIX_FMT_RGB4_BYTE:
- case PIX_FMT_BGR4_BYTE:
- case PIX_FMT_GRAY8:
- picture->linesize[0] = width;
- break;
- default:
- return -1;
- }
- return 0;
-}
-
-int ff_fill_pointer(AVPicture *picture, uint8_t *ptr, enum PixelFormat pix_fmt,
- int height)