int ff_qsv_decode_close(QSVContext *q) { QSVFrame *cur = q->work_frames; while (cur) { q->work_frames = cur->next; av_frame_free(&cur->frame); av_freep(&cur); cur = q->work_frames; } av_fifo_free(q->async_fifo); q->async_fifo = NULL; av_fifo_free(q->input_fifo); q->input_fifo = NULL; MFXVideoDECODE_Close(q->session); q->session = NULL; ff_qsv_close_internal_session(&q->internal_qs); q->engine_ready = 0; return 0; }
int ff_qsv_decode_close(QSVContext *q) { QSVFrame *cur = q->work_frames; while (cur) { q->work_frames = cur->next; av_frame_free(&cur->frame); av_freep(&cur); cur = q->work_frames; } ff_qsv_close_internal_session(&q->internal_qs); return 0; }
int ff_qsv_decode_close(QSVContext *q) { close_decoder(q); q->session = NULL; ff_qsv_close_internal_session(&q->internal_qs); av_fifo_free(q->async_fifo); q->async_fifo = NULL; av_fifo_free(q->input_fifo); q->input_fifo = NULL; av_fifo_free(q->pkt_fifo); q->pkt_fifo = NULL; return 0; }