Control: tags 1115044 + patch Control: tags 1115044 + pending Dear maintainer,
I've prepared an NMU for obs-studio (versioned as 30.2.3+dfsg-3.2) and uploaded it to DELAYED/7. Please feel free to tell me if I should cancel it. cu Adrian
diffstat for obs-studio-30.2.3+dfsg obs-studio-30.2.3+dfsg changelog | 7 patches/0001-obs-ffmpeg-Fix-build-with-FFMPEG-8-and-above.patch | 130 ++++++++++ patches/series | 1 3 files changed, 138 insertions(+) diff -Nru obs-studio-30.2.3+dfsg/debian/changelog obs-studio-30.2.3+dfsg/debian/changelog --- obs-studio-30.2.3+dfsg/debian/changelog 2025-10-05 20:35:32.000000000 +0300 +++ obs-studio-30.2.3+dfsg/debian/changelog 2026-01-03 19:53:40.000000000 +0200 @@ -1,3 +1,10 @@ +obs-studio (30.2.3+dfsg-3.2) unstable; urgency=medium + + * Non-maintainer upload. + * Backport upstream fix for FTBFS with FFmpeg 8. (Closes: #1115044) + + -- Adrian Bunk <[email protected]> Sat, 03 Jan 2026 19:53:40 +0200 + obs-studio (30.2.3+dfsg-3.1) unstable; urgency=medium * Non-maintainer upload. diff -Nru obs-studio-30.2.3+dfsg/debian/patches/0001-obs-ffmpeg-Fix-build-with-FFMPEG-8-and-above.patch obs-studio-30.2.3+dfsg/debian/patches/0001-obs-ffmpeg-Fix-build-with-FFMPEG-8-and-above.patch --- obs-studio-30.2.3+dfsg/debian/patches/0001-obs-ffmpeg-Fix-build-with-FFMPEG-8-and-above.patch 1970-01-01 02:00:00.000000000 +0200 +++ obs-studio-30.2.3+dfsg/debian/patches/0001-obs-ffmpeg-Fix-build-with-FFMPEG-8-and-above.patch 2026-01-03 19:49:10.000000000 +0200 @@ -0,0 +1,130 @@ +From ba6ce20e311dcf4e34e39f48358c879fee042c06 Mon Sep 17 00:00:00 2001 +From: Brahmajit Das <[email protected]> +Date: Sat, 23 Aug 2025 20:32:00 +0530 +Subject: obs-ffmpeg: Fix build with FFMPEG 8 and above + +With commit https://github.com/FFmpeg/FFmpeg/commit/822432769868 FFMPEG +has removed almost all of the FF_API_FF_PROFILE_LEVEL related defines. +They were deprecated since 2023-09-06. This results in build failures. + +This is first found on Gentoo with FFMPEG pre-release version. + +Downstream-bug: https://bugs.gentoo.org/961699 +Signed-off-by: Brahmajit Das <[email protected]> +--- + plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c | 38 +++++++++++++-------------- + 1 file changed, 19 insertions(+), 19 deletions(-) + +diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c b/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c +index 96d08f29f..dee64955f 100644 +--- a/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c ++++ b/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c +@@ -290,10 +290,10 @@ static bool vaapi_update(void *data, obs_data_t *settings) + + #ifdef ENABLE_HEVC + if (enc->codec == CODEC_HEVC) { +- if ((profile == FF_PROFILE_HEVC_MAIN) && ++ if ((profile == AV_PROFILE_HEVC_MAIN) && + (info.format == VIDEO_FORMAT_P010)) { + warn("Forcing Main10 for P010"); +- profile = FF_PROFILE_HEVC_MAIN_10; ++ profile = AV_PROFILE_HEVC_MAIN_10; + } + } + #endif +@@ -916,16 +916,16 @@ static void vaapi_defaults_internal(obs_data_t *settings, enum codec_type codec) + #ifdef ENABLE_HEVC + if (codec == CODEC_HEVC) + obs_data_set_default_int(settings, "profile", +- FF_PROFILE_HEVC_MAIN); ++ AV_PROFILE_HEVC_MAIN); + else + #endif + if (codec == CODEC_H264) + obs_data_set_default_int(settings, "profile", +- FF_PROFILE_H264_HIGH); ++ AV_PROFILE_H264_HIGH); + else if (codec == CODEC_AV1) + obs_data_set_default_int(settings, "profile", +- FF_PROFILE_AV1_MAIN); +- obs_data_set_default_int(settings, "level", FF_LEVEL_UNKNOWN); ++ AV_PROFILE_AV1_MAIN); ++ obs_data_set_default_int(settings, "level", AV_LEVEL_UNKNOWN); + obs_data_set_default_int(settings, "bitrate", 2500); + obs_data_set_default_int(settings, "keyint_sec", 0); + obs_data_set_default_int(settings, "bf", 0); +@@ -981,33 +981,33 @@ static bool vaapi_device_modified(obs_properties_t *ppts, obs_property_t *p, + goto fail; + + switch (profile) { +- case FF_PROFILE_H264_CONSTRAINED_BASELINE: ++ case AV_PROFILE_H264_CONSTRAINED_BASELINE: + if (!vaapi_display_h264_supported(va_dpy, device)) + goto fail; + profile = VAProfileH264ConstrainedBaseline; + break; +- case FF_PROFILE_H264_MAIN: ++ case AV_PROFILE_H264_MAIN: + if (!vaapi_display_h264_supported(va_dpy, device)) + goto fail; + profile = VAProfileH264Main; + break; +- case FF_PROFILE_H264_HIGH: ++ case AV_PROFILE_H264_HIGH: + if (!vaapi_display_h264_supported(va_dpy, device)) + goto fail; + profile = VAProfileH264High; + break; +- case FF_PROFILE_AV1_MAIN: ++ case AV_PROFILE_AV1_MAIN: + if (!vaapi_display_av1_supported(va_dpy, device)) + goto fail; + profile = VAProfileAV1Profile0; + break; + #ifdef ENABLE_HEVC +- case FF_PROFILE_HEVC_MAIN: ++ case AV_PROFILE_HEVC_MAIN: + if (!vaapi_display_hevc_supported(va_dpy, device)) + goto fail; + profile = VAProfileHEVCMain; + break; +- case FF_PROFILE_HEVC_MAIN_10: ++ case AV_PROFILE_HEVC_MAIN_10: + if (!vaapi_display_hevc_supported(va_dpy, device)) + goto fail; + profile = VAProfileHEVCMain10; +@@ -1181,16 +1181,16 @@ static obs_properties_t *vaapi_properties_internal(enum codec_type codec) + OBS_COMBO_TYPE_LIST, + OBS_COMBO_FORMAT_INT); + if (codec == CODEC_HEVC) { +- obs_property_list_add_int(list, "Main", FF_PROFILE_HEVC_MAIN); ++ obs_property_list_add_int(list, "Main", AV_PROFILE_HEVC_MAIN); + obs_property_list_add_int(list, "Main10", +- FF_PROFILE_HEVC_MAIN_10); ++ AV_PROFILE_HEVC_MAIN_10); + } else if (codec == CODEC_H264) { + obs_property_list_add_int(list, "Constrained Baseline", +- FF_PROFILE_H264_CONSTRAINED_BASELINE); +- obs_property_list_add_int(list, "Main", FF_PROFILE_H264_MAIN); +- obs_property_list_add_int(list, "High", FF_PROFILE_H264_HIGH); ++ AV_PROFILE_H264_CONSTRAINED_BASELINE); ++ obs_property_list_add_int(list, "Main", AV_PROFILE_H264_MAIN); ++ obs_property_list_add_int(list, "High", AV_PROFILE_H264_HIGH); + } else if (codec == CODEC_AV1) { +- obs_property_list_add_int(list, "Main", FF_PROFILE_AV1_MAIN); ++ obs_property_list_add_int(list, "Main", AV_PROFILE_AV1_MAIN); + } + + obs_property_set_modified_callback(list, vaapi_device_modified); +@@ -1198,7 +1198,7 @@ static obs_properties_t *vaapi_properties_internal(enum codec_type codec) + list = obs_properties_add_list(props, "level", obs_module_text("Level"), + OBS_COMBO_TYPE_LIST, + OBS_COMBO_FORMAT_INT); +- obs_property_list_add_int(list, "Auto", FF_LEVEL_UNKNOWN); ++ obs_property_list_add_int(list, "Auto", AV_LEVEL_UNKNOWN); + if (codec == CODEC_H264) { + obs_property_list_add_int(list, "3.0", 30); + obs_property_list_add_int(list, "3.1", 31); +-- +2.30.2 + diff -Nru obs-studio-30.2.3+dfsg/debian/patches/series obs-studio-30.2.3+dfsg/debian/patches/series --- obs-studio-30.2.3+dfsg/debian/patches/series 2025-10-05 20:35:32.000000000 +0300 +++ obs-studio-30.2.3+dfsg/debian/patches/series 2026-01-03 19:53:31.000000000 +0200 @@ -16,3 +16,4 @@ linux-v4l2-Save-device-by-id-or-path.patch 0017-Fix-virtual-cam.patch 0001-deps-json11-Fix-compile-error-on-GCC-15.patch +0001-obs-ffmpeg-Fix-build-with-FFMPEG-8-and-above.patch

