ffe 2.5.4 ('Eejit Soup')


~    ffe will now remember your audio and video codec selection when you
    toggle between auto- and custom codecs.


*    Fixed extra parameters input adding instead of replacing parameters in
    certain circumstances.


~+    Improved help texts.


~    Minor dialog fixes, button placements, etc..


~    There is now console feedback when you right-click the output label (to
    delete the output file) and it doesn't exist.

*    I think I had avoided this before because there was a minor issue with
    Right-Now-Click actions being sent twice, which would have created
    double entries in the console. This has now been fixed.


*    Fixed a bug where old output paths would return when enabling MATOF in
    the GUI. It was easily sorted (dragging in folders is always best!) but
    annoying.


*    For a while there, when launching with presets, you needed to ensure
    that store_filepaths was enabled in your main prefs or inside the preset
    itself. Sorry. Anyway, that is no longer the case.

    If you have specified a inputfile(s) in your preset, ffe will use it,
    regardless of your current store_filepaths setting. Consequently, you
    can no longer set store_filepaths inside ffe.ini presets as that is
    confusing. If file path exists, it will be used.

    This doesn't affect GUI operation. Preset loading will respect your
    current file paths setting.


*~    MATOF status is now saved to ffe.ini when you toggle the setting from
    the main GUI**. As well as being the more expected behaviour, this also
    prevents it leaping into action in presets where it is enabled in the
    main prefs but unwanted in a preset fired at launch (go(), run(), etc.)
    but hasn't been specifically disabled for that preset. In other words, 
    unless specifically set, MATOF will respect your main settings when 
    loading presets.

    ** Also goes for clicking in the output file input - MATOF is disabled
    and this setting is saved immediately to ffe.ini.

~    Brought back the full version number for the about box.


ffe 2.5.3 ('Sleeps with the Wishes')


+    At last, the codec -> extension mappings are inside ffe.ini.
    No more magic transformations; you now have control.

    They look something like this..

        [mappings-video]
        xvid=avi
        mjpeg=avi
        mpeg4=mp4
        mpeg2=mpg
        flash=flv
        msvideo=wmv
        vp=webm
        av1=ivf

    Codec search string on the left, extension to use on the right. Same
    story for the audio mappings (for when you are outputting audio).

    Anything not covered by a mapping in your preferences will use the
    default extension. Add whatever you need. Sample sets will be copied
    over to your ini when you upgrade to the this version of ffe.

    This change also cleaned up some code, too.


+    Added the new mappings to the import/export facility. Curently they are
    exported/imported with the "main settings".


~    The codec drop-down context menus will now be greyed out when auto-
    codecs is enabled, to prevent you overwriting your carefully pruned
    custom list with the BIG list from inside FFmpeg.


*    Fixed the renaming of presets (which I recently broke).

ffe 2.5.2.2 ('Dark Spinach')


+    If you switch from recycle bin to permanent deletion, the one-time
    delete warning is re-enabled.


+    If you hold down the <shift> key while you click the cropping label
    (title), you can set the value for the number of frames to interrogate
    for *this* cropping test.

    If you right-click the label you can set a new value to use as the
    default number of frames to test.

+    ffe will now report all the settings it is using when running an auto-
    crop operation.

~    The default frames value (for auto-crop testing) has been increased to
    100 but this might still not be enough to catch some content's borders.
    A quick visual inspection will tell you roughly where the action starts.

    FFmpeg interrogates the file fairly quickly so it's no problem testing
    hundreds of frames or more.


~    When opening a report (rather than viewing in the console) with report
    saving is disabled in your prefs, ffe will still fallback to using the
    console, but it will now tell you why it did that, in case you didn't
    realise you could change it.


+*    The "copy" option will now be automatically added to the Auto-Codec
    lists. I forgot about this when I created the auto-codecs facility and
    found myself having to type it. Sod that.


+    You can now set the color used for warnings. This isn't used a lot at
    the moment (the file input will flash this colour if you click the label
    to open the file's location and it doesn't exist) but may be used more
    in the future.

    This is normally red (ff0000), but you may have issues with red, so you
    can now enter a standard RGB hex value, e.g..

        warn_colour=C0DCC0

    Which would give you "money green" warnings.


+    Added the "@params" @token, which is the value of your current extra
    parameters input. This should make it easy for you to turn your ffplay
    button into a preview button (which could show your video with your
    current ffmpeg settings**), if you so desire; amongst possibly other
    things.

    ** note, ffplay won't understand all your ffmpeg parameters in preview
      mode, but many it will, making for a useful facility.


*    Fixed the ffplay routine adding errant quotes around your arguments. It
    made no difference until you added quotes of your own and things got a
    little.. uncertain.


+~    Other improvements and additions to notes, documentation and reporting.


ffe 2.5.2.1 ('Song of Tar')

*    Fixed a bug where MATOF was being incorrectly enabled for single files
    when the user had disabled MATOF (who does that!? Okay it turns out, a
    few people..)

*    Fixed directory loading in presets and command-line. The following..

        ffe.exe go(preset)  B:\Test\ffe\IN\*
        ffe.exe go(preset)  B:\Test\ffe\IN\
        ffe.exe go(preset)  B:\Test\ffe\IN

    Will now all produce the same result, especially when using @tokens in
    the outputfile setting.

    See also: "Quirks & Caveats" section at the foot.

*    You can now override store_filepaths inside presets. I added this as a
    workaround which I'm pretty sure is no longer required but I'll leave
    in for now.

*    Fixed errant file loading into inputs when store_filepaths is disabled.

