@ -321,6 +321,7 @@ int av_hwframe_transfer_get_formats(AVBufferRef *hwframe_ref,
static int transfer_data_alloc ( AVFrame * dst , const AVFrame * src , int flags )
static int transfer_data_alloc ( AVFrame * dst , const AVFrame * src , int flags )
{
{
AVHWFramesContext * ctx = ( AVHWFramesContext * ) src - > hw_frames_ctx - > data ;
AVFrame * frame_tmp ;
AVFrame * frame_tmp ;
int ret = 0 ;
int ret = 0 ;
@ -343,8 +344,8 @@ static int transfer_data_alloc(AVFrame *dst, const AVFrame *src, int flags)
frame_tmp - > format = formats [ 0 ] ;
frame_tmp - > format = formats [ 0 ] ;
av_freep ( & formats ) ;
av_freep ( & formats ) ;
}
}
frame_tmp - > width = sr c- > width ;
frame_tmp - > width = ctx - > width ;
frame_tmp - > height = sr c- > height ;
frame_tmp - > height = ctx - > height ;
ret = av_frame_get_buffer ( frame_tmp , 32 ) ;
ret = av_frame_get_buffer ( frame_tmp , 32 ) ;
if ( ret < 0 )
if ( ret < 0 )
@ -354,6 +355,9 @@ static int transfer_data_alloc(AVFrame *dst, const AVFrame *src, int flags)
if ( ret < 0 )
if ( ret < 0 )
goto fail ;
goto fail ;
frame_tmp - > width = src - > width ;
frame_tmp - > height = src - > height ;
av_frame_move_ref ( dst , frame_tmp ) ;
av_frame_move_ref ( dst , frame_tmp ) ;
fail :
fail :