# encoding: utf-8
Videomass
Author: Gianluca (jeanslack) Pernigotto
Copyright: (c) Gianluca Pernigotto 2014-2020
License: GPL3

Change Log:
+------------------------------------+
March 28, 2020 V.2.0.1
+------------------------------------+

BUGS:
    * Fixed custom file destination settings when choosing from the file menu
    * [Fixed Audio/Video Conversions panel] On 'Copy' video codec the output 
      format did not match when set on the chosen container. 

IMPROVEMENTS:
    * Fixed file head descriptions on any file.py

ADDED:
    * New 'Copy' item on combobox 'Container' when 'Copy' video codec is setted
    

+------------------------------------+
December 10, 2019 V.2.0.0
+------------------------------------+

BUGS:
    * Fixed file rewrite issue when you set FFmpeg/FFplay logging levels from 
      the Settings dialog.
    * Fixed wrong 'tune' name option for h264/h265 > "fastedecode" error fixed 
      with > "fastdecode"

NEWS:
    * GUI completely redesigned to make it easier for users to use.
    
    * Now Videomass has embedded youtube-dl to download videos from Youtube
    
        * Download multiple URLs with your settings.
        
        * View video information without downloading it.
        
        * Ability to download videos using the 'format code'.
        
    * New and improved management of presets. Now Videomass uses JSON data for
      its presets while old ones with xml data are now obsolete and incompatible. 
      This allowed some advantages in the presets management and some savings 
      in system resources.
        
        * Now you can create your own presets from scratch or adding others 
          directly to the presets directory.
        
        * Presets can be removed (not deleted)
          
        * Improved management of pass encoding parameters on any profile,
          making the parameter syntax similar to that of FFmpeg on CLI.
    
    * Complete support for audio normalization (peak, rms, ebu) also on the 
      Presets Manager tool.
    
ADDED:
    * Added another text boxe on Presets Manager to view the two pass command 
      line 
    
    * Dialog to add new profile has box entry for two pass conversion
    
    * Added "Create new preset" to File menu item
    
    * Added "Remove preset" to File menu item
    
    * Add new entry box on Settings dialog to choose the user default directory
      to files storing
      
    * Added new controls to manage conversions: Containers, Media, Pixel Format, 
      Min Rate, Max Rate, Buffer Size, Subtitle Stream selections .
    
    * Added controls to select audio indexes from a input video to apply a 
      specified process e.g. change audio codec, normalization, etc without 
      change others audio streams .
      
IMPROVEMENTS:
    * Improved all GUI layouts windows
    * Code thinning 
    
REPLACEMENTS and REMOVALS:
    * Removed the Audio Conversions panel, now to export/extract the audio 
      file you need to select it via the 'Media' combobox on the Audio/Video 
      Conversions panel
      
      
+------------------------------------+
October 06, 2019 V.1.7.0
+------------------------------------+

NEWS
    * Additional implementations:
    
        * Audio normalization with EBU R128 algorithm (loudnorm) .
        * Audio normalization in RMS .
        
    * Peak level normalization now has also target to below level .
    * PEAK/RMS normalizations are not applied to unchanged levels, ie when 
      the target does not ensure level changes.
ADDED:
    * Added "-pix_fmt yuv420p" option for compatibilities.
    * Added some support for the h.265/HEVC encoder for MKV, MP4, M4V and AVI 
      formats.
    * Added some support and controls for the libvpx/libvpx-vp9 (VP8, VP9) 
      encoders for WEBM format.
    * The libopus audio encoder for the opus format has also been added.
    
REPLACEMENTS and REMOVALS:
    * For ALL conversions that involve a double pass into Presets Manager panel,
      the `DOUBLE_PASS` separator between the first and second pass it is
      replaced by `-pass 1` for first pass and `-pass 2` for second pass.
    * Removed the "Extract audio source from video" option on Videomass 
      because it will be reprogrammed separately in the future.
    
IMPROVEMENTS:
    * The dialog box to show the level statistics for audio normalization 
      has been improved with more useful information.
    * code thinning in some file section in the old stuff.
    * Disabled the interaction on standard input on the task_processings.py
      processes adding `-nostdin` since the interaction could not happen. 
    * Added some cosmetic improvement to interface.
      
BUG FIXES:
    * fixed bug when choosing to copy the video codec that always enabled 
      the audio alac format and left the other audio formats disabled.
    * Fixed bitrate missing on single pass video (serius). This did not allow 
      to choose the bitrate for the conversion.


