diffs between v3.24 and v3.23 (20250824)

-modifications/new/MMC:
 -updated FFmpeg library to v8.0.0
 -updated VVdeC (VVC/H266) video decoder to 3.0.0 (internal vvc decoder of FFmpeg is disabled)
 -added 'Play event control' submenu to Play menu with switches of several play and exit events (mainwindow.cpp, control.c, mx_volum.c)
 -added 'Load attached pics' option to Video control, to (re)enable attached picture (ID3v2 album cover) loading (ffmpstrm.c, config.cpp)
-modifications/new/general:
 -new options: -xef (exit after one file), -xet MIN (exit after MINutes timeout) and -xetf MIN (exit after MINutes timeout with slow fadeout) (control.c)
 -new mpxplay.ini parameter: PrgExiTimeout - exit timeout in minutes for 'Play event control'/'Exit at timeout' (control.c)
 -added handling of more (all possible) multi-channels (eg. bottom or top surround speakers), mapping to the nearest supported output channel (but the maximum number of input/output channels is still 11) (in_ffmpeg.c)
 -OpenSSL DLLs are loaded (again), native SLL handling is used only if OpenSSL DLLs cannot be loaded (missing) (note: OpenSSL DLLs are not packed with MMC releases, because they are required under WinXP/Win7 only) (tcpcommon.c)
 -tcp (http/ftp low level) functions (ws2_32.dll) are loaded dynamically (only if used) (tcpcomon.c)
-bugfixes/modifications/MMC:
 -corrected freezing if both sides have one empty playlist only (playlist.c)
 -corrected (prevent) hiding of main window, browsing (moving mouse cursor) in main menu (dialog_elems.cpp)
 -corrected (some) attached picture (ID3v2 album cover) displaying (ffmpgdec.c)
 -video-controlbar at multi-display with different Scale/DPI (mainwindow.cpp) (note: video context menu and EPG windows can be wrong yet)
 -if video (gif) contains less than 6 frames, it's handled as still picture (it was 4 early) (ffmpgdec.h)
 -rearranged/replaced/removed/extended settings of List, Play and Program in Configure (config.cpp)
 -Win7: modified default settings: background colorization is enabled, hw decoding is disabled (control.c, config_ini.cpp)
 -added proper install information to the installer versions (mpxp_mmc_x64.nsi, mpxp_mmc_x86.nsi)
 -updated Z library to v1.3.1
-bugfixes/modifications/general:
 -corrected PCM_S16LE (WAV/CDW) audio playing (ffmpstrm.c)
 -ppa, xas and xce command line options became one-time switches (not overwriting permanent settings of PlayControl and ProgramCntrl in mpxplay.ini) (control.c)
 -mpxplay.ini/PlayControl: removed one-time switches, use command line options (-ppn, -phs) instead (control.c)
 -excluded/removed non-functional 'A' and 'T' keyboard buttons (from readme.txt too) (keyctrl.c)

----------------------------------------------------------------------------------------------
diffs between v3.23 and v3.22 (20250630)

-modifications/new/MMC:
 -updated libdav1d (AV1 decoder) to v1.51
 -added Scale/DPI awareness setting to Config/Display (with Unaware default mode) for proper OS non 100% scaling (config.cpp, main.cpp, mixed.c)
 -D3D11: added native colorspace formats: AYUV, Y210, Y216, Y416 (video_render_d3d11.cpp)
-modifications/new/general:
 -added native (Windows based) SSL/TLS (https/ftps) communication, removed OpenSSL dlls (tcpcomon.c)
 -dll load optimizations (mpr.dll is loaded dynamically, only if needed) (loaddir.c, drivehnd.c)
 -email address has changed to mpxplay@hotmail.com, don't use mpxplay@freemail.hu anymore (old messages are also lost)
-bugfixes/modifications/MMC:
 -D3D11: several corrections in the HDR dynamic functions (luminance calculation) (video_render_common.cpp, video_render_d3d11.cpp)
 -D3D11: corrected BGR565, NV24 and NV42 pixel formats displaying (video_render_d3d11.cpp)
 -D3D11: corrected H264 HW decoding (D3D11 collapsing) by https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/02eda84bf2fcf0db7793872204b0f564a6557232
 -D3D9: corrected native color space support list (removed non-functional ones) (video_render_d3d9.cpp)
 -corrections in sw based colorspace (color range) conversions (video_trans.cpp)
 -Videowall: sub-windows merge (possible broken frames) (video_workdec.cpp)
 -GUI: minor layout corrections like fixed font sizes and buttons on config dialog (dialog_elems.cpp, config.cpp, editor.cpp, etc.)

----------------------------------------------------------------------------------------------
diffs between v3.22 and v3.21 (20250112)

-modifications/new/MMC:
 -updated FFmpeg library to v6.1.2
 -updated libdav1d (AV1 decoder) to v1.50 (20241018)
 -updated OpenSSL DLLs to 1.1.1w (20230911)
 -removed "Disable multi CPU core usage" option (used for testing only) (config.cpp)
 -removed "Enable AV1 HW decoding" option (the "Enable HW (GPU) decoding" switches the AV1 hw decoding too) (config.cpp, ffmpgdec.c)
-bugfixes/modifications/MMC:
 -HW to SW decoding fallback, if video format or resolution is not supported (H264 8k) (ffmpgdec.c)
 -D3D11 HW decoding optimization (less texure copy, less mem leak) (video_render_d3d11.cpp)
-bugfixes/modifications/general:
 -LFN to ID3 conversion (better track number handling) (chkentry.c)
 -possible crash (null ptr error) at index or DVB program change (mpxplay.c)

----------------------------------------------------------------------------------------------
diffs between v3.21 and v3.20 (20240702)

