News:

--

Main Menu

crash on: "Seeking to a non keyframe"

Started by tpm9280, February 03, 2014, 01:29:31 AM

Previous topic - Next topic

tpm9280

Some x264 video files always crash my avidemux UI on Windows, while I am dragging the time slider.  It seems to happen for any file which triggered building the index upon loading the file.  It's a bit unpredictable when it will happen, but it always happens if I keep dragging long enough.

Here is the info from the log:


[intraTimeToFrame] Seeking to a non keyframe (time= 00:36:15,008 ), flags=0, flagsNext=0
[intraTimeToFrame] This is not normal unless you start frame is not a keyframe
[DecodePictureUpToIntra]  DecodeUpToInta 65183 ref:0

...

*********** BACKTRACE **************
ADM_setCrashHook <+0x99>  [C:\Apps\avidemux_2.6.7_r9010\libADM_core6.dll]
ADM_setCrashHook <+0x1F0>  [C:\Apps\avidemux_2.6.7_r9010\libADM_core6.dll]
ADM_backTrack <+0xD>  [C:\Apps\avidemux_2.6.7_r9010\libADM_core6.dll]
ADM_Composer::DecodePictureUpToIntra(unsigned int, unsigned int) <+0x2F9>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
ADM_Composer::goToIntraTimeVideo(unsigned long long) <+0xFF>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
admPreview::seekToIntraPts(unsigned long long) <+0x1B>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
HandleAction_Navigate(Action) <+0x16B>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
HandleAction(Action) <+0x920>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <+0x281>  [C:\Apps\avidemux_2.6.7_r9010\QtCore4.dll]
QAbstractSlider::valueChanged(int) <+0x30>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QSlider::mouseMoveEvent(QMouseEvent*) <+0x7A>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QWidget::event(QEvent*) <+0xDAE>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QApplicationPrivate::notify_helper(QObject*, QEvent*) <+0x8F>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QApplication::notify(QObject*, QEvent*) <+0x442>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QCoreApplication::notifyInternal(QObject*, QEvent*) <+0x70>  [C:\Apps\avidemux_2.6.7_r9010\QtCore4.dll]
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) <+0x13C>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QApplicationPrivate::closePopup(QWidget*) <+0xA3A>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QApplicationPrivate::closePopup(QWidget*) <+0x24E8>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
TranslateMessageEx <+0x2A1>  [C:\Windows\system32\USER32.dll]
TranslateMessage <+0x1EA>  [C:\Windows\system32\USER32.dll]
QEventDispatcherWin32::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) <+0x67F>  [C:\Apps\avidemux_2.6.7_r9010\QtCore4.dll]
QApplication::restoreOverrideCursor() <+0x194>  [C:\Apps\avidemux_2.6.7_r9010\QtGui4.dll]
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) <+0x36>  [C:\Apps\avidemux_2.6.7_r9010\QtCore4.dll]
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) <+0xEB>  [C:\Apps\avidemux_2.6.7_r9010\QtCore4.dll]
QCoreApplication::exec() <+0x97>  [C:\Apps\avidemux_2.6.7_r9010\QtCore4.dll]
UI_RunApp() <+0x404>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
startAvidemux(int, char**) <+0x429>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
main <+0x54>  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
unknown function  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
unknown function  [C:\Apps\avidemux_2.6.7_r9010\avidemux.exe]
BaseThreadInitThunk <+0xD>  [C:\Windows\system32\kernel32.dll]
RtlUserThreadStart <+0x21>  [C:\Windows\SYSTEM32\ntdll.dll]
*********** BACKTRACE **************


