compiling and running avidemux 2.5.5 on arm - Illegal instruction

Started by KlausDieter, September 09, 2013, 06:55:11 PM

Previous topic - Next topic

KlausDieter

You are correct, the first frame of the cropped video is not a keyframe.
That means that I cannot use avidemux3 for editing this video material or I have to make sure the first frame is a keyframe. Is there an automatic way to do this?

Do you have plans to change this behavior? If so I will gladly be your guinea pig.

I do not understand much of video encoding unfortunately so it is unlikely I will be able to come up with a patch myself.
That guy seems to have the same problem_ http://www.avidemux.org/smf/index.php?topic=11615.0

mean

Normally it should work, but there is one border case that does not
What your source file ? An AVI ?

KlausDieter

the source file is an avi. I also tried converting it to mkv using mkvmerge. The conversion works and the timing issues are gone but I still get the crash if the first cut is not exactly at a keyframe.

When running ffmsindex on the file I notice that the timing for the keyframes is off by 40 ms in avidemux2.6.
for example (random numbers, just to illustrate my observation)
avidemux and ffmsindex show that frame 10893 is a keyframe. in avidemux2.5 and according to ffmsindex this keyframe is played back 34578350 ms after playback started. However avidemux2.6 shows that there is a keyframe at time position 34578390.

Edit: cleared up the last two sentences a bit to make it more clear. avidemux 2.5 and ffmsindex are in agreement when keyframe 10893 should be played, avidemux 2.6 believes it to be 40ms later.

mean


mean


KlausDieter

That is great!
Unfortunately I cannot find a link to a sourcecode repository git/svn/mercury/whatever so that I can download and build it.
How can I obtain the latest source containing your patch?


KlausDieter


KlausDieter

well, after having compiled avidemux2.6 successfully on my x86 box and after having learned enough to do some scripting I did compile avidemux2.6 on my arm box again including your patch that removed the assert.

However if I do
avidemux3_cli --load test.mkv --save bla.mkv
I get the message "Illegal instruction" again.
So it seems that some part of avidemux got built using the wrong cpu type or using some incompatible assembler code.
What can I do to investigate further?

mean


KlausDieter

this is the backtrace:
#0  0xb6f5c208 in typeinfo name for ADM_audioStreamMP3 () from /usr/local/lib/libADM_coreAudio6.so
#1  0xb429cb88 in mkvHeader::open(char const*) () from /usr/lib/ADM_plugins6/demuxers/libADM_dm_matroska.so
#2  0x0003c9dc in ADM_Composer::addFile(char const*) ()
#3  0x00024a80 in A_openAvi(char const*) ()
#4  0x00053748 in automation() ()
#5  0x000544c0 in UI_RunApp() ()
#6  0x0002a0a0 in startAvidemux(int, char**) ()
#7  0xb6b49694 in __libc_start_main (main=<optimized out>, argc=<optimized out>, ubp_av=<optimized out>, init=<optimized out>,
    fini=0x55be4 <__libc_csu_fini>, rtld_fini=0x2299c <_start+44>, stack_end=0xbefff784) at libc-start.c:228
#8  0x0002299c in _start ()

KlausDieter

avidemux is still running inside gdb. What should I do besides getting a bt to provide more information?

mean


KlausDieter