obs-ffmpeg: Fix leaks in AMF with unique_ptr
parent
3191c73e16
commit
690ba952de
|
@ -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<amf_texencode> enc = std::make_unique<amf_texencode>();
|
||||
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<amf_fallback> enc = std::make_unique<amf_fallback>();
|
||||
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<amf_texencode> enc = std::make_unique<amf_texencode>();
|
||||
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<amf_fallback> enc = std::make_unique<amf_fallback>();
|
||||
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,
|
||||
|
|
Loading…
Reference in New Issue