UI: Add support for other codecs

This changes the logic to show all encoders in the Recording tab but
only show selected supported codecs in the Streaming tab (at least with
Advanced Output Mode).  The only (to my knowledge) streaming format that
supports other formats than H264 is WebRTC, which in theory should
support H264, VP8, VP9 and HEVC.  However I don't know about any ingest
server that works well with it yet.

Closes jp9000/obs-studio#794
This commit is contained in:
Michael Fabian Dirks 2017-02-09 02:54:19 +01:00 committed by jp9000
parent ed6507ffcf
commit 6539bacc4e

View File

@ -695,15 +695,28 @@ void OBSBasicSettings::LoadEncoderTypes()
const char *codec = obs_get_encoder_codec(type);
uint32_t caps = obs_get_encoder_caps(type);
if (strcmp(codec, "h264") != 0)
if (obs_get_encoder_type(type) != OBS_ENCODER_VIDEO)
continue;
const char* streaming_codecs[] = {
"h264",
//"hevc",
};
bool is_streaming_codec = false;
for (const char* test_codec : streaming_codecs) {
if (strcmp(codec, test_codec) == 0) {
is_streaming_codec = true;
break;
}
}
if ((caps & OBS_ENCODER_CAP_DEPRECATED) != 0)
continue;
QString qName = QT_UTF8(name);
QString qType = QT_UTF8(type);
ui->advOutEncoder->addItem(qName, qType);
if (is_streaming_codec)
ui->advOutEncoder->addItem(qName, qType);
ui->advOutRecEncoder->addItem(qName, qType);
}
}