**********

 CutterFF

**********

version 0.8 (Mar 16 2019)
-----------

* gui.c
    + memory leak in 'cff_gui_init', 'logname' may not
      be freed. Fixed!
    + memory leak in 'cff_gui_save_image',
      'filechooser_utf8str' may not be freed. Fixed!
    + max 10 extensions (file filter) can be added for
      the filechooser
    + if copying to another format the matching extension
      is now appended to the filename

* ffmpeg.c
    + memory leak in 'cff_ffmpeg_copy_cb', 'bsf_ctx' may
      not be freed. Fixed!
    + videos could not loaded if the frames have a duration
      of zero. Fixed!
    + videos may not loaded by some muxers if the first
      packet is not a key frame. Fixed!
    + if copying to another format (especially to AVI) the
      timestamps may incorrect. Fixed!
    + 'cff_ffmpeg_get_format_names' now returns only the
      formats useable for the available streams
    + 'cff_ffmpeg_get_bitstream_filter_names' now returns
      only the filters useable for the available streams
    + 'cff_ffmpeg_get_outformat_extension' returns the ex-
      tension for the given format

version 0.7 (Jan 25 2019)
-----------

* gui.c
    + memory leak in 'cff_gui_save_start', 'format_names'
      may not be freed. Fixed!
    + disable menu entry File->Save if there is only one
      cut point, which is the last frame
    + image dialog for saving an image
    + disable okay-button if in the saving dialogs the entry
      field is empty

* ffmpeg.c
    + buffer may too small for displaying all codecs or
      formats. Fixed!
    + may compute wrong display aspect ratio. Fixed!
    + new function 'cff_ffmpeg_printf_concat' (re)allocates
      memory and writing the string to it
    + log-window displays "Repeated last message n times",
      if the same message should be displayd more then two
      times
    + scale, encode and save an image
    + at end of copying the bitstream filters will be flushed
    + flushing the codec at end of stream may not work since
      the decode timestamps (dts) are not set. These missing
      values will now computed and saved while opening a file
    + replaced deprecated functions (FFmpeg version 4.0.2)

version 0.6 (Dec 22 2018)
-----------

* gui.c
    + save dialog with option for shortest stream duration
    + memory leak in 'cff_gui_save_start', 'bsf_info' may not
      be freed. Fixed!
    + removed double question for overwriting an existing file
    + if copying the log-window to the clipboard it will be
      converted from UNIX to DOS (LF to CRLF)
      (MINGW and GTK-2 only)

* ffmpeg.c
    + searching to previous frame may fail, if the current
      position is near the last frame and K/I/P-frame is
      requested. Fixed!
    + if at label '_got_picture' the condition 'last_frame != NULL'
      is true, the assignment 'video->vframe.packet[0].pos = -1'
      may overwrite the packet position which was found. Fixed!
    + searching one frame forward or backward may skip a frame
      with a duration less than the picture duration. Fixed!
    + the written file may too short if the duration of
      either audio or video is shorter than the other stream.
      The option 'shortest' was always active, now the user
      may choose if this should happen.
    + may hang if clicking twice on the slider at the same
      position. Fixed!
    + tiny memory leak in 'cff_ffmpeg_get_frame_dts'. Fixed!
    + flushing the codec at end of stream

version 0.5 (Nov 03 2018)
-----------

* gui.c
    + memory leak  in 'cff_gui_logwindow_cb'. Fixed!
    + now it is possible to close the log-window while
      opening a video file as long as the progressbar is
      not visible
    + using an extra thread for opening a video file while
      the progressbar is not visible, which speeds up
      displaying FFmpeg messages in the log-window
    + mutex for the progress-bar

* ffmpeg.c
    + adding a semaphore if closing the log-window while
      logging is active
    + searching the last frame may fail, if K/I/P-frame is
      requested. Fixed!
    + copying a file do not clear the dirty flag for the
      cutlist

* macros-gtk.h
    + 'GuiRecMutex' to 'GuiMutex'

version 0.4.2 (Aug 11 2018)
-------------

* gui.c
    + since GTK+ version 3.22.30 the window will not be
      proper drawn after start, but when changing the size
      of the window everything works fine. Testing the cairo
      surface pointer in the redraw functions and create a
      surface if the pointer is NULL fix this bug!
    + removed depricated functions 'gtk_color_button_get_rgb'
      and 'gtk_scrolled_window_add_with_viewport', since the
      required GTK+ version is min 3.10. (GTK-3 only)

* ffmpeg.c
    + works with FFmpeg version 4.0.2

version 0.4.1 (Jul 07 2018)
-------------

* gui.c
    + may hang in 'cff_gui_dialog_progress_callback' when
      finished saving a video. Calling 'g_main_context_wakeup'
      at the end of the function seems to fix this bug!

version 0.4 (Jun 09 2018)
-----------

* gui.c
    + on 'quit' the main-window will be closed, but the
      log-window may stay open, and the program will
      not shutdown. Fixed!
    + file open, program open, save and seeking for a
      frame runs in an extra thread
    + log-window with a dialog for choosing colors for
      text and background (right mouse button)

* ffmpeg.c
    + may crash on 'cff_ffmpeg_video_cut_list_clear' if
      video->cut.num == 0. Fixed!
    + if displaying the last frame and seeking one frame
      back may fail. Fixed! 
    + 'cff_ffmpeg_video_cut_add_dts'
        back to 'src->frame < src->packet'

version 0.3 (Apr 14 2018)
-----------

* gui.c
    + log window displaying FFmpeg messages

* ffmpeg.c
    + callback for FFmpeg messages
    + copying till the end of file may end with the error
      'av_read_frame failed'. Now really fixed!
      'cff_ffmpeg_read_packet'
        replaced 'avio_feof(pb) == 0 ||
          avio_tell(pb) < video->vframe.io_seek_end'
	with 'avio_feof(pb) != 0 ||
          avio_tell(pb) >= video->vframe.io_seek_end'
    + 'cff_ffmpeg_video_cut_add_dts'
        replaced 'src->frame < src->packet'
	with 'src->frame <= src->packet'


version 0.2 (Mar 24 2018)
-----------

* gui.c
    + check menu items for 'Key-frame' and 'I-frame' show
      wrong setting (either menu or popupmenu). Fixed!
    + save dialog with tabs, selection for bitstreamfilters
      and duration separate for video, audio and other
    + put the first video and audio stream into output list
    + submenu for displaying cutpoints
    + option for deleting the copy if an error occurs

* ffmpeg.c
    + if copying then the last cutpoint (which is the last
      stop and means copy till end) will be overwritten
      with a wrong dts. Fixed!
    + if juming to a cutpoint (previous/next/goto) the
      settings for Key/I/P-Frame will be ignored
    + copying till the end of file may end with the error
      'av_read_frame failed'. Fixed!
    + add the packet duration before rescaling
    + Undo and Redo for adding/removing cutpoints
    + add a cutpoint depends on value of 'has_b_frames':
        0)    frame != packet
        else) frame >  packet
    + add a cutpoint is only possible if neither frame
      nor packet exist in the list
    + a cutpoint can only deleted (the '-' button in
      'cf_gui.c' is enabled) if both frame and packet
      do exist
    + option for seeking P-frames
    + better decoding HEVC (waiting for first key-frame)
    + compute frame duration from 'ticks_per_second' with 
      stream (time) and context (fps) 'time_base'
    + saving with options 'duration' and 'bitstreamfilter'
      for Video, Audio and Other


version 0.1 (Dec 29 2017)
-----------

First release

/* EOF */
