News:

--

Main Menu

Crash si 2 et 1 audio

Started by Dagobert_78, August 10, 2024, 03:44:54 PM

Previous topic - Next topic

Dagobert_78

Bonjour.

J'ai une action qui fait planter avidemux à tous les coups.

AVIdeMux v2.8.2 build 24.08.06
AVIdeMux v2.8.2 build 24.08.10
Windows 11 x64


1. J'ouvre avidemux
2. J'insère une vidéo possédant 2 audios
3. J'insère une vidéo possédant 1 audio
4. Je coupe/colle le segment de la seconde vidéo, pour l'insérer avant la première.
5. Je vais dans le menu « Audio »
6. Je clique sur « Choisir les pistes »
7. avidemux plante,

Cela ne se produit pas si j'inverse les étapes 2 et 3.

Testé avec du :
MP4 – H264 – mp3
MKV – H264 – AC3 et AAC

en mode Vidéo COPY et à réencoder
en mode Audio COPY et à réencoder


You cannot view this attachment.

You cannot view this attachment.




Détails du crash :
EXCEPTION_ACCESS_VIOLATION
audioTrackQt4::buildTrackMenu(int, int) [avidemux.exe]
ADM_setCrashHook [libADM_core6.dll]
ADM_setCrashHook [libADM_core6.dll]
ADM_setCrashHook [libADM_core6.dll]
UnhandledExceptionFilter [KERNELBASE.dll]
RtlCopyMemory [ntdll.dll]
_C_specific_handler [ntdll.dll]
_chkstk [ntdll.dll]
RtlFindCharInUnicodeString [ntdll.dll]
KiUserExceptionDispatcher [ntdll.dll]
audioTrackQt4::buildTrackMenu(int, int) [avidemux.exe]
audioTrackQt4::audioTrackQt4(PoolOfAudioTracks*, ActiveAudioTracks*) [avidemux.exe]
ADM_Qt4CoreUIToolkit::createAudioTrack(PoolOfAudioTracks*, ActiveAudioTracks*) [avidemux.exe]
A_audioTrack() [avidemux.exe]
HandleAction(Action) [avidemux.exe]
MainWindow::actionSlot(Action) [avidemux.exe]
QEventDispatcherWin32::qt_metacall(QMetaObject::Call, int, void**) [Qt5Core.dll]
MainWindow::actionSignal(Action) [avidemux.exe]
MainWindow::searchAudioMenu(QAction*) [avidemux.exe]
QEventDispatcherWin32::qt_metacall(QMetaObject::Call, int, void**) [Qt5Core.dll]
QMenu::enterEvent(QEvent*) [Qt5Widgets.dll]
QEventDispatcherWin32::qt_metacall(QMetaObject::Call, int, void**) [Qt5Core.dll]
QAction::activate(QAction::ActionEvent) [Qt5Widgets.dll]
QMenu::setIcon(QIcon const&) [Qt5Widgets.dll]
QMenu::enterEvent(QEvent*) [Qt5Widgets.dll]
QWidget::event(QEvent*) [Qt5Widgets.dll]
QApplicationPrivate::notify_helper(QObject*, QEvent*) [Qt5Widgets.dll]
QApplication::notify(QObject*, QEvent*) [Qt5Widgets.dll]
QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) [Qt5Core.dll]
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) [Qt5Widgets.dll]
QDesktopWidget::qt_metacall(QMetaObject::Call, int, void**) [Qt5Widgets.dll]
QDesktopWidget::qt_metacall(QMetaObject::Call, int, void**) [Qt5Widgets.dll]
QApplicationPrivate::notify_helper(QObject*, QEvent*) [Qt5Widgets.dll]
QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) [Qt5Core.dll]
QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) [Qt5Gui.dll]
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) [Qt5Gui.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]


Fichier projet :
#PY  <- Needed to identify #
#--automatically built--

adm = Avidemux()
if not adm.loadVideo("D:/Vidéos/Voiture/2 audios.mp4"):
    raise("Cannot load D:/Vidéos/Voiture/2 audios.mp4")
if not adm.appendVideo("D:/Vidéos/Voiture/1 audio.mp4"):
    raise("Cannot append D:/Vidéos/Voiture/1 audio.mp4")
adm.clearSegments()
adm.addSegment(1, 66666, 109000334)
adm.addSegment(0, 66666, 109000334)
adm.markerA = 0
adm.markerB = 218000668
adm.setHDRConfig(1, 1, 1, 1, 0)
adm.videoCodec("Copy")
adm.audioClearTracks()
adm.setSourceTrackLanguage(0,"eng")
adm.setSourceTrackLanguage(1,"fra")
if adm.audioTotalTracksCount() <= 0:
    raise("Cannot add audio track 0, total tracks: " + str(adm.audioTotalTracksCount()))
adm.audioAddTrack(0)
adm.audioCodec(0, "copy")
adm.audioSetDrc2(0, 0, 1, 0.001, 0.2, 1, 2, -12)
adm.audioSetEq(0, 0, 0, 0, 0, 880, 5000)
adm.audioSetChannelGains(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
adm.audioSetChannelDelays(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
adm.audioSetChannelRemap(0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8)
adm.audioSetShift(0, 0, 0)
if adm.audioTotalTracksCount() <= 1:
    raise("Cannot add audio track 1, total tracks: " + str(adm.audioTotalTracksCount()))
adm.audioAddTrack(1)
adm.audioCodec(1, "copy")
adm.audioSetDrc2(1, 0, 1, 0.001, 0.2, 1, 2, -12)
adm.audioSetEq(1, 0, 0, 0, 0, 880, 5000)
adm.audioSetChannelGains(1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
adm.audioSetChannelDelays(1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
adm.audioSetChannelRemap(1, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8)
adm.audioSetShift(1, 0, 0)
adm.setContainer("MP4", "muxerType=0", "optimize=1", "forceAspectRatio=False", "aspectRatio=1", "displayWidth=1280", "rotation=0", "clockfreq=0")

eumagga0x2a

Bonjour,

Je pense que nous devrions détecter une incompatibilitée des pistes audio (sur ma liste des choses à faire) et que nous ne devrions absolument pas planter avec ACCESS_VIOLATION quoi qu'il arrive. Je vais examiner ce problème, merci.