Opened 2 years ago
Closed 22 months ago
#20368 closed enhancement (fixed)
x265-4.1
| Reported by: | Bruce Dubbs | Owned by: | Bruce Dubbs |
|---|---|---|---|
| Priority: | normal | Milestone: | 12.3 |
| Component: | BOOK | Version: | git |
| Severity: | medium | Keywords: | |
| Cc: |
Description
New major version.
Change History (24)
comment:1 by , 2 years ago
comment:2 by , 2 years ago
For gst-plugins-bad: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3808
comment:3 by , 2 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:4 by , 2 years ago
This might get it for ffmpeg:
https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/0458a86656b291c7e91564efe44e109f97f7032a
comment:5 by , 2 years ago
imlib2 doesn't use x265 anymore
We are missing a dependency on x265 in VLC though, and it does not build with x265-4.0. Going to look for a patch next.
comment:6 by , 2 years ago
No patch is available, and given that gst-plugins-bad is also still broken, let's wait on this. I was able to come up with a chunk of code for VLC that allowed it to build, however crashed when trying to encode an x265 file. Here's what upstream has to say about this: https://mailman.videolan.org/pipermail/x265-devel/2024-September/013945.html, and the API docs are at https://x265.readthedocs.io/en/master/api.html#encoder
Note that you will see an update commit and then a revert commit. I had updated it in my sandbox expecting to be able to use it, but this is unusable until ffmpeg/vlc/gst-plugins-bad are updated to use it. ffmpeg's patch does seem to build but I have not tested it.
comment:7 by , 2 years ago
| Milestone: | 12.3 → 99-Waiting |
|---|---|
| Summary: | x265-4.0 → x265-4.0 (wait for downstream adaption) |
follow-up: 9 comment:8 by , 2 years ago
It looks like gst-plugins-bad now has support, but VLC does not. I requested an account at VLC's gitlab instance to see if we can get a bug report filed there.
comment:9 by , 2 years ago
Replying to Douglas R. Reno:
It looks like gst-plugins-bad now has support, but VLC does not. I requested an account at VLC's gitlab instance to see if we can get a bug report filed there.
gst-plugins-bad still does not work.
comment:10 by , 2 years ago
https://code.videolan.org/videolan/vlc/-/issues/28799 opened up with VLC
I had to get administrator approval from VideoLAN when creating the GitLab account, and it required MFA.
comment:11 by , 2 years ago
A temporary work around is -D x265=disabled for gst-plugins-bad. Note that the libgstx265 plugin can only encode x265 (i.e. it cannot decode) and most people don't ever need to encode x265.
follow-up: 13 comment:12 by , 2 years ago
There's now a pull request at VLC: https://code.videolan.org/videolan/vlc/-/merge_requests/6092
I'll give that a shot later and see how it works.
comment:13 by , 2 years ago
Replying to Douglas R. Reno:
There's now a pull request at VLC: https://code.videolan.org/videolan/vlc/-/merge_requests/6092
I'll give that a shot later and see how it works.
It's been merged.
comment:14 by , 2 years ago
| Summary: | x265-4.0 (wait for downstream adaption) → x265-4.0 (wait for the next release) |
|---|
The upstream has reverted the change breaking downstream packages: https://bitbucket.org/multicoreware/x265_git/commits/78e5b703b1
comment:15 by , 23 months ago
| Owner: | changed from to |
|---|---|
| Status: | assigned → new |
comment:16 by , 23 months ago
| Milestone: | 99-Waiting → 12.3 |
|---|---|
| Summary: | x265-4.0 (wait for the next release) → x265-4.1 |
comment:17 by , 23 months ago
Release notes are at https://x265.readthedocs.io/en/master/releasenotes.html
This may help: "Reverted the 4.0 api changes."
follow-up: 19 comment:18 by , 23 months ago
But gst-plugins-bad still FTBFS:
../ext/x265/gstx265enc.c: In function 'gst_x265_enc_init_encoder_locked':
../ext/x265/gstx265enc.c:951:54: error: assignment to expression with array type
951 | encoder->x265param.masteringDisplayColorVolume =
| ^
comment:19 by , 23 months ago
Replying to Xi Ruoyao:
But gst-plugins-bad still FTBFS:
../ext/x265/gstx265enc.c: In function 'gst_x265_enc_init_encoder_locked': ../ext/x265/gstx265enc.c:951:54: error: assignment to expression with array type 951 | encoder->x265param.masteringDisplayColorVolume = | ^
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7968
comment:20 by , 23 months ago
I checked gst-plugins-bad with the patch and it built/tested fine.
However ffmpeg FTBFS:
libavcodec/libx265.c: In function ‘libx265_encode_frame’:
libavcodec/libx265.c:813:59: error: passing argument 5 of ‘ctx->api->encoder_encode’ from incompatible pointer type [-Wincompatible-pointer-types]
813 | pic ? &x265pic : NULL, x265pic_lyrptr_out);
| ^~~~~~~~~~~~~~~~~~
| |
| x265_picture **
libavcodec/libx265.c:813:59: note: expected ‘x265_picture *’ but argument is of type ‘x265_picture **’
CC libavcodec/lossless_videodsp.o
make: *** [ffbuild/common.mak:81: libavcodec/libx265.o] Error 1
I was able to get it you build with:
sed -i '/, x265pic_lyrptr/s/x265pic/*&/' libavcodec/libx265.c
(No, it will not apply twice.)
Unfortunately, I do not know if this "does the right thing."
follow-up: 22 comment:21 by , 23 months ago
I should have looked upstream first. They have
sed -e 's/X265_BUILD >= 210/(X265_BUILD >= 210) \&\& (X265_BUILD < 213)/' \
-i libavcodec/libx265.c
Tested and build is OK.
comment:22 by , 23 months ago
Replying to Bruce Dubbs:
I should have looked upstream first. They have
sed -e 's/X265_BUILD >= 210/(X265_BUILD >= 210) \&\& (X265_BUILD < 213)/' \
-i libavcodec/libx265.c
Tested and build is OK.
You can simplify it to
sed -e 's/X265_BUILD >= 210/(&) \&\& (X265_BUILD < 213)/' \
-i libavcodec/libx265.c
comment:23 by , 23 months ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:24 by , 22 months ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed at commit 7177ed5ce5.

Note that this will cause gst-plugins-bad and ffmpeg FTBFS.