+    Added AV1 to the list of types that ffe will automatically switch the
    extension of output files. In this case, "ivf".


ffe 2.5.1.4 ('Froggy Bacon')

+    Custom Button notes, if any, can now be piped to the console when you
    click on a custom button.


+   You can put newlines in your preset notes. There is a new multi-line
    notes editing dialog to facilitate this feature.

    Although it should be transparent to you, if you want to roll your own,
    ffe stores newlines as "\n" character sequences in its ini, like so..

        notes=Disable the output!!!\n   And create the "OUT" directory!

    Any spaces and tabs (yes, you can use tabs) you insert will be respected
    as the console uses a monospaced font for output. I'm not expecting
    anyone to put ASCII art in their ffe presets, but still, formatting can
    be useful. Especially for warnings, caveats and gotchas.

    Yes, if you put notes=<something> inside your main preset, it will act
    as a welcome message, which you would see on Every Single Launch. This
    is sooo tempting! Well, I should really, erm, "demonstrate" the feature!

    Also, it would encourage folk to dive into their ffe.ini, always good.


+   You can set the prefix used when spewing out notes, or delete that
    entirely.

        notes_prefix="\nnotes:\n"

    Again, \n = newline/linebreak. But this time it's manual-editing-only.

    Note: the prefix is not used if the notes derive from the main [ffe]
    preset; i.e. a welcome message.


+   When outputting files, ffe will now create the parent directory if it
    doesn't exist. This is a user error!


+   Added a quick fade-out at exit. I would ideally like a TV power-off,
    like the Hudl 2 does. Och well.


~   Updated a few presets to include notes and improved parameters, e.g. the
    FLAC preset now sets compression level to maximum and channels to
    independent encoding. The notes tell you about this.


*   Fixed a bug with the main window not re-activating properly after
    cancelling the FFmpeg Quick task edit dialog.

*   Fixed the Ampersand (&) translation on the custom buttons. They now
    correctly show their keyboard accelerators underlined.

*   Fixed a bug where @tokens in the outputfile setting were being
    translated too early and creating potentially invalid paths.

*   Fixed the errors in the "simple" presets. Ironic, eh.

*    Fixed a bug with the custom buttons grid not re-creating properly if you
    disabled then immediately re-enabled custom buttons. Now the buttons
    will continue to work as before.

*    Fixed a bug where ffe would ask you for an output file name if the
    output directory could not be found during non-output operations, like
    creating image sequences. Now ffe will simply allow FFmpeg to fail to
    the console.

ffe 2.5.1.3 ('Diced Hedgehog')

+   Added "Auto-Crop", which basically uses FFmpeg's "cropdetect"
    functionality to get the likely cropping values for the video and
    inserts them, as if by magic, into the cropping inputs, ready for you to
    encode the video.

    You can get ffe to perform auto-crop by clicking either of the cropping
    labels ("crop w / h" and "crop x / y"). Their ToolTip also lets you know
    this.

    In addition, the labels' text changes to a sky blue on mouse-over, a bit
    like a URL does. I like this a lot and might get other controls to do
    it. Right-Now-Click-enabled button labels could turn green on mouse-
    over, perhaps ...

    At any rate, once the crop values have been calculated successfully, ffe
    reports the result to the console, to show you how clever it's been.


+   Added the sky blue mouse-over styles to the input and output labels.


~   Improved the logic and formatting of the Custom and Short Test buttons,
    which will now work exactly as expected under all conditions, adding
    and removing parameters willy-nilly, even fixing up some user errors as
    it goes (spaces missing between commands, if the user deleted them).


*   Fixed a bug where the HotKeys for the FFmpeg responses (y/n) weren't
    being unset after use, so if you tried to use "y" or "n" in your
    settings, perhaps whilst getting the next encode ready, nothing would
    happen, as ffe was still sending these keys to FFmpeg (which were being
    safely ignored). ffe will now release the HotKeys as soon as they are
    used.

*   Fixed the docking for the copy output and clear output buttons, so if
    you launched ffe with a wide window and resized it to a small window,
    the buttons would slide right over the top of the search button. Now the
    buttons will stay put.



D   cel.au3
    I've improved CLT() and CRT() (and the wrapper, CBT()). They now return
    the number of replacements made. You can also specify separate
    characters for left and right when using CBT().

ffe 2.5.1.2 ('Static Orange Pips')

+   You can now keep notes inside a preset. Add

    notes=<Your Text Here>

    to any preset and on loading that preset, these notes will be spat out
    into the console, and are a good place to put any information you might
    need when working with the preset.

    An example preset is included in the default ffe.ini.

    There is also a new presets context menu item where you can set this for
    the currently selected preset (select one first!)


*   Fixed the short test button not removing its command if you launched ffe
    with a short test command at the start of the parameters input and
    clicked the short text button. Clicking the button with a short test
    command already in the extra arguments will now remove the command, as
    expected.

*   Fixed a bug where if you had @tokens in your extra parameters, the would
    be added to the MATOF string repeatedly.

    There is still too much complexity in that old code. I'll need to get
    the coding spanner out at some point and rewrite it.


ffe 2.5.1.1 ('Soft Landings On Sausages')

+   You can now Ctrl+Click the reset button to also clear the input+output
    file paths. Shift+Click will clear ONLY the input+output file paths.


~   Updated the automatic wildcard you get when dropping a folder from the
    old-school "*.*", to the ultra-modern, sleek and so-cool, "*". Obviously
    this was a massive amount of work and when you first try it you will
    see why; it's like you've jumped straight into a science fiction movie.
    All donations welcome.


