Initial import to Fedora
This commit is contained in:
parent
787748d587
commit
9e1adc41be
|
@ -0,0 +1 @@
|
|||
/*.tar.gz
|
|
@ -0,0 +1,104 @@
|
|||
From 04d3a21c6e72cd5574f7333adf548012d912c1ee Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Sat, 7 Jan 2023 23:15:13 -0500
|
||||
Subject: [PATCH 1/3] UI: Consistently reference the software H264 encoder
|
||||
properly
|
||||
|
||||
The code here assumes that the only software encoder is the x264-based
|
||||
H.264 encoder. That may not always remain true. This change adjusts
|
||||
the encoder string to indicate that it's an H.264 encoder from x264.
|
||||
---
|
||||
UI/data/locale/en-US.ini | 4 ++--
|
||||
UI/window-basic-auto-config-test.cpp | 6 +++---
|
||||
UI/window-basic-settings-stream.cpp | 2 +-
|
||||
UI/window-basic-settings.cpp | 7 ++++---
|
||||
4 files changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
|
||||
index 4c03aa7db..e44d99660 100644
|
||||
--- a/UI/data/locale/en-US.ini
|
||||
+++ b/UI/data/locale/en-US.ini
|
||||
@@ -980,7 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
|
||||
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
|
||||
-Basic.Settings.Output.Simple.Encoder.Software="Software (x264)"
|
||||
+Basic.Settings.Output.Simple.Encoder.Software.X264.H264="Software (x264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.AMD.H264="Hardware (AMD, H.264)"
|
||||
@@ -991,7 +991,7 @@ Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.AV1="Hardware (NVENC, AV1)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.NVENC.HEVC="Hardware (NVENC, HEVC)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.H264="Hardware (Apple, H.264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.Apple.HEVC="Hardware (Apple, HEVC)"
|
||||
-Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU="Software (x264 low CPU usage preset, increases file size)"
|
||||
+Basic.Settings.Output.Simple.Encoder.SoftwareLowCPU.X264.H264="Software (x264 low CPU usage preset, increases file size)"
|
||||
Basic.Settings.Output.Simple.Codec.AAC="AAC"
|
||||
Basic.Settings.Output.Simple.Codec.AAC.Default="AAC (Default)"
|
||||
Basic.Settings.Output.Simple.Codec.Opus="Opus"
|
||||
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
|
||||
index 2d89d7347..09979c031 100644
|
||||
--- a/UI/window-basic-auto-config-test.cpp
|
||||
+++ b/UI/window-basic-auto-config-test.cpp
|
||||
@@ -993,7 +993,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
|
||||
}
|
||||
|
||||
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
|
||||
-#define ENCODER_SOFTWARE ENCODER_TEXT("Software")
|
||||
+#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264")
|
||||
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
|
||||
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
|
||||
#define ENCODER_AMD ENCODER_TEXT("Hardware.AMD.H264")
|
||||
@@ -1033,7 +1033,7 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
auto encName = [](AutoConfig::Encoder enc) -> QString {
|
||||
switch (enc) {
|
||||
case AutoConfig::Encoder::x264:
|
||||
- return QTStr(ENCODER_SOFTWARE);
|
||||
+ return QTStr(ENCODER_X264);
|
||||
case AutoConfig::Encoder::NVENC:
|
||||
return QTStr(ENCODER_NVENC);
|
||||
case AutoConfig::Encoder::QSV:
|
||||
@@ -1046,7 +1046,7 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
return QTStr(QUALITY_SAME);
|
||||
}
|
||||
|
||||
- return QTStr(ENCODER_SOFTWARE);
|
||||
+ return QTStr(ENCODER_X264);
|
||||
};
|
||||
|
||||
auto newLabel = [this](const char *str) -> QLabel * {
|
||||
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
|
||||
index f6e0817a0..b056938e7 100644
|
||||
--- a/UI/window-basic-settings-stream.cpp
|
||||
+++ b/UI/window-basic-settings-stream.cpp
|
||||
@@ -1585,7 +1585,7 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
|
||||
|
||||
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
|
||||
|
||||
- ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software"),
|
||||
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
QString(SIMPLE_ENCODER_X264));
|
||||
if (service_supports_encoder(vcodecs, "obs_qsv11"))
|
||||
ui->simpleOutStrEncoder->addItem(
|
||||
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
|
||||
index fb170bfc1..48bb4bac6 100644
|
||||
--- a/UI/window-basic-settings.cpp
|
||||
+++ b/UI/window-basic-settings.cpp
|
||||
@@ -5286,10 +5286,11 @@ void OBSBasicSettings::FillSimpleRecordingValues()
|
||||
ADD_QUALITY("HQ");
|
||||
ADD_QUALITY("Lossless");
|
||||
|
||||
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software"),
|
||||
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
QString(SIMPLE_ENCODER_X264));
|
||||
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("SoftwareLowCPU"),
|
||||
- QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
+ ui->simpleOutRecEncoder->addItem(
|
||||
+ ENCODER_STR("SoftwareLowCPU.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
if (EncoderAvailable("obs_qsv11"))
|
||||
ui->simpleOutRecEncoder->addItem(
|
||||
ENCODER_STR("Hardware.QSV.H264"),
|
||||
--
|
||||
2.39.2
|
||||
|
|
@ -0,0 +1,346 @@
|
|||
From 4517d8d8bb4c43af1f5b757773a5f9550bd23d37 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Sun, 26 Mar 2023 06:06:31 -0400
|
||||
Subject: [PATCH 2/3] obs-ffmpeg: Add initial support for the OpenH264 H.264
|
||||
software codec
|
||||
|
||||
This allows users to leverage the OpenH264 codec from Cisco to encode
|
||||
H.264 video content. It is significantly reduced in capability from
|
||||
alternatives, but it does the job.
|
||||
|
||||
This also provides a framework for adding support for other H.264
|
||||
software codecs provided through FFmpeg.
|
||||
---
|
||||
plugins/obs-ffmpeg/CMakeLists.txt | 1 +
|
||||
plugins/obs-ffmpeg/cmake/legacy.cmake | 1 +
|
||||
plugins/obs-ffmpeg/data/locale/en-US.ini | 3 +
|
||||
plugins/obs-ffmpeg/obs-ffmpeg-h264.c | 260 +++++++++++++++++++++++
|
||||
plugins/obs-ffmpeg/obs-ffmpeg.c | 2 +
|
||||
5 files changed, 267 insertions(+)
|
||||
create mode 100644 plugins/obs-ffmpeg/obs-ffmpeg-h264.c
|
||||
|
||||
diff --git a/plugins/obs-ffmpeg/CMakeLists.txt b/plugins/obs-ffmpeg/CMakeLists.txt
|
||||
index 3eba00932..f97622c22 100644
|
||||
--- a/plugins/obs-ffmpeg/CMakeLists.txt
|
||||
+++ b/plugins/obs-ffmpeg/CMakeLists.txt
|
||||
@@ -34,6 +34,7 @@ target_sources(
|
||||
obs-ffmpeg-video-encoders.c
|
||||
obs-ffmpeg-audio-encoders.c
|
||||
obs-ffmpeg-av1.c
|
||||
+ obs-ffmpeg-h264.c
|
||||
obs-ffmpeg-nvenc.c
|
||||
obs-ffmpeg-output.c
|
||||
obs-ffmpeg-mux.c
|
||||
diff --git a/plugins/obs-ffmpeg/cmake/legacy.cmake b/plugins/obs-ffmpeg/cmake/legacy.cmake
|
||||
index 5540676ea..62f2cc7a1 100644
|
||||
--- a/plugins/obs-ffmpeg/cmake/legacy.cmake
|
||||
+++ b/plugins/obs-ffmpeg/cmake/legacy.cmake
|
||||
@@ -40,6 +40,7 @@ target_sources(
|
||||
obs-ffmpeg-video-encoders.c
|
||||
obs-ffmpeg-audio-encoders.c
|
||||
obs-ffmpeg-av1.c
|
||||
+ obs-ffmpeg-h264.c
|
||||
obs-ffmpeg-nvenc.c
|
||||
obs-ffmpeg-output.c
|
||||
obs-ffmpeg-mux.c
|
||||
diff --git a/plugins/obs-ffmpeg/data/locale/en-US.ini b/plugins/obs-ffmpeg/data/locale/en-US.ini
|
||||
index 55bbe919d..0363ed82b 100644
|
||||
--- a/plugins/obs-ffmpeg/data/locale/en-US.ini
|
||||
+++ b/plugins/obs-ffmpeg/data/locale/en-US.ini
|
||||
@@ -109,4 +109,7 @@ NVENC.CheckDrivers="Try installing the latest <a href=\"https://obsproject.com/g
|
||||
|
||||
AV1.8bitUnsupportedHdr="OBS does not support 8-bit output of Rec. 2100."
|
||||
|
||||
+H264.UnsupportedVideoFormat="Only video formats using 8-bit color are supported."
|
||||
+H264.UnsupportedColorSpace="Only the Rec. 709 color space is supported."
|
||||
+
|
||||
ReconnectDelayTime="Reconnect Delay"
|
||||
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-h264.c b/plugins/obs-ffmpeg/obs-ffmpeg-h264.c
|
||||
new file mode 100644
|
||||
index 000000000..179a61ccf
|
||||
--- /dev/null
|
||||
+++ b/plugins/obs-ffmpeg/obs-ffmpeg-h264.c
|
||||
@@ -0,0 +1,260 @@
|
||||
+/******************************************************************************
|
||||
+ Copyright (C) 2023 by Neal Gompa <neal@gompa.dev>
|
||||
+ Partly derived from obs-ffmpeg-av1.c by Hugh Bailey <obs.jim@gmail.com>
|
||||
+
|
||||
+ This program is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 2 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+******************************************************************************/
|
||||
+
|
||||
+#include "obs-ffmpeg-video-encoders.h"
|
||||
+
|
||||
+#define do_log(level, format, ...) \
|
||||
+ blog(level, "[H.264 encoder: '%s'] " format, \
|
||||
+ obs_encoder_get_name(enc->ffve.encoder), ##__VA_ARGS__)
|
||||
+
|
||||
+#define error(format, ...) do_log(LOG_ERROR, format, ##__VA_ARGS__)
|
||||
+#define warn(format, ...) do_log(LOG_WARNING, format, ##__VA_ARGS__)
|
||||
+#define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__)
|
||||
+#define debug(format, ...) do_log(LOG_DEBUG, format, ##__VA_ARGS__)
|
||||
+
|
||||
+enum h264_encoder_type {
|
||||
+ H264_ENCODER_TYPE_OH264,
|
||||
+};
|
||||
+
|
||||
+struct h264_encoder {
|
||||
+ struct ffmpeg_video_encoder ffve;
|
||||
+ enum h264_encoder_type type;
|
||||
+
|
||||
+ DARRAY(uint8_t) header;
|
||||
+};
|
||||
+
|
||||
+static const char *oh264_getname(void *unused)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(unused);
|
||||
+ return "OpenH264";
|
||||
+}
|
||||
+
|
||||
+static void h264_video_info(void *data, struct video_scale_info *info)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(data);
|
||||
+
|
||||
+ // OpenH264 only supports I420
|
||||
+ info->format = VIDEO_FORMAT_I420;
|
||||
+}
|
||||
+
|
||||
+static bool h264_update(struct h264_encoder *enc, obs_data_t *settings)
|
||||
+{
|
||||
+ const char *profile = obs_data_get_string(settings, "profile");
|
||||
+ int bitrate = (int)obs_data_get_int(settings, "bitrate");
|
||||
+ int keyint_sec = 0; // This is not supported by OpenH264
|
||||
+ const char *rc_mode = "quality"; // We only want to use quality mode
|
||||
+ int allow_skip_frames = 1; // This is required for quality mode
|
||||
+
|
||||
+ video_t *video = obs_encoder_video(enc->ffve.encoder);
|
||||
+ const struct video_output_info *voi = video_output_get_info(video);
|
||||
+ struct video_scale_info info;
|
||||
+
|
||||
+ info.format = voi->format;
|
||||
+ info.colorspace = voi->colorspace;
|
||||
+ info.range = voi->range;
|
||||
+
|
||||
+ enc->ffve.context->thread_count = 0;
|
||||
+
|
||||
+ h264_video_info(enc, &info);
|
||||
+
|
||||
+ av_opt_set(enc->ffve.context->priv_data, "rc_mode", rc_mode, 0);
|
||||
+ av_opt_set(enc->ffve.context->priv_data, "profile", profile, 0);
|
||||
+ av_opt_set_int(enc->ffve.context->priv_data, "allow_skip_frames",
|
||||
+ allow_skip_frames, 0);
|
||||
+
|
||||
+ const char *ffmpeg_opts = obs_data_get_string(settings, "ffmpeg_opts");
|
||||
+ ffmpeg_video_encoder_update(&enc->ffve, bitrate, keyint_sec, voi, &info,
|
||||
+ ffmpeg_opts);
|
||||
+ info("settings:\n"
|
||||
+ "\tencoder: %s\n"
|
||||
+ "\trc_mode: %s\n"
|
||||
+ "\tbitrate: %d\n"
|
||||
+ "\tprofile: %s\n"
|
||||
+ "\twidth: %d\n"
|
||||
+ "\theight: %d\n"
|
||||
+ "\tffmpeg opts: %s\n",
|
||||
+ enc->ffve.enc_name, rc_mode, bitrate, profile,
|
||||
+ enc->ffve.context->width, enc->ffve.height, ffmpeg_opts);
|
||||
+
|
||||
+ enc->ffve.context->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
|
||||
+ return ffmpeg_video_encoder_init_codec(&enc->ffve);
|
||||
+}
|
||||
+
|
||||
+static void h264_destroy(void *data)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+
|
||||
+ ffmpeg_video_encoder_free(&enc->ffve);
|
||||
+ da_free(enc->header);
|
||||
+ bfree(enc);
|
||||
+}
|
||||
+
|
||||
+static void on_first_packet(void *data, AVPacket *pkt, struct darray *da)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+
|
||||
+ da_copy_array(enc->header, enc->ffve.context->extradata,
|
||||
+ enc->ffve.context->extradata_size);
|
||||
+
|
||||
+ darray_copy_array(1, da, pkt->data, pkt->size);
|
||||
+}
|
||||
+
|
||||
+static void *h264_create_internal(obs_data_t *settings, obs_encoder_t *encoder,
|
||||
+ const char *enc_lib, const char *enc_name)
|
||||
+{
|
||||
+ video_t *video = obs_encoder_video(encoder);
|
||||
+ const struct video_output_info *voi = video_output_get_info(video);
|
||||
+
|
||||
+ switch (voi->format) {
|
||||
+ // planar 4:2:0 formats
|
||||
+ case VIDEO_FORMAT_I420: // three-plane
|
||||
+ case VIDEO_FORMAT_NV12: // two-plane, luma and packed chroma
|
||||
+ // packed 4:2:2 formats
|
||||
+ case VIDEO_FORMAT_YVYU:
|
||||
+ case VIDEO_FORMAT_YUY2: // YUYV
|
||||
+ case VIDEO_FORMAT_UYVY:
|
||||
+ // packed uncompressed formats
|
||||
+ case VIDEO_FORMAT_RGBA:
|
||||
+ case VIDEO_FORMAT_BGRA:
|
||||
+ case VIDEO_FORMAT_BGRX:
|
||||
+ case VIDEO_FORMAT_BGR3:
|
||||
+ case VIDEO_FORMAT_Y800: // grayscale
|
||||
+ // planar 4:4:4
|
||||
+ case VIDEO_FORMAT_I444:
|
||||
+ // planar 4:2:2
|
||||
+ case VIDEO_FORMAT_I422:
|
||||
+ // planar 4:2:0 with alpha
|
||||
+ case VIDEO_FORMAT_I40A:
|
||||
+ // planar 4:2:2 with alpha
|
||||
+ case VIDEO_FORMAT_I42A:
|
||||
+ // planar 4:4:4 with alpha
|
||||
+ case VIDEO_FORMAT_YUVA:
|
||||
+ // packed 4:4:4 with alpha
|
||||
+ case VIDEO_FORMAT_AYUV:
|
||||
+ break;
|
||||
+ default:; // Make the compiler do the right thing
|
||||
+ const char *const text =
|
||||
+ obs_module_text("H264.UnsupportedVideoFormat");
|
||||
+ obs_encoder_set_last_error(encoder, text);
|
||||
+ blog(LOG_ERROR, "[H.264 encoder] %s", text);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ switch (voi->colorspace) {
|
||||
+ case VIDEO_CS_DEFAULT:
|
||||
+ case VIDEO_CS_709:
|
||||
+ break;
|
||||
+ default:; // Make the compiler do the right thing
|
||||
+ const char *const text =
|
||||
+ obs_module_text("H264.UnsupportedColorSpace");
|
||||
+ obs_encoder_set_last_error(encoder, text);
|
||||
+ blog(LOG_ERROR, "[H.264 encoder] %s", text);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ struct h264_encoder *enc = bzalloc(sizeof(*enc));
|
||||
+
|
||||
+ if (strcmp(enc_lib, "libopenh264") == 0)
|
||||
+ enc->type = H264_ENCODER_TYPE_OH264;
|
||||
+
|
||||
+ if (!ffmpeg_video_encoder_init(&enc->ffve, enc, encoder, enc_lib, NULL,
|
||||
+ enc_name, NULL, on_first_packet))
|
||||
+ goto fail;
|
||||
+ if (!h264_update(enc, settings))
|
||||
+ goto fail;
|
||||
+
|
||||
+ return enc;
|
||||
+
|
||||
+fail:
|
||||
+ h264_destroy(enc);
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+static void *oh264_create(obs_data_t *settings, obs_encoder_t *encoder)
|
||||
+{
|
||||
+ return h264_create_internal(settings, encoder, "libopenh264",
|
||||
+ "OpenH264");
|
||||
+}
|
||||
+
|
||||
+static bool h264_encode(void *data, struct encoder_frame *frame,
|
||||
+ struct encoder_packet *packet, bool *received_packet)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+ return ffmpeg_video_encode(&enc->ffve, frame, packet, received_packet);
|
||||
+}
|
||||
+
|
||||
+void h264_defaults(obs_data_t *settings)
|
||||
+{
|
||||
+ obs_data_set_default_int(settings, "bitrate", 2500);
|
||||
+ obs_data_set_default_string(settings, "profile", "main");
|
||||
+}
|
||||
+
|
||||
+obs_properties_t *h264_properties(enum h264_encoder_type type)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(type); // Only one encoder right now...
|
||||
+ obs_properties_t *props = obs_properties_create();
|
||||
+ obs_property_t *p;
|
||||
+
|
||||
+ p = obs_properties_add_list(props, "profile",
|
||||
+ obs_module_text("Profile"),
|
||||
+ OBS_COMBO_TYPE_LIST,
|
||||
+ OBS_COMBO_FORMAT_STRING);
|
||||
+ obs_property_list_add_string(p, "constrained_baseline",
|
||||
+ "constrained_baseline");
|
||||
+ obs_property_list_add_string(p, "main", "main");
|
||||
+ obs_property_list_add_string(p, "high", "high");
|
||||
+
|
||||
+ p = obs_properties_add_int(props, "bitrate", obs_module_text("Bitrate"),
|
||||
+ 50, 300000, 50);
|
||||
+ obs_property_int_set_suffix(p, " Kbps");
|
||||
+
|
||||
+ obs_properties_add_text(props, "ffmpeg_opts",
|
||||
+ obs_module_text("FFmpegOpts"),
|
||||
+ OBS_TEXT_DEFAULT);
|
||||
+
|
||||
+ return props;
|
||||
+}
|
||||
+
|
||||
+obs_properties_t *oh264_properties(void *unused)
|
||||
+{
|
||||
+ UNUSED_PARAMETER(unused);
|
||||
+ return h264_properties(H264_ENCODER_TYPE_OH264);
|
||||
+}
|
||||
+
|
||||
+static bool h264_extra_data(void *data, uint8_t **extra_data, size_t *size)
|
||||
+{
|
||||
+ struct h264_encoder *enc = data;
|
||||
+
|
||||
+ *extra_data = enc->header.array;
|
||||
+ *size = enc->header.num;
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+struct obs_encoder_info oh264_encoder_info = {
|
||||
+ .id = "ffmpeg_openh264",
|
||||
+ .type = OBS_ENCODER_VIDEO,
|
||||
+ .codec = "h264",
|
||||
+ .get_name = oh264_getname,
|
||||
+ .create = oh264_create,
|
||||
+ .destroy = h264_destroy,
|
||||
+ .encode = h264_encode,
|
||||
+ .get_defaults = h264_defaults,
|
||||
+ .get_properties = oh264_properties,
|
||||
+ .get_extra_data = h264_extra_data,
|
||||
+ .get_video_info = h264_video_info,
|
||||
+};
|
||||
diff --git a/plugins/obs-ffmpeg/obs-ffmpeg.c b/plugins/obs-ffmpeg/obs-ffmpeg.c
|
||||
index da0b2c2b4..a01a729c8 100644
|
||||
--- a/plugins/obs-ffmpeg/obs-ffmpeg.c
|
||||
+++ b/plugins/obs-ffmpeg/obs-ffmpeg.c
|
||||
@@ -39,6 +39,7 @@ extern struct obs_encoder_info pcm24_encoder_info;
|
||||
extern struct obs_encoder_info pcm32_encoder_info;
|
||||
extern struct obs_encoder_info alac_encoder_info;
|
||||
extern struct obs_encoder_info flac_encoder_info;
|
||||
+extern struct obs_encoder_info oh264_encoder_info;
|
||||
extern struct obs_encoder_info h264_nvenc_encoder_info;
|
||||
#ifdef ENABLE_HEVC
|
||||
extern struct obs_encoder_info hevc_nvenc_encoder_info;
|
||||
@@ -387,6 +388,7 @@ bool obs_module_load(void)
|
||||
obs_register_output(&ffmpeg_hls_muxer);
|
||||
obs_register_output(&replay_buffer);
|
||||
obs_register_encoder(&aac_encoder_info);
|
||||
+ register_encoder_if_available(&oh264_encoder_info, "libopenh264");
|
||||
register_encoder_if_available(&svt_av1_encoder_info, "libsvtav1");
|
||||
register_encoder_if_available(&aom_av1_encoder_info, "libaom-av1");
|
||||
obs_register_encoder(&opus_encoder_info);
|
||||
--
|
||||
2.39.2
|
||||
|
|
@ -0,0 +1,545 @@
|
|||
From 30f84455969071ff9aa826a44438a0402dd15123 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Tue, 28 Mar 2023 05:08:49 -0400
|
||||
Subject: [PATCH 3/3] UI: Add support for OpenH264 as the worst-case fallback
|
||||
|
||||
OpenH264 exists as the codec of last resort, so it is implemented
|
||||
such that it is only used as the software codec if x264 is not
|
||||
available.
|
||||
---
|
||||
UI/data/locale/en-US.ini | 1 +
|
||||
UI/window-basic-auto-config-test.cpp | 50 +++++++++++++++++++---------
|
||||
UI/window-basic-auto-config.cpp | 15 ++++++++-
|
||||
UI/window-basic-auto-config.hpp | 3 ++
|
||||
UI/window-basic-main-outputs.cpp | 6 ++--
|
||||
UI/window-basic-main-profiles.cpp | 34 +++++++++++--------
|
||||
UI/window-basic-main.cpp | 20 +++++++----
|
||||
UI/window-basic-main.hpp | 3 +-
|
||||
UI/window-basic-settings-stream.cpp | 16 ++++++---
|
||||
UI/window-basic-settings.cpp | 23 ++++++++++---
|
||||
10 files changed, 123 insertions(+), 48 deletions(-)
|
||||
|
||||
diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini
|
||||
index e44d99660..a5ba5d661 100644
|
||||
--- a/UI/data/locale/en-US.ini
|
||||
+++ b/UI/data/locale/en-US.ini
|
||||
@@ -980,6 +980,7 @@ Basic.Settings.Output.Simple.Warn.Encoder="Warning: Recording with a software en
|
||||
Basic.Settings.Output.Simple.Warn.Lossless="Warning: Lossless quality generates tremendously large file sizes! Lossless quality can use upward of 7 gigabytes of disk space per minute at high resolutions and framerates. Lossless is not recommended for long recordings unless you have a very large amount of disk space available."
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Msg="Are you sure you want to use lossless quality?"
|
||||
Basic.Settings.Output.Simple.Warn.Lossless.Title="Lossless quality warning!"
|
||||
+Basic.Settings.Output.Simple.Encoder.Software.OpenH264.H264="Software (OpenH264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Software.X264.H264="Software (x264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.H264="Hardware (QSV, H.264)"
|
||||
Basic.Settings.Output.Simple.Encoder.Hardware.QSV.AV1="Hardware (QSV, AV1)"
|
||||
diff --git a/UI/window-basic-auto-config-test.cpp b/UI/window-basic-auto-config-test.cpp
|
||||
index 09979c031..c791c8b8b 100644
|
||||
--- a/UI/window-basic-auto-config-test.cpp
|
||||
+++ b/UI/window-basic-auto-config-test.cpp
|
||||
@@ -199,7 +199,8 @@ void AutoConfigTestPage::TestBandwidthThread()
|
||||
: "rtmp_common";
|
||||
|
||||
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
|
||||
- "obs_x264", "test_x264", nullptr, nullptr);
|
||||
+ (wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
|
||||
+ "test_h264", nullptr, nullptr);
|
||||
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
|
||||
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
|
||||
OBSServiceAutoRelease service = obs_service_create(
|
||||
@@ -238,10 +239,11 @@ void AutoConfigTestPage::TestBandwidthThread()
|
||||
obs_data_set_string(service_settings, "key", key.c_str());
|
||||
|
||||
obs_data_set_int(vencoder_settings, "bitrate", wiz->startingBitrate);
|
||||
- obs_data_set_string(vencoder_settings, "rate_control", "CBR");
|
||||
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
- obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
-
|
||||
+ if (wiz->x264Available) {
|
||||
+ obs_data_set_string(vencoder_settings, "rate_control", "CBR");
|
||||
+ obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
+ obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
+ }
|
||||
obs_data_set_int(aencoder_settings, "bitrate", 32);
|
||||
|
||||
OBSBasic *main = reinterpret_cast<OBSBasic *>(App()->GetMainWindow());
|
||||
@@ -567,7 +569,8 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
|
||||
/* create obs objects */
|
||||
|
||||
OBSEncoderAutoRelease vencoder = obs_video_encoder_create(
|
||||
- "obs_x264", "test_x264", nullptr, nullptr);
|
||||
+ (wiz->x264Available ? "obs_x264" : "ffmpeg_openh264"),
|
||||
+ "test_h264", nullptr, nullptr);
|
||||
OBSEncoderAutoRelease aencoder = obs_audio_encoder_create(
|
||||
"ffmpeg_aac", "test_aac", nullptr, 0, nullptr);
|
||||
OBSOutputAutoRelease output =
|
||||
@@ -581,17 +584,25 @@ bool AutoConfigTestPage::TestSoftwareEncoding()
|
||||
obs_data_set_int(aencoder_settings, "bitrate", 32);
|
||||
|
||||
if (wiz->type != AutoConfig::Type::Recording) {
|
||||
- obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
+ if (wiz->x264Available) {
|
||||
+ obs_data_set_int(vencoder_settings, "keyint_sec", 2);
|
||||
+ obs_data_set_string(vencoder_settings, "rate_control",
|
||||
+ "CBR");
|
||||
+ obs_data_set_string(vencoder_settings, "preset",
|
||||
+ "veryfast");
|
||||
+ }
|
||||
obs_data_set_int(vencoder_settings, "bitrate",
|
||||
wiz->idealBitrate);
|
||||
- obs_data_set_string(vencoder_settings, "rate_control", "CBR");
|
||||
obs_data_set_string(vencoder_settings, "profile", "main");
|
||||
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
} else {
|
||||
- obs_data_set_int(vencoder_settings, "crf", 20);
|
||||
- obs_data_set_string(vencoder_settings, "rate_control", "CRF");
|
||||
+ if (wiz->x264Available) {
|
||||
+ obs_data_set_int(vencoder_settings, "crf", 20);
|
||||
+ obs_data_set_string(vencoder_settings, "rate_control",
|
||||
+ "CRF");
|
||||
+ obs_data_set_string(vencoder_settings, "preset",
|
||||
+ "veryfast");
|
||||
+ }
|
||||
obs_data_set_string(vencoder_settings, "profile", "high");
|
||||
- obs_data_set_string(vencoder_settings, "preset", "veryfast");
|
||||
}
|
||||
|
||||
/* -----------------------------------*/
|
||||
@@ -944,7 +955,10 @@ void AutoConfigTestPage::TestStreamEncoderThread()
|
||||
else
|
||||
wiz->streamingEncoder = AutoConfig::Encoder::AMD;
|
||||
} else {
|
||||
- wiz->streamingEncoder = AutoConfig::Encoder::x264;
|
||||
+ if (wiz->x264Available)
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::x264;
|
||||
+ else
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::OpenH264;
|
||||
}
|
||||
|
||||
if (preferHardware && !softwareTested && wiz->hardwareEncodingAvailable)
|
||||
@@ -979,7 +993,10 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
|
||||
else
|
||||
wiz->recordingEncoder = AutoConfig::Encoder::AMD;
|
||||
} else {
|
||||
- wiz->recordingEncoder = AutoConfig::Encoder::x264;
|
||||
+ if (wiz->x264Available)
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::x264;
|
||||
+ else
|
||||
+ wiz->streamingEncoder = AutoConfig::Encoder::OpenH264;
|
||||
}
|
||||
|
||||
if (wiz->recordingEncoder != AutoConfig::Encoder::NVENC) {
|
||||
@@ -993,6 +1010,7 @@ void AutoConfigTestPage::TestRecordingEncoderThread()
|
||||
}
|
||||
|
||||
#define ENCODER_TEXT(x) "Basic.Settings.Output.Simple.Encoder." x
|
||||
+#define ENCODER_OPENH264 ENCODER_TEXT("Software.OpenH264.H264")
|
||||
#define ENCODER_X264 ENCODER_TEXT("Software.X264.H264")
|
||||
#define ENCODER_NVENC ENCODER_TEXT("Hardware.NVENC.H264")
|
||||
#define ENCODER_QSV ENCODER_TEXT("Hardware.QSV.H264")
|
||||
@@ -1032,6 +1050,8 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
|
||||
auto encName = [](AutoConfig::Encoder enc) -> QString {
|
||||
switch (enc) {
|
||||
+ case AutoConfig::Encoder::OpenH264:
|
||||
+ return QTStr(ENCODER_OPENH264);
|
||||
case AutoConfig::Encoder::x264:
|
||||
return QTStr(ENCODER_X264);
|
||||
case AutoConfig::Encoder::NVENC:
|
||||
@@ -1046,7 +1066,7 @@ void AutoConfigTestPage::FinalizeResults()
|
||||
return QTStr(QUALITY_SAME);
|
||||
}
|
||||
|
||||
- return QTStr(ENCODER_X264);
|
||||
+ return QTStr(ENCODER_OPENH264);
|
||||
};
|
||||
|
||||
auto newLabel = [this](const char *str) -> QLabel * {
|
||||
diff --git a/UI/window-basic-auto-config.cpp b/UI/window-basic-auto-config.cpp
|
||||
index 3e9c36685..eace18067 100644
|
||||
--- a/UI/window-basic-auto-config.cpp
|
||||
+++ b/UI/window-basic-auto-config.cpp
|
||||
@@ -961,6 +961,7 @@ AutoConfig::AutoConfig(QWidget *parent) : QWizard(parent)
|
||||
streamPage->ui->bitrate->setValue(bitrate);
|
||||
streamPage->ServiceChanged();
|
||||
|
||||
+ TestSoftwareEncoding();
|
||||
TestHardwareEncoding();
|
||||
if (!hardwareEncodingAvailable) {
|
||||
delete streamPage->ui->preferHardware;
|
||||
@@ -989,6 +990,16 @@ AutoConfig::~AutoConfig()
|
||||
EnableThreadedMessageBoxes(false);
|
||||
}
|
||||
|
||||
+void AutoConfig::TestSoftwareEncoding()
|
||||
+{
|
||||
+ size_t idx = 0;
|
||||
+ const char *id;
|
||||
+ while (obs_enum_encoder_types(idx++, &id)) {
|
||||
+ if (strcmp(id, "obs_x264") == 0)
|
||||
+ x264Available = true;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void AutoConfig::TestHardwareEncoding()
|
||||
{
|
||||
size_t idx = 0;
|
||||
@@ -1061,8 +1072,10 @@ inline const char *AutoConfig::GetEncoderId(Encoder enc)
|
||||
return SIMPLE_ENCODER_AMD;
|
||||
case Encoder::Apple:
|
||||
return SIMPLE_ENCODER_APPLE_H264;
|
||||
- default:
|
||||
+ case Encoder::x264:
|
||||
return SIMPLE_ENCODER_X264;
|
||||
+ default:
|
||||
+ return SIMPLE_ENCODER_OPENH264;
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/UI/window-basic-auto-config.hpp b/UI/window-basic-auto-config.hpp
|
||||
index eb50701ff..e581791dd 100644
|
||||
--- a/UI/window-basic-auto-config.hpp
|
||||
+++ b/UI/window-basic-auto-config.hpp
|
||||
@@ -43,6 +43,7 @@ class AutoConfig : public QWizard {
|
||||
};
|
||||
|
||||
enum class Encoder {
|
||||
+ OpenH264,
|
||||
x264,
|
||||
NVENC,
|
||||
QSV,
|
||||
@@ -91,6 +92,7 @@ class AutoConfig : public QWizard {
|
||||
bool qsvAvailable = false;
|
||||
bool vceAvailable = false;
|
||||
bool appleAvailable = false;
|
||||
+ bool x264Available = false;
|
||||
|
||||
int startingBitrate = 2500;
|
||||
bool customServer = false;
|
||||
@@ -106,6 +108,7 @@ class AutoConfig : public QWizard {
|
||||
int specificFPSNum = 0;
|
||||
int specificFPSDen = 0;
|
||||
|
||||
+ void TestSoftwareEncoding();
|
||||
void TestHardwareEncoding();
|
||||
bool CanTestServer(const char *server);
|
||||
|
||||
diff --git a/UI/window-basic-main-outputs.cpp b/UI/window-basic-main-outputs.cpp
|
||||
index 737ab966d..a4df630c4 100644
|
||||
--- a/UI/window-basic-main-outputs.cpp
|
||||
+++ b/UI/window-basic-main-outputs.cpp
|
||||
@@ -515,7 +515,9 @@ void SimpleOutput::LoadStreamingPreset_Lossy(const char *encoderId)
|
||||
/* mistakes have been made to lead us to this. */
|
||||
const char *get_simple_output_encoder(const char *encoder)
|
||||
{
|
||||
- if (strcmp(encoder, SIMPLE_ENCODER_X264) == 0) {
|
||||
+ if (strcmp(encoder, SIMPLE_ENCODER_OPENH264) == 0) {
|
||||
+ return "ffmpeg_openh264";
|
||||
+ } else if (strcmp(encoder, SIMPLE_ENCODER_X264) == 0) {
|
||||
return "obs_x264";
|
||||
} else if (strcmp(encoder, SIMPLE_ENCODER_X264_LOWCPU) == 0) {
|
||||
return "obs_x264";
|
||||
@@ -549,7 +551,7 @@ const char *get_simple_output_encoder(const char *encoder)
|
||||
#endif
|
||||
}
|
||||
|
||||
- return "obs_x264";
|
||||
+ return "ffmpeg_openh264";
|
||||
}
|
||||
|
||||
void SimpleOutput::LoadRecordingPreset()
|
||||
diff --git a/UI/window-basic-main-profiles.cpp b/UI/window-basic-main-profiles.cpp
|
||||
index 4941359ea..1f3ffdc1d 100644
|
||||
--- a/UI/window-basic-main-profiles.cpp
|
||||
+++ b/UI/window-basic-main-profiles.cpp
|
||||
@@ -794,7 +794,7 @@ void OBSBasic::ChangeProfile()
|
||||
|
||||
Auth::Load();
|
||||
|
||||
- CheckForSimpleModeX264Fallback();
|
||||
+ CheckForSimpleModeH264Fallback();
|
||||
|
||||
blog(LOG_INFO, "Switched to profile '%s' (%s)", newName, newDir);
|
||||
blog(LOG_INFO, "------------------------------------------------");
|
||||
@@ -815,12 +815,13 @@ void OBSBasic::ChangeProfile()
|
||||
}
|
||||
}
|
||||
|
||||
-void OBSBasic::CheckForSimpleModeX264Fallback()
|
||||
+void OBSBasic::CheckForSimpleModeH264Fallback()
|
||||
{
|
||||
const char *curStreamEncoder =
|
||||
config_get_string(basicConfig, "SimpleOutput", "StreamEncoder");
|
||||
const char *curRecEncoder =
|
||||
config_get_string(basicConfig, "SimpleOutput", "RecEncoder");
|
||||
+ bool x264_supported = false;
|
||||
bool qsv_supported = false;
|
||||
bool qsv_av1_supported = false;
|
||||
bool amd_supported = false;
|
||||
@@ -837,7 +838,9 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
|
||||
const char *id;
|
||||
|
||||
while (obs_enum_encoder_types(idx++, &id)) {
|
||||
- if (strcmp(id, "amd_amf_h264") == 0)
|
||||
+ if (strcmp(id, "obs_x264") == 0)
|
||||
+ x264_supported = true;
|
||||
+ else if (strcmp(id, "amd_amf_h264") == 0)
|
||||
amd_supported = true;
|
||||
else if (strcmp(id, "obs_qsv11") == 0)
|
||||
qsv_supported = true;
|
||||
@@ -865,68 +868,73 @@ void OBSBasic::CheckForSimpleModeX264Fallback()
|
||||
#endif
|
||||
}
|
||||
|
||||
+ // Check to see whether x264 is available
|
||||
+ const char *fallback_encoder_name = (x264_supported
|
||||
+ ? SIMPLE_ENCODER_X264
|
||||
+ : SIMPLE_ENCODER_OPENH264);
|
||||
+
|
||||
auto CheckEncoder = [&](const char *&name) {
|
||||
if (strcmp(name, SIMPLE_ENCODER_QSV) == 0) {
|
||||
if (!qsv_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_QSV_AV1) == 0) {
|
||||
if (!qsv_av1_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_NVENC) == 0) {
|
||||
if (!nve_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_NVENC_AV1) == 0) {
|
||||
if (!nve_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#ifdef ENABLE_HEVC
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_AMD_HEVC) == 0) {
|
||||
if (!amd_hevc_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_NVENC_HEVC) == 0) {
|
||||
if (!nve_hevc_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_AMD) == 0) {
|
||||
if (!amd_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_AMD_AV1) == 0) {
|
||||
if (!amd_av1_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_APPLE_H264) == 0) {
|
||||
if (!apple_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#ifdef ENABLE_HEVC
|
||||
} else if (strcmp(name, SIMPLE_ENCODER_APPLE_HEVC) == 0) {
|
||||
if (!apple_hevc_supported) {
|
||||
changed = true;
|
||||
- name = SIMPLE_ENCODER_X264;
|
||||
+ name = fallback_encoder_name;
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
|
||||
index 6d9375eb4..c6aae8c7b 100644
|
||||
--- a/UI/window-basic-main.cpp
|
||||
+++ b/UI/window-basic-main.cpp
|
||||
@@ -1379,6 +1379,8 @@ extern void CheckExistingCookieId();
|
||||
#define DEFAULT_CONTAINER "fragmented_mp4"
|
||||
#endif
|
||||
|
||||
+extern bool EncoderAvailable(const char *encoder);
|
||||
+
|
||||
bool OBSBasic::InitBasicConfigDefaults()
|
||||
{
|
||||
QList<QScreen *> screens = QGuiApplication::screens();
|
||||
@@ -1549,7 +1551,10 @@ bool OBSBasic::InitBasicConfigDefaults()
|
||||
config_set_default_bool(basicConfig, "AdvOut", "UseRescale", false);
|
||||
config_set_default_uint(basicConfig, "AdvOut", "TrackIndex", 1);
|
||||
config_set_default_uint(basicConfig, "AdvOut", "VodTrackIndex", 2);
|
||||
- config_set_default_string(basicConfig, "AdvOut", "Encoder", "obs_x264");
|
||||
+
|
||||
+ bool useX264 = EncoderAvailable("obs_x264");
|
||||
+ config_set_default_string(basicConfig, "AdvOut", "Encoder",
|
||||
+ (useX264 ? "obs_x264" : "ffmpeg_openh264"));
|
||||
|
||||
config_set_default_string(basicConfig, "AdvOut", "RecType", "Standard");
|
||||
|
||||
@@ -1672,7 +1677,6 @@ bool OBSBasic::InitBasicConfigDefaults()
|
||||
return true;
|
||||
}
|
||||
|
||||
-extern bool EncoderAvailable(const char *encoder);
|
||||
extern bool update_nvenc_presets(ConfigFile &config);
|
||||
|
||||
void OBSBasic::InitBasicConfigDefaults2()
|
||||
@@ -1681,12 +1685,14 @@ void OBSBasic::InitBasicConfigDefaults2()
|
||||
"Pre23Defaults");
|
||||
bool useNV = EncoderAvailable("ffmpeg_nvenc") && !oldEncDefaults;
|
||||
|
||||
+ bool useX264 = EncoderAvailable("obs_x264");
|
||||
+ const char *h264_fallback =
|
||||
+ (useX264 ? SIMPLE_ENCODER_X264 : SIMPLE_ENCODER_OPENH264);
|
||||
+
|
||||
config_set_default_string(basicConfig, "SimpleOutput", "StreamEncoder",
|
||||
- useNV ? SIMPLE_ENCODER_NVENC
|
||||
- : SIMPLE_ENCODER_X264);
|
||||
+ useNV ? SIMPLE_ENCODER_NVENC : h264_fallback);
|
||||
config_set_default_string(basicConfig, "SimpleOutput", "RecEncoder",
|
||||
- useNV ? SIMPLE_ENCODER_NVENC
|
||||
- : SIMPLE_ENCODER_X264);
|
||||
+ useNV ? SIMPLE_ENCODER_NVENC : h264_fallback);
|
||||
|
||||
const char *aac_default = "ffmpeg_aac";
|
||||
if (EncoderAvailable("CoreAudio_AAC"))
|
||||
@@ -1967,7 +1973,7 @@ void OBSBasic::OBSInit()
|
||||
|
||||
InitBasicConfigDefaults2();
|
||||
|
||||
- CheckForSimpleModeX264Fallback();
|
||||
+ CheckForSimpleModeH264Fallback();
|
||||
|
||||
blog(LOG_INFO, STARTUP_SEPARATOR);
|
||||
|
||||
diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp
|
||||
index cbce69832..74c6eb144 100644
|
||||
--- a/UI/window-basic-main.hpp
|
||||
+++ b/UI/window-basic-main.hpp
|
||||
@@ -66,6 +66,7 @@ class OBSBasicVCamConfig;
|
||||
|
||||
#define SIMPLE_ENCODER_X264 "x264"
|
||||
#define SIMPLE_ENCODER_X264_LOWCPU "x264_lowcpu"
|
||||
+#define SIMPLE_ENCODER_OPENH264 "ffmpeg_openh264"
|
||||
#define SIMPLE_ENCODER_QSV "qsv"
|
||||
#define SIMPLE_ENCODER_QSV_AV1 "qsv_av1"
|
||||
#define SIMPLE_ENCODER_NVENC "nvenc"
|
||||
@@ -434,7 +435,7 @@ private:
|
||||
void DeleteProfile(const char *profile_name, const char *profile_dir);
|
||||
void RefreshProfiles();
|
||||
void ChangeProfile();
|
||||
- void CheckForSimpleModeX264Fallback();
|
||||
+ void CheckForSimpleModeH264Fallback();
|
||||
|
||||
void SaveProjectNow();
|
||||
|
||||
diff --git a/UI/window-basic-settings-stream.cpp b/UI/window-basic-settings-stream.cpp
|
||||
index b056938e7..548e5f45f 100644
|
||||
--- a/UI/window-basic-settings-stream.cpp
|
||||
+++ b/UI/window-basic-settings-stream.cpp
|
||||
@@ -1362,7 +1362,9 @@ static QString get_adv_fallback(const QString &enc)
|
||||
return "com.apple.videotoolbox.videoencoder.ave.avc";
|
||||
if (enc == "obs_qsv11_av1")
|
||||
return "obs_qsv11";
|
||||
- return "obs_x264";
|
||||
+ if (EncoderAvailable("obs_x264"))
|
||||
+ return "obs_x264";
|
||||
+ return "ffmpeg_openh264";
|
||||
}
|
||||
|
||||
static QString get_adv_audio_fallback(const QString &enc)
|
||||
@@ -1391,7 +1393,9 @@ static QString get_simple_fallback(const QString &enc)
|
||||
return SIMPLE_ENCODER_APPLE_H264;
|
||||
if (enc == SIMPLE_ENCODER_QSV_AV1)
|
||||
return SIMPLE_ENCODER_QSV;
|
||||
- return SIMPLE_ENCODER_X264;
|
||||
+ if (EncoderAvailable("obs_x264"))
|
||||
+ return SIMPLE_ENCODER_X264;
|
||||
+ return SIMPLE_ENCODER_OPENH264;
|
||||
}
|
||||
|
||||
bool OBSBasicSettings::ServiceSupportsCodecCheck()
|
||||
@@ -1585,8 +1589,12 @@ void OBSBasicSettings::ResetEncoders(bool streamOnly)
|
||||
|
||||
#define ENCODER_STR(str) QTStr("Basic.Settings.Output.Simple.Encoder." str)
|
||||
|
||||
- ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
- QString(SIMPLE_ENCODER_X264));
|
||||
+ ui->simpleOutStrEncoder->addItem(ENCODER_STR("Software.OpenH264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_OPENH264));
|
||||
+ if (service_supports_encoder(vcodecs, "obs_x264"))
|
||||
+ ui->simpleOutStrEncoder->addItem(
|
||||
+ ENCODER_STR("Software.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264));
|
||||
if (service_supports_encoder(vcodecs, "obs_qsv11"))
|
||||
ui->simpleOutStrEncoder->addItem(
|
||||
ENCODER_STR("Hardware.QSV.H264"),
|
||||
diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp
|
||||
index 48bb4bac6..51fe280db 100644
|
||||
--- a/UI/window-basic-settings.cpp
|
||||
+++ b/UI/window-basic-settings.cpp
|
||||
@@ -3831,6 +3831,11 @@ void OBSBasicSettings::SaveOutputSettings()
|
||||
do. This only exists to make sure that the x264 preset doesn't
|
||||
get overwritten with empty data. */
|
||||
presetType = "ApplePreset";
|
||||
+ else if (encoder == SIMPLE_ENCODER_OPENH264)
|
||||
+ /* The OpenH264 encoder does not have presets like the other encoders
|
||||
+ do. This only exists to make sure that the x264 preset doesn't
|
||||
+ get overwritten with empty data. */
|
||||
+ presetType = "OpenH264Preset";
|
||||
else
|
||||
presetType = "Preset";
|
||||
|
||||
@@ -5286,11 +5291,16 @@ void OBSBasicSettings::FillSimpleRecordingValues()
|
||||
ADD_QUALITY("HQ");
|
||||
ADD_QUALITY("Lossless");
|
||||
|
||||
- ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.X264.H264"),
|
||||
- QString(SIMPLE_ENCODER_X264));
|
||||
- ui->simpleOutRecEncoder->addItem(
|
||||
- ENCODER_STR("SoftwareLowCPU.X264.H264"),
|
||||
- QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
+ ui->simpleOutRecEncoder->addItem(ENCODER_STR("Software.OpenH264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_OPENH264));
|
||||
+ if (EncoderAvailable("obs_x264")) {
|
||||
+ ui->simpleOutRecEncoder->addItem(
|
||||
+ ENCODER_STR("Software.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264));
|
||||
+ ui->simpleOutRecEncoder->addItem(
|
||||
+ ENCODER_STR("SoftwareLowCPU.X264.H264"),
|
||||
+ QString(SIMPLE_ENCODER_X264_LOWCPU));
|
||||
+ }
|
||||
if (EncoderAvailable("obs_qsv11"))
|
||||
ui->simpleOutRecEncoder->addItem(
|
||||
ENCODER_STR("Hardware.QSV.H264"),
|
||||
@@ -5463,6 +5473,9 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
|
||||
|
||||
defaultPreset = "balanced";
|
||||
preset = curAMDAV1Preset;
|
||||
+ } else if (encoder == SIMPLE_ENCODER_OPENH264) {
|
||||
+ ui->simpleOutPreset->setVisible(false);
|
||||
+ ui->simpleOutPresetLabel->setVisible(false);
|
||||
} else {
|
||||
|
||||
#define PRESET_STR(val) \
|
||||
--
|
||||
2.39.2
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
From 67803fa3106cff4daefbdfd872045ca9cc7f4569 Mon Sep 17 00:00:00 2001
|
||||
From: derrod <dennis@obsproject.com>
|
||||
Date: Mon, 17 Apr 2023 03:42:56 +0200
|
||||
Subject: [PATCH] cmake: Set C11 for CMake < 3.21
|
||||
|
||||
---
|
||||
cmake/Modules/CompilerConfig.cmake | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/cmake/Modules/CompilerConfig.cmake b/cmake/Modules/CompilerConfig.cmake
|
||||
index 763490008c848..41c56da8b4cee 100644
|
||||
--- a/cmake/Modules/CompilerConfig.cmake
|
||||
+++ b/cmake/Modules/CompilerConfig.cmake
|
||||
@@ -5,8 +5,15 @@ set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
-set(CMAKE_C_STANDARD 17)
|
||||
-set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
+# CMake < 3.21 only goes up to 11, but it's mostly identical to 17 anyway.
|
||||
+if(${CMAKE_VERSION} VERSION_LESS "3.21.0")
|
||||
+ set(CMAKE_C_STANDARD 11)
|
||||
+ set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
+else()
|
||||
+ set(CMAKE_C_STANDARD 17)
|
||||
+ set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
+endif()
|
||||
+
|
||||
# TODO/FIXME: Investigate disabling C extensions on Linux/POSIX
|
||||
if(OS_MACOS OR NOT OS_POSIX)
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
|
@ -0,0 +1,191 @@
|
|||
From fc1e6bf09f9c9d1501cd1d46a443501b19080d8d Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Sat, 15 Apr 2023 22:48:21 -0400
|
||||
Subject: [PATCH] deps: Add license declaration files
|
||||
|
||||
---
|
||||
deps/blake2/LICENSE.blake2 | 19 +++++++++++
|
||||
deps/libff/LICENSE.libff | 18 ++++++++++
|
||||
libobs/graphics/libnsgif/LICENSE.libnsgif | 33 +++++++++++++++++++
|
||||
libobs/util/simde/LICENSE.simde | 40 +++++++++++++++++++++++
|
||||
plugins/decklink/LICENSE.decklink-sdk | 30 +++++++++++++++++
|
||||
5 files changed, 140 insertions(+)
|
||||
create mode 100644 deps/blake2/LICENSE.blake2
|
||||
create mode 100644 deps/libff/LICENSE.libff
|
||||
create mode 100644 libobs/graphics/libnsgif/LICENSE.libnsgif
|
||||
create mode 100644 libobs/util/simde/LICENSE.simde
|
||||
create mode 100644 plugins/decklink/LICENSE.decklink-sdk
|
||||
|
||||
diff --git a/deps/blake2/LICENSE.blake2 b/deps/blake2/LICENSE.blake2
|
||||
new file mode 100644
|
||||
index 000000000..3a8abc787
|
||||
--- /dev/null
|
||||
+++ b/deps/blake2/LICENSE.blake2
|
||||
@@ -0,0 +1,19 @@
|
||||
+BLAKE2 is licensed to permit usage under the terms of the CC0, the OpenSSL License,
|
||||
+ or the Apache Public License 2.0 at the user's option.
|
||||
+
|
||||
+The license grant is reproduced in full below.
|
||||
+
|
||||
+/*
|
||||
+ BLAKE2 reference source code package - reference C implementations
|
||||
+
|
||||
+ Copyright 2012, Samuel Neves <sneves@dei.uc.pt>. You may use this under the
|
||||
+ terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
|
||||
+ your option. The terms of these licenses can be found at:
|
||||
+
|
||||
+ - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
|
||||
+ - OpenSSL license : https://www.openssl.org/source/license.html
|
||||
+ - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
|
||||
+
|
||||
+ More information about the BLAKE2 hash function can be found at
|
||||
+ https://blake2.net.
|
||||
+*/
|
||||
diff --git a/deps/libff/LICENSE.libff b/deps/libff/LICENSE.libff
|
||||
new file mode 100644
|
||||
index 000000000..b6f51157a
|
||||
--- /dev/null
|
||||
+++ b/deps/libff/LICENSE.libff
|
||||
@@ -0,0 +1,18 @@
|
||||
+libff is licensed under the ISC license. The license terms are fully
|
||||
+reproduced below:
|
||||
+
|
||||
+/*
|
||||
+ * Copyright (c) 2015 John R. Bradley <jrb@turrettech.com>
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
diff --git a/libobs/graphics/libnsgif/LICENSE.libnsgif b/libobs/graphics/libnsgif/LICENSE.libnsgif
|
||||
new file mode 100644
|
||||
index 000000000..9b28c0b45
|
||||
--- /dev/null
|
||||
+++ b/libobs/graphics/libnsgif/LICENSE.libnsgif
|
||||
@@ -0,0 +1,33 @@
|
||||
+libnsgif is licensed under the MIT license. The licensing statement
|
||||
+and the full license are reproduced below.
|
||||
+
|
||||
+/*
|
||||
+ * Copyright 2003 James Bursa <bursa@users.sourceforge.net>
|
||||
+ * Copyright 2004 John Tytgat <John.Tytgat@aaug.net>
|
||||
+ * Copyright 2004 Richard Wilson <richard.wilson@netsurf-browser.org>
|
||||
+ * Copyright 2008 Sean Fox <dyntryx@gmail.com>
|
||||
+ *
|
||||
+ * This file is part of NetSurf's libnsgif, http://www.netsurf-browser.org/
|
||||
+ * Licenced under the MIT License,
|
||||
+ * http://www.opensource.org/licenses/mit-license.php
|
||||
+ */
|
||||
+
|
||||
+The MIT License
|
||||
+
|
||||
+Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
+of this software and associated documentation files (the "Software"), to deal
|
||||
+in the Software without restriction, including without limitation the rights
|
||||
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
+copies of the Software, and to permit persons to whom the Software is
|
||||
+furnished to do so, subject to the following conditions:
|
||||
+
|
||||
+The above copyright notice and this permission notice shall be included in
|
||||
+all copies or substantial portions of the Software.
|
||||
+
|
||||
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
+THE SOFTWARE.
|
||||
diff --git a/libobs/util/simde/LICENSE.simde b/libobs/util/simde/LICENSE.simde
|
||||
new file mode 100644
|
||||
index 000000000..78d482e75
|
||||
--- /dev/null
|
||||
+++ b/libobs/util/simde/LICENSE.simde
|
||||
@@ -0,0 +1,40 @@
|
||||
+simde is licensed as a combination of MIT and CC0 code.
|
||||
+
|
||||
+License notices for both are reproduced below:
|
||||
+
|
||||
+/* SPDX-License-Identifier: MIT
|
||||
+ *
|
||||
+ * Permission is hereby granted, free of charge, to any person
|
||||
+ * obtaining a copy of this software and associated documentation
|
||||
+ * files (the "Software"), to deal in the Software without
|
||||
+ * restriction, including without limitation the rights to use, copy,
|
||||
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
+ * of the Software, and to permit persons to whom the Software is
|
||||
+ * furnished to do so, subject to the following conditions:
|
||||
+ *
|
||||
+ * The above copyright notice and this permission notice shall be
|
||||
+ * included in all copies or substantial portions of the Software.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
+ * SOFTWARE.
|
||||
+ *
|
||||
+ * Copyright:
|
||||
+ * 2017-2020 Evan Nemerson <evan@nemerson.com>
|
||||
+ */
|
||||
+
|
||||
+/* Portable Snippets - https://gitub.com/nemequ/portable-snippets
|
||||
+ * Created by Evan Nemerson <evan@nemerson.com>
|
||||
+ *
|
||||
+ * To the extent possible under law, the authors have waived all
|
||||
+ * copyright and related or neighboring rights to this code. For
|
||||
+ * details, see the Creative Commons Zero 1.0 Universal license at
|
||||
+ * https://creativecommons.org/publicdomain/zero/1.0/
|
||||
+ *
|
||||
+ * SPDX-License-Identifier: CC0-1.0
|
||||
+ */
|
||||
diff --git a/plugins/decklink/LICENSE.decklink-sdk b/plugins/decklink/LICENSE.decklink-sdk
|
||||
new file mode 100644
|
||||
index 000000000..d320d805b
|
||||
--- /dev/null
|
||||
+++ b/plugins/decklink/LICENSE.decklink-sdk
|
||||
@@ -0,0 +1,30 @@
|
||||
+decklink-sdk is licensed under to Boost Software License 1.0 (BSL-1.0).
|
||||
+
|
||||
+The license text is reproduced in full below:
|
||||
+
|
||||
+/* -LICENSE-START-
|
||||
+** Copyright (c) 2020 Blackmagic Design
|
||||
+**
|
||||
+** Permission is hereby granted, free of charge, to any person or organization
|
||||
+** obtaining a copy of the software and accompanying documentation covered by
|
||||
+** this license (the "Software") to use, reproduce, display, distribute,
|
||||
+** execute, and transmit the Software, and to prepare derivative works of the
|
||||
+** Software, and to permit third-parties to whom the Software is furnished to
|
||||
+** do so, all subject to the following:
|
||||
+**
|
||||
+** The copyright notices in the Software and this entire statement, including
|
||||
+** the above license grant, this restriction and the following disclaimer,
|
||||
+** must be included in all copies of the Software, in whole or in part, and
|
||||
+** all derivative works of the Software, unless such copies or derivative
|
||||
+** works are solely in the form of machine-executable object code generated by
|
||||
+** a source language processor.
|
||||
+**
|
||||
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
+** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
+** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
+** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
+** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
+** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
+** DEALINGS IN THE SOFTWARE.
|
||||
+** -LICENSE-END-
|
||||
+*/
|
||||
--
|
||||
2.40.0
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
From 3a0f7532b9d9b83d90dd5b6c2096e7f9bca88879 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <neal@gompa.dev>
|
||||
Date: Tue, 18 Apr 2023 02:58:37 -0400
|
||||
Subject: [PATCH] obs-qsv11: Add license declaration file
|
||||
|
||||
---
|
||||
plugins/obs-qsv11/obs-qsv11-LICENSE.txt | 60 +++++++++++++++++++++++++
|
||||
1 file changed, 60 insertions(+)
|
||||
create mode 100644 plugins/obs-qsv11/obs-qsv11-LICENSE.txt
|
||||
|
||||
diff --git a/plugins/obs-qsv11/obs-qsv11-LICENSE.txt b/plugins/obs-qsv11/obs-qsv11-LICENSE.txt
|
||||
new file mode 100644
|
||||
index 000000000..216c02e41
|
||||
--- /dev/null
|
||||
+++ b/plugins/obs-qsv11/obs-qsv11-LICENSE.txt
|
||||
@@ -0,0 +1,60 @@
|
||||
+The OBS QSV plugin is licensed under either the BSD-3-Clause or GPL-2.0-only licenses.
|
||||
+
|
||||
+The license declaration is reproduced in full below:
|
||||
+
|
||||
+/*
|
||||
+
|
||||
+This file is provided under a dual BSD/GPLv2 license. When using or
|
||||
+redistributing this file, you may do so under either license.
|
||||
+
|
||||
+GPL LICENSE SUMMARY
|
||||
+
|
||||
+Copyright(c) Oct. 2015 Intel Corporation.
|
||||
+
|
||||
+This program is free software; you can redistribute it and/or modify
|
||||
+it under the terms of version 2 of the GNU General Public License as
|
||||
+published by the Free Software Foundation.
|
||||
+
|
||||
+This program is distributed in the hope that it will be useful, but
|
||||
+WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
+General Public License for more details.
|
||||
+
|
||||
+Contact Information:
|
||||
+
|
||||
+Seung-Woo Kim, seung-woo.kim@intel.com
|
||||
+705 5th Ave S #500, Seattle, WA 98104
|
||||
+
|
||||
+BSD LICENSE
|
||||
+
|
||||
+Copyright(c) <date> Intel Corporation.
|
||||
+
|
||||
+Redistribution and use in source and binary forms, with or without
|
||||
+modification, are permitted provided that the following conditions
|
||||
+are met:
|
||||
+
|
||||
+* Redistributions of source code must retain the above copyright
|
||||
+notice, this list of conditions and the following disclaimer.
|
||||
+
|
||||
+* Redistributions in binary form must reproduce the above copyright
|
||||
+notice, this list of conditions and the following disclaimer in
|
||||
+the documentation and/or other materials provided with the
|
||||
+distribution.
|
||||
+
|
||||
+* Neither the name of Intel Corporation nor the names of its
|
||||
+contributors may be used to endorse or promote products derived
|
||||
+from this software without specific prior written permission.
|
||||
+
|
||||
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
+*/
|
||||
+
|
||||
--
|
||||
2.40.0
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
From 1e2fc3ade587a7a7c24e4238996ca382c4c0f719 Mon Sep 17 00:00:00 2001
|
||||
From: Neal Gompa <ngompa@fedoraproject.org>
|
||||
Date: Tue, 27 Dec 2022 09:15:08 -0500
|
||||
Subject: [PATCH] CMake: Use the system version of QRCodeGenCPP dependency
|
||||
|
||||
---
|
||||
CMakeLists.txt | 9 +++++++--
|
||||
cmake/legacy.cmake | 12 ++++++++----
|
||||
src/forms/ConnectInfo.cpp | 2 +-
|
||||
3 files changed, 16 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/plugins/obs-websocket/CMakeLists.txt b/plugins/obs-websocket/CMakeLists.txt
|
||||
index 871f92b..288cc87 100644
|
||||
--- a/plugins/obs-websocket/CMakeLists.txt
|
||||
+++ b/plugins/obs-websocket/CMakeLists.txt
|
||||
@@ -13,7 +13,7 @@ endif()
|
||||
|
||||
# Submodule deps check
|
||||
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp")
|
||||
- message(FATAL_ERROR "obs-websocket submodule deps not available.")
|
||||
+ message(INFO "obs-websocket submodule deps not available.")
|
||||
endif()
|
||||
|
||||
# Find Qt
|
||||
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
|
||||
# Find nlohmann JSON
|
||||
find_package(nlohmann_json 3 REQUIRED)
|
||||
|
||||
+# Find qrcodegencpp
|
||||
+find_package(qrcodegencpp REQUIRED)
|
||||
+
|
||||
# Find WebSocket++
|
||||
find_package(Websocketpp 0.8 REQUIRED)
|
||||
|
||||
@@ -157,7 +160,9 @@ target_link_libraries(
|
||||
Qt::Network
|
||||
nlohmann_json::nlohmann_json
|
||||
Websocketpp::Websocketpp
|
||||
- Asio::Asio)
|
||||
+ Asio::Asio
|
||||
+ qrcodegencpp
|
||||
+ )
|
||||
|
||||
set_target_properties_obs(
|
||||
obs-websocket
|
||||
diff --git a/plugins/obs-websocket/cmake/legacy.cmake b/plugins/obs-websocket/cmake/legacy.cmake
|
||||
index ab25ec7..98ca704 100644
|
||||
--- a/plugins/obs-websocket/cmake/legacy.cmake
|
||||
+++ b/plugins/obs-websocket/cmake/legacy.cmake
|
||||
@@ -10,7 +10,7 @@ endif()
|
||||
|
||||
# Submodule deps check
|
||||
if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/deps/qr/cpp/QrCode.hpp)
|
||||
- obs_status(FATAL_ERROR "obs-websocket submodule deps not available.")
|
||||
+ obs_status(INFO "obs-websocket submodule deps not available.")
|
||||
endif()
|
||||
|
||||
# Plugin tests flag
|
||||
@@ -22,6 +22,9 @@ find_qt(COMPONENTS Core Widgets Svg Network)
|
||||
# Find nlohmann JSON
|
||||
find_package(nlohmann_json 3 REQUIRED)
|
||||
|
||||
+# Find qrcodegencpp
|
||||
+find_package(qrcodegencpp REQUIRED)
|
||||
+
|
||||
# Find WebSocket++
|
||||
find_package(Websocketpp 0.8 REQUIRED)
|
||||
|
||||
@@ -129,8 +132,7 @@ target_sources(
|
||||
src/utils/Compat.cpp
|
||||
src/utils/Compat.h
|
||||
src/utils/Utils.h
|
||||
- deps/qr/cpp/QrCode.cpp
|
||||
- deps/qr/cpp/QrCode.hpp)
|
||||
+ )
|
||||
|
||||
target_link_libraries(
|
||||
obs-websocket
|
||||
@@ -142,7 +144,9 @@ target_link_libraries(
|
||||
Qt::Network
|
||||
nlohmann_json::nlohmann_json
|
||||
Websocketpp::Websocketpp
|
||||
- Asio::Asio)
|
||||
+ Asio::Asio
|
||||
+ qrcodegencpp
|
||||
+ )
|
||||
|
||||
target_compile_features(obs-websocket PRIVATE cxx_std_17)
|
||||
|
||||
diff --git a/plugins/obs-websocket/src/forms/ConnectInfo.cpp b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
index ddb979d..89a04c4 100644
|
||||
--- a/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
+++ b/plugins/obs-websocket/src/forms/ConnectInfo.cpp
|
||||
@@ -21,9 +21,9 @@ with this program. If not, see <https://www.gnu.org/licenses/>
|
||||
#include <QPainter>
|
||||
#include <QUrl>
|
||||
#include <obs-module.h>
|
||||
+#include <qrcodegencpp/QrCode.hpp>
|
||||
|
||||
#include "ConnectInfo.h"
|
||||
-#include "../../deps/qr/cpp/QrCode.hpp"
|
||||
#include "../obs-websocket.h"
|
||||
#include "../Config.h"
|
||||
#include "../utils/Platform.h"
|
||||
--
|
||||
2.39.2
|
||||
|
|
@ -0,0 +1,802 @@
|
|||
%ifarch %{power64} s390x
|
||||
# LuaJIT is not available for POWER and IBM Z
|
||||
%bcond_with lua_scripting
|
||||
%else
|
||||
%bcond_without lua_scripting
|
||||
%endif
|
||||
|
||||
# VLC is not yet in Fedora
|
||||
%bcond_with vlc
|
||||
# x264 is not in Fedora
|
||||
%bcond_with x264
|
||||
|
||||
%global obswebsocket_version 5.2.2
|
||||
|
||||
#global commit ad859a3f66daac0d30eebcc9b07b0c2004fb6040
|
||||
#global snapdate 202303261743
|
||||
#global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: obs-studio
|
||||
Version: 29.1.0~beta4
|
||||
Release: 1%{?dist}
|
||||
Summary: Open Broadcaster Software Studio
|
||||
|
||||
# OBS itself is GPL-2.0-or-later, while various plugin dependencies are of various other licenses
|
||||
# The licenses for those dependencies are captured with the bundled provides statements
|
||||
License: GPL-2.0-or-later and ISC and MIT and BSD-1-Clause and BSD-2-Clause and BSD-3-Clause and BSL-1.0 and LGPL-2.1-or-later and CC0-1.0 and (CC0-1.0 or OpenSSL or Apache-2.0) and LicenseRef-Fedora-Public-Domain and (BSD-3-Clause or GPL-2.0-only)
|
||||
URL: https://obsproject.com/
|
||||
%if 0%{?snapdate}
|
||||
Source0: https://github.com/obsproject/obs-studio/archive/%{commit}/%{name}-%{commit}.tar.gz
|
||||
%else
|
||||
Source0: https://github.com/obsproject/obs-studio/archive/%{version_no_tilde}/%{name}-%{version_no_tilde}.tar.gz
|
||||
%endif
|
||||
Source1: https://github.com/obsproject/obs-websocket/archive/%{obswebsocket_version}/obs-websocket-%{obswebsocket_version}.tar.gz
|
||||
|
||||
# Backports from upstream
|
||||
|
||||
# Proposed upstream
|
||||
## From: https://github.com/obsproject/obs-studio/pull/8529
|
||||
Patch0101: 0001-UI-Consistently-reference-the-software-H264-encoder-.patch
|
||||
Patch0102: 0002-obs-ffmpeg-Add-initial-support-for-the-OpenH264-H.26.patch
|
||||
Patch0103: 0003-UI-Add-support-for-OpenH264-as-the-worst-case-fallba.patch
|
||||
## From: https://github.com/obsproject/obs-studio/pull/8763
|
||||
Patch0104: obs-studio-PR8763.patch
|
||||
|
||||
|
||||
# Downstream Fedora patches
|
||||
## Use system qrcodegencpp
|
||||
Patch1001: obs-studio-websocket-use-system-qrcodegencpp.patch
|
||||
## Add license declarations for bundled deps
|
||||
Patch9001: obs-studio-deps-Add-license-declaration-files.patch
|
||||
## Add license declaration for obs-qsv11
|
||||
Patch9002: obs-studio-obs-qsv11-Add-license-declaration-file.patch
|
||||
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: cmake >= 3.16
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: desktop-file-utils
|
||||
|
||||
BuildRequires: alsa-lib-devel
|
||||
BuildRequires: asio-devel
|
||||
BuildRequires: fdk-aac-free-devel
|
||||
BuildRequires: ffmpeg-free-devel
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: freetype-devel
|
||||
BuildRequires: jansson-devel >= 2.5
|
||||
BuildRequires: json-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: libdrm-devel
|
||||
BuildRequires: libGL-devel
|
||||
BuildRequires: libglvnd-devel
|
||||
BuildRequires: librist-devel
|
||||
BuildRequires: srt-devel
|
||||
BuildRequires: libuuid-devel
|
||||
BuildRequires: libv4l-devel
|
||||
BuildRequires: libva-devel
|
||||
BuildRequires: libX11-devel
|
||||
BuildRequires: libxcb-devel
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libXinerama-devel
|
||||
BuildRequires: libxkbcommon-devel
|
||||
%if %{with lua_scripting}
|
||||
BuildRequires: luajit-devel
|
||||
%endif
|
||||
BuildRequires: mbedtls-devel
|
||||
BuildRequires: pciutils-devel
|
||||
BuildRequires: pipewire-devel
|
||||
BuildRequires: pipewire-jack-audio-connection-kit-devel
|
||||
BuildRequires: pulseaudio-libs-devel
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: libqrcodegencpp-devel
|
||||
BuildRequires: qt6-qtbase-devel
|
||||
BuildRequires: qt6-qtbase-private-devel
|
||||
BuildRequires: qt6-qtsvg-devel
|
||||
BuildRequires: qt6-qtwayland-devel
|
||||
BuildRequires: speexdsp-devel
|
||||
BuildRequires: swig
|
||||
BuildRequires: systemd-devel
|
||||
%if %{with vlc}
|
||||
BuildRequires: vlc-devel
|
||||
%endif
|
||||
BuildRequires: wayland-devel
|
||||
BuildRequires: websocketpp-devel
|
||||
%if %{with x264}
|
||||
BuildRequires: x264-devel
|
||||
%endif
|
||||
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
# Ensure that we have the full ffmpeg suite installed
|
||||
Requires: /usr/bin/ffmpeg
|
||||
%if %{with x264}
|
||||
Requires: x264
|
||||
%endif
|
||||
|
||||
# Ensure QtWayland is installed when libwayland-client is installed
|
||||
Requires: (qt6-qtwayland%{?_isa} if libwayland-client%{?_isa})
|
||||
# For icon folder heirarchy
|
||||
Requires: hicolor-icon-theme
|
||||
|
||||
# These are modified sources that can't be easily unbundled
|
||||
## License: MIT and CC0-1.0
|
||||
## Newer version in Fedora with the same licensing
|
||||
## Request filed upstream for fixing it: https://github.com/simd-everywhere/simde/issues/999
|
||||
Provides: bundled(simde) = 0.7.1
|
||||
## License: BSL-1.0
|
||||
Provides: bundled(decklink-sdk)
|
||||
## License: CC0-1.0 or OpenSSL or Apache-2.0
|
||||
Provides: bundled(blake2)
|
||||
## License: MIT
|
||||
Provides: bundled(json11)
|
||||
## License: MIT
|
||||
Provides: bundled(libcaption)
|
||||
## License: ISC
|
||||
Provides: bundled(libff)
|
||||
## License: BSD-1-Clause
|
||||
Provides: bundled(uthash)
|
||||
## License: BSD-3-Clause
|
||||
Provides: bundled(rnnoise)
|
||||
## License: LGPL-2.1-or-later and LicenseRef-Fedora-Public-Domain
|
||||
Provides: bundled(librtmp)
|
||||
## License: MIT
|
||||
Provides: bundled(libnsgif)
|
||||
## License: MIT
|
||||
## Windows only dependency
|
||||
## Support for Linux will also unbundle it
|
||||
## Cf. https://github.com/obsproject/obs-studio/pull/8327
|
||||
Provides: bundled(intel-mediasdk)
|
||||
|
||||
|
||||
%description
|
||||
Open Broadcaster Software is free and open source
|
||||
software for video recording and live streaming.
|
||||
|
||||
%package libs
|
||||
Summary: Open Broadcaster Software Studio libraries
|
||||
%{?_qt6:Requires: %{_qt6}%{?_isa} = %{_qt6_version}}
|
||||
|
||||
%description libs
|
||||
Library files for Open Broadcaster Software
|
||||
|
||||
%package devel
|
||||
Summary: Open Broadcaster Software Studio header files
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
Header files for Open Broadcaster Software
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{?snapdate:%{commit}}%{!?snapdate:%{version_no_tilde}}
|
||||
# Prepare plugins/obs-websocket
|
||||
tar -xf %{SOURCE1} -C plugins/obs-websocket --strip-components=1
|
||||
%autopatch -p1
|
||||
|
||||
# rpmlint reports E: hardcoded-library-path
|
||||
# replace OBS_MULTIARCH_SUFFIX by LIB_SUFFIX
|
||||
sed -e 's|OBS_MULTIARCH_SUFFIX|LIB_SUFFIX|g' -i cmake/Modules/ObsHelpers.cmake
|
||||
|
||||
# Kill rpath settings
|
||||
sed -e '\|set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OBS_LIBRARY_DESTINATION}")|d' -i cmake/Modules/ObsHelpers_Linux.cmake
|
||||
|
||||
# touch the missing submodules
|
||||
touch plugins/obs-browser/CMakeLists.txt
|
||||
|
||||
%if ! %{with x264}
|
||||
# disable x264 plugin
|
||||
mv plugins/obs-x264/CMakeLists.txt plugins/obs-x264/CMakeLists.txt.disabled
|
||||
touch plugins/obs-x264/CMakeLists.txt
|
||||
%endif
|
||||
|
||||
# remove -Werror flag to mitigate FTBFS with ffmpeg 5.1
|
||||
sed -e 's|-Werror-implicit-function-declaration||g' -i cmake/Modules/CompilerConfig.cmake
|
||||
sed -e '/-Werror/d' -i cmake/Modules/CompilerConfig.cmake
|
||||
|
||||
# Removing unused third-party deps
|
||||
rm -rf deps/w32-pthreads
|
||||
rm -rf deps/ipc-util
|
||||
rm -rf deps/jansson
|
||||
|
||||
# Remove unneeded EGL/KHR files
|
||||
rm -rf deps/glad/include/{EGL,KHR}
|
||||
sed -e 's|include/EGL/eglplatform.h||g' -i deps/glad/CMakeLists.txt
|
||||
|
||||
# Collect license files
|
||||
mkdir -p .fedora-rpm/licenses/deps
|
||||
mkdir -p .fedora-rpm/licenses/plugins
|
||||
cp plugins/obs-filters/rnnoise/COPYING .fedora-rpm/licenses/deps/rnnoise-COPYING
|
||||
cp plugins/obs-websocket/LICENSE .fedora-rpm/licenses/plugins/obs-websocket-LICENSE
|
||||
cp plugins/obs-outputs/librtmp/COPYING .fedora-rpm/licenses/deps/librtmp-COPYING
|
||||
cp deps/json11/LICENSE.txt .fedora-rpm/licenses/deps/json11-LICENSE.txt
|
||||
cp deps/libcaption/LICENSE.txt .fedora-rpm/licenses/deps/libcaption-LICENSE.txt
|
||||
cp plugins/obs-qsv11/QSV11-License-Clarification-Email.txt .fedora-rpm/licenses/plugins/QSV11-License-Clarification-Email.txt
|
||||
cp deps/uthash/uthash/LICENSE .fedora-rpm/licenses/deps/uthash-LICENSE
|
||||
cp deps/blake2/LICENSE.blake2 .fedora-rpm/licenses/deps/
|
||||
cp deps/libff/LICENSE.libff .fedora-rpm/licenses/deps/
|
||||
cp libobs/graphics/libnsgif/LICENSE.libnsgif .fedora-rpm/licenses/deps/
|
||||
cp libobs/util/simde/LICENSE.simde .fedora-rpm/licenses/deps/
|
||||
cp plugins/decklink/LICENSE.decklink-sdk .fedora-rpm/licenses/deps
|
||||
cp plugins/obs-qsv11/obs-qsv11-LICENSE.txt .fedora-rpm/licenses/plugins/
|
||||
|
||||
|
||||
%build
|
||||
%cmake -DOBS_VERSION_OVERRIDE=%{version_no_tilde} \
|
||||
-DUNIX_STRUCTURE=1 -GNinja \
|
||||
-DCMAKE_SKIP_RPATH=1 \
|
||||
-DBUILD_BROWSER=OFF \
|
||||
%if ! %{with vlc}
|
||||
-DENABLE_VLC=OFF \
|
||||
%endif
|
||||
-DENABLE_JACK=ON \
|
||||
-DENABLE_LIBFDK=ON \
|
||||
-DENABLE_AJA=OFF \
|
||||
%if ! %{with lua_scripting}
|
||||
-DDISABLE_LUA=ON \
|
||||
%endif
|
||||
-DOpenGL_GL_PREFERENCE=GLVND
|
||||
%cmake_build
|
||||
|
||||
|
||||
%install
|
||||
%cmake_install
|
||||
|
||||
# Add missing files to enable the build of obs-ndi
|
||||
install -Dm644 UI/obs-frontend-api/obs-frontend-api.h %{buildroot}%{_includedir}/obs/
|
||||
install -Dm644 cmake/external/ObsPluginHelpers.cmake %{buildroot}%{_libdir}/cmake/libobs/
|
||||
|
||||
# Work around broken libobs.pc file...
|
||||
# Cf. https://github.com/obsproject/obs-studio/issues/7972
|
||||
sed -e 's|^Cflags: .*|Cflags: -I${includedir} -DHAVE_OBSCONFIG_H|' -i %{buildroot}%{_libdir}/pkgconfig/libobs.pc
|
||||
|
||||
# Delete useless files
|
||||
find %{buildroot} -name ".keepme" -delete
|
||||
find %{buildroot} -name ".gitkeep" -delete
|
||||
|
||||
|
||||
%check
|
||||
desktop-file-validate %{buildroot}/%{_datadir}/applications/com.obsproject.Studio.desktop
|
||||
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml
|
||||
|
||||
|
||||
%files
|
||||
%doc README.rst
|
||||
%license UI/data/license/gplv2.txt
|
||||
%license COPYING
|
||||
%{_bindir}/obs
|
||||
%{_bindir}/obs-ffmpeg-mux
|
||||
%{_datadir}/metainfo/com.obsproject.Studio.appdata.xml
|
||||
%{_datadir}/applications/com.obsproject.Studio.desktop
|
||||
%{_datadir}/icons/hicolor/*/apps/com.obsproject.Studio.*
|
||||
%{_datadir}/obs/
|
||||
|
||||
%files libs
|
||||
%license COPYING
|
||||
%license .fedora-rpm/licenses/*
|
||||
%{_libdir}/obs-plugins/
|
||||
%{_libdir}/obs-scripting/
|
||||
# unversioned so files packaged for third-party plugins (cf. rfbz#5999)
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/*.so.*
|
||||
|
||||
%files devel
|
||||
%{_libdir}/cmake/libobs/
|
||||
%{_libdir}/cmake/obs-frontend-api/
|
||||
%{_libdir}/pkgconfig/libobs.pc
|
||||
%{_includedir}/obs/
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Apr 18 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta4-1
|
||||
- Initial build for Fedora
|
||||
|
||||
* Tue Apr 18 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta4-0.5
|
||||
- Capture more licenses
|
||||
|
||||
* Sun Apr 16 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta4-0.4
|
||||
- Backport fix for RHEL 9 builds
|
||||
|
||||
* Sun Apr 16 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta4-0.3
|
||||
- Add license declaration files for bundled deps
|
||||
|
||||
* Sun Apr 16 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta4-0.2
|
||||
- Ensure system EGL headers are used
|
||||
|
||||
* Sat Apr 15 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta4-0.1
|
||||
- Update to 29.1.0~beta4
|
||||
|
||||
* Wed Apr 05 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta3-0.1
|
||||
- Update to 29.1.0~beta3
|
||||
|
||||
* Wed Apr 05 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta2-0.1
|
||||
- Update to 29.1.0~beta2
|
||||
|
||||
* Sun Apr 02 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta1-0.2
|
||||
- Get rid of RPATHs
|
||||
- Backport upstream fix to fix EPEL 9 build
|
||||
- Drop old cruft
|
||||
|
||||
* Wed Mar 29 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~beta1-0.1
|
||||
- Upgrade to v29.1.0~beta1
|
||||
|
||||
* Wed Mar 29 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~git202303261743.ad859a3-0.4
|
||||
- Refresh patches for OpenH264 support
|
||||
|
||||
* Tue Mar 28 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~git202303261743.ad859a3-0.3
|
||||
- Refresh patches for OpenH264 support
|
||||
|
||||
* Tue Mar 28 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~git202303261743.ad859a3-0.2
|
||||
- Refresh patches for OpenH264 support
|
||||
|
||||
* Mon Mar 27 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~git202303261743.ad859a3-0.1
|
||||
- Update to git snapshot
|
||||
|
||||
* Sun Mar 26 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.1.0~git202303260813.94bf325-0.1
|
||||
- Update to git snapshot
|
||||
- Add patches for OpenH264 support
|
||||
|
||||
* Sat Feb 18 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.0.2-0.1
|
||||
- Update to 29.0.2
|
||||
- Drop patch about encoder references to x264
|
||||
|
||||
* Sat Jan 07 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.0.0-0.1
|
||||
- Update to v29.0.0 final
|
||||
- Add patch for adjusting encoder reference for x264
|
||||
|
||||
* Mon Jan 02 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.0.0~beta3-4
|
||||
- Ensure QtWayland is installed when libwayland-client is installed
|
||||
|
||||
* Sun Jan 01 2023 Neal Gompa <ngompa@fedoraproject.org> - 29.0.0~beta3-3
|
||||
- Make ffmpeg dependency agnostic to packaging
|
||||
|
||||
* Wed Dec 28 2022 Neal Gompa <ngompa@fedoraproject.org> - 29.0.0~beta3-2
|
||||
- Work around broken libobs.pc file
|
||||
|
||||
* Tue Dec 27 2022 Neal Gompa <ngompa@fedoraproject.org> - 29.0.0~beta3-1
|
||||
- Rebase to v29.0.0~beta3
|
||||
- Enable vst plugin
|
||||
- Enable websocket plugin
|
||||
- Disable x264 plugin
|
||||
|
||||
* Thu Nov 17 2022 Vitaly Zaitsev <vitaly@easycoding.org> - 28.1.2-2
|
||||
- Rebuilt due to Qt update.
|
||||
|
||||
* Sun Nov 06 2022 Leigh Scott <leigh123linux@gmail.com> - 28.1.2-1
|
||||
- Update to 28.1.2
|
||||
|
||||
* Thu Nov 03 2022 Leigh Scott <leigh123linux@gmail.com> - 28.1.1-1
|
||||
- Update to 28.1.1
|
||||
|
||||
* Tue Nov 01 2022 Leigh Scott <leigh123linux@gmail.com> - 28.1.0-1
|
||||
- Update to 28.1.0
|
||||
|
||||
* Mon Oct 03 2022 Leigh Scott <leigh123linux@gmail.com> - 28.0.3-1
|
||||
- Update to 28.0.3
|
||||
|
||||
* Mon Sep 26 2022 Leigh Scott <leigh123linux@gmail.com> - 28.0.2-1
|
||||
- Update to 28.0.2
|
||||
- Enable jack (rfbz#6419)
|
||||
|
||||
* Tue Sep 13 2022 Leigh Scott <leigh123linux@gmail.com> - 28.0.1-4
|
||||
- Use qt6 for rawhide only
|
||||
|
||||
* Tue Sep 13 2022 Leigh Scott <leigh123linux@gmail.com> - 28.0.1-3
|
||||
- Fix wrong svg names
|
||||
|
||||
* Tue Sep 13 2022 Leigh Scott <leigh123linux@gmail.com> - 28.0.1-2
|
||||
- touch the missing sub-modules instead
|
||||
|
||||
* Tue Sep 13 2022 Leigh Scott <leigh123linux@gmail.com> - 28.0.1-1
|
||||
- Update to 28.0.1
|
||||
- Remove vst sub-module as it's qt5 only
|
||||
- Add browser and websocket sub-modules so the source compiles
|
||||
Upstream can fix their own mess!
|
||||
|
||||
* Sun Aug 07 2022 RPM Fusion Release Engineering <sergiomb@rpmfusion.org> - 27.2.4-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild and ffmpeg
|
||||
5.1
|
||||
|
||||
* Sat Jul 23 2022 Leigh Scott <leigh123linux@gmail.com> - 27.2.4-4
|
||||
- Rebuild for new qt5
|
||||
|
||||
* Sat Jun 25 2022 Robert-André Mauchin <zebob.m@gmail.com> - 27.2.4-3
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Sun Jun 12 2022 Sérgio Basto <sergio@serjux.com> - 27.2.4-2
|
||||
- Mass rebuild for x264-0.164
|
||||
|
||||
* Mon Apr 11 2022 Leigh Scott <leigh123linux@gmail.com> - 27.2.4-1
|
||||
- Update to 27.2.4
|
||||
|
||||
* Thu Mar 31 2022 Leigh Scott <leigh123linux@gmail.com> - 27.2.1-2
|
||||
- Rebuild for new qt
|
||||
|
||||
* Sat Feb 26 2022 Neal Gompa <ngompa@fedoraproject.org> - 27.2.1-1
|
||||
- Update to 27.2.1
|
||||
- Disable Lua scripting for POWER to fix ppc64le build
|
||||
- Drop legacy Fedora and EL8 stuff
|
||||
|
||||
* Mon Feb 14 2022 Neal Gompa <ngompa@fedoraproject.org> - 27.2.0-1
|
||||
- Update to 27.2.0 final
|
||||
|
||||
* Tue Feb 08 2022 Neal Gompa <ngompa@fedoraproject.org> - 27.2.0~rc4-1
|
||||
- Update to 27.2.0~rc4
|
||||
|
||||
* Mon Feb 07 2022 Leigh Scott <leigh123linux@gmail.com> - 27.2.0~rc1-1
|
||||
- Update to 27.2.0~rc1
|
||||
|
||||
* Wed Dec 01 2021 Nicolas Chauvet <kwizart@gmail.com> - 27.1.3-2
|
||||
- Rebuilt
|
||||
|
||||
* Tue Oct 05 2021 Neal Gompa <ngompa@fedoraproject.org> - 27.1.3-1
|
||||
- Update to 27.1.3
|
||||
|
||||
* Tue Sep 28 2021 Neal Gompa <ngompa@fedoraproject.org> - 27.1.1-1
|
||||
- Bump to 27.1.1 final
|
||||
|
||||
* Sat Sep 18 2021 Neal Gompa <ngompa@fedoraproject.org> - 27.1.0~rc3-2
|
||||
- Backport fix for PipeWire screencasting on F35+
|
||||
|
||||
* Sat Sep 18 2021 Neal Gompa <ngompa@fedoraproject.org> - 27.1.0~rc3-1
|
||||
- Update to 27.1.0~rc3
|
||||
|
||||
* Sat Sep 11 2021 Neal Gompa <ngompa@fedoraproject.org> - 27.1.0~rc2-1
|
||||
- Update to 27.1.0~rc2
|
||||
|
||||
* Tue Aug 03 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 27.0.1-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Sun Jul 11 2021 Sérgio Basto <sergio@serjux.com> - 27.0.1-3
|
||||
- Mass rebuild for x264-0.163
|
||||
|
||||
* Sat Jun 26 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.1-2
|
||||
- Backport fix for cursor positioning in Wayland screencasting
|
||||
|
||||
* Sat Jun 12 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.1-1
|
||||
- Update to 27.0.1
|
||||
|
||||
* Tue Jun 01 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.0-1
|
||||
- Bump to 27.0.0 final
|
||||
- Move unversioned so files to -libs for third-party plugins (rfbz#5999)
|
||||
- Make build for EL8
|
||||
- Drop legacy EL7 stuff
|
||||
|
||||
* Mon May 24 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.0~rc6-1
|
||||
- Bump to 27.0.0~rc6
|
||||
|
||||
* Thu May 20 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.0~rc5-1
|
||||
- Bump to 27.0.0~rc5
|
||||
- Drop upstreamed patch for building jack plugin
|
||||
|
||||
* Wed May 05 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.0~rc3-2
|
||||
- Fix detecting pipewire-libjack so jack plugin is built
|
||||
|
||||
* Wed May 05 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.0~rc3-1
|
||||
- Bump to 27.0.0~rc3
|
||||
|
||||
* Thu Apr 22 2021 Leigh Scott <leigh123linux@gmail.com> - 27.0.0~rc2-2
|
||||
- Rebuild for libftl issue (rfbz5978)
|
||||
|
||||
* Sat Apr 17 2021 Neal Gompa <ngompa13@gmail.com> - 27.0.0~rc2-1
|
||||
- Bump to 27.0.0~rc2
|
||||
|
||||
* Wed Feb 10 2021 Nicolas Chauvet <kwizart@gmail.com> - 26.1.2-3
|
||||
- Add obs-vst plugins
|
||||
- Build for all arches (armv7hl, aarch64, ppc64le)
|
||||
- Re-order build dependencies
|
||||
|
||||
* Wed Feb 03 2021 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 26.1.2-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jan 20 2021 Martin Gansser <martinkg@fedoraproject.org> - 26.1.2-1
|
||||
- Update to 26.1.2
|
||||
|
||||
* Tue Jan 19 2021 Martin Gansser <martinkg@fedoraproject.org> - 26.1.1-1
|
||||
- Update to 26.1.1
|
||||
|
||||
* Fri Jan 1 2021 Leigh Scott <leigh123linux@gmail.com> - 26.1.0-2
|
||||
- Rebuilt for new ffmpeg snapshot
|
||||
|
||||
* Sat Dec 26 2020 Momcilo Medic <fedorauser@fedoraproject.org> - 26.1.0-1
|
||||
- Updated to 26.1.0
|
||||
|
||||
* Fri Nov 27 2020 Sérgio Basto <sergio@serjux.com> - 26.0.2-3
|
||||
- Mass rebuild for x264-0.161
|
||||
|
||||
* Wed Oct 14 2020 Momcilo Medic <fedorauser@fedoraproject.org> - 26.0.2-2
|
||||
- Bumped release for setting developer toolset version
|
||||
|
||||
* Wed Oct 14 2020 Momcilo Medic <fedorauser@fedoraproject.org> - 26.0.2-1
|
||||
- Removed doxygen bits as upstream removed it
|
||||
- Updated to 26.0.2
|
||||
|
||||
* Tue Aug 18 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 25.0.8-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Thu Aug 06 2020 Leigh Scott <leigh123linux@gmail.com> - 25.0.8-4
|
||||
- Improve compatibility with new CMake macro
|
||||
|
||||
* Tue Jul 07 2020 Sérgio Basto <sergio@serjux.com> - 25.0.8-3
|
||||
- Mass rebuild for x264
|
||||
|
||||
* Sat May 30 2020 Leigh Scott <leigh123linux@gmail.com> - 25.0.8-2
|
||||
- Rebuild for python-3.9
|
||||
|
||||
* Tue Apr 28 2020 Leigh Scott <leigh123linux@googlemail.com> - 25.0.8-1
|
||||
- Updated to 25.0.8
|
||||
|
||||
* Thu Apr 16 2020 Leigh Scott <leigh123linux@gmail.com> - 25.0.6-1
|
||||
- Updated to 25.0.6
|
||||
|
||||
* Mon Apr 06 2020 Momcilo Medic <fedorauser@fedoraproject.org> - 25.0.4-1
|
||||
- Updated to 25.0.4
|
||||
|
||||
* Tue Mar 31 2020 Momcilo Medic <fedorauser@fedoraproject.org> - 25.0.3-1
|
||||
- Updated to 25.0.3
|
||||
|
||||
* Fri Mar 20 2020 Martin Gansser <martinkg@fedoraproject.org> - 25.0.1-1
|
||||
- Update to 25.0.1
|
||||
|
||||
* Sat Feb 22 2020 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 24.0.6-2
|
||||
- Rebuild for ffmpeg-4.3 git
|
||||
|
||||
* Fri Feb 21 2020 Martin Gansser <martinkg@fedoraproject.org> - 24.0.6-1
|
||||
- Update to 24.0.6
|
||||
|
||||
* Wed Feb 05 2020 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 24.0.5-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Sun Dec 22 2019 Leigh Scott <leigh123linux@googlemail.com> - 24.0.5-1
|
||||
- Updated to 24.0.5
|
||||
|
||||
* Tue Dec 17 2019 Leigh Scott <leigh123linux@gmail.com> - 24.0.3-3
|
||||
- Mass rebuild for x264
|
||||
|
||||
* Sun Oct 13 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 24.0.3-2
|
||||
- Switched BR gcc-objc to gcc to unify SPEC file across builds
|
||||
|
||||
* Sat Oct 12 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 24.0.3-1
|
||||
- Updated to 24.0.3
|
||||
|
||||
* Sun Sep 22 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 24.0.1-1
|
||||
- Updated to 24.0.1
|
||||
|
||||
* Sat Aug 24 2019 Leigh Scott <leigh123linux@gmail.com> - 23.2.1-3
|
||||
- Rebuild for python-3.8
|
||||
|
||||
* Wed Aug 07 2019 Leigh Scott <leigh123linux@gmail.com> - 23.2.1-2
|
||||
- Rebuild for new ffmpeg version
|
||||
|
||||
* Tue Jun 18 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 23.2.1-1
|
||||
- Updated to 23.2.1
|
||||
|
||||
* Mon Apr 08 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 23.1.0-1
|
||||
- Updated to 23.1.0
|
||||
|
||||
* Sun Apr 07 2019 Martin Gansser <martinkg@fedoraproject.org> - 23.0.2-4
|
||||
- Add obs-frontend-api.h to devel subpkg, to enable build of obs-ndi
|
||||
- Add ObsPluginHelpers.cmake to devel subpkg, to enable build of obs-ndi
|
||||
|
||||
* Mon Mar 18 2019 Xavier Bachelot <xavier@bachelot.org> - 23.0.2-3
|
||||
- Fix BR: on speex/speexdsp for EL7.
|
||||
- Fix BR: on python for EL7.
|
||||
|
||||
* Tue Mar 12 2019 Sérgio Basto <sergio@serjux.com> - 23.0.2-2
|
||||
- Mass rebuild for x264
|
||||
|
||||
* Sun Mar 10 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 23.0.2-1
|
||||
- Updated to 23.0.2
|
||||
|
||||
* Mon Mar 04 2019 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 23.0.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Feb 25 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 23.0.0-1
|
||||
- Updated to 23.0.0
|
||||
|
||||
* Wed Jan 9 2019 Momcilo Medic <fedorauser@fedoraproject.org> - 22.0.3-3
|
||||
- Fixed missing dependencies
|
||||
- Enabled scripting support
|
||||
|
||||
* Thu Oct 04 2018 Sérgio Basto <sergio@serjux.com> - 22.0.3-2
|
||||
- Mass rebuild for x264 and/or x265
|
||||
|
||||
* Fri Sep 7 2018 Momcilo Medic <fedorauser@fedoraproject.org> - 22.0.3-1
|
||||
- Updated to 22.0.3
|
||||
|
||||
* Wed Aug 22 2018 Momcilo Medic <fedorauser@fedoraproject.org> - 22.0.1-1
|
||||
- Updated to 22.0.1
|
||||
|
||||
* Fri Jul 27 2018 RPM Fusion Release Engineering <leigh123linux@gmail.com> - 21.1.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Tue Jul 10 2018 Miro Hrončok <mhroncok@redhat.com> - 21.1.2-2
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Wed May 16 2018 Leigh Scott <leigh123linux@googlemail.com> - 21.1.2-1
|
||||
- Update to 21.1.2
|
||||
- Fix requires
|
||||
|
||||
* Sat Mar 31 2018 Leigh Scott <leigh123linux@googlemail.com> - 21.1.1-1
|
||||
- Update to 21.1.1
|
||||
|
||||
* Mon Mar 19 2018 Leigh Scott <leigh123linux@googlemail.com> - 21.1.0-1
|
||||
- Update to 21.1.0
|
||||
|
||||
* Fri Mar 09 2018 Martin Gansser <martinkg@fedoraproject.org> - 21.0.3-1
|
||||
- Update to 21.0.3
|
||||
- Add BR python3-devel
|
||||
- Add bytecompile with Python 3 %%global __python %%{__python3}A
|
||||
|
||||
* Thu Mar 08 2018 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 21.0.2-4
|
||||
- Rebuilt for new ffmpeg snapshot
|
||||
|
||||
* Thu Mar 01 2018 RPM Fusion Release Engineering <leigh123linux@googlemail.com> - 21.0.2-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Feb 08 2018 Leigh Scott <leigh123linux@googlemail.com> - 21.0.2-2
|
||||
- Fix scriptlets
|
||||
- Use ninja to build
|
||||
|
||||
* Wed Feb 07 2018 Momcilo Medic <fedorauser@fedoraproject.org> - 21.0.2-1
|
||||
- Updated to 21.0.2
|
||||
|
||||
* Thu Jan 18 2018 Leigh Scott <leigh123linux@googlemail.com> - 20.1.3-3
|
||||
- Rebuilt for ffmpeg-3.5 git
|
||||
|
||||
* Sun Dec 31 2017 Sérgio Basto <sergio@serjux.com> - 20.1.3-2
|
||||
- Mass rebuild for x264 and x265
|
||||
|
||||
* Fri Dec 08 2017 Leigh Scott <leigh123linux@googlemail.com> - 20.1.3-1
|
||||
- Updated to 20.1.3
|
||||
|
||||
* Tue Oct 17 2017 Martin Gansser <martinkg@fedoraproject.org> - 20.0.1-1
|
||||
- Updated to 20.0.1
|
||||
|
||||
* Thu Aug 10 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 20.0.0-1
|
||||
- Updated to 20.0.0
|
||||
|
||||
* Sat Jul 08 2017 Martin Gansser <martinkg@fedoraproject.org> - 19.0.3-1
|
||||
- Updated to 19.0.3
|
||||
|
||||
* Mon May 22 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 19.0.2-1
|
||||
- Updated to 19.0.2
|
||||
|
||||
* Wed May 17 2017 Leigh Scott <leigh123linux@googlemail.com> - 18.0.2-2
|
||||
- Rebuild for ffmpeg update
|
||||
|
||||
* Sat May 6 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 18.0.2-1
|
||||
- Updated to 18.0.2
|
||||
|
||||
* Sat Apr 29 2017 Leigh Scott <leigh123linux@googlemail.com> - 18.0.1-3
|
||||
- Rebuild for ffmpeg update
|
||||
|
||||
* Mon Mar 20 2017 RPM Fusion Release Engineering <kwizart@rpmfusion.org> - 18.0.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Wed Mar 8 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 18.0.1-1
|
||||
- Updated to 18.0.1
|
||||
|
||||
* Wed Mar 1 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 18.0.0-1
|
||||
- Updated to 18.0.0
|
||||
|
||||
* Mon Jan 30 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 17.0.2-2
|
||||
- Reintroduced obs-ffmpeg-mux.patch
|
||||
- Fixes #4436
|
||||
|
||||
* Wed Jan 18 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 17.0.2-1
|
||||
- Updated to 17.0.2
|
||||
|
||||
* Tue Jan 03 2017 Momcilo Medic <fedorauser@fedoraproject.org> - 17.0.0-1
|
||||
- Upstream fixed arch-dependent-file-in-usr-share
|
||||
- Removed obs-ffmpeg-mux.patch
|
||||
- Updated to 17.0.0
|
||||
|
||||
* Sun Nov 27 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.16.6-1
|
||||
- Updated to 0.16.6
|
||||
|
||||
* Tue Nov 08 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.16.5-1
|
||||
- Updated to 0.16.5
|
||||
|
||||
* Tue Oct 18 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.16.2-2.20161018git4505d5a
|
||||
- Updated to git to resolve unversioned shared object
|
||||
- Identified speexdsp-devel as a dependency
|
||||
|
||||
* Sat Oct 01 2016 Martin Gansser <martinkg@fedoraproject.org> - 0.16.2-1
|
||||
- Updated to 0.16.2
|
||||
- Build doxygen html documentation
|
||||
- Added BR doxygen
|
||||
|
||||
* Fri Aug 26 2016 Leigh Scott <leigh123linux@googlemail.com> - 0.15.4-3
|
||||
- Actually define FFMPEG_MUX_FIXED (fixes 'command not found' when trying to record)
|
||||
|
||||
* Sat Aug 13 2016 Leigh Scott <leigh123linux@googlemail.com> - 0.15.4-2
|
||||
- Disable build for ARM (Arm gcc has no xmmintrin.h file)
|
||||
|
||||
* Fri Aug 12 2016 Leigh Scott <leigh123linux@googlemail.com> - 0.15.4-1
|
||||
- Fix release tag (0.x release is for git releases)
|
||||
|
||||
* Mon Aug 08 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.15.4-0.1
|
||||
- Updated to 0.15.4
|
||||
|
||||
* Fri Aug 05 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.15.2-0.5
|
||||
- Added alsa-devel as BR for ALSA plugin.
|
||||
- Added vlc-devel as BR for VLC plugin.
|
||||
- Added systemd-devel as BR for Udev V4L.
|
||||
|
||||
* Wed Aug 03 2016 Leigh Scott <leigh123linux@googlemail.com> - 0.15.2-0.4
|
||||
- Fix source tag (spectool now downloads in n-v format)
|
||||
- Remove surplus ldconfig from postun (no public .so files in main package)
|
||||
- Update scriptlets to meet guidelines (need full path)
|
||||
|
||||
* Wed Jul 20 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.15.2-0.3
|
||||
- Added license file gplv2.txt
|
||||
|
||||
* Mon Jul 18 2016 Martin Gansser <martinkg@fedoraproject.org> - 0.15.2-0.2
|
||||
- Fixed arch-dependent-file-in-usr-share
|
||||
- Added obs-ffmpeg-mux.patch
|
||||
- Added libs subpkg
|
||||
- Call ldconfig in post(un) scripts for the shared library
|
||||
|
||||
* Sat Jul 16 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.15.2-0.1
|
||||
- Updated to 0.15.2
|
||||
|
||||
* Sun Jul 10 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.15.1-0.1
|
||||
- Updated to 0.15.1
|
||||
|
||||
* Sat Jul 09 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.15.0-0.1
|
||||
- Updated to 0.15.0
|
||||
|
||||
* Mon May 16 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.14.2-0.1
|
||||
- Updated to 0.14.2
|
||||
|
||||
* Mon Apr 25 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.14.1-0.1
|
||||
- Updated to 0.14.1
|
||||
|
||||
* Sun Apr 24 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.14.0-0.1
|
||||
- Updated to 0.14.0
|
||||
|
||||
* Tue Mar 22 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.13.4-0.1
|
||||
- Updated to 0.13.4
|
||||
|
||||
* Sun Mar 20 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.13.3-0.1
|
||||
- Updated to 0.13.3
|
||||
|
||||
* Tue Feb 23 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.13.2-0.1
|
||||
- Updated to 0.13.2
|
||||
|
||||
* Sat Feb 06 2016 Momcilo Medic <fedorauser@fedoraproject.org> - 0.13.1-0.1
|
||||
- Updated to 0.13.1
|
||||
|
||||
* Sun Dec 20 2015 Martin Gansser <martinkg@fedoraproject.org> - 0.12.4-0.2
|
||||
- replace OBS_MULTIARCH_SUFFIX by LIB_SUFFIX
|
||||
|
||||
* Sat Dec 12 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.12.4-0.1
|
||||
- Updated to 0.12.4
|
||||
|
||||
* Sat Dec 05 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.12.3-0.1
|
||||
- Updated to 0.12.3
|
||||
|
||||
* Sat Nov 21 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.12.2-0.1
|
||||
- Updated to 0.12.2
|
||||
|
||||
* Thu Nov 19 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.12.1-0.1
|
||||
- Updated to 0.12.1
|
||||
|
||||
* Thu Sep 24 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.12.0-0.1
|
||||
- Updated to 0.12.0
|
||||
|
||||
* Mon Aug 17 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.11.4-0.1
|
||||
- Added OBS_VERSION_OVERRIDE to correct version in compilation
|
||||
- Updated to 0.11.4
|
||||
|
||||
* Sat Aug 08 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.11.3-0.1
|
||||
- Updated to 0.11.3
|
||||
|
||||
* Thu Jul 30 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.11.2-0.1
|
||||
- Updated to 0.11.2
|
||||
|
||||
* Fri Jul 10 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.11.1-0.1
|
||||
- Updated to 0.11.1
|
||||
|
||||
* Wed May 27 2015 Momcilo Medic <fedorauser@fedoraproject.org> - 0.10.1-0.1
|
||||
- Initial .spec file
|
|
@ -0,0 +1,2 @@
|
|||
SHA512 (obs-studio-29.1.0-beta4.tar.gz) = fff4d1039884aab96f66e4dd4c0e51c95e62d7700f765645dc5c196af1039ddca1f793a99aab811cbcf3eefadcdc140c544547e0177bee4792a06c8ea5ac0a5b
|
||||
SHA512 (obs-websocket-5.2.2.tar.gz) = 7678e247b8cc4d9cbe650a7b45a63b47a0752ba8e08e3b02bc7bdff42ec7d122eff9bad9139edb0f268379e495bae5e8f05dd177c6f935c7b47c02858727cb28
|
Loading…
Reference in New Issue