version: 2.6.7 r9010 (I've seen this on earlier versions too)
os: Windows 7
opengl option not enabled

I've tried to use the command line --rebuild-index to build the index from the command line, but this doesn't fix the problem. 

I also tried to use ffmpeg to reprocess the file, using "-codec" to copy the video and audio streams into a new file.  While that avoids the need to construct the index upon loading the file in avidemux, it doesn't avoid the crash.

It looks like avidemux is trying to seek to where it thinks is an I frame, but it's not an I frame.  I'm just dragging with the mouse rather than trying to step through frame by frame.

I'm not sure if this is a bug in avidemux, or if the video encoding in my file is just off.  But even if it is a problem with the video, it would be good for avidemux to be more resilient and to not crash.

Is there a workaround for this which wouldn't require re-encoding the video?

Thanks

pascal4

It's a bug, I keep getting this on large resolution files. But not on small ones. I have some 1080p's which I want to edit, and every time I scroll several times through it, slow or fast, it crashes.

This is a persistent bug, it's been here since 2.6 first arrived, and it seems the devs don't want to deal with it.

mean

Might have been fixed in 2.6.8
If the source file contains error, you might have these issues

pascal4

I see... so I tested it out.

I had and "old" WMV, I don't know why, but it's a WMV, and it crashes Avidemux.
Passed the whole file through Microsoft's Windows Media File Editor and reindexed it.
Now it seems to be working.

For mkv I use mkvtoolnix and for other types I just use ffmpeg -c:a/v copy.

When keeping the up arrow pressed, so seeking by I'fs it still crashes.

But some progress was still made on the general topic, at least normal seeking works.

tpm9280

I'm still getting this crash with Avidemux 2.6.8.9046 (64 bit):


[edCache] Flush
[decompressImage] uncompress failed
[DecodePictureUpToIntra]  decode error for frame 64440, not necessarily a problem
[HandleAction] ************ Scale **************
[HandleAction_Navigate] Scale :9415
[HandleAction_Navigate] Scale Time:2177984 ms (total=2313313 ms)
[HandleAction_Navigate] Scale Time:00:36:17,984 ms
[HandleAction_Navigate] Seeking to  Time:00:36:15,008 ms
[intraTimeToFrame] Seeking to a non keyframe (time=00:36:15,008), flags=0, flagsNext=0
[intraTimeToFrame] This is not normal unless you start frame is not a keyframe
[DecodePictureUpToIntra]  DecodeUpToInta 65183 ref:0

...

*********** BACKTRACE **************
ADM_setCrashHook <+0x99>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\libADM_core6.dll]
ADM_setCrashHook <+0x1F0>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\libADM_core6.dll]
ADM_backTrack <+0xD>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\libADM_core6.dll]
ADM_Composer::DecodePictureUpToIntra(unsigned int, unsigned int) <+0x2F9>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
ADM_Composer::goToIntraTimeVideo(unsigned long long) <+0xFF>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
admPreview::seekToIntraPts(unsigned long long) <+0x1B>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
HandleAction_Navigate(Action) <+0x16B>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
HandleAction(Action) <+0x920>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <+0x281>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtCore4.dll]
QAbstractSlider::valueChanged(int) <+0x30>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QSlider::mouseMoveEvent(QMouseEvent*) <+0x7A>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QWidget::event(QEvent*) <+0xDAE>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QApplicationPrivate::notify_helper(QObject*, QEvent*) <+0x8F>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QApplication::notify(QObject*, QEvent*) <+0x442>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QCoreApplication::notifyInternal(QObject*, QEvent*) <+0x70>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtCore4.dll]
QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) <+0x13C>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QApplicationPrivate::closePopup(QWidget*) <+0xA3A>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QApplicationPrivate::closePopup(QWidget*) <+0x24E8>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
TranslateMessageEx <+0x2A1>  [C:\Windows\system32\USER32.dll]
TranslateMessage <+0x1EA>  [C:\Windows\system32\USER32.dll]
QEventDispatcherWin32::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) <+0x67F>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtCore4.dll]
QApplication::restoreOverrideCursor() <+0x194>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtGui4.dll]
QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) <+0x36>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtCore4.dll]
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) <+0xEB>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtCore4.dll]
QCoreApplication::exec() <+0x97>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\QtCore4.dll]
UI_RunApp() <+0x404>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
startAvidemux(int, char**) <+0x419>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
main <+0x54>  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
unknown function  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
unknown function  [C:\Apps\Avidemux_2.6.8.9046\Avidemux 2.6 - 64bits\avidemux.exe]
BaseThreadInitThunk <+0xD>  [C:\Windows\system32\kernel32.dll]
RtlUserThreadStart <+0x21>  [C:\Windows\SYSTEM32\ntdll.dll]
*********** BACKTRACE **************

mean


strong_lead

I get something similar if I deleted the end of the video, supposedly ending the video with a keyframe, search someplace else in the video and then tell it to go to the last frame.

If I shift over to another window and do something else for awhile, avidemux recovers on its own and goes to that final frame.

For me, it's a nuisance but a livable one.