+   You can now display a timer in the title bar when FFmpeg is running for
    at-a-glance job time.

    The toggle is in the app menu > visual prefs. You can switch this on and
    off whilst FFmpeg is running. There is also a HotKey: Ctrl+R.

    Think "Running Time"; it also uses "R" as the app menu accelerator.


~   Improved the FFplay Quick Task button command handling so you can do
    slightly more complex tasks. Remember to enclose all paths, including
    @tokens, in "quotes".


+   Added a new macro, which is @arguments. This translates into the
    arguments that will be fed to FFmpeg, as can be seen in your "Command-
    line" display.

    This is useful in the above new more complex FFplay tasks, e.g..

        @arguments "@inputfile"

    .. which will give you an instant preview of how your output file will
    look, potentially saving you having to make short test clips.

    All your cropping and such can be viewed instantly. BUT BEWARE.. This
    won't work if you have parameters in your extra parameters input that
    FFplay doesn't understand. Click the FFplay help button for more details.

    If you are messing around, trying to get a working FFplay command, you
    will probably want to display the output in the ffe console (F6).


*   Fixed saving the old output file to the exit settings when the user had
    deleted the contents of the input (it was being read afresh).

    Also the spurious saving of the inputfile when it was empty. Now, if you
    reset everything and exit, your exit-settings is an empty preset, as
    expected.

*   Fixed a glitch on reading the fall-back directory, which was being lost
    somewhere in the matrix.


~   Changed the cropping controls to use the new cropping format. I don't
    know how I managed to miss skip this! Thanks for the heads-up, again..


D   ffe has been stripped of all "common" functions, that is, function which
    also exist inside "Corz Essentials (Lite version)", aka. "cel.au3",
    which is now included (in Resources/). Yes, I know! It's back!

ffe 2.5 ('I do requests, Bob')

    It's here!

+   If you right-click the output file label, it deletes the output file.
    You get a warning the first time you attempt this.

+   Added a couple of delete options for this (get to them @ app menu > ffe),
    namely, always delete to recycle bin and always warn on delete.

    NOTE: If you have wildcards in your file output, i.e. for a batch, e.g..

        B:\AVIs\* [libx265][aac].mkv

    .. and you had just created 10 video files, right-clicking the output
    file label will DELETE ALL TEN FILES. In other words, the delete command
    respects the wildcards.


+   Ctrl+click the the input file and output file selector buttons and you
    instead open the directories with; if they (yet) exist; the files
    selected. Otherwise just the folder. If the folder does not exist, the
    corresponding input momentarily flashes red.

    Ctrl+clicking the input file selector button performs precisely the same
    action as clicking the label to the left of the input file.


*   Fixed a bug where if you had parameters in your extra parameter input at
    startup (retained settings) and you clicked a custom button to *remove*
    parameters, you would instead get a second set of the same parameters.

    ffe will now correctly remove the existing parameters, as expected.

~   Cleaned up the console output when editing buttons (shift-click the
    button). It was just one long line of often confusing text. Now you can
    see what's what.

*   Fixed the search box opening top-left when first opened.


~   Moved the copy and clear button over next to the search button, which I
    think makes more sense, and keeps it away from the "do it" button. Looks
    neater, too. And some other minor GUI tweaks.


D   I notice my web host is deleting my new betas, since I switched over to
    compiling with AutoIt beta, in fact. I'll go back to making binaries
    with the release version, for now.

ffe v2.4.9.5 (V2.5rc5)

+   Added a HotKey to suspend console output whilst FFmpeg is running. This
    can be useful when running certain plugins that output a *lot* of data.

    The HotKey is Alt+C. You can toggle back and forth, though note, if you
    do *only* that, there's a high chance the output won't begin updating
    again immediately on enabling. Just click anywhere, or stop switching it
    on and off and go do something more constructive!

    At the end of the job, the full log will be shown in the console, as
    usual.


+   Added the ability to load multiple presets on the command-line. Simply
    separate preset names with a pipe ("|") character..

        run(Load Test Commands|Reverse Video+Audio) "B:\Test\ffe\*.mp4"

    This example demonstrates the intended usage; to load "layers" of
    commands. In this instance, the first preset loads pre-job commands to
    empty my test folder and post-file commands to create media report on
    all output files. It also sets the output folder for the following task
    (which does not have this set). This base preset could be pre-loaded for
    many different jobs.

    Here is what the first preset might look like in your ini..

        [Load Test Commands]
        pre_job_commands_file=@datadir\pre-job-commands.bat
        post_file_command=ffprobe.exe "@outputfile" > "@ofilename_report.txt"
        run_pre_job_commands=true
        run_post_file_command=true
        outputfile=B:\Test\ffe\OUT


    NOTE: If you attempt to use the pipe character in the name of your
    presets, it will be replaced by an exclamation mark/point.

    If you *already* have presets with pipe characters in their name, you
    will need to change them to something else, like, "!". Also, seriously,
    what were you thinking!? lol


+   Added transparency menu to the drop window context menu. There are 5%
    graduations, from 0 to 100.

    A note about drop window transparency and mouse hover:

    When you hover you mouse over the drop window, the transparency will
    switch to 50%. Unless your transparency is already between 45% and 65%,
    in which case it will switch to 0% transparency (completely opaque), as
    these  values are too close to 50% to see an obvious change on mouse-
    over.

    If this behaviour bugs you, you can set the mouse-over transparency
    explicitly, using the following preference in your main settings..

        drop_win_hover_transparency=<value>

            <value> being from 0-100

    The default is -1, which lets ffe work it out.


