]> git.sesse.net Git - nageru/blobdiff - nageru/quicksync_encoder.cpp
When exporting interpolated files, make sure they are seekable.
[nageru] / nageru / quicksync_encoder.cpp
index b5d7c2d9dccf428665c954b161a57e6f76c3570c..0d9a796960c69cafb5ffb887154e03739a141567 100644 (file)
@@ -1481,13 +1481,18 @@ void QuickSyncEncoderImpl::storage_task_thread()
 void QuickSyncEncoderImpl::release_encode()
 {
        for (unsigned i = 0; i < SURFACE_NUM; i++) {
-               vaDestroyBuffer(va_dpy->va_dpy, gl_surfaces[i].coded_buf);
-               vaDestroySurfaces(va_dpy->va_dpy, &gl_surfaces[i].src_surface, 1);
-               vaDestroySurfaces(va_dpy->va_dpy, &gl_surfaces[i].ref_surface, 1);
+               VAStatus va_status = vaDestroyBuffer(va_dpy->va_dpy, gl_surfaces[i].coded_buf);
+               CHECK_VASTATUS(va_status, "vaDestroyBuffer");
+               va_status = vaDestroySurfaces(va_dpy->va_dpy, &gl_surfaces[i].src_surface, 1);
+               CHECK_VASTATUS(va_status, "vaDestroySurfaces");
+               va_status = vaDestroySurfaces(va_dpy->va_dpy, &gl_surfaces[i].ref_surface, 1);
+               CHECK_VASTATUS(va_status, "vaDestroySurfaces");
        }
 
-       vaDestroyContext(va_dpy->va_dpy, context_id);
-       vaDestroyConfig(va_dpy->va_dpy, config_id);
+       VAStatus va_status = vaDestroyContext(va_dpy->va_dpy, context_id);
+       CHECK_VASTATUS(va_status, "vaDestroyContext");
+       va_status = vaDestroyConfig(va_dpy->va_dpy, config_id);
+       CHECK_VASTATUS(va_status, "vaDestroyConfig");
 }
 
 void QuickSyncEncoderImpl::release_gl_resources()
@@ -1792,8 +1797,7 @@ void QuickSyncEncoderImpl::open_output_file(const std::string &filename)
 {
        AVFormatContext *avctx = avformat_alloc_context();
        avctx->oformat = av_guess_format(NULL, filename.c_str(), NULL);
-       assert(filename.size() < sizeof(avctx->filename) - 1);
-       strcpy(avctx->filename, filename.c_str());
+       avctx->url = strdup(filename.c_str());
 
        string url = "file:" + filename;
        int ret = avio_open2(&avctx->pb, url.c_str(), AVIO_FLAG_WRITE, &avctx->interrupt_callback, NULL);