You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Merge commit '1f9237f2ac46dfbed1bfa1f4f0f1314c2a1d62ec'
* commit '1f9237f2ac46dfbed1bfa1f4f0f1314c2a1d62ec': avconv_vdpau: allocate video surface of VDPAU-specified size Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		| @@ -100,9 +100,14 @@ static int vdpau_get_buffer(AVCodecContext *s, AVFrame *frame, int flags) | ||||
|     VDPAUContext        *ctx = ist->hwaccel_ctx; | ||||
|     VdpVideoSurface *surface; | ||||
|     VdpStatus err; | ||||
|     VdpChromaType chroma; | ||||
|     uint32_t width, height; | ||||
|  | ||||
|     av_assert0(frame->format == AV_PIX_FMT_VDPAU); | ||||
|  | ||||
|     if (av_vdpau_get_surface_parameters(s, &chroma, &width, &height)) | ||||
|         return AVERROR(ENOSYS); | ||||
|  | ||||
|     surface = av_malloc(sizeof(*surface)); | ||||
|     if (!surface) | ||||
|         return AVERROR(ENOMEM); | ||||
| @@ -118,8 +123,8 @@ static int vdpau_get_buffer(AVCodecContext *s, AVFrame *frame, int flags) | ||||
|     // properly we should keep a pool of surfaces instead of creating | ||||
|     // them anew for each frame, but since we don't care about speed | ||||
|     // much in this code, we don't bother | ||||
|     err = ctx->video_surface_create(ctx->device, VDP_CHROMA_TYPE_420, | ||||
|                                     frame->width, frame->height, surface); | ||||
|     err = ctx->video_surface_create(ctx->device, chroma, width, height, | ||||
|                                     surface); | ||||
|     if (err != VDP_STATUS_OK) { | ||||
|         av_log(NULL, AV_LOG_ERROR, "Error allocating a VDPAU video surface: %s\n", | ||||
|                ctx->get_error_string(err)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user