avcodec/vaapi: fix pointer types after H264Picture changes
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
							parent
							
								
									9517900bef
								
							
						
					
					
						commit
						377cfc28a2
					
				@ -59,7 +59,7 @@ static void fill_vaapi_pic(VAPictureH264 *va_pic,
 | 
				
			|||||||
        pic_structure = pic->reference;
 | 
					        pic_structure = pic->reference;
 | 
				
			||||||
    pic_structure &= PICT_FRAME; /* PICT_TOP_FIELD|PICT_BOTTOM_FIELD */
 | 
					    pic_structure &= PICT_FRAME; /* PICT_TOP_FIELD|PICT_BOTTOM_FIELD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    va_pic->picture_id = ff_vaapi_get_surface_id(pic);
 | 
					    va_pic->picture_id = ff_vaapi_get_surface_id(&pic->f);
 | 
				
			||||||
    va_pic->frame_idx  = pic->long_ref ? pic->pic_id : pic->frame_num;
 | 
					    va_pic->frame_idx  = pic->long_ref ? pic->pic_id : pic->frame_num;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    va_pic->flags      = 0;
 | 
					    va_pic->flags      = 0;
 | 
				
			||||||
@ -99,7 +99,7 @@ static int dpb_add(DPB *dpb, H264Picture *pic)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    for (i = 0; i < dpb->size; i++) {
 | 
					    for (i = 0; i < dpb->size; i++) {
 | 
				
			||||||
        VAPictureH264 * const va_pic = &dpb->va_pics[i];
 | 
					        VAPictureH264 * const va_pic = &dpb->va_pics[i];
 | 
				
			||||||
        if (va_pic->picture_id == ff_vaapi_get_surface_id(pic)) {
 | 
					        if (va_pic->picture_id == ff_vaapi_get_surface_id(&pic->f)) {
 | 
				
			||||||
            VAPictureH264 temp_va_pic;
 | 
					            VAPictureH264 temp_va_pic;
 | 
				
			||||||
            fill_vaapi_pic(&temp_va_pic, pic, 0);
 | 
					            fill_vaapi_pic(&temp_va_pic, pic, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -299,7 +299,7 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
 | 
				
			|||||||
    if (ret < 0)
 | 
					    if (ret < 0)
 | 
				
			||||||
        goto finish;
 | 
					        goto finish;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ret = ff_vaapi_render_picture(vactx, ff_vaapi_get_surface_id(h->cur_pic_ptr));
 | 
					    ret = ff_vaapi_render_picture(vactx, ff_vaapi_get_surface_id(&h->cur_pic_ptr->f));
 | 
				
			||||||
    if (ret < 0)
 | 
					    if (ret < 0)
 | 
				
			||||||
        goto finish;
 | 
					        goto finish;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -36,9 +36,9 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Extract VASurfaceID from a Picture */
 | 
					/** Extract VASurfaceID from a Picture */
 | 
				
			||||||
static inline VASurfaceID ff_vaapi_get_surface_id(Picture *pic)
 | 
					static inline VASurfaceID ff_vaapi_get_surface_id(AVFrame *frm)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    return (uintptr_t)pic->f.data[3];
 | 
					    return (uintptr_t)frm->data[3];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Common AVHWAccel.end_frame() implementation */
 | 
					/** Common AVHWAccel.end_frame() implementation */
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@ int ff_vaapi_mpeg_end_frame(AVCodecContext *avctx)
 | 
				
			|||||||
        goto finish;
 | 
					        goto finish;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ret = ff_vaapi_render_picture(vactx,
 | 
					    ret = ff_vaapi_render_picture(vactx,
 | 
				
			||||||
                                  ff_vaapi_get_surface_id(s->current_picture_ptr));
 | 
					                                  ff_vaapi_get_surface_id(&s->current_picture_ptr->f));
 | 
				
			||||||
    if (ret < 0)
 | 
					    if (ret < 0)
 | 
				
			||||||
        goto finish;
 | 
					        goto finish;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -73,10 +73,10 @@ static int vaapi_mpeg2_start_frame(AVCodecContext *avctx, av_unused const uint8_
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    switch (s->pict_type) {
 | 
					    switch (s->pict_type) {
 | 
				
			||||||
    case AV_PICTURE_TYPE_B:
 | 
					    case AV_PICTURE_TYPE_B:
 | 
				
			||||||
        pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture);
 | 
					        pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture.f);
 | 
				
			||||||
        // fall-through
 | 
					        // fall-through
 | 
				
			||||||
    case AV_PICTURE_TYPE_P:
 | 
					    case AV_PICTURE_TYPE_P:
 | 
				
			||||||
        pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture);
 | 
					        pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture.f);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -95,9 +95,9 @@ static int vaapi_mpeg4_start_frame(AVCodecContext *avctx, av_unused const uint8_
 | 
				
			|||||||
    pic_param->TRD                                      = s->pp_time;
 | 
					    pic_param->TRD                                      = s->pp_time;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->pict_type == AV_PICTURE_TYPE_B)
 | 
					    if (s->pict_type == AV_PICTURE_TYPE_B)
 | 
				
			||||||
        pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture);
 | 
					        pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture.f);
 | 
				
			||||||
    if (s->pict_type != AV_PICTURE_TYPE_I)
 | 
					    if (s->pict_type != AV_PICTURE_TYPE_I)
 | 
				
			||||||
        pic_param->forward_reference_picture  = ff_vaapi_get_surface_id(&s->last_picture);
 | 
					        pic_param->forward_reference_picture  = ff_vaapi_get_surface_id(&s->last_picture.f);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Fill in VAIQMatrixBufferMPEG4 */
 | 
					    /* Fill in VAIQMatrixBufferMPEG4 */
 | 
				
			||||||
    /* Only the first inverse quantisation method uses the weighting matrices */
 | 
					    /* Only the first inverse quantisation method uses the weighting matrices */
 | 
				
			||||||
 | 
				
			|||||||
@ -258,10 +258,10 @@ static int vaapi_vc1_start_frame(AVCodecContext *avctx, av_unused const uint8_t
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    switch (s->pict_type) {
 | 
					    switch (s->pict_type) {
 | 
				
			||||||
    case AV_PICTURE_TYPE_B:
 | 
					    case AV_PICTURE_TYPE_B:
 | 
				
			||||||
        pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture);
 | 
					        pic_param->backward_reference_picture = ff_vaapi_get_surface_id(&s->next_picture.f);
 | 
				
			||||||
        // fall-through
 | 
					        // fall-through
 | 
				
			||||||
    case AV_PICTURE_TYPE_P:
 | 
					    case AV_PICTURE_TYPE_P:
 | 
				
			||||||
        pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture);
 | 
					        pic_param->forward_reference_picture = ff_vaapi_get_surface_id(&s->last_picture.f);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user