X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Fquicksync_encoder.cpp;h=0d9a796960c69cafb5ffb887154e03739a141567;hb=55ba5a58f987571030acd477a446497abf6dc6cc;hp=b5d7c2d9dccf428665c954b161a57e6f76c3570c;hpb=eeda8995329601f9f4e35047358400833eeae68e;p=nageru diff --git a/nageru/quicksync_encoder.cpp b/nageru/quicksync_encoder.cpp index b5d7c2d..0d9a796 100644 --- a/nageru/quicksync_encoder.cpp +++ b/nageru/quicksync_encoder.cpp @@ -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);