swscale/utils: support bayer input + scaling, and bayer input + any supported output
Fixes Ticket4053 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
							parent
							
								
									173d51c982
								
							
						
					
					
						commit
						2f6bb86f85
					
				@ -1217,6 +1217,31 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (isBayer(srcFormat)) {
 | 
			
		||||
        if (!unscaled ||
 | 
			
		||||
            (dstFormat != AV_PIX_FMT_RGB24 && dstFormat != AV_PIX_FMT_YUV420P)) {
 | 
			
		||||
            enum AVPixelFormat tmpFormat = AV_PIX_FMT_RGB24;
 | 
			
		||||
 | 
			
		||||
            ret = av_image_alloc(c->cascaded_tmp, c->cascaded_tmpStride,
 | 
			
		||||
                                srcW, srcH, tmpFormat, 64);
 | 
			
		||||
            if (ret < 0)
 | 
			
		||||
                return ret;
 | 
			
		||||
 | 
			
		||||
            c->cascaded_context[0] = sws_getContext(srcW, srcH, srcFormat,
 | 
			
		||||
                                                    srcW, srcH, tmpFormat,
 | 
			
		||||
                                                    flags, srcFilter, NULL, c->param);
 | 
			
		||||
            if (!c->cascaded_context[0])
 | 
			
		||||
                return -1;
 | 
			
		||||
 | 
			
		||||
            c->cascaded_context[1] = sws_getContext(srcW, srcH, tmpFormat,
 | 
			
		||||
                                                    dstW, dstH, dstFormat,
 | 
			
		||||
                                                    flags, NULL, dstFilter, c->param);
 | 
			
		||||
            if (!c->cascaded_context[1])
 | 
			
		||||
                return -1;
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#define USE_MMAP (HAVE_MMAP && HAVE_MPROTECT && defined MAP_ANONYMOUS)
 | 
			
		||||
 | 
			
		||||
    /* precalculate horizontal scaler filter coefficients */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user