Use YUV420P code path for YUVA420P where appropriate
Originally committed as revision 28746 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
parent
03831f462e
commit
2c89734255
@ -2327,12 +2327,12 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
|
|||||||
if (unscaled && !usesHFilter && !usesVFilter && (srcRange == dstRange || isBGR(dstFormat) || isRGB(dstFormat)))
|
if (unscaled && !usesHFilter && !usesVFilter && (srcRange == dstRange || isBGR(dstFormat) || isRGB(dstFormat)))
|
||||||
{
|
{
|
||||||
/* yv12_to_nv12 */
|
/* yv12_to_nv12 */
|
||||||
if (srcFormat == PIX_FMT_YUV420P && (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21))
|
if ((srcFormat == PIX_FMT_YUV420P || srcFormat == PIX_FMT_YUVA420P) && (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21))
|
||||||
{
|
{
|
||||||
c->swScale= PlanarToNV12Wrapper;
|
c->swScale= PlanarToNV12Wrapper;
|
||||||
}
|
}
|
||||||
/* yuv2bgr */
|
/* yuv2bgr */
|
||||||
if ((srcFormat==PIX_FMT_YUV420P || srcFormat==PIX_FMT_YUV422P) && (isBGR(dstFormat) || isRGB(dstFormat))
|
if ((srcFormat==PIX_FMT_YUV420P || srcFormat==PIX_FMT_YUV422P || srcFormat==PIX_FMT_YUVA420P) && (isBGR(dstFormat) || isRGB(dstFormat))
|
||||||
&& !(flags & SWS_ACCURATE_RND) && !(dstH&1))
|
&& !(flags & SWS_ACCURATE_RND) && !(dstH&1))
|
||||||
{
|
{
|
||||||
c->swScale= sws_yuv2rgb_get_func_ptr(c);
|
c->swScale= sws_yuv2rgb_get_func_ptr(c);
|
||||||
@ -2383,7 +2383,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
|
|||||||
/* LQ converters if -sws 0 or -sws 4*/
|
/* LQ converters if -sws 0 or -sws 4*/
|
||||||
if (c->flags&(SWS_FAST_BILINEAR|SWS_POINT)){
|
if (c->flags&(SWS_FAST_BILINEAR|SWS_POINT)){
|
||||||
/* yv12_to_yuy2 */
|
/* yv12_to_yuy2 */
|
||||||
if (srcFormat == PIX_FMT_YUV420P)
|
if (srcFormat == PIX_FMT_YUV420P || srcFormat == PIX_FMT_YUVA420P)
|
||||||
{
|
{
|
||||||
if (dstFormat == PIX_FMT_YUYV422)
|
if (dstFormat == PIX_FMT_YUYV422)
|
||||||
c->swScale= PlanarToYuy2Wrapper;
|
c->swScale= PlanarToYuy2Wrapper;
|
||||||
@ -2406,6 +2406,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
|
|||||||
|
|
||||||
/* simple copy */
|
/* simple copy */
|
||||||
if ( srcFormat == dstFormat
|
if ( srcFormat == dstFormat
|
||||||
|
|| (srcFormat == PIX_FMT_YUVA420P && dstFormat == PIX_FMT_YUV420P)
|
||||||
|| (isPlanarYUV(srcFormat) && isGray(dstFormat))
|
|| (isPlanarYUV(srcFormat) && isGray(dstFormat))
|
||||||
|| (isPlanarYUV(dstFormat) && isGray(srcFormat)))
|
|| (isPlanarYUV(dstFormat) && isGray(srcFormat)))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user