+   Added menu item for "Sort Presets" on the presets list itself, which
    seems sensible. If you alter the setting, the menu item will change to
    let you know that a restart is pending. Along with the corresponding app
    menu item.

    This facility has also been extended to all other app menus for settings
    that require a restart..

        Images on (some) Buttons
        Show MouseOver ToolTip Help
        Wrap Console Output
        ToolTips over Console Output


~   You no longer need to restart ffe (Alt+F5) to toggle the "log each job"
    switch. I just noticed that this was required when coding the above. Now
    ffe will grab the preference afresh before running jobs.


~   I've updated ffe.ini to use UTF-8 WITH BOM, to prevent it being 
    transformed to ANSI during built-in InIWrite() functions. I *really* 
    need to look into writing all my own ini routines!


+   Add further error-checking and cleaned up some extraneous code.


~   Removed the Proper Casing of the help label. It will now respect
    whatever case you use in your title.


*   Fixed the custom selections on the input dialogs not being set (since
    the beta this now needs to be done after the GUI_SHOW. Fair enough.).

ffe v2.4.9.4 (V2.5rc4)

+   You can now enter full commands, with paths, in the help buttons, so
    you can use them for help files from other programs, like ffprobe, or
    FFplay. Or any program.

    You can also use @tokens in the command for the help files, e.g..

        @appdir\ffprobe.exe -h

    I've set two of the demo help buttons to ffprobe and FFplay to
    demonstrate this capability.


*   Fixed media reporting from URLs, which I carelessly broke recently.

*   Fixed the edit/add help buttons, which again I recently broke. Too many
    late night sessions, clearly.

*   Fixed a bug where if you cancelled out of the Post-File command dialog
    your post-file command would be set to "". You can still set the command
    to empty if required, but cancelling the dialog won't do it for you.

*   ffe will now correctly set the "seen" flag for help texts if you edit a
    help text button command. Now, if you command has changed, you get the
    changes immediately.

*   Fixed a bug in one of the default custom buttons (it was using the old
    format!!!)

ffe v2.5 RC3

v2.4.9.3   (V2.5rc3)

+ Added the facility to have automatically-populated codec drop-downs. ffe
will grab the latest encoders list from FFmpeg and parse it to produce a
list of audio and video codes for your codec drop-downs. Fairly groovy.

If you like to have *all* the available codecs in your drop-down, this
is for you.

If you like to switch binaries, this is for you, too. This automatic
list will reflect the codecs available in your current binary, as soon
as you switch binaries.

You can toggle Automatic Codec DropDowns from the app menu. When enabled
you lose the ability to add/remove items; indeed there is no context
menu for the codec drop-downs at all in this mode. There is no need to
add; you have ALL the available codecs in your drop-down!

You can switch between your own list and the full (auto) list without
destroying either. There is a HotKey (F7). You can keep your own list as
a set of "favourites", and toggle back-and-forth as required.

By the way, if you want a FULL list that you /can/ edit, here's a trick:

Enable Automatic Codec DropDowns (F7).

In your ffe.ini, set either/both codec lists to empty (and save it):

video_codecs=
audio_codecs=

Disable Automatic Codec DropDowns (F7).

On discovering the list(s) empty, ffe will populate the drop-down with a
set loaded from the current FFmpeg binary. Now you have the full list
AND it is editable.

|Note: If only one of your lists is empty, ffe will only populate that
one, leaving the other as-is.

NOTE: If you do not make an actual edit (right click the combo/drop-down
and add something, anything), even a quick fictional one, ffe will NOT
save the generated list to your ini file.


+ Added an App Menu (submenu) for the Post-File controls. Things you
previously had to hack into your presets manually. Namely..

post_file_run_style=direct/dos/shellexecute

..How to run the command.

post_file_capture=true/false

.. Whether or not to capture output to the console.

post_file_show=true/false

.. Whether or not to hide the invoked program.

See "Post-File run options", further down this document, for more
details about what these settings do.



v2.4.9.2 (V2.5rc2)

Reorganised the source package and now using AutoIt Beta (3.3.15.3) to
build the binary.


Enjoy!

;o) Cor

ffe v2.5 RC1

After much sweat and, well, just sweat, ffe 2.5 is here. The details..


2.5   ("I do requests, Bob")

    Current release: v2.4.9.RC1


+   You can now set the pause hotkey to global, so you can pause/suspend
    operation even whilst ffe is not at the front. This function is usually
    set to the ScrlLock key which as you know, IS USED FOR NOTHING ELSE!

    This can be toggled from the app menu.


~+  Improved Find dialog (for searching in output).

    The window will also now remain on top during searching. Window
    position is now also saved and restored between Finds.

    By the way, if you hold down the SHIFT key when you open the Find
    dialog (with button/F3), you get Replace options. Quite why *you* would
    want this, I have no idea. But there you have it.


+~  Your recent files list now works globally, which makes more sense
    and less confusion. It will also automatically remove missing files
    from the recent files list (in the tray menu). These operations,
    like so much, are reported to the user in the console.


+   The recent files menu now shows only the base name of the files, as
    opposed to the full path. Clearly this makes for much neater menus.
    Way too much work went into this.


~   The Custom Buttons are now even more configurable. Well, the
    position, anyway. They have always been *completely* configurable!

    I fixed some positional issues, too, so everything should line up
    much better with the other buttons now, using the default settings.


~   There is no longer any theoretical limit to the number of rows of
    buttons you can create. You can fit six rows of buttons at 16px high
    (with a slightly smaller font), if you want *lots* of buttons.


