Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Recent Posts
1
General - (fb2k) / Re: Free Encoder Pack
Last post by Case -
Updated 2024-04-23 with Opus 1.5.2, qaac 2.82 and refalac 1.82.
Installer also changed - now no longer asks for admin credentials for regular users. And can query default install dir from the browse dialog for portable install users.
4
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by JoshuaChang -
I did some benchmarking and GCC's fprintf takes 100 times longer even here compared to MSVC's or clang's function.
Attached is a patch that changes progress printing to use WriteConsole on Windows when stderr isn't redirected to file. That gives consistently fast progress display on all compilers. I also noticed that stopping encoding by keyboard press didn't work when not compiled on Visual Studio, fixed that too.

I also changed the progress printing to happen 4 times less often than originally. I think maikmerten's progress update happened too seldom, it looked buggy when it was so sluggish.

I hope @KevinB52379 can test this and report if things now work correctly.


I think you might forgot to add -static in the LFLAGS since it ask for libstdc++-6.dll in my env.
5
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by Kraeved -
Hmmm.

* in.wav, 99 423 788 bytes
* hmp3.case.x64, 513 024 bytes, xxhash 820182a208834328
* hmp3.chang.x64, 839 680 bytes, xxhash 4080008cf88453e9

Code: [Select]
$ hyperfine --warmup 3 --runs 3 -L encoder hmp3.case.x64,hmp3.chang.x64 "{encoder} -V150 -HF2 -F20000 in.wav out.mp3"

  Command          Mean [s]        Relative    
 ---------------- --------------- -------------
  hmp3.case.x64    6.860 ± 0.051   1.41 ± 0.01 
  hmp3.chang.x64   4.850 ± 0.019   1.00     
6
Opus / Re: Opus v1.5.2
Last post by 2012 -
Is there any reason to stick to multiples of 16/32 for target bitrate in opus encoder or does it not matter? I noticed qaac/Apple AAC forces 112-128-160-192 etc.

Unless it's a special use-case which also requires hard CBR, it does not matter.
7
MP3 - General / Re: Resurrecting/Preserving the Helix MP3 encoder
Last post by Case -
I did some benchmarking and GCC's fprintf takes 100 times longer even here compared to MSVC's or clang's function.
Attached is a patch that changes progress printing to use WriteConsole on Windows when stderr isn't redirected to file. That gives consistently fast progress display on all compilers. I also noticed that stopping encoding by keyboard press didn't work when not compiled on Visual Studio, fixed that too.

I also changed the progress printing to happen 4 times less often than originally. I think maikmerten's progress update happened too seldom, it looked buggy when it was so sluggish.

I hope @KevinB52379 can test this and report if things now work correctly.

Edit: replaced with static compile.
9
3rd Party Plugins - (fb2k) / Re: foo_enhanced_spectrum_analyzer
Last post by yeyo -
I'm still working on it. But I need more time than expected because I decided to use OpenGl instead of GDI+ and therefore a large part of the code has to be rewritten. But OpenGl is much faster than GDI+. So it's worth the effort. So far I have been able to solve everything. Here is a current picture of the component.
[attach width=500 align=center]30325[/attach]
Very well presented interface, I'll keep an eye on it!
10
3rd Party Plugins - (fb2k) / Re: foo_nowplaying2
Last post by marc2k3 -
Here's a bit of code for implementing %datetime%.

First you need this...

Code: [Select]
#include <pfc/filetimetools.h>

class TitleFormatHook : public titleformat_hook
{
public:
bool process_field(titleformat_text_out* out, const char* field, size_t, bool& found_flag) final
{
if (stricmp_utf8(field, "datetime") == 0)
{
const auto ts = pfc::fileTimeNow();
const auto str = pfc::format_filetimestamp(ts);
out->write(titleformat_inputtypes::unknown, str);

found_flag = true;
return true;
}

found_flag = false;
return false;
}

bool process_function(titleformat_text_out*, const char*, size_t, titleformat_hook_function_params*, bool& found_flag) final
{
found_flag = false;
return false;
}
};

Then to use it. existing code might look like this.

Code: [Select]
playback_control::get()->playback_format_title(nullptr, str, obj, nullptr, playback_control::display_level_all);

The first nullptr is the title format hook arg so it can be updated like this...

Code: [Select]
TitleFormatHook hook;
playback_control::get()->playback_format_title(&hook, str, obj, nullptr, playback_control::display_level_all);