@ -51,7 +51,7 @@ static void fill_picture_parameters(struct dxva_context *ctx, const H264Context
memset ( pp , 0 , sizeof ( * pp ) ) ;
memset ( pp , 0 , sizeof ( * pp ) ) ;
/* Configure current picture */
/* Configure current picture */
fill_picture_entry ( & pp - > CurrPic ,
fill_picture_entry ( & pp - > CurrPic ,
ff_dxva2_get_surface_index ( ctx , current_picture ) ,
ff_dxva2_get_surface_index ( ctx , & current_picture - > f ) ,
h - > picture_structure = = PICT_BOTTOM_FIELD ) ;
h - > picture_structure = = PICT_BOTTOM_FIELD ) ;
/* Configure the set of references */
/* Configure the set of references */
pp - > UsedForReferenceFlags = 0 ;
pp - > UsedForReferenceFlags = 0 ;
@ -67,7 +67,7 @@ static void fill_picture_parameters(struct dxva_context *ctx, const H264Context
}
}
if ( r ) {
if ( r ) {
fill_picture_entry ( & pp - > RefFrameList [ i ] ,
fill_picture_entry ( & pp - > RefFrameList [ i ] ,
ff_dxva2_get_surface_index ( ctx , r ) ,
ff_dxva2_get_surface_index ( ctx , & r - > f ) ,
r - > long_ref ! = 0 ) ;
r - > long_ref ! = 0 ) ;
if ( ( r - > reference & PICT_TOP_FIELD ) & & r - > field_poc [ 0 ] ! = INT_MAX )
if ( ( r - > reference & PICT_TOP_FIELD ) & & r - > field_poc [ 0 ] ! = INT_MAX )
@ -230,7 +230,7 @@ static void fill_slice_long(AVCodecContext *avctx, DXVA_Slice_H264_Long *slice,
const H264Picture * r = & h - > ref_list [ list ] [ i ] ;
const H264Picture * r = & h - > ref_list [ list ] [ i ] ;
unsigned plane ;
unsigned plane ;
fill_picture_entry ( & slice - > RefPicList [ list ] [ i ] ,
fill_picture_entry ( & slice - > RefPicList [ list ] [ i ] ,
ff_dxva2_get_surface_index ( ctx , r ) ,
ff_dxva2_get_surface_index ( ctx , & r - > f ) ,
r - > reference = = PICT_BOTTOM_FIELD ) ;
r - > reference = = PICT_BOTTOM_FIELD ) ;
for ( plane = 0 ; plane < 3 ; plane + + ) {
for ( plane = 0 ; plane < 3 ; plane + + ) {
int w , o ;
int w , o ;
@ -432,7 +432,7 @@ static int dxva2_h264_end_frame(AVCodecContext *avctx)
if ( ctx_pic - > slice_count < = 0 | | ctx_pic - > bitstream_size < = 0 )
if ( ctx_pic - > slice_count < = 0 | | ctx_pic - > bitstream_size < = 0 )
return - 1 ;
return - 1 ;
ret = ff_dxva2_common_end_frame ( avctx , h - > cur_pic_ptr ,
ret = ff_dxva2_common_end_frame ( avctx , & h - > cur_pic_ptr - > f ,
& ctx_pic - > pp , sizeof ( ctx_pic - > pp ) ,
& ctx_pic - > pp , sizeof ( ctx_pic - > pp ) ,
& ctx_pic - > qm , sizeof ( ctx_pic - > qm ) ,
& ctx_pic - > qm , sizeof ( ctx_pic - > qm ) ,
commit_bitstream_and_slice_buffer ) ;
commit_bitstream_and_slice_buffer ) ;