On Fri, Jul 03, 2015 at 04:16:32PM +0000, Paul B Mahol wrote: > Signed-off-by: Paul B Mahol <one...@gmail.com> > --- > libswscale/input.c | 36 ++++++++++++++++++++++++++++++++++++ > libswscale/swscale_internal.h | 2 ++ > libswscale/swscale_unscaled.c | 1 + > libswscale/utils.c | 2 +- > 4 files changed, 40 insertions(+), 1 deletion(-) > > diff --git a/libswscale/input.c b/libswscale/input.c > index 1f04fc2..d7d4bc5 100644 > --- a/libswscale/input.c > +++ b/libswscale/input.c > @@ -607,6 +607,33 @@ static void read_ya16be_alpha_c(uint8_t *dst, const > uint8_t *src, const uint8_t > AV_WN16(dst + i * 2, AV_RB16(src + i * 4 + 2)); > } > > +static void read_ayuv16le_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 * 8 + 2)); > +} > + > + > +static void read_ayuv16le_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 + 4)); > + AV_WN16(dstV + i * 2, AV_RL16(src + i * 8 + 6)); > + } > +} > + > +static void read_ayuv16le_A_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 * 8)); > +} > + > /* This is almost identical to the previous, end exists only because > * yuy2ToY/UV)(dst, src + 1, ...) would have 100% unaligned accesses. */ > static void uyvyToY_c(uint8_t *dst, const uint8_t *src, const uint8_t > *unused1, const uint8_t *unused2, int width, > @@ -987,6 +1014,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) > c->chrToYV12 = bswap16UV_c; > break; > #endif > + case AV_PIX_FMT_AYUV16LE: > + c->chrToYV12 = read_ayuv16le_UV_c; > + break; > } > if (c->chrSrcHSubSample) { > switch (srcFormat) { > @@ -1271,6 +1301,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) > case AV_PIX_FMT_YA16BE: > c->lumToYV12 = read_ya16be_gray_c; > break; > + case AV_PIX_FMT_AYUV16LE: > + c->lumToYV12 = read_ayuv16le_Y_c; > + break; > case AV_PIX_FMT_YUYV422: > case AV_PIX_FMT_YVYU422: > case AV_PIX_FMT_YA8: > @@ -1397,6 +1430,9 @@ av_cold void ff_sws_init_input_funcs(SwsContext *c) > case AV_PIX_FMT_YA16BE: > c->alpToYV12 = read_ya16be_alpha_c; > break; > + case AV_PIX_FMT_AYUV16LE: > + c->alpToYV12 = read_ayuv16le_A_c; > + break; > case AV_PIX_FMT_PAL8 : > c->alpToYV12 = palToA_c; > break; > diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h > index 2299aa5..9045336 100644 > --- a/libswscale/swscale_internal.h > +++ b/libswscale/swscale_internal.h > @@ -790,6 +790,8 @@ static av_always_inline int isALPHA(enum AVPixelFormat > pix_fmt) > || (x)==AV_PIX_FMT_YA8 \ > || (x)==AV_PIX_FMT_YA16LE \ > || (x)==AV_PIX_FMT_YA16BE \ > + || (x)==AV_PIX_FMT_AYUV16LE \ > + || (x)==AV_PIX_FMT_AYUV16BE \ > || isRGBinInt(x) \ > || isBGRinInt(x) \ > ) > diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c > index 1dc42c8..0e1e26e 100644 > --- a/libswscale/swscale_unscaled.c > +++ b/libswscale/swscale_unscaled.c > @@ -1676,6 +1676,7 @@ void ff_get_unscaled_swscale(SwsContext *c) > IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_BGRA64) || > IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GRAY16) || > IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_YA16) || > + IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_AYUV16) || > IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP9) || > IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP10) || > IS_DIFFERENT_ENDIANESS(srcFormat, dstFormat, AV_PIX_FMT_GBRP12) || > diff --git a/libswscale/utils.c b/libswscale/utils.c > index c384aa5..3561f7b 100644 > --- a/libswscale/utils.c > +++ b/libswscale/utils.c
> @@ -224,7 +224,7 @@ static const FormatEntry format_entries[AV_PIX_FMT_NB] = { > [AV_PIX_FMT_BAYER_GRBG16LE] = { 1, 0 }, > [AV_PIX_FMT_BAYER_GRBG16BE] = { 1, 0 }, > [AV_PIX_FMT_XYZ12BE] = { 1, 1, 1 }, > - [AV_PIX_FMT_XYZ12LE] = { 1, 1, 1 }, > + [AV_PIX_FMT_AYUV16LE] = { 1, 0}, this looks like a typo you remove AV_PIX_FMT_XYZ12LE [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB It is dangerous to be right in matters on which the established authorities are wrong. -- Voltaire
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel