Skip to content

Commit 05e311e

Browse files
committed
openjfx-21: rebuild for ffmpeg
**Summary**
1 parent 70ed2c5 commit 05e311e

5 files changed

Lines changed: 90 additions & 50 deletions

File tree

packages/o/openjfx-21/abi_used_libs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ libGL.so.1
44
libX11.so.6
55
libXtst.so.6
66
libasound.so.2
7-
libavcodec.so.61
8-
libavformat.so.61
7+
libavcodec.so.62
8+
libavformat.so.62
99
libc.so.6
1010
libcairo.so.2
1111
libfreetype.so.6

packages/o/openjfx-21/abi_used_symbols

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -146,23 +146,23 @@ libasound.so.2:snd_pcm_sw_params_set_start_threshold
146146
libasound.so.2:snd_pcm_wait
147147
libasound.so.2:snd_pcm_writei
148148
libasound.so.2:snd_strerror
149-
libavcodec.so.61:av_init_packet
150-
libavcodec.so.61:av_new_packet
151-
libavcodec.so.61:av_packet_unref
152-
libavcodec.so.61:avcodec_alloc_context3
153-
libavcodec.so.61:avcodec_close
154-
libavcodec.so.61:avcodec_find_decoder
155-
libavcodec.so.61:avcodec_flush_buffers
156-
libavcodec.so.61:avcodec_open2
157-
libavcodec.so.61:avcodec_receive_frame
158-
libavcodec.so.61:avcodec_send_packet
159-
libavformat.so.61:av_find_input_format
160-
libavformat.so.61:av_read_frame
161-
libavformat.so.61:avformat_alloc_context
162-
libavformat.so.61:avformat_find_stream_info
163-
libavformat.so.61:avformat_free_context
164-
libavformat.so.61:avformat_open_input
165-
libavformat.so.61:avio_alloc_context
149+
libavcodec.so.62:av_init_packet
150+
libavcodec.so.62:av_new_packet
151+
libavcodec.so.62:av_packet_unref
152+
libavcodec.so.62:avcodec_alloc_context3
153+
libavcodec.so.62:avcodec_find_decoder
154+
libavcodec.so.62:avcodec_flush_buffers
155+
libavcodec.so.62:avcodec_free_context
156+
libavcodec.so.62:avcodec_open2
157+
libavcodec.so.62:avcodec_receive_frame
158+
libavcodec.so.62:avcodec_send_packet
159+
libavformat.so.62:av_find_input_format
160+
libavformat.so.62:av_read_frame
161+
libavformat.so.62:avformat_alloc_context
162+
libavformat.so.62:avformat_find_stream_info
163+
libavformat.so.62:avformat_free_context
164+
libavformat.so.62:avformat_open_input
165+
libavformat.so.62:avio_alloc_context
166166
libc.so.6:__ctype_b_loc
167167
libc.so.6:__ctype_get_mb_cur_max
168168
libc.so.6:__ctype_toupper_loc

packages/o/openjfx-21/files/0001-8338701-Provide-media-support-for-libavcodec-version.patch renamed to packages/o/openjfx-21/files/0001-8378510-Provide-media-support-for-libavcodec-version.patch

Lines changed: 67 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,117 @@
1-
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2-
From: Alexander Matveev <almatvee@openjdk.org>
3-
Date: Tue, 3 Sep 2024 20:13:30 +0000
4-
Subject: [PATCH] 8338701: Provide media support for libavcodec version 61
1+
From 1d2bf739f975ca265455cf93e300b7c69f940127 Mon Sep 17 00:00:00 2001
2+
From: Jakob Gezelius <jakob@knugen.nu>
3+
Date: Sun, 19 Apr 2026 09:00:46 +0200
4+
Subject: [PATCH] 8378510: Provide media support for libavcodec version 62
55

6-
Reviewed-by: sykora, arapte
76
---
8-
build.gradle | 7 ++--
9-
gradle/verification-metadata.xml | 5 +++
10-
.../jfxmediaimpl/NativeMediaManager.java | 3 +-
7+
build.gradle | 8 ++--
8+
gradle/verification-metadata.xml | 10 +++++
9+
.../jfxmediaimpl/NativeMediaManager.java | 4 +-
1110
.../gstreamer/gst/gstregistry.c | 2 +-
12-
.../native/gstreamer/plugins/av/avdefines.h | 10 ++++-
11+
.../native/gstreamer/plugins/av/avdefines.h | 15 ++++++-
12+
.../native/gstreamer/plugins/av/decoder.c | 7 +++-
1313
.../gstreamer/plugins/av/videodecoder.c | 40 ++++++++++++++++---
14-
6 files changed, 56 insertions(+), 11 deletions(-)
14+
7 files changed, 74 insertions(+), 12 deletions(-)
1515

1616
diff --git a/build.gradle b/build.gradle
17-
index f9dbc53076..77856226a6 100644
17+
index f9dbc53076..361dbac1ff 100644
1818
--- a/build.gradle
1919
+++ b/build.gradle
20-
@@ -2946,6 +2946,7 @@ project(":media") {
20+
@@ -2946,6 +2946,8 @@ project(":media") {
2121
media name: "ffmpeg-4.0.2", ext: "tar.gz"
2222
media name: "ffmpeg-5.1.2", ext: "tar.gz"
2323
media name: "ffmpeg-6.0", ext: "tar.gz"
2424
+ media name: "ffmpeg-7.0.2", ext: "tar.gz"
25+
+ media name: "ffmpeg-8.1", ext: "tar.gz"
2526
}
2627
implementation project(":base")
2728
implementation project(":graphics")
28-
@@ -3292,8 +3293,8 @@ project(":media") {
29+
@@ -3292,8 +3294,8 @@ project(":media") {
2930
doLast {
3031
project.ext.libav = [:]
3132
project.ext.libav.basedir = "${buildDir}/native/linux/ffmpeg"
3233
- project.ext.libav.versions = [ "3.3.3", "4.0.2", "5.1.2", "6.0" ]
3334
- project.ext.libav.versionmap = [ "3.3.3" : "57", "4.0.2" : "58", "5.1.2" : "59", "6.0" : "60" ]
34-
+ project.ext.libav.versions = [ "3.3.3", "4.0.2", "5.1.2", "6.0", "7.0.2" ]
35-
+ project.ext.libav.versionmap = [ "3.3.3" : "57", "4.0.2" : "58", "5.1.2" : "59", "6.0" : "60", "7.0.2" : "61" ]
35+
+ project.ext.libav.versions = [ "3.3.3", "4.0.2", "5.1.2", "6.0", "7.0.2", "8.1" ]
36+
+ project.ext.libav.versionmap = [ "3.3.3" : "57", "4.0.2" : "58", "5.1.2" : "59", "6.0" : "60", "7.0.2" : "61", "8.1" : "62" ]
3637

3738
libav.versions.each { version ->
3839
def libavDir = "${libav.basedir}/ffmpeg-${version}"
39-
@@ -3373,7 +3374,7 @@ project(":media") {
40+
@@ -3373,7 +3375,7 @@ project(":media") {
4041
project.ext.libav.libavffmpeg.versions = [ "56" ]
4142
project.ext.libav.ffmpeg = [:]
4243
project.ext.libav.ffmpeg.basedir = "${buildDir}/native/linux/ffmpeg/ffmpeg"
4344
- project.ext.libav.ffmpeg.versions = [ "57", "58", "59", "60" ]
44-
+ project.ext.libav.ffmpeg.versions = [ "57", "58", "59", "60", "61" ]
45+
+ project.ext.libav.ffmpeg.versions = [ "57", "58", "59", "60", "61", "62" ]
4546

4647
project.ext.libav.versions.each { version ->
4748
def libavDir = "${project.ext.libav.basedir}-${version}"
4849
diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
49-
index 887b9d100c..a10610b0f5 100644
50+
index 887b9d100c..80ebc6219b 100644
5051
--- a/gradle/verification-metadata.xml
5152
+++ b/gradle/verification-metadata.xml
52-
@@ -28,6 +28,11 @@
53+
@@ -28,6 +28,16 @@
5354
<sha256 value="f4ccf961403752c93961927715f524576d1f4dd02cd76d8c76aed3bbe6686656" origin="Generated by Gradle"/>
5455
</artifact>
5556
</component>
5657
+ <component group="" name="ffmpeg-7.0.2" version="">
5758
+ <artifact name="ffmpeg-7.0.2-.tar.gz">
5859
+ <sha256 value="1233b3a93dd7517cc3c56b72a67f64041c044848d981e3deff4bebffa25f1054" origin="Generated by Gradle"/>
5960
+ </artifact>
61+
+ </component>
62+
+ <component group="" name="ffmpeg-8.1" version="">
63+
+ <artifact name="ffmpeg-8.1-.tar.gz">
64+
+ <sha256 value="b13510e7a6a4ca28fa04307f2be54ef5a31e168eb2bbe055a7f4e4d2cadd51b1" origin="Generated by Gradle"/>
65+
+ </artifact>
6066
+ </component>
6167
<component group="" name="icu4c-73_1-data-bin-l" version="">
6268
<artifact name="icu4c-73_1-data-bin-l-.zip">
6369
<sha256 value="4038298ee02a0c38917185ef8ff4ebde9c8b552c777fd03e4df6c6b4b1825e20" origin="Generated by Gradle"/>
6470
diff --git a/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaManager.java b/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaManager.java
65-
index 097004bd17..0c2ae1ddbc 100644
71+
index 097004bd17..7916e2660e 100644
6672
--- a/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaManager.java
6773
+++ b/modules/javafx.media/src/main/java/com/sun/media/jfxmediaimpl/NativeMediaManager.java
6874
@@ -1,5 +1,5 @@
6975
/*
7076
- * Copyright (c) 2010, 2023, Oracle and/or its affiliates. All rights reserved.
71-
+ * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved.
77+
+ * Copyright (c) 2010, 2026, Oracle and/or its affiliates. All rights reserved.
7278
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7379
*
7480
* This code is free software; you can redistribute it and/or modify it
75-
@@ -127,6 +127,7 @@ public class NativeMediaManager {
81+
@@ -127,6 +127,8 @@ public class NativeMediaManager {
7682
dependencies.add("avplugin-ffmpeg-58");
7783
dependencies.add("avplugin-ffmpeg-59");
7884
dependencies.add("avplugin-ffmpeg-60");
7985
+ dependencies.add("avplugin-ffmpeg-61");
86+
+ dependencies.add("avplugin-ffmpeg-62");
8087
}
8188
if (PlatformUtil.isMac()) {
8289
dependencies.add("fxplugins");
8390
diff --git a/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstregistry.c b/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstregistry.c
84-
index 22c8be9300..38bae197fe 100644
91+
index 22c8be9300..d4aafec26b 100644
8592
--- a/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstregistry.c
8693
+++ b/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstregistry.c
8794
@@ -146,7 +146,7 @@ static const int AVCODEC_LIBAV_EXPLICIT_VERSIONS[] = { 54, 56 };
8895
// For ffmpeg (libavcodec-ffmpeg.so)
8996
static const int AVCODEC_FFMPEG_EXPLICIT_VERSIONS[] = { 56 };
9097
// For libav or ffmpeg (libavcodec.so)
9198
-static const int AVCODEC_EXPLICIT_VERSIONS[] = { 57, 58, 59, 60 };
92-
+static const int AVCODEC_EXPLICIT_VERSIONS[] = { 57, 58, 59, 60, 61 };
99+
+static const int AVCODEC_EXPLICIT_VERSIONS[] = { 57, 58, 59, 60, 61, 62 };
93100

94101
/*
95102
* Callback passed to dl_iterate_phdr(): finds the path of
96103
diff --git a/modules/javafx.media/src/main/native/gstreamer/plugins/av/avdefines.h b/modules/javafx.media/src/main/native/gstreamer/plugins/av/avdefines.h
97-
index 60fa7b631c..f49ad56e1e 100644
104+
index 60fa7b631c..bf7e57e0e2 100644
98105
--- a/modules/javafx.media/src/main/native/gstreamer/plugins/av/avdefines.h
99106
+++ b/modules/javafx.media/src/main/native/gstreamer/plugins/av/avdefines.h
100107
@@ -1,5 +1,5 @@
101108
/*
102109
- * Copyright (c) 2010, 2022, Oracle and/or its affiliates. All rights reserved.
103-
+ * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved.
110+
+ * Copyright (c) 2010, 2026, Oracle and/or its affiliates. All rights reserved.
104111
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
105112
*
106113
* This code is free software; you can redistribute it and/or modify it
107-
@@ -53,5 +53,13 @@
114+
@@ -53,5 +53,18 @@
108115
// Not required since 58 and removed in 59
109116
#define NO_REGISTER_ALL (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(59,0,0))
110117

@@ -115,9 +122,39 @@ index 60fa7b631c..f49ad56e1e 100644
115122
+// Use AVCodecContext.frame_num instead of AVCodecContext.frame_number. They same
116123
+// except frame_num is 64-bit and frame_number is 32-bit. Since 61.
117124
+#define USE_FRAME_NUM (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(61,0,0))
125+
+
126+
+// avcodec_close() is removed in 62 and avcodec_free_context() should be used
127+
+// instead. Note: avcodec_free_context() will free pointer as well, so no need to
128+
+// call av_free().
129+
+#define USE_FREE_CONTEXT (LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(62,0,0))
118130
+
119131
#endif /* AVDEFINES_H */
120132

133+
diff --git a/modules/javafx.media/src/main/native/gstreamer/plugins/av/decoder.c b/modules/javafx.media/src/main/native/gstreamer/plugins/av/decoder.c
134+
index 954e520950..8142eb9375 100644
135+
--- a/modules/javafx.media/src/main/native/gstreamer/plugins/av/decoder.c
136+
+++ b/modules/javafx.media/src/main/native/gstreamer/plugins/av/decoder.c
137+
@@ -1,5 +1,5 @@
138+
/*
139+
- * Copyright (c) 2010, 2022, Oracle and/or its affiliates. All rights reserved.
140+
+ * Copyright (c) 2010, 2026, Oracle and/or its affiliates. All rights reserved.
141+
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
142+
*
143+
* This code is free software; you can redistribute it and/or modify it
144+
@@ -187,8 +187,13 @@ void basedecoder_close_decoder(BaseDecoder *decoder)
145+
{
146+
if (decoder->context)
147+
{
148+
+#if USE_FREE_CONTEXT
149+
+ // avcodec_free_context() will set pointer to NULL
150+
+ avcodec_free_context(&decoder->context);
151+
+#else
152+
avcodec_close(decoder->context);
153+
av_free(decoder->context);
154+
+#endif
155+
}
156+
decoder->context = NULL;
157+
121158
diff --git a/modules/javafx.media/src/main/native/gstreamer/plugins/av/videodecoder.c b/modules/javafx.media/src/main/native/gstreamer/plugins/av/videodecoder.c
122159
index c9fa787e63..8a5cd78f2d 100644
123160
--- a/modules/javafx.media/src/main/native/gstreamer/plugins/av/videodecoder.c
@@ -222,3 +259,6 @@ index c9fa787e63..8a5cd78f2d 100644
222259
GST_BUFFER_DURATION(outbuf) = GST_BUFFER_DURATION(buf); // Duration for video usually same
223260
}
224261

262+
--
263+
2.53.0
264+

packages/o/openjfx-21/package.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# yaml-language-server: $schema=/usr/share/ypkg/schema/schema.json
22
name : openjfx-21
33
version : 21.0.5
4-
release : 3
4+
release : 4
55
source :
66
- https://github.com/openjdk/jfx21u/archive/refs/tags/21.0.5+0.tar.gz : 5766291a589fb7a5334b266016f5b47a6fe35b71c39346896385ecd449cd0274
77
license : GPL-2.0-only WITH Classpath-exception-2.0
@@ -35,7 +35,7 @@ setup : |
3535
%patch -p1 -i $pkgfiles/0001-8323078-Incorrect-length-argument-to-g_utf8_strlen-i.patch
3636
%patch -p1 -i $pkgfiles/0001-8323077-C-type-error-incompatible-function-pointer-i.patch
3737
%patch -p1 -i $pkgfiles/0001-ftbfs-jfx11u-llvm-17.patch
38-
%patch -p1 -i $pkgfiles/0001-8338701-Provide-media-support-for-libavcodec-version.patch
38+
%patch -p1 -i $pkgfiles/0001-8378510-Provide-media-support-for-libavcodec-version.patch
3939
4040
if [[ " ${PATH[*]} " =~ "ccache" ]]; then
4141
ccache --zero-stats

packages/o/openjfx-21/pspec_x86_64.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
</Files>
5555
</Package>
5656
<History>
57-
<Update release="3">
58-
<Date>2026-04-17</Date>
57+
<Update release="4">
58+
<Date>2026-04-19</Date>
5959
<Version>21.0.5</Version>
6060
<Comment>Packaging update</Comment>
6161
<Name>Jakob Gezelius</Name>

0 commit comments

Comments
 (0)