提交 966b4d97 编写于 作者: P Palana

coreaudio-encoder: Make bitrate enumeration samplerate-aware

上级 15a32530
...@@ -1036,7 +1036,8 @@ static void aac_defaults(obs_data_t *settings) ...@@ -1036,7 +1036,8 @@ static void aac_defaults(obs_data_t *settings)
obs_data_set_default_bool(settings, "allow he-aac", true); obs_data_set_default_bool(settings, "allow he-aac", true);
} }
static vector<UInt32> get_bitrates(DStr &log, ca_encoder *ca) static vector<UInt32> get_bitrates(DStr &log, ca_encoder *ca,
Float64 samplerate)
{ {
vector<UInt32> bitrates; vector<UInt32> bitrates;
...@@ -1068,12 +1069,14 @@ static vector<UInt32> get_bitrates(DStr &log, ca_encoder *ca) ...@@ -1068,12 +1069,14 @@ static vector<UInt32> get_bitrates(DStr &log, ca_encoder *ca)
}; };
for (UInt32 format_id : (ca ? *ca->allowed_formats : aac_formats)) { for (UInt32 format_id : (ca ? *ca->allowed_formats : aac_formats)) {
log_to_dstr(log, ca, "Trying %s (0x%x)\n", log_to_dstr(log, ca, "Trying %s (0x%x) at %g hz\n",
format_id_to_str(format_id), format_id_to_str(format_id),
static_cast<uint32_t>(format_id)); static_cast<uint32_t>(format_id),
samplerate);
auto out = get_default_out_asbd_builder() auto out = get_default_out_asbd_builder()
.format_id(format_id) .format_id(format_id)
.sample_rate(samplerate)
.asbd; .asbd;
auto converter = get_converter(log, ca, out); auto converter = get_converter(log, ca, out);
...@@ -1085,11 +1088,12 @@ static vector<UInt32> get_bitrates(DStr &log, ca_encoder *ca) ...@@ -1085,11 +1088,12 @@ static vector<UInt32> get_bitrates(DStr &log, ca_encoder *ca)
return bitrates; return bitrates;
} }
static void add_bitrates(obs_property_t *prop, ca_encoder *ca) static void add_bitrates(obs_property_t *prop, ca_encoder *ca,
Float64 samplerate=44100.)
{ {
DStr log; DStr log;
auto bitrates = get_bitrates(log, ca); auto bitrates = get_bitrates(log, ca, samplerate);
if (!bitrates.size()) { if (!bitrates.size()) {
CA_CO_DLOG_(LOG_ERROR, "Couldn't find available bitrates"); CA_CO_DLOG_(LOG_ERROR, "Couldn't find available bitrates");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册