You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avutil/hwcontext_vdpau: Map 444 pix fmts to new VdpYCbCr types
New VdpYCbCr Formats VDP_YCBCR_FORMAT_Y_U_V_444 and, VDP_YCBCR_FORMAT_Y_UV_444 have been added in VDPAU with libvdpau-1.2 to be used in get/putbits for YUV 4:4:4 surfaces. Earlier mapping of AV_PIX_FMT_YUV444P to VDP_YCBCR_FORMAT_YV12 is not valid. Hence this Change maps AV_PIX_FMT_YUV444P to VDP_YCBCR_FORMAT_Y_U_V_444 to access the YUV 4:4:4 surface via read-back API's of VDPAU.
This commit is contained in:
		
				
					committed by
					
						 Philip Langdale
						Philip Langdale
					
				
			
			
				
	
			
			
			
						parent
						
							8cf5f948f2
						
					
				
				
					commit
					d617d54efa
				
			| @@ -73,8 +73,10 @@ static const VDPAUPixFmtMap pix_fmts_422[] = { | ||||
| }; | ||||
|  | ||||
| static const VDPAUPixFmtMap pix_fmts_444[] = { | ||||
|     { VDP_YCBCR_FORMAT_YV12, AV_PIX_FMT_YUV444P }, | ||||
|     { 0,                     AV_PIX_FMT_NONE,   }, | ||||
| #ifdef VDP_YCBCR_FORMAT_Y_U_V_444 | ||||
|     { VDP_YCBCR_FORMAT_Y_U_V_444, AV_PIX_FMT_YUV444P }, | ||||
| #endif | ||||
|     { 0,                          AV_PIX_FMT_NONE,   }, | ||||
| }; | ||||
|  | ||||
| static const struct { | ||||
| @@ -349,7 +351,11 @@ static int vdpau_transfer_data_from(AVHWFramesContext *ctx, AVFrame *dst, | ||||
|         return AVERROR(EINVAL); | ||||
|     } | ||||
|  | ||||
|     if (vdpau_format == VDP_YCBCR_FORMAT_YV12) | ||||
|     if ((vdpau_format == VDP_YCBCR_FORMAT_YV12) | ||||
| #ifdef VDP_YCBCR_FORMAT_Y_U_V_444 | ||||
|             || (vdpau_format == VDP_YCBCR_FORMAT_Y_U_V_444) | ||||
| #endif | ||||
|             ) | ||||
|         FFSWAP(void*, data[1], data[2]); | ||||
|  | ||||
|     err = priv->get_data(surf, vdpau_format, data, linesize); | ||||
| @@ -400,7 +406,11 @@ static int vdpau_transfer_data_to(AVHWFramesContext *ctx, AVFrame *dst, | ||||
|         return AVERROR(EINVAL); | ||||
|     } | ||||
|  | ||||
|     if (vdpau_format == VDP_YCBCR_FORMAT_YV12) | ||||
|     if ((vdpau_format == VDP_YCBCR_FORMAT_YV12) | ||||
| #ifdef VDP_YCBCR_FORMAT_Y_U_V_444 | ||||
|             || (vdpau_format == VDP_YCBCR_FORMAT_Y_U_V_444) | ||||
| #endif | ||||
|             ) | ||||
|         FFSWAP(const void*, data[1], data[2]); | ||||
|  | ||||
|     err = priv->put_data(surf, vdpau_format, data, linesize); | ||||
|   | ||||
| @@ -80,7 +80,7 @@ | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_MAJOR  56 | ||||
| #define LIBAVUTIL_VERSION_MINOR  26 | ||||
| #define LIBAVUTIL_VERSION_MICRO 100 | ||||
| #define LIBAVUTIL_VERSION_MICRO 101 | ||||
|  | ||||
| #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ | ||||
|                                                LIBAVUTIL_VERSION_MINOR, \ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user