mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
videoconvert: add more ffmpeg format mappings
This commit is contained in:
parent
1b5c244ee0
commit
c0fcc9b83f
1 changed files with 153 additions and 5 deletions
|
|
@ -662,19 +662,167 @@ static int impl_node_set_param(void *object, uint32_t id, uint32_t flags,
|
|||
static enum AVPixelFormat format_to_pix_fmt(uint32_t format)
|
||||
{
|
||||
switch (format) {
|
||||
case SPA_VIDEO_FORMAT_YUY2:
|
||||
return AV_PIX_FMT_YUYV422;
|
||||
case SPA_VIDEO_FORMAT_I420:
|
||||
return AV_PIX_FMT_YUV420P;
|
||||
case SPA_VIDEO_FORMAT_YV12:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_YUY2:
|
||||
return AV_PIX_FMT_YUYV422;
|
||||
case SPA_VIDEO_FORMAT_UYVY:
|
||||
return AV_PIX_FMT_UYVY422;
|
||||
case SPA_VIDEO_FORMAT_YVYU:
|
||||
return AV_PIX_FMT_YVYU422;
|
||||
case SPA_VIDEO_FORMAT_AYUV:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_RGBx:
|
||||
return AV_PIX_FMT_RGB0;
|
||||
case SPA_VIDEO_FORMAT_BGRx:
|
||||
return AV_PIX_FMT_BGR0;
|
||||
case SPA_VIDEO_FORMAT_xRGB:
|
||||
return AV_PIX_FMT_0RGB;
|
||||
case SPA_VIDEO_FORMAT_xBGR:
|
||||
return AV_PIX_FMT_0BGR;
|
||||
case SPA_VIDEO_FORMAT_RGBA:
|
||||
return AV_PIX_FMT_RGBA;
|
||||
case SPA_VIDEO_FORMAT_BGRA:
|
||||
return AV_PIX_FMT_BGRA;
|
||||
case SPA_VIDEO_FORMAT_ARGB:
|
||||
return AV_PIX_FMT_ARGB;
|
||||
case SPA_VIDEO_FORMAT_ABGR:
|
||||
return AV_PIX_FMT_ABGR;
|
||||
case SPA_VIDEO_FORMAT_RGB:
|
||||
return AV_PIX_FMT_RGB24;
|
||||
case SPA_VIDEO_FORMAT_BGR:
|
||||
return AV_PIX_FMT_BGR24;
|
||||
case SPA_VIDEO_FORMAT_Y41B:
|
||||
return AV_PIX_FMT_YUV411P;
|
||||
case SPA_VIDEO_FORMAT_Y42B:
|
||||
return AV_PIX_FMT_YUV422P;
|
||||
case SPA_VIDEO_FORMAT_YVYU:
|
||||
return AV_PIX_FMT_YVYU422;
|
||||
case SPA_VIDEO_FORMAT_Y444:
|
||||
return AV_PIX_FMT_YUV444P;
|
||||
case SPA_VIDEO_FORMAT_v210:
|
||||
case SPA_VIDEO_FORMAT_v216:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_NV12:
|
||||
return AV_PIX_FMT_NV12;
|
||||
case SPA_VIDEO_FORMAT_NV21:
|
||||
return AV_PIX_FMT_NV21;
|
||||
case SPA_VIDEO_FORMAT_GRAY8:
|
||||
return AV_PIX_FMT_GRAY8;
|
||||
case SPA_VIDEO_FORMAT_GRAY16_BE:
|
||||
return AV_PIX_FMT_GRAY16BE;
|
||||
case SPA_VIDEO_FORMAT_GRAY16_LE:
|
||||
return AV_PIX_FMT_GRAY16LE;
|
||||
case SPA_VIDEO_FORMAT_v308:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_RGB16:
|
||||
return AV_PIX_FMT_RGB565;
|
||||
case SPA_VIDEO_FORMAT_BGR16:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_RGB15:
|
||||
return AV_PIX_FMT_RGB555;
|
||||
case SPA_VIDEO_FORMAT_BGR15:
|
||||
case SPA_VIDEO_FORMAT_UYVP:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_A420:
|
||||
return AV_PIX_FMT_YUVA420P;
|
||||
case SPA_VIDEO_FORMAT_RGB8P:
|
||||
return AV_PIX_FMT_PAL8;
|
||||
case SPA_VIDEO_FORMAT_YUV9:
|
||||
return AV_PIX_FMT_YUV410P;
|
||||
case SPA_VIDEO_FORMAT_YVU9:
|
||||
case SPA_VIDEO_FORMAT_IYU1:
|
||||
case SPA_VIDEO_FORMAT_ARGB64:
|
||||
case SPA_VIDEO_FORMAT_AYUV64:
|
||||
case SPA_VIDEO_FORMAT_r210:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_I420_10BE:
|
||||
return AV_PIX_FMT_YUV420P10BE;
|
||||
case SPA_VIDEO_FORMAT_I420_10LE:
|
||||
return AV_PIX_FMT_YUV420P10LE;
|
||||
case SPA_VIDEO_FORMAT_I422_10BE:
|
||||
return AV_PIX_FMT_YUV422P10BE;
|
||||
case SPA_VIDEO_FORMAT_I422_10LE:
|
||||
return AV_PIX_FMT_YUV422P10LE;
|
||||
case SPA_VIDEO_FORMAT_Y444_10BE:
|
||||
return AV_PIX_FMT_YUV444P10BE;
|
||||
case SPA_VIDEO_FORMAT_Y444_10LE:
|
||||
return AV_PIX_FMT_YUV444P10LE;
|
||||
case SPA_VIDEO_FORMAT_GBR:
|
||||
return AV_PIX_FMT_GBRP;
|
||||
case SPA_VIDEO_FORMAT_GBR_10BE:
|
||||
return AV_PIX_FMT_GBRP10BE;
|
||||
case SPA_VIDEO_FORMAT_GBR_10LE:
|
||||
return AV_PIX_FMT_GBRP10LE;
|
||||
case SPA_VIDEO_FORMAT_NV16:
|
||||
case SPA_VIDEO_FORMAT_NV24:
|
||||
case SPA_VIDEO_FORMAT_NV12_64Z32:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_A420_10BE:
|
||||
return AV_PIX_FMT_YUVA420P10BE;
|
||||
case SPA_VIDEO_FORMAT_A420_10LE:
|
||||
return AV_PIX_FMT_YUVA420P10LE;
|
||||
case SPA_VIDEO_FORMAT_A422_10BE:
|
||||
return AV_PIX_FMT_YUVA422P10BE;
|
||||
case SPA_VIDEO_FORMAT_A422_10LE:
|
||||
return AV_PIX_FMT_YUVA422P10LE;
|
||||
case SPA_VIDEO_FORMAT_A444_10BE:
|
||||
return AV_PIX_FMT_YUVA444P10BE;
|
||||
case SPA_VIDEO_FORMAT_A444_10LE:
|
||||
return AV_PIX_FMT_YUVA444P10LE;
|
||||
case SPA_VIDEO_FORMAT_NV61:
|
||||
case SPA_VIDEO_FORMAT_P010_10BE:
|
||||
case SPA_VIDEO_FORMAT_P010_10LE:
|
||||
case SPA_VIDEO_FORMAT_IYU2:
|
||||
case SPA_VIDEO_FORMAT_VYUY:
|
||||
break;
|
||||
case SPA_VIDEO_FORMAT_GBRA:
|
||||
return AV_PIX_FMT_GBRAP;
|
||||
case SPA_VIDEO_FORMAT_GBRA_10BE:
|
||||
return AV_PIX_FMT_GBRAP10BE;
|
||||
case SPA_VIDEO_FORMAT_GBRA_10LE:
|
||||
return AV_PIX_FMT_GBRAP10LE;
|
||||
case SPA_VIDEO_FORMAT_GBR_12BE:
|
||||
return AV_PIX_FMT_GBRP12BE;
|
||||
case SPA_VIDEO_FORMAT_GBR_12LE:
|
||||
return AV_PIX_FMT_GBRP12LE;
|
||||
case SPA_VIDEO_FORMAT_GBRA_12BE:
|
||||
return AV_PIX_FMT_GBRAP12BE;
|
||||
case SPA_VIDEO_FORMAT_GBRA_12LE:
|
||||
return AV_PIX_FMT_GBRAP12LE;
|
||||
case SPA_VIDEO_FORMAT_I420_12BE:
|
||||
return AV_PIX_FMT_YUV420P12BE;
|
||||
case SPA_VIDEO_FORMAT_I420_12LE:
|
||||
return AV_PIX_FMT_YUV420P12LE;
|
||||
case SPA_VIDEO_FORMAT_I422_12BE:
|
||||
return AV_PIX_FMT_YUV422P12BE;
|
||||
case SPA_VIDEO_FORMAT_I422_12LE:
|
||||
return AV_PIX_FMT_YUV422P12LE;
|
||||
case SPA_VIDEO_FORMAT_Y444_12BE:
|
||||
return AV_PIX_FMT_YUV444P12BE;
|
||||
case SPA_VIDEO_FORMAT_Y444_12LE:
|
||||
return AV_PIX_FMT_YUV444P12LE;
|
||||
|
||||
case SPA_VIDEO_FORMAT_RGBA_F16:
|
||||
case SPA_VIDEO_FORMAT_RGBA_F32:
|
||||
break;
|
||||
|
||||
case SPA_VIDEO_FORMAT_xRGB_210LE:
|
||||
return AV_PIX_FMT_X2RGB10LE;
|
||||
case SPA_VIDEO_FORMAT_xBGR_210LE:
|
||||
return AV_PIX_FMT_X2BGR10LE;
|
||||
|
||||
case SPA_VIDEO_FORMAT_RGBx_102LE:
|
||||
case SPA_VIDEO_FORMAT_BGRx_102LE:
|
||||
case SPA_VIDEO_FORMAT_ARGB_210LE:
|
||||
case SPA_VIDEO_FORMAT_ABGR_210LE:
|
||||
case SPA_VIDEO_FORMAT_RGBA_102LE:
|
||||
case SPA_VIDEO_FORMAT_BGRA_102LE:
|
||||
break;
|
||||
default:
|
||||
return AV_PIX_FMT_NONE;
|
||||
break;
|
||||
}
|
||||
return AV_PIX_FMT_NONE;
|
||||
}
|
||||
|
||||
static int get_format(struct dir *dir, int *width, int *height, uint32_t *format)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue