|
| 1 | +From efd1bec48578982a2dd63eeb9249365f0abde37b Mon Sep 17 00:00:00 2001 |
| 2 | +From: Armin Novak <armin.novak@thincast.com> |
| 3 | +Date: Fri, 28 Aug 2026 10:56:39 +0200 |
| 4 | +Subject: [PATCH] [codec,h264] fix missing version guards |
| 5 | + |
| 6 | +fixes -DWITH_VAAPI=ON on older systems |
| 7 | +--- |
| 8 | + libfreerdp/codec/h264_ffmpeg.c | 31 ++++++++++++++++++++++++------- |
| 9 | + 1 file changed, 24 insertions(+), 7 deletions(-) |
| 10 | + |
| 11 | +diff --git a/libfreerdp/codec/h264_ffmpeg.c b/libfreerdp/codec/h264_ffmpeg.c |
| 12 | +index d04162a3..d1e03e9e 100644 |
| 13 | +--- a/libfreerdp/codec/h264_ffmpeg.c |
| 14 | ++++ b/libfreerdp/codec/h264_ffmpeg.c |
| 15 | +@@ -267,22 +267,29 @@ static const char* av_format_str(int32_t format) |
| 16 | + EVCASE(AV_PIX_FMT_VULKAN); |
| 17 | + EVCASE(AV_PIX_FMT_Y210BE); |
| 18 | + EVCASE(AV_PIX_FMT_Y210LE); |
| 19 | +- EVCASE(AV_PIX_FMT_X2RGB10LE); |
| 20 | +- EVCASE(AV_PIX_FMT_X2RGB10BE); |
| 21 | +- EVCASE(AV_PIX_FMT_X2BGR10LE); |
| 22 | +- EVCASE(AV_PIX_FMT_X2BGR10BE); |
| 23 | ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 17, 100) |
| 24 | + EVCASE(AV_PIX_FMT_P210BE); |
| 25 | + EVCASE(AV_PIX_FMT_P210LE); |
| 26 | +- EVCASE(AV_PIX_FMT_P410BE); |
| 27 | +- EVCASE(AV_PIX_FMT_P410LE); |
| 28 | + EVCASE(AV_PIX_FMT_P216BE); |
| 29 | + EVCASE(AV_PIX_FMT_P216LE); |
| 30 | ++ EVCASE(AV_PIX_FMT_P410BE); |
| 31 | ++ EVCASE(AV_PIX_FMT_P410LE); |
| 32 | ++ EVCASE(AV_PIX_FMT_X2RGB10LE); |
| 33 | ++ EVCASE(AV_PIX_FMT_X2RGB10BE); |
| 34 | ++ EVCASE(AV_PIX_FMT_X2BGR10LE); |
| 35 | ++ EVCASE(AV_PIX_FMT_X2BGR10BE); |
| 36 | + EVCASE(AV_PIX_FMT_P416BE); |
| 37 | + EVCASE(AV_PIX_FMT_P416LE); |
| 38 | ++#endif |
| 39 | ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(58, 2, 100) |
| 40 | + EVCASE(AV_PIX_FMT_VUYA); |
| 41 | ++ EVCASE(AV_PIX_FMT_VUYX); |
| 42 | ++#endif |
| 43 | ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 33, 101) |
| 44 | + EVCASE(AV_PIX_FMT_RGBAF16BE); |
| 45 | + EVCASE(AV_PIX_FMT_RGBAF16LE); |
| 46 | +- EVCASE(AV_PIX_FMT_VUYX); |
| 47 | ++#endif |
| 48 | ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(57, 37, 100) |
| 49 | + EVCASE(AV_PIX_FMT_P012LE); |
| 50 | + EVCASE(AV_PIX_FMT_P012BE); |
| 51 | + EVCASE(AV_PIX_FMT_Y212BE); |
| 52 | +@@ -295,12 +302,17 @@ static const char* av_format_str(int32_t format) |
| 53 | + EVCASE(AV_PIX_FMT_RGBF32LE); |
| 54 | + EVCASE(AV_PIX_FMT_RGBAF32BE); |
| 55 | + EVCASE(AV_PIX_FMT_RGBAF32LE); |
| 56 | ++#endif |
| 57 | ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(59, 10, 100) |
| 58 | + EVCASE(AV_PIX_FMT_P212BE); |
| 59 | + EVCASE(AV_PIX_FMT_P212LE); |
| 60 | + EVCASE(AV_PIX_FMT_P412BE); |
| 61 | + EVCASE(AV_PIX_FMT_P412LE); |
| 62 | ++#endif |
| 63 | ++#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(59, 14, 100) |
| 64 | + EVCASE(AV_PIX_FMT_GBRAP14BE); |
| 65 | + EVCASE(AV_PIX_FMT_GBRAP14LE); |
| 66 | ++#endif |
| 67 | + #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(59,16,100) |
| 68 | + EVCASE(AV_PIX_FMT_D3D12); |
| 69 | + #endif |
| 70 | +@@ -681,7 +693,12 @@ static int libavcodec_decompress(H264_CONTEXT* WINPR_RESTRICT h264, |
| 71 | + goto fail; |
| 72 | + } |
| 73 | + |
| 74 | ++#if LIBSWSCALE_VERSION_INT >= AV_VERSION_INT(6, 4, 100) |
| 75 | + status = sws_scale_frame(sys->swsctx, sys->videoFrame, target); |
| 76 | ++#else |
| 77 | ++#error "Need SWScale >= 6.4.100" |
| 78 | ++#endif |
| 79 | ++ |
| 80 | + if (status < 0) |
| 81 | + { |
| 82 | + WLog_Print(h264->log, WLOG_ERROR, "Failed to convert video frame (status=%d) (%s)", |
| 83 | +-- |
| 84 | +2.50.1 (Apple Git-155) |
| 85 | + |
0 commit comments