- // We use Matroska, because it's pretty much the only mux where FFmpeg
- // allows writing chroma location to override JFIF's default center placement.
- // (Note that at the time of writing, however, FFmpeg does not correctly
- // _read_ this information!)
- avctx->oformat = av_guess_format("matroska", nullptr, nullptr);
+ for (const unique_ptr<InterpolatedFrameResources> &resource : interpolate_resources) {
+ glUnmapNamedBuffer(resource->pbo);
+ check_error();
+ glDeleteBuffers(1, &resource->pbo);
+ check_error();
+ glDeleteFramebuffers(2, resource->input_fbos);
+ check_error();
+ glDeleteFramebuffers(1, &resource->fade_fbo);
+ check_error();
+ glDeleteTextures(1, &resource->input_tex);
+ check_error();
+ glDeleteTextures(1, &resource->gray_tex);
+ check_error();
+ glDeleteTextures(1, &resource->fade_y_output_tex);
+ check_error();
+ glDeleteTextures(1, &resource->fade_cbcr_output_tex);
+ check_error();
+ glDeleteTextures(1, &resource->cb_tex);
+ check_error();
+ glDeleteTextures(1, &resource->cr_tex);
+ check_error();
+ }
+ assert(interpolate_resources.size() == num_interpolate_slots);
+}