Can I compile my own "libmp3lame.dll" (V3.100.1)?

Started by Grisu, September 14, 2020, 19:58:38

Previous topic - Next topic

Grisu

Hi everyone,

The Lame project recently released a bug fix update on their mp3-encoder (3.100.1).

History log: https://svn.code.sf.net/p/lame/svn/trunk/lame/doc/html/history.html

I would like to update to the latest version, but can't find a version of "libmp3lame.dll" which my bmx app uses.
Most sites offer a "lame_enc.dll" instead which sadly doesnt work for me.
E.g. https://www.free-codecs.com/lame_encoder_download.htm?f=lame_encoder_download

I was wondering, I there is a way to compile my own dll with mingw? Or does someone know where to find it premade?

Grisu

P.S. Yes, I already used several search engines and tested renaming the dll. :)
Pocket Radio Player     Cardwar

col

Do you know where to get the source for 3.100.1 ?

Edit: Lol it's in your link  :D
https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

col

The 'make' file in the repo that you've linked to looks like it will produce a 'lame_enc.dll', but you say that the latest lame_enc.dll doesn't work?

https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

Henri

What module/code you are using to encode lame mp3's ?

-Henri
- Got 01100011 problems, but the bit ain't 00000001

col

At one time Grisu was using the encoding back end of the app here:
https://github.com/davecamp/FModEncoder

The app was made as a test bed for the encoder.

I'm not sure if Grisu is still using it though.
https://github.com/davecamp

"When you observe the world through social media, you lose your faith in it."

Grisu

Hello, as Dave pointed out, I'm still making use of an updated version of his module.

As this module uses the "libmp3lame.dll", I can't use the "lame_enc.dll".
If I rename the latest "lame_enc" to "libmp3lame.dll", the app wouldn't work properly. Perhaps it needs an updated code for that.

I replaced the older libmp3lame.dll v 3.99.5. with the v 3.100.0 (from the site listed) when it came out in 2017. All worked fine. But I couldnt find a download site for the latest release so far.

Also I have heard that I'm allowed to include a selfmade dll in my distro, as the copyright of mp3 ran out?! Not sure about that. But it would make life simpler for new users of PRP.

Pocket Radio Player     Cardwar

Henri

It seems that 3.100.1 hasn't been released yet, but is under construction. So, the 2017 release is the most current at the moment.

-Henri
- Got 01100011 problems, but the bit ain't 00000001

Grisu

I know its not on their front page, but the build is all over the internet and it fixes some critical bugs with the encoder engine.
It might be best, if the encoder could use the lame_enc.dll which seems to be more commonly used. I just don't want to depend on third party sites for a new dll.


Pocket Radio Player     Cardwar

Henri

I don't think it has been officially released yet, but let's put that aside and use the latest deveplopment snapshot found at sourcefourge.


What I did:

1. Download Lame source from https://sourceforge.net/p/lame/svn/HEAD/tree/trunk/ . Press Download snaphot.

2. Download Visual studio 2019 Community edition (it's free) https://visualstudio.microsoft.com/downloads/

  - You need the Desktop development with C++ option installed

  - Add C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin to your path environment variable so you can execute msbuild
    from anywhere  (assuming you installed to default location for 32-bit version)

3. Download mpg123 library from https://mpg123.de/download/win32/1.26.3/mpg123-1.26.3-x86.zip and extract to <your_lame_folder>/vc_solution/mpg123.
    Inside this location you should now have mpg123.exe

4. Edit file <your_lame_folder>/vc_solution/vs2019_libmpg123_config.props and change <HaveMpg123> to true and <Mpg123Path> to .\mpg123\

5. Open cmd and cd to <your_lame_folder>/vc_solution/

6. Type this and hit enter: msbuild vs2019_libmp3lame_dll.vcxproj /m /property:Configuration=Release /property:HaveMpg123=true

7. Thats it. You should now have files in <your_lame_folder>\output\Win32\Release


-Henri
- Got 01100011 problems, but the bit ain't 00000001

Grisu

Well. I followed your detailed instructions. The dll builds fine and is like 300KB smaller than the original (see attached log).

But at the end of the day, it doesn't work with the encoder, also tested the example that comes with the srs.encodermod. :/
Pocket Radio Player     Cardwar

Derron

Can't you...simply said...wrap the official dll and use that?

Bye
Ron