+------------------------------------+
September 12, 2019 V.1.6.1
+------------------------------------+

BUG FIXES:
    * The overwrite message 'file already exists' that appeared when exporting 
      images was fixed

IMPROVEMENTS:
    * enhanced errors management on all processes.
    * improved messages on the status of any processes.
    * During the conversion ffmpeg errors will no longer interrupt all 
      other activities in the queue; if an error occurred it will be marked 
      with 'failed' but continue; if it has finished without errors it will 
      be marked with 'completed'. Since not all ffmpeg messages are errors, 
      sometimes it happens to see more output marked with yellow color.
    * The export of images from a movie now has the progress bar and all 
      the normal functions such as process stop and real-time output display.
    * Now to export images you need to select which files to convert in the 
      'Add file' panel (drag and drop).
    * Now the images saved by the movies are named as filename + a progressive 
      number + .jpg.
      All saved images are placed in a folder with the same file name + a 
      progressive number that is saved in the selected output path to avoid
      over writings.
    * the logging level can now be optional, no longer mandatory the "error"
      flag, since the management of the output and errors has been improved.
    * Changed version to the videomass.conf and videomassWin32.conf to 1.4.
    * When setting the seek point with the duration tool, the cutting time 
      must also be set. Not vice versa.
      
ADD:
    * The option to set the ffmpeg and ffplay loglevel flag has been added 
      to the settings dialog.
    * Added check box to disable or enable the "-cpu-used" flag as sometimes 
      it is not supported and causes more output to read.
    * Added new preset to save images from movie in jpg/png/bmp formats
    * Added "Remove selected file" from the context menu of the Add File panel
      (drag n drop) to remove a selected item with the right mouse button.
    * Added more info data stream to dialog box list when saving the audio 
      from the movie.
    * Now on Preset Manager panel a double click on a profile start the process.
    * Added "-map 0" flag on all video conversion panel commands, to include 
      all streams of imported video on exported video (audio streams, subtitle
      streams, etc.).

REMOVALS and DISPLACEMENTS: 
    * removed the setting to save the log file in another directory chosen 
      by the user since the option to open the log directory had been 
      implemented in the previous version of Videomass. 
      

+------------------------------------+
September 02, 2019 V.1.6.0
+------------------------------------+
    
IMPROVEMENTS:
    * Translation improvements
    * Improved fonts depending on the operating system in some dialog
    * code thinning in some dialog box
    * When you import a previously saved preset to replace it with another 
      one, you no longer need to select it in the drop-down menu
    * Automatic reload presets list after restore presets 
    * Added the video name in the "save audio stream from video" dialog when 
      multiple languages ​​are available. This is good when you import more videos 
      with more audio streams.
    * Improved log view in the Process panel
    * Improved writing log during on almost all processes
    * Now the audio normalization is applied only on the sequence in relation 
      to the duration if set before volume dected, otherwise is applied to
      entire file.
    * The choice of bit depth for compressed formats/codecs has been disabled 
      on the audio parameters dialog
        
BUG FIXES:
    * Fixed append text issue when use dialog box to search 
      FFmpeg options on Windows
    * Set default choice when the user cancels the "save audio stream from video" 
      dialog to choice a language audio stream, to avoid errors.
    * The '-af volume = .0dB' parameter is omitted from the command to the 
      audio streams which does not requires the audio normalization process
    * Fixed message "File does not exist or not a valid file:" when playing
      exported files with more dot on filename .
      
REMOVALS and DISPLACEMENTS: 
    * Changed default location of the 'videomass' configuration directory 
      on the user space, following the typical conventions of the OS.
        On *nix OS's:  '~/.config/videomass'
        On MacOs:      '~/Library/Application Support/videomass'
        On Windows:    'C:\Users\username\AppData\Roaming\videomass'
    * During processes conversion the new default logs directory is
      located to videomass directory configuration;log
    * Removed the control of the text of the maximum audio peak level and the 
      average audio peak level in the normalization sections.

ADD:
    * new features to open the file manager on the Videomass configuration 
      directory and on the logs directory (platform independent)
    * Add the "Don't show this dialog again" on dialog before start 
      conversion on the Presets_Manager when profile command has been
      changed manually (Python3 only)
    * Added a new dialog to show the list of volumes detected for audio 
      normalization
    * Added a new dialog to show keyboard shortcuts during playback.
    

+------------------------------------+
August 24, 2019 V.1.5.5
+------------------------------------+

