| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -268,14 +268,24 @@ static int vaapi_frames_get_constraints(AVHWDeviceContext *hwdev, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            for (i = j = 0; i < attr_count; i++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                int k; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (attr_list[i].type != VASurfaceAttribPixelFormat) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    continue; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                fourcc = attr_list[i].value.value.i; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                pix_fmt = vaapi_pix_fmt_from_fourcc(fourcc); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (pix_fmt != AV_PIX_FMT_NONE) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (pix_fmt == AV_PIX_FMT_NONE) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    continue; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                for (k = 0; k < j; k++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    if (constraints->valid_sw_formats[k] == pix_fmt) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                        break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (k == j) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    constraints->valid_sw_formats[j++] = pix_fmt; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            av_assert0(j == pix_fmt_count); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            constraints->valid_sw_formats[j] = AV_PIX_FMT_NONE; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } else { | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -287,9 +297,19 @@ static int vaapi_frames_get_constraints(AVHWDeviceContext *hwdev, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            err = AVERROR(ENOMEM); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            goto fail; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (i = 0; i < ctx->nb_formats; i++) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            constraints->valid_sw_formats[i] = ctx->formats[i].pix_fmt; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        constraints->valid_sw_formats[i] = AV_PIX_FMT_NONE; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (i = j = 0; i < ctx->nb_formats; i++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            int k; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            for (k = 0; k < j; k++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (constraints->valid_sw_formats[k] == ctx->formats[i].pix_fmt) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (k == j) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                constraints->valid_sw_formats[j++] = ctx->formats[i].pix_fmt; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        constraints->valid_sw_formats[j] = AV_PIX_FMT_NONE; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    constraints->valid_hw_formats = av_malloc_array(2, sizeof(pix_fmt)); | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |