1
General - (fb2k) / Re: Free Encoder Pack
Last post by Case -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.
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.
Command Mean [s] Relative
---------------- --------------- -------------
hmp3.case.x64 6.860 ± 0.051 1.41 ± 0.01
hmp3.chang.x64 4.850 ± 0.019 1.00
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.
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.Very well presented interface, I'll keep an eye on it!
[attach width=500 align=center]30325[/attach]
#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;
}
};
playback_control::get()->playback_format_title(nullptr, str, obj, nullptr, playback_control::display_level_all);
TitleFormatHook hook;
playback_control::get()->playback_format_title(&hook, str, obj, nullptr, playback_control::display_level_all);