BUG FIXES:
    * Fixed wrong main window size when run on FreeBSD O.S.
    * Fixed the annoying bug when you save the audio from the movie 
      and at the end of the conversion drag other files into the DnD 
      panel to save the audio from the movie again.
    * Fixed the bug of multiple additions when writing the log file 
      during the processes
    * Fixed bug when using double pass encoding 
      in Python3: NameError: name 'cmd' is not defined
    * Fix a short command promp display when use ffmpeg specifications 
      dialog on MS Windows
      
      
ADD:
    * Added a new menu tools item on the menu bar
    * Add a summary dialog before start conversion on Presets Manager
    * Added dialog box to displaying the FFmpeg compilation specifications
    * Added dialog box to displaying file formats available on FFmpeg 
    * Added dialog box to displaying available encoders and ability
      by FFmpeg
    * Added dialog box to displaying available decoders and capability
      by FFmpeg
    * Added dialog box to search and view all the FFmpeg help options.
    * Added resize border to ffmpeg_search dialog
    * Added hscroll to textctrl in the ffmpeg_search
    
IMPROVEMENTS:
    * Messages output from command line during start-up
    * Presets Manager panel: if the FFmpeg command is modified manually 
      a confirmation message will appear before performing the conversion
    * Improvement of some message in tooltips
    * Improved name word definitions in some windows, for greater understanding.
    * Improve color messages on the process panel
    * Improve log message in the list-control on the process panel
    * Improve log messagge in the conlole during processes for debug

+------------------------------------+
August 2, 2019 V.1.4.6
+------------------------------------+

BUG FIXES:
    * fixed parsing problem on media_info.py dialog, when the values 
      have other signs '='

IMPROVEMENTS:
    * Improved display of the text box on spin control for adjusting the 
      peak audio level threshold on the audio_panel.py and video_panel.py
      
NEW:
    * setup.py now supports the automatic installation of the pubsub module 
      for Python3 when videomass is installed with the 'pip' command

+------------------------------------+
January 24, 2019 V.1.4.5
+------------------------------------+

BUG FIXES:
    * Fixed the 'ValueError' object is not subscriptable exception on
      Python3 when drop file with no duration (IO_tools.probeDuration())
    * Fixed 'SyntaxError' issue on setup.py to create packages with the 
      appropriate modules packages (videomass2 or 3) during compiling
      with py2exe and py2app.
    * Corrected a conditional error on the Videomass launch code.
  
NEW [features/enhancements]:
    * Added new icons set to default settings.
    * The command line text of each profile is always editable now.
    * Added install_requires for Windows and MacOs to automate the 
      installation dependencies
  
IMPROVEMENTS:
      
REMOVALS and DISPLACEMENTS:
    * Changed version to videomass.conf file configuration with new 
      default settings
    * Removed 'Enable write from command text line' from settings.py. This  
      make editable the profile text into presets manager panel

+------------------------------------+
January 14, 2019 V.1.4.4
+------------------------------------+

BUG FIXES:
    * Resolved an execution problem after installing Videomass with 
      the pip tool for Python3. 
  
NEW [features/enhancements]:
    * Added compatibility with python3. Videomass now works on both 
      Python2 and Python3.
    * Added new useful entries in the help menu
    * Videomass icon has been recreated with a new logo and design
  
IMPROVEMENTS:
    * Improved the wizard dialog
    * Improved the videomass.desktop for desktop menu specification on Linux 
    * Improved progress bar during conversions with time specifications 
      set with the Duration tool.
      
REMOVALS and DISPLACEMENTS:
    
    * Videomass2/Videomass3 has been changed to Videomass.
    * Update locale
    * "install_requires" has been removed from the SOURCE_BUILD function in 
      setup.py. Unfortunately I have not yet found a pythonic way compatible 
      with all systems to automate a dependency like wxPython.

+------------------------------------+
December 29, 2018 V.1.3.4
+------------------------------------+

BUG FIXES:
  
NEW [features/enhancements]:
  
IMPROVEMENTS:
      
REMOVALS and DISPLACEMENTS:
    * Removed the old and obsolete `libfaac` codec, as no longer supported by 
      FFmpeg. It has been replaced with the codec `aac` freely redistributable 
      with FFmpeg.
      
+------------------------------------+
December 22, 2018 V.1.3.3
+------------------------------------+

BUG FIXES:
  
NEW: [features/enhancements]
    * Update the MANIFEST.in: For completeness, the MAcOsxSetup and 
      Win32Setup folders have been added to the source distribution
  
