MickJT has just released a new version of ffmpeg (3.4) in the upload section of OS4Depot at the moment.
I've made some tests converting video or audio files to MP3 and the results give a very bad sound qualitry.
Actually only the AltiVec version gives this bad result (on the PA6T, I don"t know on G4). If I use the non Altivec version, the sound is of very good quality.
I have no way of testing altivec builds, but I did have someone do a quick test for me before releasing and all seemed OK.
What's the exact command line arguments you were using? libmp3lame itself doesn't use altivec instructions, but perhaps decoding from a particular format does, so if you could paste the shell output too that would be great, so I can see what format the original file is in.
Does 3.1.1 work? It's still available on se.os4depot.net until that mirror gets updated.
Tried the above lines with the Wildlife video and all give disorted sound over the whole vid. You can still hear every bit, but it sounds as if a layer of disortion is put over it.
I'll send you one file so you can hear what i mean privately.
Ok well I'll do what I've done in the past and link the binary using an older adtools containing gcc 4.2.4, instead of my own build that contains gcc 6.1.0. That normally fixes it. No full re-compiling necessary.
Raziel, check your email.
Edit: Clarity.
Edited by MickJT on 2017/11/25 16:14:30 Edited by MickJT on 2017/11/25 17:38:57 Edited by MickJT on 2017/11/25 17:43:38
Still don't know why it helps to re-link the binaries with older gcc libs (edit: older adtools in general), but whatever works. I'll re-package it in a moment and upload it soon.
Edit: In the queue.
Edited by MickJT on 2017/11/25 11:00:47 Edited by MickJT on 2017/11/25 11:07:16 Edited by MickJT on 2017/11/25 16:15:31
Still don't know why it helps to re-link the binaries with older gcc libs, but whatever works. I'll re-package it in a moment and upload it soon.
Are you linking the binaries using static or dynamic linking?
If you link dynamically with newer libgcc.so and the user then uses it with an older libgcc.so that was included with the OS then that would explain the problems.
Note that with the latest gcc you may have to add the -static option to LDFLAGS to force static linking of all libraries.
To check if an already compiled program has shared object dependencies and what they are you can use:
ppc-amigaos-objdump -d <program>
Assuming that the program was wholly statically linked it should say that there is no dynamic section in the file.
I've had this happen on other versions in the 4.x.x range as well.
@salass00
Quote:
Are you linking the binaries using static or dynamic linking?
static
All I know is that taking the very same .o/.a files, and the same SDK too, all I have to do is swap out my own adtools I built myself for the one zerohero built on kas1e's mirror, then run "make" to re-link the binaries, and all is fine. And this problem only affects altivec instructions.
So, perhaps libgcc.a? I was also thinking maybe it's something in binutils. I don't really know at this stage, but I'm planning on figuring out exactly what it is. It's happened across multiple versions of adtools/gcc, on Linux and Cygwin, built on different machines. There's nothing special I'm doing to build adtools, pretty much the same as stonecracker's instructions, although I've been doing this for a long time before his post. What I haven't done is tried building the exact 20090118 revision of adtools/gcc.
Maybe in the future I could compare my own adtools build to someone elses, at the same revision, built in the same environment as much as possible, and see if one has the issue and one doesn't.
Edit: Clarity.
Edited by MickJT on 2017/11/25 14:35:33 Edited by MickJT on 2017/11/25 14:44:13 Edited by MickJT on 2017/11/25 17:41:22
I'm sending files to K-L. I'm thinking it's either differences in binutils (2.18 at the time of adtools 20090118) or libgcc. Seeing as we're in different timezones and I can't test these myself, it might take a couple of days.
Edit: Appears libgcc.a is not the culprit. More testing tomorrow.