+   Added new @tokens:

        @inputfile       =     Full path of input file.
        @appdir          =     ffe program directory


+   By popular request, I added two new buttons to launch quick tasks for
    ffmpeg and ffplay. These are of course configurable and to make them
    truly useful they accept @tokens.

    There are HotKeys for both buttons; F11 and F12, respectively.

        I like the logic: F1 (create) ==> F12 (play)

    Right-click the quick task button to edit the command. There is no
    context menu, the right-click takes you directly to the input. I like
    this system so much I've used it for the short test button, too. Enter..

        Right-Now-Click!

    Command output is piped to the console for ffmpeg commands and also
    optionally** for ffplay commands (for simply watching a video, ffplay's
    output is superior. For troubleshooting, choose ffe console)

    ** You can toggle this setting from the app menu, and more quickly with
    the HotKey: F6.

    Like other controls, the ToolTip for these buttons updates to show you
    the current setting. Another good reason to keep the ToolTips enabled.

    There are *loads* of uses for these two wee buttons. Setting the FFplay
    Quick Task to "@outputfile" seems like a no-brainer. The FFmpeg button
    can be anything you fancy. How about a quick Video->MP3 converter
    button..

        -i "@inputfile" "@parent\@item.mp3"

    Or one-click image extractor..

        -i "@inputfile"  -r 1 "@parent\@item_%05d.png"

    Imagination is the only limit! And the technical limitations of FFmpeg,
    of course. The button can't make espresso. At least, not a decent cup.


+   Shortcut (*.lnk) files are now resolved when dragging and dropping
    onto inputs/drop window.

    If you *really* want the old behaviour (inserting the shortcut file,
    rather than the linked file) hold down the SHIFT key while you drop.

    Though note, in that case, if you have automatic reporting for
    dropped items, you will, unless you have super-human reflexes and
    timing, get a useless media report for the .lnk shortcut in your
    default nfo viewer! Just, why?


+   You can now disable saving media reports. They will still appear in
    your console output, but won't leave report files next to the media
    files. Thank you! This setting is available from the app menu.


~   When you click on the "input:" label (to the left of the file input)
    rather than simply open the media file's containing folder, ffe will
    now open the folder in Explorer with the media file *selected*. W00!

    If the file in the input does not exist, the label flashes red,
    instead.


+   The positions of ALL the wee dialogs** are now remembered after you
    close them so they will open up in the same place next time.
    NOTE: if you cancel or OK an empty value, the position is NOT saved.

    ** Edit buttons, rename presets, set test length, etc., etc..


~   Cleaned up the console output. There sure is a lot of it these days.


+   You can now disable ToolTips over the console output area (where they
    can annoy) whilst retaining the useful tips over your other inputs and
    controls..

        allow_console_tooltip=false

    This setting is available from the app menu >> Visual Preferences.


+   You can now have ffe run your drag-and-drop command on files supplied on
    the command-line (or your retained settings), so when you launch ffe
    with a file (e.g. from your SendTo menu), it will immediately produce a
    media report, or just process it immediately, or whatever.

    This setting is available from the app menu.


+   Added a new drag-and-drop command; "Play", which plays the dropped file
    with FFplay, using your regular settings.


+   Also added "Generate", which generates an ffmpeg batch script, just like
    shift-clicking "do it!" or running ffe with generate(preset) on the
    command-line.


+   Added keyboard accelerators for ALL the app menu commands.
    Hit Alt+Space and away you go!


+   Added a tray menu option to open the data folder. Cleaned up the
    ordering of the tray menu, too. More logical.


+~  Added and improved help messages, console output and other useful
    goodies. The window title is now used for more messages, too (e.g. when
    you copy the console to the clipboard).


~   If you launch ffe with the Shift key held down, it will ignore your
    previous exit settings and use the defaults. This has been true for a
    while but I didn't take a note of it anywhere.

    This action will now also disable retaining exit settings so that they
    will remain intact after re-launch, should you wish to enable the
    facility again (Ctrl+E), the old settings will still be there.

    As a side note, exit settings are now retained in your ini up until
    the point in time when they are replaced. If ffe gets killed for any
    reason, your exit settings will not.


+   Also, if you have exit settings disabled, and then enable it, ffe will
    offer to load your previously-stored exit settings (if you have any).


~   In the case of freak naming conflicts during unattended operations,
    ffe will now use a timestamp, rather than a random string, for the
    conflicting name's suffix.


+   You can now add video and audio codec to the lists from directly within
    the GUI (right-click the control). There are *hundreds* of these you can
    add. Only popular formats are included by default. Go nuts. Or rather,
    add what you need.


+   Similarly, you can now remove codecs the same way.


~   ffe now stores backup ini files inside the subfolder; "Backup", inside
    your data directory. Sorry.


+   You can now change the default extension from inside the ffe app menu.
    This is the global setting. As before, you will need to hack the setting
    into your presets if you need this set at the preset level.

    There is also a HotKey for this: F2.

    You can stop bugging me about this now!

    It should be noted that there is rarely any need to set this directly.
    ffe takes care of the extension mostly automatically. The default is
    used only as a fall-back when, for some reason, ffe can't determine the
    extension.

    Note: You can set this on a preset level. There is an edit item in the
    preset drop-down control's context menu.

    But again, you should not need to. Or at least, very rarely!


+   Added a few more GUI menu items, so you can get to more of the many many
    settings hidden away inside ffe.ini.


~   When saving a preset, ffe now only saves the settings you actually
    changed (mostly). The actual data saved is reported to your ffe console.


