mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
swscale: Add swscale input support for Y210LE
Add swscale input support for Y210LE, output support and fate test could be added later if there is requirement for software CSC to this packed format. Signed-off-by: Linjie Fu <linjie.fu@intel.com>
This commit is contained in:
parent
1c37cad084
commit
d2aa1fbfd4
@ -552,6 +552,24 @@ static void yvy2ToUV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *unused0, con
|
||||
av_assert1(src1 == src2);
|
||||
}
|
||||
|
||||
static void y210le_UV_c(uint8_t *dstU, uint8_t *dstV, const uint8_t *unused0, const uint8_t *src,
|
||||
const uint8_t *unused1, int width, uint32_t *unused2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < width; i++) {
|
||||
AV_WN16(dstU + i * 2, AV_RL16(src + i * 8 + 2) >> 6);
|
||||
AV_WN16(dstV + i * 2, AV_RL16(src + i * 8 + 6) >> 6);
|
||||
}
|
||||
}
|
||||
|
||||
static void y210le_Y_c(uint8_t *dst, const uint8_t *src, const uint8_t *unused0,
|
||||
const uint8_t *unused1, int width, uint32_t *unused2)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < width; i++)
|
||||
AV_WN16(dst + i * 2, AV_RL16(src + i * 4) >> 6);
|
||||
}
|
||||
|
||||
static void bswap16Y_c(uint8_t *_dst, const uint8_t *_src, const uint8_t *unused1, const uint8_t *unused2, int width,
|
||||
uint32_t *unused)
|
||||
{
|
||||
@ -1154,6 +1172,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
|
||||
case AV_PIX_FMT_P016BE:
|
||||
c->chrToYV12 = p016BEToUV_c;
|
||||
break;
|
||||
case AV_PIX_FMT_Y210LE:
|
||||
c->chrToYV12 = y210le_UV_c;
|
||||
break;
|
||||
}
|
||||
if (c->chrSrcHSubSample) {
|
||||
switch (srcFormat) {
|
||||
@ -1586,6 +1607,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c)
|
||||
c->lumToYV12 = grayf32ToY16_bswap_c;
|
||||
#endif
|
||||
break;
|
||||
case AV_PIX_FMT_Y210LE:
|
||||
c->lumToYV12 = y210le_Y_c;
|
||||
break;
|
||||
}
|
||||
if (c->needAlpha) {
|
||||
if (is16BPS(srcFormat) || isNBPS(srcFormat)) {
|
||||
|
@ -266,6 +266,7 @@ static const FormatEntry format_entries[] = {
|
||||
[AV_PIX_FMT_YUVA444P12LE] = { 1, 1 },
|
||||
[AV_PIX_FMT_NV24] = { 1, 1 },
|
||||
[AV_PIX_FMT_NV42] = { 1, 1 },
|
||||
[AV_PIX_FMT_Y210LE] = { 1, 0 },
|
||||
};
|
||||
|
||||
int sws_isSupportedInput(enum AVPixelFormat pix_fmt)
|
||||
|
Loading…
Reference in New Issue
Block a user