mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-28 17:42:28 +08:00
plugins: Apply multitrack dynamic bitrate flag
Enable the `OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE` capability on the encoders that support it.
This commit is contained in:
committed by
Ryan Foster
parent
edbe74b2b5
commit
0943ea2cf6
@@ -1447,7 +1447,7 @@ void obs_module_post_load(void)
|
||||
.get_defaults2 = vt_defaults,
|
||||
.get_extra_data = vt_extra_data,
|
||||
.free_type_data = vt_free_type_data,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE,
|
||||
};
|
||||
|
||||
da_init(vt_prores_hardware_encoder_list);
|
||||
|
||||
@@ -1758,12 +1758,14 @@ static void register_avc()
|
||||
amf_encoder_info.get_defaults = amf_avc_defaults;
|
||||
amf_encoder_info.get_properties = amf_avc_properties;
|
||||
amf_encoder_info.get_extra_data = amf_extra_data;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
|
||||
obs_register_encoder(&amf_encoder_info);
|
||||
|
||||
amf_encoder_info.id = "h264_fallback_amf";
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_INTERNAL | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_INTERNAL | OBS_ENCODER_CAP_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.encode_texture = nullptr;
|
||||
amf_encoder_info.create = amf_avc_create_fallback;
|
||||
amf_encoder_info.encode = amf_encode_fallback;
|
||||
@@ -2160,12 +2162,14 @@ static void register_hevc()
|
||||
amf_encoder_info.get_defaults = amf_hevc_defaults;
|
||||
amf_encoder_info.get_properties = amf_hevc_properties;
|
||||
amf_encoder_info.get_extra_data = amf_extra_data;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
|
||||
obs_register_encoder(&amf_encoder_info);
|
||||
|
||||
amf_encoder_info.id = "h265_fallback_amf";
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_INTERNAL | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_INTERNAL | OBS_ENCODER_CAP_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.encode_texture = nullptr;
|
||||
amf_encoder_info.create = amf_hevc_create_fallback;
|
||||
amf_encoder_info.encode = amf_encode_fallback;
|
||||
@@ -2576,12 +2580,14 @@ static void register_av1()
|
||||
amf_encoder_info.get_defaults = amf_av1_defaults;
|
||||
amf_encoder_info.get_properties = amf_av1_properties;
|
||||
amf_encoder_info.get_extra_data = amf_extra_data;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
|
||||
obs_register_encoder(&amf_encoder_info);
|
||||
|
||||
amf_encoder_info.id = "av1_fallback_amf";
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_INTERNAL | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.caps = OBS_ENCODER_CAP_INTERNAL | OBS_ENCODER_CAP_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI;
|
||||
amf_encoder_info.encode_texture = nullptr;
|
||||
amf_encoder_info.create = amf_av1_create_fallback;
|
||||
amf_encoder_info.encode = amf_encode_fallback;
|
||||
|
||||
@@ -299,8 +299,8 @@ struct obs_encoder_info compat_h264_nvenc_info = {
|
||||
.id = "jim_nvenc",
|
||||
.codec = "h264",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_DEPRECATED,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_DEPRECATED,
|
||||
.get_name = h264_nvenc_get_name,
|
||||
.create = h264_nvenc_create,
|
||||
.destroy = fake_nvenc_destroy,
|
||||
@@ -314,8 +314,8 @@ struct obs_encoder_info compat_hevc_nvenc_info = {
|
||||
.id = "jim_hevc_nvenc",
|
||||
.codec = "hevc",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_DEPRECATED,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_DEPRECATED,
|
||||
.get_name = hevc_nvenc_get_name,
|
||||
.create = hevc_nvenc_create,
|
||||
.destroy = fake_nvenc_destroy,
|
||||
@@ -329,8 +329,8 @@ struct obs_encoder_info compat_av1_nvenc_info = {
|
||||
.id = "jim_av1_nvenc",
|
||||
.codec = "av1",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_DEPRECATED,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_DEPRECATED,
|
||||
.get_name = av1_nvenc_get_name,
|
||||
.create = av1_nvenc_create,
|
||||
.destroy = fake_nvenc_destroy,
|
||||
@@ -343,7 +343,8 @@ struct obs_encoder_info compat_h264_nvenc_soft_info = {
|
||||
.id = "obs_nvenc_h264_cuda",
|
||||
.codec = "h264",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_DEPRECATED,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_DEPRECATED,
|
||||
.get_name = h264_nvenc_get_name,
|
||||
.create = h264_nvenc_soft_create,
|
||||
.destroy = fake_nvenc_destroy,
|
||||
@@ -357,7 +358,8 @@ struct obs_encoder_info compat_hevc_nvenc_soft_info = {
|
||||
.id = "obs_nvenc_hevc_cuda",
|
||||
.codec = "hevc",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_DEPRECATED,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_DEPRECATED,
|
||||
.get_name = hevc_nvenc_get_name,
|
||||
.create = hevc_nvenc_soft_create,
|
||||
.destroy = fake_nvenc_destroy,
|
||||
@@ -371,7 +373,8 @@ struct obs_encoder_info compat_av1_nvenc_soft_info = {
|
||||
.id = "obs_nvenc_av1_cuda",
|
||||
.codec = "av1",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_DEPRECATED,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_DEPRECATED,
|
||||
.get_name = av1_nvenc_get_name,
|
||||
.create = av1_nvenc_soft_create,
|
||||
.destroy = fake_nvenc_destroy,
|
||||
|
||||
@@ -1395,7 +1395,8 @@ struct obs_encoder_info h264_nvenc_info = {
|
||||
.id = "obs_nvenc_h264_tex",
|
||||
.codec = "h264",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_ROI,
|
||||
.get_name = h264_nvenc_get_name,
|
||||
.create = h264_nvenc_create,
|
||||
.destroy = nvenc_destroy,
|
||||
@@ -1416,7 +1417,8 @@ struct obs_encoder_info hevc_nvenc_info = {
|
||||
.id = "obs_nvenc_hevc_tex",
|
||||
.codec = "hevc",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_ROI,
|
||||
.get_name = hevc_nvenc_get_name,
|
||||
.create = hevc_nvenc_create,
|
||||
.destroy = nvenc_destroy,
|
||||
@@ -1437,7 +1439,8 @@ struct obs_encoder_info av1_nvenc_info = {
|
||||
.id = "obs_nvenc_av1_tex",
|
||||
.codec = "av1",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI,
|
||||
.caps = OBS_ENCODER_CAP_PASS_TEXTURE | OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE |
|
||||
OBS_ENCODER_CAP_ROI,
|
||||
.get_name = av1_nvenc_get_name,
|
||||
.create = av1_nvenc_create,
|
||||
.destroy = nvenc_destroy,
|
||||
@@ -1456,7 +1459,8 @@ struct obs_encoder_info h264_nvenc_soft_info = {
|
||||
.id = "obs_nvenc_h264_soft",
|
||||
.codec = "h264",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_INTERNAL,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_INTERNAL,
|
||||
.get_name = h264_nvenc_soft_get_name,
|
||||
.create = h264_nvenc_soft_create,
|
||||
.destroy = nvenc_destroy,
|
||||
@@ -1474,7 +1478,8 @@ struct obs_encoder_info hevc_nvenc_soft_info = {
|
||||
.id = "obs_nvenc_hevc_soft",
|
||||
.codec = "hevc",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_INTERNAL,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_INTERNAL,
|
||||
.get_name = hevc_nvenc_soft_get_name,
|
||||
.create = hevc_nvenc_soft_create,
|
||||
.destroy = nvenc_destroy,
|
||||
@@ -1492,7 +1497,8 @@ struct obs_encoder_info av1_nvenc_soft_info = {
|
||||
.id = "obs_nvenc_av1_soft",
|
||||
.codec = "av1",
|
||||
.type = OBS_ENCODER_VIDEO,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_ROI | OBS_ENCODER_CAP_INTERNAL,
|
||||
.caps = OBS_ENCODER_CAP_DYN_BITRATE | OBS_ENCODER_CAP_MULTITRACK_DYN_BITRATE | OBS_ENCODER_CAP_ROI |
|
||||
OBS_ENCODER_CAP_INTERNAL,
|
||||
.get_name = av1_nvenc_soft_get_name,
|
||||
.create = av1_nvenc_soft_create,
|
||||
.destroy = nvenc_destroy,
|
||||
|
||||
Reference in New Issue
Block a user