IMPROVEMENTS:
    * Improved setup.py script
    * Change pathname icon (Icon=/usr/local/share/pixmaps/videomass.png) 
      of the desktop entry to videomass.desktop for wheel and source 
      distributions
      
REMOVALS and DISPLACEMENTS:
    * Remove the wxPython dependency from setup.py for PyPi distribution

+------------------------------------+
December 21, 2018 V.1.3.2
+------------------------------------+

BUG FIXES:
    * Fixed bug on the `Video Conversions` and `Audio Conversions` panels when
      set audio parameters specially with `wav` format.
    * Fixed bug in the preview after `Save audio from movie`. The exit with 
      invalid filename is be fixed.
  
NEW: [features/enhancements]
    * Added new elements that improve accessibility and readability of audio 
      settings in the `Video Conversions` panel.
    * Improved buttons colour and appearance
    * Added new icons free and open source compatible with GPL3.
    * Add supports for the localization of internationalization (i18n) 
    * Add support to Italian language.
    * Now Videomass has wheel on PyPi installable via pip and support 
      for Linux/Macintosh/Unix/Windows
  
IMPROVEMENTS:
    * Improved configuration file error handling: if the version of the 
      configuration file changes, it is automatically updated

+------------------------------------+
October 27, 2018 V.1.2.0
+------------------------------------+

BUG FIXES:
    * Solved an exception when importing images and proceeding with normalization
      (add: does not contain any stream).
    * FFmpeg's unrecognized errors are now better managed on volumedetect Processing
    * resolved the writing of the 'passlogfile' on the source folder of 'Videomass'
       during double pass processes. Now, the log file will be written to the same 
       source output path.
    * Fixed bug that did not reproduce the exported file with preview button
    * Fixed a bug that did not send the message for ASCII/UTF-8 support on all 
      processes with non-ASCII/UTF-8 file names related to shlex module on Unix.
    * Fixed bug in the `Save Audio from Movie` when save as profile 
    * Fixed minor bugs

ADDITIONAL FEATURES:
    * Added new filter section on Video Conversions panel with new dialogs boxes
      implementation:

        - scale
        - rotation
        - crop
        - deinterlace/interlace
        - denoisers
        
    * Each filter button has the color application to on/off state views.
    * Added new playback button to result preview of all filters set.
    * Added new button to clear all filters set.
    * Improved layout on Video conversions panel
    * Improved layout on Audio conversion panel
    * Added a new buttons bar with color application to on/off state views
    * Accessibility to playback exported file, metadata display, and timeline 
      duration, are now improved.
    * Added a contextual menu on the drag n drop panel with playback and metadata 
      feature of the selected item. This is activable by right click or double 
      click into one imported items.
    * Added message support for exceptions and errors in streaming playback (ffplay)
    * Added support for time sequences also on playback of input streaming
    * Added contextual help buttons with online user guides

REMOVALS and DISPLACEMENTS:
    * Removed the 'video size' function instead of the scale filter 
    * Move the 'save image from video' function to the 'format/containers' combobox
    * Audio Conversion panel: Message box removed on the save profile with audio 
      normalization enabled. Now you can also save parameters with audio 
      normalization after a confirmation message.
    * Removed all html files for user's guide. Now the user guide is online only.
  
IMPROVEMENTS:
    * Improved settings storage on audio options for Audio and Video panels
    * Overall accessibility has been significantly improved
    * Improved overall layout 

+------------------------------------+
Set 22, 2018 V.1.0.1
+------------------------------------+

    * Fixed issue with the `Presets_Manager` panel during double-pass 
      conversion in Windows.
    * Modified `cpu-used` function in the settings dialog
    * Adding `-threads` function in the settings dialog
    * Fixed anomalies in `-cpu-used` function
    * New version of the configuration file 

+------------------------------------+
Set 17, 2018 V.1.0.0
+------------------------------------+
This is first release of Videomass.

Videomass presents itself with an interface completely renewed and enhanced 
by many features:

    * Drag n Drop interface
    * Presets manager interface with fully customizable profiles ready to use
    * Data streams information interface with details section
    * Preview of exported media
    * Video conversion interface
    * Audio conversion interface
    * Audio peak level analysis implementation and audio normalization
    * Grabbing audio streams from video with multilingual selection
    * Batch processors
    * Log management
    * Convert any media file to multiple formats
    * Cut Video and Audio timeline
    * Batch Processing
    * Video to Image Sequence
    ..and more
