mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-16 03:50:05 +01:00
Use isAnyRGB() where possible
Originally committed as revision 30435 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
@@ -121,8 +121,7 @@ int sws_isSupportedInput(enum PixelFormat pix_fmt)
|
||||
|| (x)==PIX_FMT_YUV444P \
|
||||
|| (x)==PIX_FMT_YUV422P \
|
||||
|| (x)==PIX_FMT_YUV411P \
|
||||
|| isRGBinInt(x) \
|
||||
|| isBGRinInt(x) \
|
||||
|| isAnyRGB(x) \
|
||||
|| (x)==PIX_FMT_NV12 \
|
||||
|| (x)==PIX_FMT_NV21 \
|
||||
|| (x)==PIX_FMT_GRAY16BE \
|
||||
@@ -872,14 +871,14 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
|
||||
getSubSampleFactors(&c->chrDstHSubSample, &c->chrDstVSubSample, dstFormat);
|
||||
|
||||
// reuse chroma for 2 pixels RGB/BGR unless user wants full chroma interpolation
|
||||
if ((isBGRinInt(dstFormat) || isRGBinInt(dstFormat)) && !(flags&SWS_FULL_CHR_H_INT)) c->chrDstHSubSample=1;
|
||||
if (isAnyRGB(dstFormat) && !(flags&SWS_FULL_CHR_H_INT)) c->chrDstHSubSample=1;
|
||||
|
||||
// drop some chroma lines if the user wants it
|
||||
c->vChrDrop= (flags&SWS_SRC_V_CHR_DROP_MASK)>>SWS_SRC_V_CHR_DROP_SHIFT;
|
||||
c->chrSrcVSubSample+= c->vChrDrop;
|
||||
|
||||
// drop every other pixel for chroma calculation unless user wants full chroma
|
||||
if ((isBGRinInt(srcFormat) || isRGBinInt(srcFormat)) && !(flags&SWS_FULL_CHR_H_INP)
|
||||
if (isAnyRGB(srcFormat) && !(flags&SWS_FULL_CHR_H_INP)
|
||||
&& srcFormat!=PIX_FMT_RGB8 && srcFormat!=PIX_FMT_BGR8
|
||||
&& srcFormat!=PIX_FMT_RGB4 && srcFormat!=PIX_FMT_BGR4
|
||||
&& srcFormat!=PIX_FMT_RGB4_BYTE && srcFormat!=PIX_FMT_BGR4_BYTE
|
||||
@@ -903,7 +902,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
|
||||
sws_setColorspaceDetails(c, ff_yuv2rgb_coeffs[SWS_CS_DEFAULT], srcRange, ff_yuv2rgb_coeffs[SWS_CS_DEFAULT] /* FIXME*/, dstRange, 0, 1<<16, 1<<16);
|
||||
|
||||
/* unscaled special cases */
|
||||
if (unscaled && !usesHFilter && !usesVFilter && (srcRange == dstRange || isBGRinInt(dstFormat) || isRGBinInt(dstFormat))) {
|
||||
if (unscaled && !usesHFilter && !usesVFilter && (srcRange == dstRange || isAnyRGB(dstFormat))) {
|
||||
ff_get_unscaled_swscale(c);
|
||||
|
||||
if (c->swScale) {
|
||||
|
||||
Reference in New Issue
Block a user