-modifications/new/MMC:
 -updated FFmpeg library to v6.1.1
 -updated libdav1d (AV1 decoder) to v1.43 (20240612)
 -added VVC/H266 video decoding by VVdeC 2.3.x (20240625) (https://github.com/fraunhoferhhi/vvdec)
 -added ShowSpectrum audio visualization effect (by FFmpeg filter)
 -added 'Disable screen saver at play' option to Program controls, to disable OS screen saver while playing (main.cpp, mixed.c, au_cards.c, config.cpp)
 -added 'Enable UTF-8 text decoding' option to Subtitles, to enable UTF-8 text decoding on subtitle files without UTF header (ffmpfile.c, config.cpp)
 -frame drop (reduced fps) on output is applied for sw decoded frames too (if there is video delay at high fps) (video_worker.cpp)
-bugfixes/modifications/MMC:
 -HW decoding: increased and modified output buffering to avoid frame drops at buffer overflow (mainly at AV1 hw decoding) (ffmpgdec.c, in_file.h, moc_video_qt.h)
 -D3D11: workaround to handle (by a complete gui reopen) unexpected context close (video output freeze) at seeking and skip (video_render_d3d11.cpp, video_workdec.cpp, video_widget.cpp)
 -D3D11: use top-field-first for forced ('Enable') deinterlacing (to avoid choppy/jumping video frames) (video_render_d3d11.cpp)
 -corrected video playing at auto/unexpected video stream changes (mainly MPEG-TS) (went wrong in v3.18) (ffmpgdec.c, ffmpstrm.c)
 -improved seeking for not properly indexed (stream source) videos (video_workdec.cpp)
 -properly clear video surface at Aspect Ratio change and play-stop (video_render_d3d11.cpp, video_widget.cpp)
 -fullscreen switch optimizations, corrections (correctly restored mainwin-videowidget relation, disabled system window event handling) (video_qt.cpp, video_render_d3d11.cpp)
 -reworked/reordered subtitle processing to improve accuracy of video frame and subtitle scheduling (video_worker.cpp, video_worksubt.cpp)
 -mutex optimizations to reduce rare long (double) locks (video_workdec.cpp, video_worker.cpp)
 -possible crash at exit or at gui reopen (exe left in memory, status is not saved) -> block unnecessary gui and timer calls after gui close (main.cpp, timer.c)
 -artist:title displaying (if no artist or title) at window headers and skip-button tooltips (main.cpp)
 -AV1 hw decoding is enabled by default at reset gui settings (mpxplay.h)
 -Directsound hardware mixing is disabled by default (because it doesn't give better sound always) (control.c)
-bugfixes/modifications/general:
 -possible crash at file reopen (eg. invalid current file in pause mode after audio output reconfig) (mpxplay.c)

----------------------------------------------------------------------------------------------
diffs between v3.20 and v3.19 (20231217)

-modifications/new/MMC:
 -updated FFmpeg library to v6.0.1
 -updated libdav1d (AV1 decoder) to v1.30 (20231003)
 -playlist context menu: sorting has moved into a sub-menu, player and commander mode sort-types are merged (no need to switch to commander/player mode for alternative sorting) (sortlist.c, editor.cpp)
-bugfixes/modifications/MMC:
 -F3: prohibit opening a new dialog window above the Fileinfo dialog (eg. pressing F2 after F3) (keyctrl.c, diskfile.c)
 -still picture displaying if deinterlace mode is 'Enable' (video_workdec.cpp, video_filters_cfg.cpp, video_render_common.cpp)
 -automatically disabled deinterlace and frame duplication on higher (>4k) resolutions (if deinterlace mode is 'Enable') (video_render_d3d11.cpp, video_filters_cfg.cpp)
 -D3D11: output freezing at resolution+pixfmt change (incorrect alignment for the new texture)(mostly for jpg files) (video_render_d3d11.cpp)
 -video (bottom) controlbar: workaround for incorrect window size changes (at trying to move it or after dialog open)(Win7,Win11)(video_ctrlbar.cpp, textwin.cpp)
-bugfixes/modifications/general:
 -ctrl-'e': rename of directory (single entry only) (diskfile.c)
 -ctrl-'e': rename and auto reopen of currently played (video) file (diskfile.c)
 -possible crash at all-elapsed time displaying mode (TimeMode=2) at calculating all-elapsed time (chkentry.c)
 -ID3-search (alt-letter): can be terminated with a dialog open key (like F3 or alt-F5), opening the dialog window immediately (keyctrl.c)
 -LFN to ID3 conversion (if filenames begining with number) (chkentry.c)
 -sorting (inserting into playlist) new (created) entries (eg. make dir, playlist save, stream copy) by filedate (if the order type of that tab is filedate) (editlist.c, sortlist.c)

----------------------------------------------------------------------------------------------
diffs between v3.19 and v3.18 (20230610)
-modifications/new/MMC:
 -moved "General GUI layout" config to Color / "General GUI colorization" (config.cpp)
 -added "Background type", "Background effect" and "Colorization alpha" to "General GUI colorization" to select alternative transparent background types (config.cpp, config_ini.cpp, mainwindow.cpp, dialog_elems.cpp)
 -moved Opacity / "Editor translucent settings" to Color / "Editor transparent settings" (config.cpp)
 -"Reset config" also resets video surface settings, like: aspectratio, crop, zoom, rotation, vmixer, deinterlace, audiovisualization and filetype of save-stream (config_ini.cpp)
 -added "ToolTip items" to DVB options to show/hide EPG items in tooltips over EPG window (config.cpp, dvb_scan.cpp)
 -renamed "Transparent" video control bar to ""Headerless" (config.cpp)
 -updated libdav1d (AV1 decoder) to v1.2.1 (20230601)
-bugfixes/modifications/MMC:
 -GUI: transparent/translucent layout under Windows 11 ("Transparency effects" of Win11 shall be enabled in OS to get blur transparent windows) (dialog_elems.cpp, mainwindow.cpp)
 -GUI: detection of OS transparency and theme settings under Win10/11 (to select blurry or full transparent window background) (mainwindow.cpp)
 -GUI: several layout (change) and colorization fixes (dialog_elems.cpp, mainwindow.cpp, seekbar.cpp)
 -GUI: config window re-open and colorization change fixes (config.cpp, mainwindow.cpp)
 -GUI: (not) hide of video control bar (moving mouse pointer trough tooltip to seek-preview) (video_ctrlbar.cpp, seekbar.cpp)
 -faster and more correct (http/dvb) stream initialization (ffmpadec.c, ffmpgdec.c, ffmpstrm.c)
 -faster parsing of MP4/MOV files (not loading seek index) (libavformat/mov.c)
-bugfixes/modifications/general:
 -FFmpeg: handling (ignoring) of incorrect ID3 tags (like spaces only) (in_file.c)
 -F3: more precise window update moving editor cursor (song skip) (diskfile.c)
 -F4: editing tags of multiply files, the artist and title are discarded from common settings (common settings are loaded automatically from any entry in the list, which already has proper ID3 tags) (fileinfo.c)
 -alt-F6: Move and Rename are displayed separated ('Rename' if a file is moved to the same directory) (diskfile.c)
 -create ID3 from filename: better handling of filenames with non "artist - title" format (like pictures) (chkentry.c)
 -loading ID3 tags: artist/title infos are not pasted from other side, if the ID3-tag was created from filename there (chkentry.c)
 -ctrl-'E' (rename file by ID3): a single filename is given, if there's no artist, and there's no title or tracknum or the ID3 was created from filename (diskfile.c)
 -file rename (ctrl-'E' or alt-F6): proper playlist entries update, if the ID3-tag was created from filename (diskfile.c)
 -more stable closing of file handler dialogs (F[n] keys) (diskfile.c, fileinfo.c, savelist.c)
 -more precise detection of Windows versions (several functions are deviated by win version number) (mixed.cpp, newfunc.h)

----------------------------------------------------------------------------------------------
diffs between v3.18 and v3.17 (20230316)
-modifications/new/MMC:
 -updated FFmpeg library to v6.0.0
 -updated libdav1d (AV1 decoder) to v1.10+ (20230313)
 -added "Duplicate interlaced frames" option to "Video config" (enabled by default, mostly works at D3D11 output only, rarely at D3D9) (config.cpp, video_render_d3d11.cpp, video_filters_cfg.cpp, video_worker.cpp)
 -added "Prefer descriptor stream" option to "Audio config" (usefull for TV programs) (config.cpp, ffmpstrm.c)
-bugfixes/modifications/MMC:
 -"Hardware mixing" audio output mode is enabled by default at Win8 or higher (control.c)
 -"Highlight scan from half" (instead of fixed 1:00 start) is enabled by default (control.c)
 -dialogs: replaced the char based progress bar with a GUI one (diskfile.c, textwin.c, textwin.cpp)
 -videowall: some programs were not displayed (eg: if number of programs was between 3x2 and 3x3 (7 or 8)) (video_workdec.cpp)
 -videofilter: handling of audio format changes at visual plugins (sometimes freezing the visual plugin outputs) (video_filter.cpp)
 -decoder: optimized input frame feeding (possible more fluent playing) (video_workdec.cpp)
 -decoder: more stable AVcontext handling/identification (ffmpadec.c, video_workdec.cpp, ffmpgdec.c, ffmpqueu.c)
 -scheduler/renderer: optimized frame scheduling at zoom/resize/move under playing (video_worker.cpp, video_widget.cpp)
 -skipframe: corrected unexpected (and jammed) frame drop at non-high FPSes (video_worker.cpp)
 -DVB (livestream): (re)implemented workaround for a/v streams timestamp mismatch (audio is playing in this case too, but not properly synched to video) (lost in an earlier version) (ffmpadec.c)
 -more stable (thread safe) playlist handling (add/del entry) (editlist.c, playlist.c, editor_table.cpp)
 -updated Z library to 1.2.13
-bugfixes/modifications/general:
 -dialogs: more stable windows handling (closing) (textwin.c, textwin.cpp)
 -F3: better file info dialog handling (eg. changing editorside with tab), text items optimizations/changes (diskfile.c)
 -F4: editing of last index entry length/endtime (if new length/endtime is more than the rest/complete song) (fileinfo.c)
 -ctrl-'e': corrected too short cut of artist and title (60 -> 120 chars) (diskfile.c)
 -ctrl-'r': reload of large playlist (or subdir scan) (possible crash at standing at the end of list) (playlist.c)
 -ALT-F5/F6/F8: several cosmetic (text items) changes with 'total filesize' displaying (diskfile.c)

----------------------------------------------------------------------------------------------
diffs between v3.17 and v3.16 (20221017)
-modifications/new/MMC:
 -updated FFmpeg library to v5.1.2
 -updated libdav1d (AV1 decoder) to 1.0pre (20220930)
 -updated MinGW (compiler) to version 12.2.0r2 (msvcrt) (patched x86)
-bugfixes/modifications/MMC:
 -audiovisualization process: null ptr error in frame scheduling (possible crash) (video_workdec.cpp)
 -x64: file FindFirst/FindNext handler (uint32 intptr caused random crash at loading directory informations) (drivehnd.c/newfunc.h)
 -video context menu: crash if video stream infos are incomplete (handling of invalid codecpar->format) (ffmpgdec.c, in_fmpeg.c, video_render_d3d11.cpp)
 -D3D9/D3D11: autocrop + crossfade + swtexturebuffer (autocrop context was separated at mixed buffered frames (texture/non-texture)) (video_render_d3d11.cpp, video_render_d3d9.cpp)
 -QWidget output: video frame linesize handling (broken video frame at some non standard resolutions) (video_render_qpaint.cpp)
 -QWidget/Vulkan: reduced padding size (smaller black border)(7 -> 1) for video frame post-processing (video_filters_cfg.cpp)
 -QWidget/Vulkan: possible HW decoding conflicts (but not supported by these outputs) (wrong/missing hwpixelformat) (video_render_qpaint.cpp, video_render_vulkan.cpp)
 -updated Z library to 1.2.12 (installed into the common work directory)(newer MinGW has no Z library)(lzma support is removed)
-modifications/new/general:
 -ID3-search: exclude path(es) from search in filename(s) (keyctrl.c)
 -ID3-search: clear search/filter string, if it's invalid/obsolete (if non-filtered id3-search is enabled or string has not found) (keyctrl.c)
 -ctrl-'r': set properly editorhighline after reseting ID3-search filtering (first pressing of ctrl-'r' resets the filtering only, not reloading the dir/file content) (playlist.c)
 -alt-F5: don't prepare/rename filename from/by metadata at single file copy (diskfile.c)
 -'m': increased mute duration (initial: ~0.4 to 0.8 sec) to avoid pops (on/off/on switching while pushing the button), corrected switching from ctrl-'m' to 'm' mode (without pop) (mx_volum.c)

----------------------------------------------------------------------------------------------
diffs between v3.16 and v3.15 (20220807)
-modifications/new/MMC:
 -updated FFmpeg library to v5.1.0
-bugfixes/modifications/MMC:
 -using of container video aspect ratio (if stream AR seems not valid) (ffmpstrm.c, video_workdec.cpp)
 -rotation manual change (video_widget.cpp)
 -pool buffer (buffer overflow) / frame queue handling (video_render_common.cpp, video_workdec.cpp, ffmpqueu.c)
 -color matrix conversion (d3d11 / video_render_common.cpp)

----------------------------------------------------------------------------------------------
diffs between v3.15 and v3.14 (20220202)
-modifications/new/MMC:
 -updated FFmpeg library to v5.0.0
 -added DirextX 9 video output with DXVA hw decoding (it doesn't work properly on WinXp yet) (video_render_d3d9.cpp)
 -improved skip-frame support: skip to next keyframe at significant A/V delay (video_workdec.cpp, ffmpgdec.c)
-bugfixes/modifications/MMC:
 -removed hw (D3D11VA) video decoding at Qwidget and Vulkan outputs (only sw decoding can be used there) (video_workdec.cpp)
 -faster seek-preview in some cases (low delay decoding) (ffmpgdec.c)
 -stream list (video context menu): removed title from audio/video streams (used only at subtitles) (ffmpgdec.c)
 -displaying of (largest frame from) progressive jpeg (video_workdec.cpp)
 -automatic picture rotation (video_trans.cpp)
 -better (live) stream parsing error detection (ffmpstrm.c)
 -better stability of sw based video frame conversions (corrected buffer alignment) (video_trans.cpp, moc_video_qt.h)
 -improved stability of D3D11 output (hw decoding format changes, pool buffer handling, subtitle displaying) (video_render_d3d11.cpp)

----------------------------------------------------------------------------------------------
diffs between v3.14 and v3.13 (20211024)
-modifications/new/MMC:
 -updated libdav1d (AV1 decoder) to v0.9.2
 -added bitmap (picture) based embedded (mkv,vob) subtitle displaying (video_worksubt.cpp, video_render_base.cpp)
 -added 10-bits/HDR info, subtitle stream title and subtitle Default/Forced text to Streams list (video context menu) (ffmpgdec.c)
 -modified fullscreen auto switch modes/settings to "Fullscreen video at play-start" and "Fullscreen video at enter key" (config.cpp, video_qt.cpp, mpxplay.c, skiplist.c)
 -added OpenSLL 1.1.1k dlls to all (installer/portable) versions to handle https and ftps connections
-modifications/new/general:
 -added https protocol support (only simple A/V streams, not YT) (note: SSL support requires OpenSSL DLLs) (drv_http.c, tcpcommon.c)
 -added support for OpenSSL 1.1.x DLLs (libssl-1_1[-x64].dll) besides the old OpenSSL 1.0.x DLLs (ssleay32.dll) (tcpcommon.c, dll_load.c)
 -next file selection (ctrl-enter) is saved and restored by mpxtabs.ini (startup.c, mpxplay.c, playlist.c)
 -startup has a more precise play-status restoring (after exit from stop mode) (mpxplay.c)
 -http/dvb: streams are not (re)open at program (re)start or at skip in pause/stop mode (just selected as new/next file) (mpxplay.c, diskdriv.c, drv_dtv.c, drv_http.c)
-bugfixes/modifications/MMC:
 -rename of current file after initiating seek preview, seek preview init after current file rename (always using full close and reopen, not only low level file) (diskfile.c)
 -crash if stream has not found in the file (DVB scan start from CONTROL directory) (ffmpstrm.c)
 -DVB: durations of programs if database is not up to date (no valid events) (using fix/fake 1 sec) (drv_dtv.c)
 -D3D11: texture error handling (mutex lock), minor optimizations (removed unused separated present) (video_render_evr.cpp)
 -frame presenting (recangles calculation, clear screen at start, clear screen at zoom) (video_widget.cpp, video_worker.cpp, video_render_qwidget.cpp)
 -clear screen (at switching to fullscreen) at skip (video_qt.cpp, video_widget.cpp, video_worker.cpp)
 -freezing of playing at high cpu usage sw decoding (a/v resync problems at playing 4k/60p content on a slow cpu, if skip-frame is disabled) (video_workdec.cpp, ffmpgdec.c)
 -F3 (fileinfo window): missing playlist editor update at moving with up/down arrows (diskfile.c)
 -WinXp: correct time position in DVB/EPG displaying (replacement of mkgmtime) (dll_load.c)
-bugfixes/modifications/general:
 -ftp[es]: improved functionality and stability (drv_ftp.c, tcpcommon.c, dll_load.c)
 -http: trying to play https streams as simple http, if https access fails (eg: no OpenSSL dlls) (drv_http.c)
 -cdw/cda: added 10 sec timeout for read (to not drop read too early at CD spin up), faster directory (CDW filelist) loading at FFmpeg, improved play stability (drv_cd.c)
 -termination (with ESC) of textfile load and (ssl) connection retry (diskdriv.c, tcpcommon.c)
 -FFmpeg: demultiplexing error and event handling (stop, eof, seek-preview) (ffmpdemux.c, in_ffmpg.c)

----------------------------------------------------------------------------------------------
diffs between v3.13 and v3.12 (20210523)
-modifications/new/MMC:
 -updated FFmpeg library to v4.4.0
 -updated libdav1d (AV1 decoder) to v0.9.0
 -added "Enable AV1 HW decoding" option to "Video decoder control" (D3D11 based decoding, GPU and video driver dependant, only 8-bit is supported, disabled by default)
 -removed ShowSpectrum audio visualization effect (couldn't get it work with FFmpeg 4.4.x)
-bugfixes/modifications/MMC:
 -prohibit videowall switch ON at DVB radio (audio only) programs (don't switch to videowall mode, if it's not visible) (video_worker.cpp)
 -dialogs handling (crash at edit items (eg. editing indexes)) (textwin.cpp)
 -Win10: mainwindow rebuild at "Select GUI layout" change to "Transparent Blue" (mainwindow.cpp)
 -WinXP/Win7: empty/wrong video surface/window in stop mode (show a black frame) (video_widget.cpp)
-bugfixes/modifications/general:
 -index editing (F4): additional range check (limit range to start of prev, end of next index entries) (fileinfo.c)

----------------------------------------------------------------------------------------------
diffs between v3.12 and v3.11 (20210315)
-modifications/new/MMC:
 -x86 (32-bit) version has built with Windows XP support (QWidget video output only)
 -updated FFmpeg library to v4.3.2 (final)
 -updated libdav1d (AV1 decoder) to v0.8.2
 -removed static EVR/MediaFoundation dependency (EVR/MF dlls are loaded in QtMedia/DShow decoding mode only) (load_dll.c)
-bugfixes/modifications/MMC:
 -d3d11: subtitle rendering (SSE crash -> replaced with memcpy) (video_render_evr.cpp)
 -d3d11: hw decoding + interlaced video = green line at bottom of frame (video_render_evr.cpp)
 -DVB: A/V sync at program change (audio won't start)(partial fix) (ffmpadec.c)
 -partial support for video frame auto (horizontal/vertical) fliping (video_trans.cpp)
-bugfixes/modifications/general:
 -empty config strings loading (not reloading default values after clearing string-type config fields) (control.c)

----------------------------------------------------------------------------------------------
diffs between v3.11 and v3.10 (20210213)
-modifications/new/MMC:
 -added dual monitor (extended display mode) handling and Screen selection to video context menu (option is hidden at single monitors) (video_contextmenu.cpp, video_widget.cpp, video_events.cpp)
 -added "Texture buf for SW decoding" option to video config: D3D11 texture buffering for sw decoded video frames (disabled by default) (video_render_evr.cpp, video_workdec.cpp, config.cpp, ffmpgdec.c)
 -updated FFmpeg library to v4.3.2 (4.3 head 20210202)
 -updated libdav1d (AV1 decoder) to v0.8.1
 -rebuilt Qt GUI library without OpenGL (removed unnecessary OpenGL dependency)
-bugfixes/modifications/MMC:
 -d3d11: optimized frame scheduling, A/V sync delay, independent rendering (from Qt GUI) (video_worker.cpp, video_widget.cpp)
 -d3d11: better handling of non-native pixel formats (intermediate pixfmt conversion) (video_render_evr.cpp)
 -d3d11: non-standard resolutions with sw decoding (possible crash at image upload) (video_render_evr.cpp)
 -videowall: changing program on videowall with hw decoding enabled: incorrect hw context close (possible crash) (ffmpgdec.c)
 -videowall: deinterlacing at videowall and seek-preview (video_workdec.cpp)
 -videowall: main window and cursor show (mainwin appears rolling mouse wheel, don't hide mouse over mainwin) (video_events.cpp, mainwindow.cpp)
 -videowall: hide EPG tooltips over videwall on zoomed surface (because they are displayed in wrong positions) (video_events.cpp)
 -long lock at stop at MP3 files using the ad_mp380.dll (or at any non-FFmpeg decoding) (x86 version by default) (in_file.c)
 -autocrop out of frame cut (video_trans.cpp)
 -seekbar-seek at maximized windowed mode (seekbar.cpp)
 -mouse cursor hide after fullscreen switch (mainwindow.cpp)
 -File menu -> Exit (mainwindow.cpp)
 -modified VideoPlayCtrl stream/subtitle flags (mpxplay.h, mpxplay.ini)
-bugfixes/modifications/general:
 -OGG: corrected metadata reading at large contents (eg: album art picture), editing of such OGG files is rejected (unsupported yet) (in_ogg.c, tagging.c)
 -FFmpeg/OGG: always uses the old Mpxplay file parser for proper length and metadata loading (checking uses the old parser, playing uses FFmpeg) (in_fmpeg.c, in_file.c)
 -FFmpeg: more stable context close (in_fmpeg.c)
 -more stable commander dialogs (eg: F3 + skip + ESC + playstart) (diskfile.c)
 -removed high priority process wait (waiting for decoder prebuffer) from commander functions at windows versions (can cause more problems than solves) (diskfile.c)

----------------------------------------------------------------------------------------------
diffs between v3.10 and v3.09 (20210103)
-modifications/new/MMC:
 -added DirectX 11 rendering output: all transformation and color mixer functions are implemented into D3D11 (video_render_evr.cpp)
 -added D3D11 based HDR to SDR conversion with dynamic HDR support (realtime luminance and color primaries change)
 -replaced DXVA hw decoding with D3D11 based one (with zero memcopy using the D3D11 render output) (ffmpgdec.c)
 -added basic Vulkan rendering output (only RGB with sw based transformations) (optional interface, not mandatory) (video_render_vulkan.cpp)
 -OpenCL based HDR is removed (with the mandatory OpenCL library dependency)
 -updated FFmpeg library to v4.3.1+ (patches from the head)
 -updated libdav1d (AV1 decoder) to master head 20201216 (v0.8.0 pre)
-bugfixes/modifications/MMC:
 -thread handling (possible crash) at "Add stream" and "Stream recording" functions (ffmpfile.c)
 -don't hide main window over video surface, if minimum opacity is not zero (mainwindow.cpp)
 -EPG time processing: better precision (date to secs calculation) (time.c, dtvdbase.c, ffmpepg.c, dvb_epg.cpp)
 -EPG window: jammed cursor busy status at the close of window (dvb_epg.c)
 -EPG scan function (dtvscan.c)
 -DVB restart (start retry) if crossfade is enabled (mpxplay.c)
 -change of video decoder type runtime (close of main window) (possible crash) (mainwindow.cpp)
 -video frame error handling (clear buffer only at real errors) (video_workdec.cpp)
-bugfixes/modifications/general:
 -network name handling (slow program start at long volume name(s), if network drive became disconnected) (loaddir.c)

----------------------------------------------------------------------------------------------
diffs between v3.09 and v3.08 (20201004)
-modifications/new/MMC:
 -added translucent (glass) GUI for Windows 10 too, most of the GUI elems are colorized (blue), window background color can be modified (Configure->Color)
 -added DVB device handling as a virtual drive in the playlist editor (can be opened in the 'Tools -> FTP connect'), channel and EPG datas are saved and restored (drv_dtv.c, dtvdbase.c)
 -added DVB (MPEG-TS) Videowall function: displays all programs / video streams from a multiplexed MPEG-TS stream in sub-windows, merged into one output video frame (video_worker.cpp)
 -added DVB/EPG schedule list displaying over video surface (single video / videowall) (initiated by mouse pointer, moving it to left side of video frame) (video_events.cpp)
 -added DVB/EPG window to display detailed EPG infos and Scan frequency range for channels (Tools -> DVB/EPG) (dvb_epg.cpp, dvb_scan.cpp)
 -added new seekpreview aspect ratio mode: "None" : in this mode the aspect ratio equals with the fullscreen setting, also added "Pixel" mode (seekbar.cpp, video_workdec.cpp)
 -added "Reset settings" button to "Configure MMC" dialog: this button resets/clears the most of the program control and GUI settings (config.cpp)
 -updated FFmpeg library to v4.3.1
 -updated libdav1d (AV1 decoder) to v0.7.1
-bugfixes/modifications/MMC:
 -default audio output format is Float32 (instead of 24-bit integer) (MMC/GUI versions only) (control.c)
 -added "Hardware mixing" option to "Audio output control" settings (enables DirectSound hardware mixer, can give better sound)(gui switch of -scc option) (config.cpp)
 -default Metadata preload mode is "Load parallel with playing" (aka -ipl option) (control.c)
 -seekpreview: added deinterlace, corrected window refresh and hide (video_ctrlbar.cpp, seekbar.cpp)
 -black-style control bar became transparent (video_ctrlbar.cpp)
 -overall DVB handling rework (like checking and displaying of signal quality at start) (drv_dtv.c, dtv_bda.cpp)
 -several string data (editline) handling in config window after pressing Ok or Apply (possibly overwriting other config values) (config.cpp)
 -key ESC handling in dialog windows (it closed windows incorrectly), now ESC is disabled at stream record (textwin.cpp)
 -close (X) button handling in dialog windows (incorrect close, eg: stream record didn't stop) (textwin.cpp)
 -corrected -ihl mode metadata loading (main.cpp, chkentry.c)
 -locked tab after File->OpenFiles->Cancel (mainwindow.cpp)
 -corrected Configure->Display editor switches, added "Separate Artist/Title" option (config.cpp, editor_table.cpp)
 -corrected crash at metadata editing (F4), if entry has incomplete file infos (fileinfo.c)
 -improved playlist editor stability (crash at 'E' key) (editor.cpp, editor_table.cpp)
 -added reset to video auto crop after stream changes (video_workdec.cpp, video_worker.cpp, video_widget.cpp)
 -better opacity values handling (default "Show on video" in Win10 is 100%; wakeup/hide by editkey if "Show on video" equals with "Base / General"; "Show on video" is less or equal than "Hide on video") (mainwindow.cpp, config_ini.cpp)
 -removed Config/Audio/'Disable decoder tone (MPX)' option from X64 version (has effect at older decoder/version only) (config.cpp)
 -removed Config/Program/'TSR-mode' option (belong to console versions only) (config.cpp)
 -updated XZ library to 5.2.5, corrected build script (enable decoders) -> enables some additional features in FFmpeg
-bugfixes/modifications/general:
 -ICEcast data download (data without eol), better eof detection, better progress indicator (drv_ice.c)
 -window close of commander (copy/move/fileinfo) dialogs (possible crash) (diskfile.c)
 -MP4 metadata tag editing (crash after saving tags) (in_mp4.c)
 -possible buffer overflow (crash) at directory/filename reading (diskdriv.c, playlist.c)
 -extM3U load/save without artist&title (loadlist.c, savelist.c)
 -workaround at saving and restoring huge playlist at fast program restart (to not open the new instance with empty lists, using the previous status instead) (startup.c)
 -http stream record (alt-F5) with CUE listfile creation: more precise index positions at VBR streams (diskfile.c)
 -http: chunked data handling (false eof) (drv_http.c)
 -http: updated mime types (detection of more a/v formats) (drv_http.c)
 -ffmpeg: updated/corrected file extension list (in_fmpeg.c)
 -ffmpeg: auto DVB program change (ffmpdmux.c)
 -extended character conversion functions (textconv.c)

----------------------------------------------------------------------------------------------
diffs between v3.08 and v3.07 (20191223)
-modifications/new/MMC:
 -added seek preview window to bottom control bar (can be configured in "Configure -> Video -> Video control") (seekbar.cpp, video_trans.cpp, ffmpdmux.c, video_workdec.cpp, video_worker.cpp)
 -added bottom control bar size, layout and fade-out config to "Video -> Video control" (video_ctrlbar.cpp, config.cpp)
 -added "Record current streams to file" function to Video context menu (currently played streams can be recorded to MKV, MP4 or TS) (ffmpfile.c, ffmpdmux.c, playlist.c, video_contextmenu.cpp)
 -added retry count (status) to DVB open (on status line), faster DVB termination with ESC (drv_dtv.c, dtv_bda.cpp)
 -updated libdav1d (AV1 decoder) to v0.5.2 (20191202)
-bugfixes/modifications/MMC:
 -subtitle timing after seeking (lost subtitle displaying after seeking backward), faster subtitle stream change (video_worksubt.cpp, video_worker.cpp)
 -crash at pressing stop button on GUI (mpxplay.c)
 -crash at video context menu, if no video is open (video_contextmenu.cpp)
 -crash at exit (incorrect GUI close, play position was not saved) (mainwindow.cpp)

----------------------------------------------------------------------------------------------
diffs between v3.07 and v3.06 (20191013)
-modifications/new/MMC:
 -updated FFmpeg library to 4.2.1
 -updated libdav1d (AV1 decoder) to v0.5.0 (20191011)
 -added external stream handling (subtitles, audio files) (ffmpfile.c, video_contextmenu.cpp)
  - automatic load can be configured in the Tools->Configure->Audio/Subtitle/Video
  - manual load is available in the Video-context-menu -> File
 -separated Aero-surface and Taskbar-button handling (tasbar buttons are visible in non-aero mode too) (mainwindow.cpp)
 -DVB update: (drv_dtv.c, drv_bda.cpp)
  -added dvb-c2, dvb-t2 and dvb-s2 protocol names (but the drivers are the same as at v1)
  -added "dvb-fec", "dvb-code-rate-h", "dvb-code-rate-lp" and "dvb-guard" options
  -small corrections in the DVB-T tuning
-bugfixes/modifications/MMC:
 -optimzied frame scheduling (removed most run-time mutexes, separated video mixer routines) (video_worker.cpp, video_widget.cpp, video_trans.cpp)
 -better subtitle char encoding handling (UTF vs. ANSI) (video_worksubt.cpp)
-bugfixes/modifications/general:
 -AUmixer: runtime audio stream frequency change handling (with software freq conversion) (au_mixer.c)
 -http: convert %HH (%hexa) strings to single chars in URL addresses (drv_http.c, string.c)
 -ftp: better handling of directory entry names in MLSD mode (drv_ftp.c)

----------------------------------------------------------------------------------------------
diffs between v3.06 and v3.05 (20190602)
-modifications/new/MMC:
 -updated FFmpeg library 3.3.9 to 4.2.x (master head 20190610)
 -added AV1 support by libdav1d 0.3.x (master head 20190604)
 -added HDR to SDR conversion (disabled by default in video config options) (OpenCL, not so fast, will be replaced later) (video_filter.cpp, video_filters_cfg.cpp)
 -disabled translucent GUI in non Win7 systems at initial start (config_ini.cpp, mixed.c)
 -updated compiler to MinGW-w64 8.1
-bugfixes/modifications/MMC:
 -corrected HW video decoding (it's disabled by default, because sometimes it can be slower) (ffmpgdec.c)
 -fixed several stability issues and mutex locks (drv_dtv.c, video_qt.cpp, video_widget.cpp, mainwindow.cpp)

----------------------------------------------------------------------------------------------
diffs between v3.05 and v3.04 (20190203)
-modifications/new/MMC:
 -added video rotation function: auto by JPEG/EFIX info, manual in video context menu (video_contextmenu.cpp, video_filters_cfg.cpp, video_widget.cpp)
 -after opening (playing) a picture (jpg), major exif infos appear in the F3 window comment line (unfinished function) (video_worker.cpp, ffmpegdec.c)
 -created x64 version (makeqtsf64)
-modifications/new/general:
 -added minimalist XSPF playlist file loading (filenames only) (loadlist.c)
 -increased max number of audio channels to 11 (in_file.h)
 -auto video FPS reduction at large video delay (at too slow video decoding) (added "Disable auto skip frame" option to video config) (video_worker.cpp, config.cpp)
-bugfixes/modifications/MMC:
 -corrected handling of RGB input files (crash at gif files) (went wrong in v3.04) (video_filter.cpp)
 -better high (>30) FPS playing (video_worker.cpp)
 -better audio/video sync (less pops) (ffmpegdec.c)
 -more correct colorspace (YUV to RPG) conversion (video_widget.cpp)
 -corrected focus/select main window (at toggle fullscreen) (mainwindow.cpp)
 -removed "Always on top" and "Show main window on video" dependency (mainwindow.cpp, config.cpp)
 -removed unused asm code and jwasm dependency (analiser.c, makeqtsf)
 -corrected several stability issues (mainwindow.cpp, video_widget.cpp, video_worker.cpp)
-bugfixes/modifications/ffmpeg:
 -handling of in-play audio info (freq, channel, bits) manual or stream changes (caused incorrect audio output or crash) (ffmpgdec.c, in_fmpeg.c, ad_pcm.c, au_mixer.c)
 -corrected multichannel audio channel layout (in_ffmpeg.c)
-bugfixes/modifications/general:
 -corrected ASX playlist file loading (loadlist.c)
 -corrected editor update at file copy from playlist "with Subdirs" (went wrong in Mpxplay v1.62) (diskfile.c)
 -possible crash at exit (timer functions deallocation) (timer.c)

----------------------------------------------------------------------------------------------
diffs between v3.04 and v3.03 (20181119)
-modifications/new/MMC:
 -added video deinterlace function with video context menu settings (video_filter.cpp, video_contextmenu.cpp, video_worker.cpp)
 -added sw based video mixer functions (brightness/contrast/saturation/hue) to FFmpeg video playing mode (video_filter.cpp, video_contextmenu.cpp, video_widget.cpp)
 -added config save in mpxp_gui.ini for above functions (config_ini.cpp)
 -added audio visualization (by FFmpeg filters) to non-video files (video surface context menu -> Audio -> Audio Visualization) (video_filter.cpp, video_filters_cfg.cpp, video_worker.cpp, in_file.c, au_mixer.c)
 -added Stream entry to MP3 files in video context menu (in_file.c)
 -updated FFmpeg library v3.3.7 to v3.3.9
-bugfixes/modifications/MMC:
 -video context menu Exit crash (video_contextmenu.cpp)
 -auto video crop crash at switching to non-audio (DVB) program (video_widget.cpp)
 -choppy video playing at large audio frames (reworked ffmpeg audio decoding, using small output audio frames) (ffmpegdec.c)
-bugfixes/modifications/general:
 -http: reduced/removed unneccessary delay at redirected urls (faster connection) (drv_http.c)

----------------------------------------------------------------------------------------------
diffs between v3.03 and v3.02 (20180602)
-modifications/new/MMC:
 -added DTV/DVB tuner (BDA filter graph) handling (see moreinfo.txt) (drv_dtv.c, dtv_bda.cpp)
 -added "Disable auto program skip" to "Config->Play", related to MPEG/TS program streams (config.cpp, ffmpgdec.c)
 -added "Audio stream priority" to "Config->Audio->Audio input", related to video files (config.cpp, ffmpgdec.c)
 -added "Preferred languages selection" to "Config->Video", related to video files (config.cpp, ffmpgdec.c)
 -added Qt About to Help menu (mainwindow.cpp)
 -updated Qt GUI library v5.6.2 to v5.6.3
 -updated FFmpeg library v3.3.0 to v3.3.7
 -stop button can terminate file open (background file process) (mpxplay.c, diskdriv.c, drv_http.c, drv_dtv.c)
-modifications/new/general:
 -added "Open new output file", "Add timestamp" and "Save into a CUE" switches to stream copy start window (diskfile.c)
 -indexed headerless streams (MP3,AAC,AC3,DTS,TS) can be byte-split (not frame!) by ALT-F5 (copy the index into new file) (diskfile.c)
 -added Elapsed time to Stream copy window (diskfile.c)
 -added Pause and Cancel buttons to file copy/move window (diskfile.c)
 -modified seek on seek-bars: drag and move with left button press: instant seek while move (seekbar.cpp)
 -reduced default LoudnessBass from 140 to 130 (fx_tone.c, mpxplay.ini)
-bugfixes/modifications/MMC:
 -FFmpeg demultiplexing and seeking runs on a separated thread (playing doesn't stop at long playlist editor processes, like subdir scan) (in_fmpeg.c, ffmpgdec.c, timer.c, mpxinbuf.c)
 -picture (video only) displaying: replaced the dummy/noisy audio wave with silent audio (ad_pcm.c, au_mixer.c)
 -FileTypesExt moved from mpxplay.ini to mpxp_gui.ini (control.c, config_ini.cpp)
 -disabled right mouse button action in video surface context menu to avoid unwanted play-pause (video_contextmenu.cpp)
 -incorrect fullscreen video & mainwindow layout and program exit at audio-only files (video_qt.cpp)
 -adding file to a sublist (without clearing it) with "Add file" editor tab context menu (mainwindow.cpp)
 -editorhighline was not hidden at scrolling out of its entry (editor_table.cpp, main.cpp)
 -incorrect playlist editor update at metadata update (ogg stream) and changing directory (playlist.c, in_file.c) (this has effect in MMC only)
 -various fixes for better program stability (ffmpgdec.c, video_worker.cpp, mpxplay.c/frp-flipflop)
-bugfixes/modifications/general:
 -http redirection (ERR303) handling (content filesize clear) (drv_http.c)
 -http to https redirection caused program crash (now the open simply fails) (drv_http.c)
 -http reconnect handling (once it's connected, reconnect retry is longer) (drv_http.c)
 -missing [LIST] and <DIR> descriptor at file-copying playlist/dir (diskfile.c, loadlist.c)
 -file info window (F3) didn't follow properly manual playlist skips (+/-) (auto-skip/eof is not followed) (diskfile.c)
 -file copy/move/del: "Waiting for the higher priority processes" could crash the program (diskfile.c)
 -file copy/move: wrong number of total files calculation (diskfile.c)
 -ICE list download, if filesize is missing (drv_ice.c, drv_http.c, tcpcommon.c, diskdriv.c)

----------------------------------------------------------------------------------------------
diffs between v3.02 and v3.01 (20170507)
-modifications/new:
 -added HW (DXVA) video decoding functionality (and settings to Video config)(disabled by default)(ffmpgdec.c, video_worker.cpp, config.cpp)
 -added "VideoPlayCtrl" elem to mpxplay.ini (to save HW decoding settings) (control.c)
 -added TIFF picture support (by FFmpeg v3.3 and xz/lzma lib) (in_fmpeg.c, video_worker.cpp)
 -updated Qt GUI library to v5.6.2 (for better stability, but with +15% size)
 -updated FFmpeg library to v3.3 (major changes can be found here: https://ffmpeg.org/index.html#news)
-bugfixes/modifications:
 -corrected progressive still (JPG) pictures, displaying the largest video frame (skip the others) (ffmpgdec.c, video_worker.cpp, video_widget.cpp)
 -corrected still (PNG) picture aspect ratio, always using pixel aspect ratio (video_worker.cpp)
 -increased the limit of stored video packets for better A/V sync (from 384 to 1024) (ffmpgdec.h)
 -better stream detection and initialization (ffmpgdec.c)

----------------------------------------------------------------------------------------------
diffs between v3.01 and v3.00 (20170122)
-modifications/new:
 -added ad_mp380.dll to the installer version again (released a new ad_mp380 dll)
 -append new [global] mpxplay.ini elements to older ini file (installing v3.xx over 2.00) (control.c)
-bugfixes/modifications:
 -OGG file length calculation (in_ffmpg.c, ffmpegdec.c)
 -parsing of video-only streams (the length of media was loaded/displayed at playing only) (in_ffmpg.c)
 -bitrate calculation for some VBR audio streams (in_ffmpg.c)
 -crash of playlist (M3U,PLS,CUE) loading if it contains too long line(s) (loadlist.c, editlist.c)
 -DLL file handling (initial variables clean to avoid incorrect/failed loading) (GCC problem only) (dll_load.c)
 -video decoder thread close at display close (mainwindow.cpp, video_qt.cpp)
 -removed unneccessary widget close event handling (video_qt.cpp, video_widget.cpp)

----------------------------------------------------------------------------------------------
diffs between v3.00 final and v2.00 final (20161223)
-modifications/new:
 -added FFMpeg library to handle audio and video files internally (in_ffmpg.c, ffmpgdec.c, ffmpgdec.h, video_worker.cpp)
 -added still picture handling too (by FFMpeg), but only simple Jpeg and BMP files work
 -removed (disabled) old file parsers and decoders (all file formats are handled by FFMpeg) (in_file.h)
 -added to video context menu: Programs, Streams, Video -> Aspect ratio, Crop, Zoom) (video_contextmenu.cpp)
 -modified initial GUI layout (moc_config.h, mainwindow.cpp)
 -added "Video subtitle font" to Configure->Font page (config.cpp)
 -added "Video config" tab to Configure->Video page (config.cpp)
 -added VideoPlayType to mpxplay.ini to select (video)player modes (control.c)
 -added OldProgramIdNum to mpxtabs.ini to restore program stream (startup.c)
 -removed "Enable video playing (QT/DShow)" and "Reset video widget after fullscreen" options (config.cpp)
-bugfixes/modifications:
 -modified SpeedSeek control to match better with video playing (cv_freq.c)
 -corrected startup if playlist editor is disabled (main.cpp, mainwindow.cpp)
 -main window height limit to screen at avmixer/playlist enable/disable (mainwindow.cpp)
 -high-light scan start in video mode (keyctrl.c)
 -removed TAK decoder from the old FFMPEGAC (it didn't work at all) (ad_ffmpg.c, in_file.c)
