Merge commit '3ee462dca1038e63b8e8d5e751121736d5772a5d'
* commit '3ee462dca1038e63b8e8d5e751121736d5772a5d': examples/qsvdec: do not free the surfaces in the frame_free() callback Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
		
						commit
						d0a1605134
					
				@ -116,15 +116,6 @@ fail:
 | 
			
		||||
 | 
			
		||||
static mfxStatus frame_free(mfxHDL pthis, mfxFrameAllocResponse *resp)
 | 
			
		||||
{
 | 
			
		||||
    DecodeContext *decode = pthis;
 | 
			
		||||
 | 
			
		||||
    if (decode->surfaces)
 | 
			
		||||
        vaDestroySurfaces(decode->va_dpy, decode->surfaces, decode->nb_surfaces);
 | 
			
		||||
    av_freep(&decode->surfaces);
 | 
			
		||||
    av_freep(&decode->surface_ids);
 | 
			
		||||
    av_freep(&decode->surface_used);
 | 
			
		||||
    decode->nb_surfaces = 0;
 | 
			
		||||
 | 
			
		||||
    return MFX_ERR_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -144,6 +135,16 @@ static mfxStatus frame_get_hdl(mfxHDL pthis, mfxMemId mid, mfxHDL *hdl)
 | 
			
		||||
    return MFX_ERR_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void free_surfaces(DecodeContext *decode)
 | 
			
		||||
{
 | 
			
		||||
    if (decode->surfaces)
 | 
			
		||||
        vaDestroySurfaces(decode->va_dpy, decode->surfaces, decode->nb_surfaces);
 | 
			
		||||
    av_freep(&decode->surfaces);
 | 
			
		||||
    av_freep(&decode->surface_ids);
 | 
			
		||||
    av_freep(&decode->surface_used);
 | 
			
		||||
    decode->nb_surfaces = 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void free_buffer(void *opaque, uint8_t *data)
 | 
			
		||||
{
 | 
			
		||||
    int *used = opaque;
 | 
			
		||||
@ -467,6 +468,8 @@ finish:
 | 
			
		||||
 | 
			
		||||
    av_frame_free(&frame);
 | 
			
		||||
 | 
			
		||||
    free_surfaces(&decode);
 | 
			
		||||
 | 
			
		||||
    if (decode.mfx_session)
 | 
			
		||||
        MFXClose(decode.mfx_session);
 | 
			
		||||
    if (decode.va_dpy)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user