| 823 | } |
| 824 | |
| 825 | static av_cold int encode_close(AVCodecContext *avctx) |
| 826 | { |
| 827 | ProresVulkanContext *pv = avctx->priv_data; |
| 828 | ProresContext *ctx = &pv->ctx; |
| 829 | FFVulkanContext *vkctx = &pv->vkctx; |
| 830 | |
| 831 | ff_vk_exec_pool_free(vkctx, &pv->e); |
| 832 | ff_vk_exec_pool_free(vkctx, &pv->transfer_exec_pool); |
| 833 | |
| 834 | if (ctx->alpha_bits) |
| 835 | ff_vk_shader_free(vkctx, &pv->alpha_data_shd); |
| 836 | |
| 837 | ff_vk_shader_free(vkctx, &pv->slice_data_shd[0]); |
| 838 | ff_vk_shader_free(vkctx, &pv->slice_data_shd[1]); |
| 839 | ff_vk_shader_free(vkctx, &pv->estimate_slice_shd); |
| 840 | ff_vk_shader_free(vkctx, &pv->encode_slice_shd); |
| 841 | ff_vk_shader_free(vkctx, &pv->trellis_node_shd); |
| 842 | |
| 843 | ff_vk_free_buf(vkctx, &pv->prores_data_tables_buf); |
| 844 | |
| 845 | av_buffer_pool_uninit(&pv->pkt_buf_pool); |
| 846 | av_buffer_pool_uninit(&pv->slice_data_buf_pool); |
| 847 | av_buffer_pool_uninit(&pv->slice_score_buf_pool); |
| 848 | av_buffer_pool_uninit(&pv->frame_size_buf_pool); |
| 849 | |
| 850 | ff_vk_uninit(vkctx); |
| 851 | |
| 852 | return 0; |
| 853 | } |
| 854 | |
| 855 | static av_cold int encode_init(AVCodecContext *avctx) |
| 856 | { |
nothing calls this directly
no test coverage detected