~   batch_commands_timeout and batch_commands_timeout are no longer saved
    automatically on a per-preset basis (they were simply copying the master
    settings anyway, as there is no way to alter these from within the ffe
    GUI). Users advanced enough to be using this stuff can add parameters
    to their presets manually, if you so desire, along with any of the other
    script control settings.


+   There is now an "About ffmpeg" option in the app menu and tray menu
    (beside the About ffe entries) so you can see the current version of
    whichever ffmpeg binary you are working with. The output is piped to
    your ffe console.


~   The default extension for the ffmpeg-generated help files is now "txt".
    You can change this in the help button preferences.


~   Removed the limit on the number of help button you can show in the GUI.
    Also the magic used to place them. There is a trade-off between the
    space taken up by these buttons and the space taken up by the custom
    command buttons. You will find balance.

    TIP: If you create enough custom buttons to fill a rectangular block
    MINUS ONE, you leave the bottom-right corner empty and a large number of
    help buttons will slide in comfortably.


+   Added an automatic extension mapping for "gif". ffmpeg can output
    animated gifs, by the way. I really must put these mappings into some
    kind of user preference.


+   Added quite a few app menu items so you can get to more of the hidden
    ffe settings. I don't think there are many left.

    I also moved a couple of prefs around to hopefully make things more
    logical.


~   The flag that tells ffe you already created a particular help file (with
    FFmpeg) and to simply re-load that instead of re-creating, is now unset
    when you load a fresh FFmpeg binary, in case the codecs and what-not
    have changed.


+   You can now disable the "with file paths" checkbox altogether, so file
    paths never get saved with or loaded from presets. A ToolTip will still
    appear over the control's area, informing the user that this preference
    has been disabled inside ffe.ini.

    File paths will always be remembered between sessions however, if you
    have "retain exit settings" enabled.

    Also, if you launch ffe with go(<preset-name>) and there is an input
    file specified, ffe will load that inputfile (which may have wildcards).


~   ffe will now report to your console if you attempt to create a media
    report from a missing input file.


~   The delimiter used to separate commands from comments inside the custom
    buttons has been changed from "|" to "***", as the pipe interfered with
    certain FFmpeg advanced commands. Sorry.

    You will need to update your buttons manually. Again, sorry. This is
    easiest in a text editor, though shift-clicking any button will get you
    to the gubbins. If you have lots of buttons, you definitely want to do
    this in a capable text editor; it will only take a few seconds..

      Select the entire [custom buttons] section, replace "|" with "***".

    I have also made this available as a preference in your ini file. So you
    can keep the old behaviour if you prefer, update at leisure, whatever...

        button_delim=***


~   The HotKey to abort the current task is now Ctrl+Q, which a) is more
    in line with the "q" we send to ffmpeg itself to quit, and b) works,
    which F4 seems not to any more. I may investigate. But then again, maybe
    not; F4 is too easy to hit by mistake!

    Pause/Break still aborts *everything*.


*+  Fixed the F9 Drop Window toggle not working in recent Windows builds and
    improved it so it works no matter if you have the main GUI or drop
    window at the front. So long as ffe is at the front, F9 toggles the Drop
    Window.

    We're using twin-accelerators now, so it goes *really* fast!


~   On the subject of accelerators, I've re-coded most of the HotKeys to
    use GUI accelerators now, so there is no chance of those HotKeys
    interfering with other apps / being unavailable / etc..


+   The current state of the tri-state controls is now shown in their pop-up
    ToolTips. Of course, you can see their state from the GUI, too:

        Checked     = Enabled
        Unchecked   = Disabled
        Filled      = Unset


+   A simply mad amount of console and debug reporting. You want data? You
    got data!

    btw, "The data say" is good English. "Data" a plural. Unless we are
    talking Star Trek; in which case "Data" is a sentient android seeking
    humanity. The singular is "datum". But seriously, who says "Datum"?


~   Removed legacy (pre v0.9) pref handling. It's just confusion in the
    code and there's really no need for it any more.


~+* Ctrl+A will now select all the text of the control you are in, as
    opposed to only the console output. This only works in controls that
    normally have more than a few characters in them, so not for codecs and
    what-not (their text is automatically selected when they get focus), yes
    for parameters and file inputs.

    And the console, of course. Another pet annoyance bites the dust!


+   You can now add and remove help buttons from directly inside ffe. Right-
    click any help button for options.


+   You can now also edit help buttons from directly inside the GUI.


~   When you wipe a preset, ffe makes a backup, as ever. If you wipe a
    preset with the same name again, ffe takes a backup of your previous
    backup before creating the backup. That's two backups. No more.


+   You can now restore preset backups from directly within the ffe GUI.
    Shift+Click or Right-Now-Click the wipe button to get to the backup
    chooser.


+   Added a "Restart ffe" option to the tray menu. There is also a HotKey
    for this: Alt+F5**. This is useful if you need to reload after changing
    some global preference, and other stuff.

    **  This, like so much else, will become a thing.


~*  I re-organised and re-wrote some menus to (hopefully) make them more
    logical. Someone won't agree.


