This topic is dedicated exclusively to info and feedback (bugs / features) about Avidemux v2.8.2 dev. builds (official and private).
Official repository: https://github.com/mean00/avidemux2
Official nightly builds: https://avidemux.org/nightly/
2022-10-02 nightlies:
- Fix for a hard crash in MPEG-TS
demuxer extracting PSI with some damaged MPEG-TS files - Fix for a few minor memleaks.
2022-10-15 nightlies:
- Additional protections against buffer overflows in the MPEG-TS demuxer added.
- When users force the start of the selection to be not on a keyframe with no earlier keyframe available e.g. by deleting the part of the video preceding the A marker and thus the calculation of B-frame delay when saving the selection in copy mode is completely skipped, the PTS in reference of the earliest B-frame in each segment is also not updated. This could seemingly randomly result in video track for one or more segments being partially or completely skipped. The fix ensures these PTS values are invalidated when initializing stream copy.
- The last picture (not necessarily the last frame) of saved MP4 files could be hidden (present in the video stream, but not shown when played) when B-frames were present in the video. This is fixed by letting libavformat know the average frame rate.
2022-10-23 nightlies:
- Matroska demuxer now checks whether content encoding type is purely header stripping, the only type we support, and skips the track otherwise. The temporary buffer used for decoding of frame type is now allocated with the size of stripped header taken into account.
- The color of the rectangle marking the selection on navigation sliders in the main window and in filter previews has been modified in favor of a lighter tone when a dark theme is used. The code of navigation sliders has been restructured to avoid code duplication.
I think in 2.8.2, the ability to input a custom audio bit rate should be added. In the current version (2.8.1), we are limited to a few preset bit rates for each codec. One can already enter a custom bit rate for video, so why not add that functionality for audio too?
(https://i.postimg.cc/4nw06Djw/Screenshot-from-2023-07-09-21-56-46.png) (https://postimg.cc/4nw06Djw)
(https://i.postimg.cc/jWzgLmzH/Screenshot-from-2023-07-09-21-55-59.png) (https://postimg.cc/jWzgLmzH)
Hi, this nightly bulds for September are with same problems, missed various dll files when execute...:
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_6.zip
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_7.zip
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_8.zip
https://www.avidemux.org/nightly/win64/avidemux_2.8.2%20r230924_win64.exe
Note: Possible fix them?
Quote from: UNKNOWN on September 25, 2023, 03:41:46 PMHi, this nightly bulds for September are with same problems, missed various dll files when execute...:
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_6.zip
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_7.zip
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_8.zip
https://www.avidemux.org/nightly/win64/avidemux_2.8.2%20r230924_win64.exe
Note: Possible fix them?
Please see pinned topic https://avidemux.org/smif/index.php/topic,20301.0.html
Quote from: eumagga0x2a on September 25, 2023, 04:18:18 PMQuote from: UNKNOWN on September 25, 2023, 03:41:46 PMHi, this nightly bulds for September are with same problems, missed various dll files when execute...:
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_6.zip
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_7.zip
https://www.avidemux.org/nightly/win64/avidemux_r230924_win64Qt5_8.zip
https://www.avidemux.org/nightly/win64/avidemux_2.8.2%20r230924_win64.exe
Note: Possible fix them?
Please see pinned topic https://avidemux.org/smif/index.php/topic,20301.0.html
In build avidemux_r230924_win64Qt5_8.zip are in fact 3 libraries missing:
icuin66.dll
icuuc66.dll
libbrotlidec.dll
Looking forward for the fix...
In the newest build avidemux_r230930_win64Qt5_10.zip libraries are still missing...
Fix please, thank you
The VC++ build from Sep 24 2023 10:03 PM is fine, please use it.
New features:
- libaom-based AV1 encoder
- NVDEC hw accelerated decoder (depending on installed NVIDIA graphics card, NVDEC supports more codecs than the DXVA2 wrapper, including AV1)
I'll keep you posted when "win64" cross-builds become usable again.
Any updates on win64 builds?
for avidemux_r230930_win64Qt5_10.zip i have download libs from
https://github.com/unicode-org/icu/releases/tag/release-66-1
icu4c-66_1-Win64-MSVC2017.zip
extract to Avidemux folder:
icudt66.dll
icuin66.dll
icuuc66.dll
then also brotli
https://github.com/google/brotli/releases/tag/v1.1.0
brotli-x64-windows-dynamic.zip
extract to Avidemux folder:
brotlicommon.dll
brotlidec.dll
also rename brotlidec.dll to libbrotlidec.dll
(https://i.imgur.com/er52FMu.png) (https://i.imgur.com/er52FMu.png)
Quote from: Vygantas on October 25, 2023, 03:02:51 PMAny updates on win64 builds?
No news related to official build nodes yet, but non-official packaging as well as MXE setup script and the how-to have been updated, so you should be fine when cross-compiling 64-bit Windows version of Avidemux yourself. Indeed, Brotli (the decoder part of the library) has been made a dependency of Freetype library by MXE developers, so that libbrotlicommon and libbrotlidec libs need to be packaged as well.
Mixing libraries compiled by different compilers (especially MSVC and MinGW) can easily crash, I am really surprised that it worked in this case.
Quote from: eumagga0x2a on October 31, 2023, 01:03:06 PMQuote from: Vygantas on October 25, 2023, 03:02:51 PMAny updates on win64 builds?
No news related to official build nodes yet, but non-official packaging as well as MXE setup script and the how-to have been updated, so you should be fine when cross-compiling 64-bit Windows version of Avidemux yourself. Indeed, Brotli (the decoder part of the library) has been made a dependency of Freetype library by MXE developers, so that libbrotlicommon and libbrotlidec libs need to be packaged as well.
Mixing libraries compiled by different compilers (especially MSVC and MinGW) can easily crash, I am really surprised that it worked in this case.
Thank you very much!
New Avidemux nightlies from 2023-11-02
appImage for recent Linux distributions (https://avidemux.org/nightly/appImage4Buster/)
Cross-compiled MinGW builds for supported 64-bit Windows versions (https://avidemux.org/nightly/win64/)
macOS Monterey or later (x86_64) (https://avidemux.org/nightly/osx_monterey/) (not yet tested, is fine too)
All platforms:
Vorbis audio tracks in WebM / MKV files can be decoded again. The Vorbis decoder in libavcodec is broken in FFmpeg 6.0 release, the FFmpeg update in Avidemux has imported the upstream problem. Unfortunately, it took a loooong time to notice this in Avidemux and a couple of days to understand what was going on.
The alternative libvorbis-based audio decoder plugin in Avidemux, eclipsed by the libavcodec audio decoder plugin (i.e. the former is selected only if the latter is missing), was broken probably for a decade or so, now fixed as well.
Support for 32-bit signed integer PCM audio tracks as well as incomplete support for 64-bit signed integer PCM audio tracks has been added by szlldm.
Quantizer combo box in VP9 encoder configuration dialog was enforcing a wrong upper bound, now fixed (the issue could be worked around by means of scripting).
Linux-specific:
Avidemux profile directory has been moved from ${HOME}/avidemux6 to ${XDG_DATA_HOME}/avidemux6 with (most of) configuration now stored in ${XDG_CONFIG_HOME}/avidemux6. There are no prompts or automated transition, Avidemux starts afresh. This is intentional, users can manually copy old files from ~/.avidemux6 to (usually) ~/.local/share/avidemux6 with config3 and defaultSettings.py belonging into ~/.config/avidemux6 if they wish so.
Specific to cross-compiled Windows builds:
The ZIP-packaged nightly includes now all necessary DLLs and is fit for broad testing. The NSIS-packaged (*.exe) one cannot be installed due to elevation (UAC) being still broken.
Quote from: eumagga0x2a on October 03, 2023, 10:22:47 PMThe VC++ build from Sep 24 2023 10:03 PM is fine, please use it.
New features:
- libaom-based AV1 encoder
- NVDEC hw accelerated decoder (depending on installed NVIDIA graphics card, NVDEC supports more codecs than the DXVA2 wrapper, including AV1)
I'll keep you posted when "win64" cross-builds become usable again.
Are there plans for adding NVENC AV1 support to avidemux as well?
Quote from: Renxo on November 26, 2023, 09:31:07 PMAre there plans for adding NVENC AV1 support to avidemux as well?
If someone with NVIDIA RTX 40xx graphics card, able to build Avidemux from source, volunteers to do all the testing, then yes. Else, no.
Where is the ticket system?
The linked Microsoft GitHub repo do not have an Issue section.
There's a crash in 2.8.2.
Probably a rare case as the file is pretty broken, play fines but here it is starting at 960x540 then jumps to 1080x720 i assume after a few frames.
When i open these videos usually i'm met with the decoding frame type popup which i just cancel and can edit the video
(https://i.imgur.com/TtGkTSU.png)
ADM_setCrashHook [libADM_core6.dll]
ADM_setCrashHook [libADM_core6.dll]
ADM_backTrack [libADM_core6.dll]
ADMImage::duplicateMacro(ADMImage*, bool) [libADM_coreImage6.dll]
ADM_Composer::decompressImage(ADMImage*, ADMCompressedImage*, unsigned int) [avidemux.exe]
ADM_Composer::DecodePictureUpToIntra(unsigned int, unsigned int) [avidemux.exe]
ADM_Composer::seektoTime(unsigned int, unsigned long long, bool) [avidemux.exe]
ADM_Composer::goToTimeVideo(unsigned long long) [avidemux.exe]
ADM_Composer::checkForValidPts(_SEGMENT*) [avidemux.exe]
ADM_Composer::addFile(char const*) [avidemux.exe]
A_openVideo(char const*) [avidemux.exe]
MainWindow::openFiles(QList<QUrl>) [avidemux.exe]
MainWindow::eventFilter(QObject*, QEvent*) [avidemux.exe]
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) [Qt5Core.dll]
QApplicationPrivate::notify_helper(QObject*, QEvent*) [Qt5Widgets.dll]
QCoreApplication::notifyInternal2(QObject*, QEvent*) [Qt5Core.dll]
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) [Qt5Core.dll]
qt_plugin_instance [qwindows.dll]
QEventDispatcherWin32::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) [Qt5Core.dll]
qt_plugin_instance [qwindows.dll]
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) [Qt5Core.dll]
QCoreApplication::exec() [Qt5Core.dll]
UI_RunApp() [avidemux.exe]
startAvidemux(int, char**) [avidemux.exe]
SDL_main [avidemux.exe]
ms2timedisplay(unsigned int) [avidemux.exe]
unknown function [avidemux.exe]
unknown function [avidemux.exe]
BaseThreadInitThunk [KERNEL32.DLL]
RtlUserThreadStart [ntdll.dll]
(https://i.imgur.com/J7tzWvQ.png)
thanks
Resolution changing on-the-fly is absolutely unsupported, thus crashing in a safe manner is the best we can do.
Canceling decoding frame type is only acceptable when video is re-encoded. This means also that locations where resolution changes cannot be detected during loading at all (there is no warning pop-up, the info appears only in the Avidemux log).
Just updated to VC++ ver. 240204.
Attempting to queue a job, no job listing is displayed when avidemux_jobs.exe is run.
Mpeg4 AVC (x264) selected, crop filter used 1920x1080 -> 1920x960
AAC (FDK) E-AC3 192kbps -> HE-AAC 192kbps
MKV -> MP4
Win 11 23H2 Build 22631.3155
Intel i7-4770k
Cheers
Quote from: Gurnsy on February 21, 2024, 09:51:29 PMAttempting to queue a job, no job listing is displayed when avidemux_jobs.exe is run.
This known regression is fixed in code, a recent cross-compiled build (https://avidemux.org/nightly/win64/) containing the fix is available, no VC++ build yet.
Subtitle Support
Is subtitle support planned?
It's really a pity that all subtitles are gone after encoding a video with avidemux.
New Avidemux nightlies from 2024-05-31
appImage for recent Linux distributions (https://avidemux.org/nightly/appImage4Buster/)
Cross-compiled MinGW builds for supported 64-bit Windows versions (https://avidemux.org/nightly/win64/)
Already present in the previous round of builds from May 20, but not announced here: Avidemux keeps the index for MPEG-TS and MPEG-PS files now in memory when the files are located in a read-only directory (a feature contributed by szlldm).
A notable fix in the current nightlies: audio tracks in fragmented MP4 containers (MP4 dash) work again. This was a regression from extensive rearrangements in the MP4 demuxer back in January, which went unnoticed for 4 months.
Quote from: eumagga0x2a on May 31, 2024, 03:19:12 PMA notable fix in the current nightlies: audio tracks in fragmented MP4 containers (MP4 dash) work again. This was a regression from extensive rearrangements in the MP4 demuxer back in January, which went unnoticed for 4 months.
Awesome that it's caught and fixed. And I'm glad there's new nightly builds available too. :-)
I wonder if this bug has something in common, that always when I cutting *.mp4 videos, I need to select one additional advance frame to cut out exact scene I want. Similar is with Plugin called Still Image: I need always subtract ~0h:00m:00s,050 of clip duration to apply the still image effect for video. I will try to confirm if it's fixed later!
Quote from: cachaito on May 31, 2024, 06:45:05 PMI wonder if this bug has something in common, that always when I cutting *.mp4 videos, I need to select one additional advance frame to cut out exact scene I want.
Absolutely unrelated. The end point of a selection doesn't belong to the selection.
Quote from: cachaito on May 31, 2024, 06:45:05 PMSimilar is with Plugin called Still Image: I need always subtract ~0h:00m:00s,050 of clip duration to apply the still image effect for video.
At the first glance it looks like the stillimage filter treats the end of range as belonging to the range, which is probably a (minor) bug. Not sure, will need to check.
Error building Avidemux
I have been building Avidemux for quite a while but current git errors out on building the avidemux core.
More specific, it fails at linking libADM6swscale.so.8
extract from logbuildCore:
GEN libavutil/libavutil.ver
LD libavutil/libADM6avutil.so.59
LD libpostproc/libADM6postproc.so.58
LD libswscale/libADM6swscale.so.8
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x89a against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x8a1 against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x8a8 against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x8af against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x8b6 against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x8bd against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x8c4 against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x8cb against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x17d7 against symbol `mul15_hi' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1866 against symbol `mul15_hi' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x18e4 against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x18eb against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x18f2 against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x18f9 against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1900 against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1907 against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x190e against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1915 against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1bf4 against symbol `mul16_mid' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1bfb against symbol `mul15_hi' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1c87 against symbol `mul16_mid' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1c8e against symbol `mul15_hi' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d0c against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d13 against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d1a against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d21 against symbol `mask24l' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d28 against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d2f against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d36 against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x1d3d against symbol `mask24h' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x205f against symbol `mul15_hi' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x220c against symbol `mul16_mid' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x2213 against symbol `mul15_hi' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x2399 against symbol `mask24r' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x23a0 against symbol `mask24g' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x23a7 against symbol `mask24b' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x2abc against symbol `mmx_ff' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x503a against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x5041 against symbol `bFC' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x5048 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x51fd against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x5204 against symbol `bFC' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x520b against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x547a against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x5481 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x5488 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x563d against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x5644 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x564b against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x6445 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x644c against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x6453 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x65d5 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x65dc against symbol `bFC' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x65e3 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x6fc7 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x6fce against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x6fd5 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x7105 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x710c against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x7113 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x7257 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x725e against symbol `bFC' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x7265 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x7385 against symbol `bF8' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x738c against symbol `bFC' can not be used; recompile with -fPIC
mold: error: /tmp/ccyQG0XH.ltrans7.ltrans.o:(.text): R_X86_64_PC32 relocation at offset 0x7393 against symbol `bF8' can not be used; recompile with -fPIC
collect2: error: ld returned 1 exit status
make[3]: *** [/home/ferdi/builds/avidemux/buildCore/ffmpeg/source/ffbuild/library.mak:119: libswscale/libADM6swscale.so.8] Error 1
make[3]: *** Waiting for unfinished jobs....
Bisecting blames this:
b9ac9582924a3b90aee9c286aa7d07407088f43d is the first bad commit
commit b9ac9582924a3b90aee9c286aa7d07407088f43d
Author: mean <fixounet@free.fr>
Date: Fri Sep 6 17:57:48 2024 +0200
remove lto, clang does not like mixing lto and not lto objects
cmake/admFFmpegBuild_native.cmake | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
I am building with GCC 14.2
Confirmed, by reverting only commit b9ac9582924a3b90aee9c286aa7d07407088f43d I can successfully build Avidemux with current Head using GCC 14.2
@Ferdi, should be fixed now, but could you please specify which Linux distribution was affected by completely disabling lto for FFmpeg libs in Avidemux?
It still compiled just fine on Fedora, that is why I missed the issue.
I'll give it a try.
I am using Ubuntu 24.04, customized for my own purpose.
edit: Now builds successful again
Hi
i get
[ 70%] Built target ADM_ve_x264_other
[ 70%] Building CXX object ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_other.dir/ADM_x265.cpp.o
/tmp/makepkg/avidemux-git/src/avidemux/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265.cpp: In member function 'virtual bool x265Encoder::encode(ADMBitstream*)':
/tmp/makepkg/avidemux-git/src/avidemux/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265.cpp:216:66: error: cannot convert 'x265_picture*' to 'x265_picture**' in argument passing
216 | er = api->encoder_encode(handle, &nal, &nbNal, NULL, &pic_out);
| ^~~~~~~~
| |
| x265_picture*
/tmp/makepkg/avidemux-git/src/avidemux/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265.cpp:224:66: error: cannot convert 'x265_picture*' to 'x265_picture**' in argument passing
224 | er = api->encoder_encode(handle, &nal, &nbNal, &pic, &pic_out);
| ^~~~~~~~
| |
| x265_picture*
make[2]: *** [ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_other.dir/build.make:93: ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_other.dir/ADM_x265.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:6133: ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_other.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
from github with system x265 4.0
greetings
Thanks for the heads-up, x265 has changed API in v4.0, will look into it soon (Homebrew has already jumped onto the latest and greatest, RPM Fusion only for Fedora Rawhide).
For now, you may apply the following cmake patch which disables the build of the x265 encoder plugin for versions more recent than 3.6:
diff --git a/cmake/admCheckX265.cmake b/cmake/admCheckX265.cmake
index 2e3f4d9a9..9bff1829a 100644
--- a/cmake/admCheckX265.cmake
+++ b/cmake/admCheckX265.cmake
@@ -14,11 +14,14 @@ MACRO(checkX265)
STRING(REGEX MATCH "#define[ ]+X265_BUILD[ ]+([0-9]+)" X265_CONFIG_H "${X265_CONFIG_H}")
STRING(REGEX REPLACE ".*[ ]([0-9]+).*" "\\1" x265_version "${X265_CONFIG_H}")
MESSAGE(STATUS " core version: ${x265_version}")
-
- IF (x265_version LESS 9)
- MESSAGE("WARNING: x265 core version is too old. At least version 9 is required.")
+ IF (x265_version LESS 9 OR x265_version GREATER 209)
+ IF (x265_version LESS 9)
+ MESSAGE("WARNING: x265 core version is too old. At least version 9 is required.")
+ ELSE (x265_version LESS 9)
+ MESSAGE("WARNING: only x265 core up to version 209 (3.6 release) is supported.")
+ ENDIF (x265_version LESS 9)
SET(X265_FOUND 0)
- ELSE (x265_version LESS 9)
+ ELSE (x265_version LESS 9 OR x265_version GREATER 209)
IF(NOT WIN32)
SET(DL dl)
ELSE(NOT WIN32)
@@ -31,7 +34,7 @@ MACRO(checkX265)
ADD_DEFINITIONS(${X265_CFLAGS})
ENDIF(MSVC)
FIND_HEADER_AND_LIB(X265 x265.h x265 x265_encoder_open_${x265_version} ${DL})
- ENDIF (x265_version LESS 9)
+ ENDIF (x265_version LESS 9 OR x265_version GREATER 209)
ELSE (_X265_FOUND AND _X265_CONFIG_FOUND)
MESSAGE(STATUS " No working version found")
SET(X265_FOUND 0)
Hi
thanks, but not failed in
CMake Error at /usr/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:260 (message):
qt6_wrap_cpp: TARGET parameter is empty. Since the file
/tmp/makepkg/avidemux-git/src/avidemux/avidemux/qt4/ADM_jobs/src/ADM_jobControl.cpp
is a source file, the TARGET option must be specified.
Call Stack (most recent call first):
/usr/lib/cmake/Qt6Core/Qt6CoreMacros.cmake:184 (_qt_internal_wrap_cpp)
/tmp/makepkg/avidemux-git/src/fakeroot/usr/include/avidemux/2.8/cmake/admQtMacro.cmake:26 (QT6_WRAP_CPP)
ADM_jobs/src/CMakeLists.txt:26 (ADM_QT_WRAP_CPP)
-- Configuring incomplete, errors occurred!
greetings
oh. gigantic typo in the message, i mean "thanks, but now failed in"
sorry. greetings
No problem, the meaning was clear.
Please sync your local git mirror and retry.
all done
thanks!
I'm seeing this build failure with the new x265-4.1:
/tmp/build/avidemux2-git/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:219:51: error: incompatible types in assignment of 'char*' to 'char [256]'
219 | param.rc.statFileName=strdup(logFile);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/tmp/build/avidemux2-git/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:225:51: error: incompatible types in assignment of 'char*' to 'char [256]'
225 | param.rc.statFileName=strdup(logFile);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
I resolved it with the following:
diff -Nuarp avidemux2-git.orig/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp avidemux2-git/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp
--- avidemux2-git.orig/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp 2024-11-29 14:16:25.000000000 -0500
+++ avidemux2-git/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp 2024-11-29 15:05:51.174165522 -0500
@@ -216,13 +216,21 @@ bool x265Encoder::setup(void)
{
param.rc.bStatWrite=1;
param.rc.bStatRead=0;
+#if (X265_BUILD < 215)
param.rc.statFileName=strdup(logFile);
+#else
+ snprintf(param.rc.statFileName, X265_MAX_STRING_SIZE, "%s", logFile);
+#endif
}else
{
param.rc.bStatWrite=0;
param.rc.bStatRead=1;
+#if (X265_BUILD < 215)
param.rc.statFileName=strdup(logFile);
+#else
+ snprintf(param.rc.statFileName, X265_MAX_STRING_SIZE, "%s", logFile);
+#endif
if(!ADM_fileExist(logFile))
{
ADM_error("Logfile %s does not exist \n",logFile);
Also note that the API change introduced in x265-4.0 was reverted in 4.1.
Quote from: jlocash on November 29, 2024, 08:35:10 PMI'm seeing this build failure with the new x265-4.1:
Code Select Expand
/tmp/build/avidemux2-git/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:219:51: error: incompatible types in assignment of 'char*' to 'char [256]'
219 | param.rc.statFileName=strdup(logFile);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/tmp/build/avidemux2-git/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:225:51: error: incompatible types in assignment of 'char*' to 'char [256]'
225 | param.rc.statFileName=strdup(logFile);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
Early heads-up very much appreciated.
Quote from: jlocash on November 29, 2024, 08:35:10 PMAlso note that the API change introduced in x265-4.0 was reverted in 4.1.
#if (X265_BUILD > 209) && (X265_BUILD < 213)
in https://github.com/mean00/avidemux2/commit/930d0e998030f78cd68ede0611285f9df8d55935 (https://github.com/mean00/avidemux2/commit/930d0e998030f78cd68ede0611285f9df8d55935), stolen from libavcodec/libx265.c, takes care of that.
x265 devs were fixing memleaks and turned to allocating only 256 bytes (https://bitbucket.org/multicoreware/x265_git/commits/451add89e81d45134b9d41168ceeb5516bf62d0b) for strings containing file paths? Oh my, this is vastly insufficient unless the library expects just the basename. And even then it may be insufficient and we must catch that and fail early when the filename is too long.
From now on, things may become somewhat rough at git master for a while. Please git checkout pre-reorg if all you need is a stable application (that branch (https://github.com/mean00/avidemux2/tree/pre-reorg) reflects the state of git master prior to refactoring).
Building (on slackware, qt6-6.8.2 installed) from latest git works fine using --enable-qt5, but when trying to build for qt6 I get the following error (from logbuildQt6):
[100%] Linking CXX executable avidemux3_qt6
/usr/bin/ld: ADM_userInterfacesQT6/ADM_filters/libADM_filtersQT6.a(Q_seekablePreview.cpp.o): non-canonical reference to canonical protected function `_ZN16QDialogButtonBox8acceptedEv@@Qt_6' in /usr/lib64/libQt6Widgets.so.6.8.2
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/avidemux3_qt6.dir/build.make:334: avidemux3_qt6] Error 1
make[1]: *** [CMakeFiles/Makefile2:903: CMakeFiles/avidemux3_qt6.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
What can I do to fix this?
Found a fix for the abovementioned issue when looking at the buildscript from archlinux: the flag
CXXFLAGS+=" -fPIC" \
needs to be added to bootStrap.bash
A patch like this should do it:
--- bootStrap.bash 2025-02-15 11:23:21.875284589 +0100
+++ /home/kgha/bootStrap.bash 2025-02-15 10:47:13.000000000 +0100
@@ -78,6 +78,7 @@
mkdir "${BUILDDIR}" || fail "creating build directory"
fi
pushd "${BUILDDIR}" >/dev/null
+ CXXFLAGS+=" -fPIC" \
cmake \
$COMPILER \
$PKG \
Don't know if this is distro-specific, but if it's a general Linux issue maybe the flag should be added to bootStrap.bash?
Should be fixed once wayland branch gets merged.
Great, thanks!
I have one feature wish as I use avidemux very often to build GoPro videos.
A GoPro video is splitted to different mp4-file (~4B big) and I need to join them to one video:
GX010116.MP4
GX020116.MP4
GX030116.MP4
...
-> GX[SPLITNR][VIDEONR].MP4
I want to select the first GoPro-mp4-file (GX01[VIDEONR].MP4 and then the app is adding also other mp4-file for the same video-nr automatically or I can add all mp4-file for one video-nr with a multi select and the order is automatically correct. This helps to avoid join errors if you are doing this step by step manually.