mirror of
https://github.com/brunoherbelin/vimix.git
synced 2026-06-16 04:27:23 +02:00
Merge remote-tracking branch 'origin/beta'
This commit is contained in:
@@ -334,6 +334,8 @@ std::string VideoRecorder::init(GstCaps *caps)
|
||||
// This uploads system memory to GPU and does color conversion in GPU shader
|
||||
if (Settings::application.render.gpu_decoding &&
|
||||
(int) hardware_encoder.size() > 0 &&
|
||||
GstToolkit::has_feature("glupload") &&
|
||||
GstToolkit::has_feature("glcolorconvert") &&
|
||||
GstToolkit::has_feature(hardware_encoder[Settings::application.record.profile])) {
|
||||
// glupload: system memory → GLMemory (in GStreamer's thread)
|
||||
// glcolorconvert: GPU color conversion (RGBA → NV12 for VAAPI, passthrough for NVIDIA)
|
||||
|
||||
+11
-5
@@ -400,12 +400,18 @@ std::string VideoStreamer::init(GstCaps *caps)
|
||||
config != NetworkToolkit::stream_h264_send_pipeline.cend() && !found_harware_acceleration; ++config) {
|
||||
if ( GstToolkit::has_feature(config->first) ) {
|
||||
#ifdef USE_GST_OPENGL_SYNC_HANDLER
|
||||
description += "glupload ! glcolorconvert ! ";
|
||||
Log::Info("Video Streamer with glupload & GPU color conversion");
|
||||
if ( GstToolkit::has_feature("glupload") &&
|
||||
GstToolkit::has_feature("glcolorconvert") ) {
|
||||
description += "glupload ! glcolorconvert ! ";
|
||||
Log::Info("Video Streamer with glupload & GPU color conversion");
|
||||
}
|
||||
else
|
||||
#endif
|
||||
description += config->second;
|
||||
found_harware_acceleration = true;
|
||||
Log::Info("Video Streamer using hardware accelerated encoder (%s)", config->first.c_str());
|
||||
{
|
||||
description += config->second;
|
||||
found_harware_acceleration = true;
|
||||
Log::Info("Video Streamer using hardware accelerated encoder (%s)", config->first.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,9 +70,11 @@ bool VideoBroadcast::available()
|
||||
|
||||
if (!srt_sink_.empty())
|
||||
{
|
||||
if (Settings::application.render.gpu_decoding) {
|
||||
if (Settings::application.render.gpu_decoding &&
|
||||
GstToolkit::has_feature("glupload") &&
|
||||
GstToolkit::has_feature("glcolorconvert")) {
|
||||
for (auto config = srt_encoder_alternatives_.cbegin();
|
||||
config != srt_encoder_alternatives_.cend() && srt_encoder_.empty(); ++config) {
|
||||
config != srt_encoder_alternatives_.cend() && srt_encoder_.empty(); ++config) {
|
||||
if ( GstToolkit::has_feature(config->first) ) {
|
||||
srt_encoder_ = config->second;
|
||||
if (config->first != srt_encoder_alternatives_.back().first)
|
||||
|
||||
Reference in New Issue
Block a user