+   Drop Window Image Starter Pack..

    Added the facility to download a starter pack of images for your drop
    window. A small, tasteful, video-orientated selection.

    You can get to this feature from your ffe tray menu.

    There is a preference for the images' base URL, so you can use your own.

    image_pack_url=https://corz.org/windows/software/ffe/files/DropWindowImages/

    If you decide to roll your own for whatever reason (I can think of a
    few), upload a list of images, named..

        image_pack_urls.txt

    and drop it into the root images folder.

    Subfolders are fine; ffe will re-create those locally and make them
    available in your drop window's cascading images context menu. Pretty
    neat. All this is nicked from my upcoming app; BlobDrop.

    ffe will use this as a download manifest. The format of the file is a
    simple plain text list of image paths from the root, e.g.

        Film-Reel-Simple.png
        Folder-Videos-icon-By-Zerode_small.png
        Animated Gifs/Animated_film-strip-trans-by_Cor.gif


~   Updated the short test button to use "-frames:v" instead of "-vframes",
    which has been deprecated (it still works for now, but will be removed
    in the future).


+   You can use quit(preset) in place of run(preset) on the command-line, as
    it perhaps makes more sense. As usual, it runs the preset and quits.


+   Updated some of the detault custom button presets to be more in line
    with modern FFmpeg usage.


+   Added the current help command to the help buttons ToolTip, so you can
    see what the *actual* command is without editing the button.

    Lots of the ToolTips have useful dynamic information, by the way.


+   Added ini option to remove comments from your ini file, which is:

        clean_comments=true

    This will also happen automatically if your ini file grows to more than
    60KB in size, to prevent clipping if it were to reach 64KB in size; the
    theoretical maximum size for an ini file. For some reason.

    Contrarywise, if you want the original comments back and you ini file is
    small enough to take them..

        Inside ffe.ini

          Set:
            clean_comments=false

          Set your version number *anything* smaller.

        Restart ffe.


+   Post-File run options..

    There is now a few choices for how to run the post-file command, that is
    the optional command ffe runs after each completed file, usually, though
    not necessarily, "doing something" to the output file.

    Firstly, you can choose the method used to run the command..

        "Standard": Internal, direct, accepts arguments and > redirections.

        "dos": As above, but through Windows command interpreter (cmd.exe)).

        "ShellExecute": A simple mechanism enabling you to launch a file
                        using Explorer's default verb, usually "open".

    Generally you want the internal (direct) method, but if your console
    program isn't working as expected, try the dos option.

    Note: When using the dos method, you will need to put "quotes" around
    any path with spaces in it, including the path of the program.

    NOTE: Any quotes in post-file commands are encoded as '"' in your
    ini file. It all happens automatically from the GUI, but remember this
    if you are editing you ini manually.

    When running direct/dos you also have the following options:

      Post-File Command Capture     (true/false)

        Choose whether or not to capture the output (which will be visible
        in your ffe console). If you are capturing the output, you will
        obviously need to wait for the process to end. If your cammand is
        expected to take a long time, you may want to disable this.

            post_file_capture=true


      Show Post-File Command Window     (true/false)

        This sets whether or not we run the command hidden.
        By default we show the program window..

            post_file_show=true


    NOTE: Pre-Job, Post-Job and Post-File commands can all be saved inside
    presets, even the default preset. However, if you have any of these set
    and then load a preset with them unset, they will remain unchanged. This
    is by design..

    You can load a preset with some commands setup, then another preset
    without any commands, then (perhaps after some tweaks) re-save the
    second preset, except now it has commands ini it.


+   The preference kill_ffmpeg_on_exit=<true/false> will now be honoured
    when read from a preset. Though this is technically a global setting, it
    has potential usage inside presets, so can be manually added, if
    required.


~   The "reset" button now resets ALL parameters and settings, including
    any pre- and post-job batch files and post-file commands. This is more
    in line with what most users expect to happen and is less confusing.


~   Although the state of the tri-state job buttons (overwrite, join, quit-
    when-done, shutdown-when-done) aren't normally saved to a preset unless
    they have been changed by the user (otherwise inheriting the defaults),
    they WILL now be retained between sessions, as to have half of them (the
    pre- and post- commands) remember and the others not, is odd if you
    don't understand the reasoning behind it, which was flimsy to begin
    with.

    NOTE: pre- and post-job command file locations, as well as post-file
    commands are grabbed fresh from your ini file before they are used, so
    you can edit these in the ffe GUI or your favourite text editor and the
    new batch scripts/commands will be picked up and used immediately.


+   You can now set a default audio file extension. This is rarely, if ever
    needed as most audio codecs map simply to file extensions.

    At any rate, it's now a pref: default_audio_extension=aac


~   Updated sample custom button Frei0r filters to use new syntax. I also
    tracked down a collection of x64 Windows DLL's (inside the excellent
    Shotcut) and put them in the goodies folder (see the ffe page) for you.

    Only some of these work. At least, my limited tests have only gotten
    some of them to work, albeit some of the funner ones. There is a list of
    the ones I got working, here:

        https://corz.org/windows/software/ffe/files/plugins/


+   In the event of conversion failure (perhaps a plugin parameter?) ffe
    will now clean up the empty files FFmpeg leaves behind.


+~  Fixed-up the logic of the pre- and post- job buttons. ffe will now also
    check for the existence of commands/batch files when you enable these
    features and move straight to the creation dialogs should any be absent.
    ffe will also inform you when pre-job and post-job command files load
    successfully, or not. Same with the post-file command.

    If these features are disabled/unset, ffe won't bother you about them.


+   ffe will now report the total time for a batch at the end of the batch.
    Quite an omission.


+   Improved the tracking of external commands, so you can see errors and
    such in the console.


                                     *** Fixes ***

*   Fixed a bug where ffe would annoyingly load the output file path (with
    MATOF, if enabled) even though you loaded a file on the command-line
    (SendTo, etc.). Now ffe will re-create the output path, as usual, from
    the input file. If you *really* want to get back the stored exit
    settings' output file path, click the MATOF button.

