diff --git a/plugins/obs-ffmpeg/texture-amf.cpp b/plugins/obs-ffmpeg/texture-amf.cpp index 565b34c8f..3e0eaa448 100644 --- a/plugins/obs-ffmpeg/texture-amf.cpp +++ b/plugins/obs-ffmpeg/texture-amf.cpp @@ -1231,15 +1231,15 @@ static void *amf_avc_create_texencode(obs_data_t *settings, try { check_texture_encode_capability(encoder, false); - amf_texencode *enc = new amf_texencode; + std::unique_ptr enc = std::make_unique(); enc->encoder = encoder; enc->encoder_str = "texture-amf-h264"; - if (!amf_init_d3d11(enc)) + if (!amf_init_d3d11(enc.get())) throw "Failed to create D3D11"; - amf_avc_create_internal(enc, settings); - return enc; + amf_avc_create_internal(enc.get(), settings); + return enc.release(); } catch (const amf_error &err) { blog(LOG_ERROR, "[texture-amf-h264] %s: %s: %ls", __FUNCTION__, err.str, @@ -1254,12 +1254,12 @@ try { static void *amf_avc_create_fallback(obs_data_t *settings, obs_encoder_t *encoder) try { - amf_fallback *enc = new amf_fallback; + std::unique_ptr enc = std::make_unique(); enc->encoder = encoder; enc->encoder_str = "fallback-amf-h264"; - amf_avc_create_internal(enc, settings); - return enc; + amf_avc_create_internal(enc.get(), settings); + return enc.release(); } catch (const amf_error &err) { blog(LOG_ERROR, "[texture-amf-h264] %s: %s: %ls", __FUNCTION__, err.str, @@ -1541,15 +1541,15 @@ static void *amf_hevc_create_texencode(obs_data_t *settings, try { check_texture_encode_capability(encoder, true); - amf_texencode *enc = new amf_texencode; + std::unique_ptr enc = std::make_unique(); enc->encoder = encoder; enc->encoder_str = "texture-amf-h265"; - if (!amf_init_d3d11(enc)) + if (!amf_init_d3d11(enc.get())) throw "Failed to create D3D11"; - amf_hevc_create_internal(enc, settings); - return enc; + amf_hevc_create_internal(enc.get(), settings); + return enc.release(); } catch (const amf_error &err) { blog(LOG_ERROR, "[texture-amf-h265] %s: %s: %ls", __FUNCTION__, err.str, @@ -1564,12 +1564,12 @@ try { static void *amf_hevc_create_fallback(obs_data_t *settings, obs_encoder_t *encoder) try { - amf_fallback *enc = new amf_fallback; + std::unique_ptr enc = std::make_unique(); enc->encoder = encoder; enc->encoder_str = "fallback-amf-h265"; - amf_hevc_create_internal(enc, settings); - return enc; + amf_hevc_create_internal(enc.get(), settings); + return enc.release(); } catch (const amf_error &err) { blog(LOG_ERROR, "[texture-amf-h265] %s: %s: %ls", __FUNCTION__, err.str,