*   Fixed a bug where if you set a delayed start and there was an error
    creating the batch, the state (and the error message) would loop
    indefinitely, eating CPU. Thank the Teen Titans for spotting this one!

*   Fixed the version checking at the server end. Oops!

*   Fixed a bug where ffe wouldn't pass your Y/N response back to ffmpeg,
    as the ffmpeg developers had (finally) fixed that typo and ffe no longer
    recognised the question!

*   Cleaned up batch exiting so that total time and such are displayed in
    the console, just like regular jobs.

*   Fixed a lot of minor bugs as I went along. Things I noticed I'd not
    finished or not thought-out properly. Run a diff on the source if you
    want to see the many many changes. Some of these were recently
    introduced! Suffice to say, loads of wee niggles and annoyances have
    been taken care of..

*   Fixed the flashing buttons. Oops.

*   Fixed new dialogs appearing top-left instead of centre.

*   Fixed MATOF's often wonky target file handling (dragging a folder onto
    the output is still the best way to set the output).

*   Cleaned up the double+ ToolTips.

*   Fixed the resizing errors.

*   Fixed codecs not present in the combo list not loading from presets.

*   Fixed certain settings not being remembered properly (e.g. the
    store_filepaths state checkbox wasn't being saved).

*   Fixed the incorrect menu items.

*   Stopped empty log files being created. This may still happen
    occasionally in the beta, when I forget to remove temporary lines with
    debug_level=0, but it won't happen spuriously on every run.

*   Fixed the presets menu not refreshing after renaming a preset.

*   Fixed renaming sections from re-ordering the presets combo (the AutoIt
    built-in IniRenameSection() function does this, so I re-wrote it; with a
    sledgehammer).

*   Fixed a bug where renaming custom buttons would place the renamed button
    at the end of the buttons. This annoyed people. Again, unthinking use of
    built-in functions was the cause.

    We use a much more elegant solution now and while I was in there I
    cleaned up some other old scrappy code.

*   Fixed the button grid re-creating two, or was it three times when the
    GUI was resized beyond its minimum limits and ffe had to resize the GUI
    automatically. Now it will refresh a single time, as expected.

*   Fixed the "gone too far" flag (when the above happens) not being unset
    after an automatic correction, so the button grid was being recreated
    every time the window dimensions changed, or were checked, which is a
    lot.

*   Fixed a couple of spurious variables that found their way tagged onto the
    end of console lines.

*   ffe will no longer crash if forced to use an empty ini file; it will
    simply replace it with the default version.


*   Fixed a bug where load(), run(), etc. would not work if
    retain_exit_settings was enabled.

*   Fixed a bug where exit settings were being destroyed on quit if you
    launched ffe with load() on the command-line.

*   Fixed a bug where the mian GUI would appear briefly during a "generate"
    option.

*   Fixed a few bugs with the pre-job, post-file and post-job commands
    buttons, tootlips and loading. Everything should now work as expected.


*   Fixed a bug where your log location would get set to the system
    temporary folder unless it was set inside your current preset.

*   Fixed a bug where running a non-existant preset from the command-line
    would result in the batch running with the default settings. Now, if a
    preset does not exist, ffe will fail with an error.


*   Fixed concatenation not working. We now instruct FFmpeg to accept
    "unsafe" paths. We are also properly tracking the output so we can know
    these things.

*   Post-batch tasks will no longer run if the batch was aborted. Oops!

*   Fixed the text selection issues on the command-line display. You can do
    Ctrl+A in there, too, to select all text.

*   Fixed the q/n keys not passing to FFmpeg during a concatenation
    operation.

*   Fixed a bug where slashes were being "fixed" in shell commands when the
    user put @tokens in their batch files, mangling the flags as a result.


                                        ~ DEV ~

+D  Much improved error messages and debugging. You can set the debug level
    from 0 (off) to 10 (gobs), in your ini..

        debug_level=10

    This is useful for messing with the code or creating a bug report.

    Level 1 (the default) will reports only errors.

    We can also technically set debug_level=0, which will usually produce no
    output. This can be useful when we need to debug one particular section;
    we can add debug lines with the level set to 0 and we will see output
    for ONLY the section we are working on, which can save copious
    scrolling. The default level will display these messages too, of course.


~D  We now use CorzFancyInputBox() exclusively for dialog inputs, so no need
    to include InputBox() resources. CorzFancyInputBox() has a few
    advantages, not least of which, it remembers the positions of your
    various dialogs. If you like your rename preset dialog to pop up
    precisely under the control, just put it there one time. Done.

    All input dialogs now use the Consolas font for the input. This can
    also now be set in your ini file. If the font name has spaces,
    enclose it "in quotes".


+   You can now set the maximum debug log size. When this limit is
    reached, the file is archived and a new log is created.


+~  LOTS of internal code clean-ups, minor fixes and improved efficiency.


~   I moved a lot of the functions around to hopefully make things more
    logical. Forget running a diff.

    I also added dummy functions for easy navigation in any decent text
    editor. These have been growing for a while and are really useful for
    making and navigating to sections in your code.


+   Added a wee comment tag ("::dev::") above any items in the source code
    that I consider useful to you getting ffe compiled ASAP; places you will
    need to make edits/comment-out/etc..




Bug reports most welcome!

;o) Cor

 ©  2022 « corz.org » 22.8.9  

Welcome to corz.org!

I'm always messing around with the back-end.. See a bug? Wait a minute and try again. Still see a bug? Mail Me!