Skip to content

Latest commit

 

History

History
135 lines (98 loc) · 6.56 KB

CHANGELOG.md

File metadata and controls

135 lines (98 loc) · 6.56 KB

Changelog

This project adheres to Semantic Versioning.

1.7.0 (2024-07-30)

  • Remove dependency on childprocess and os gems.

1.6.0 (2021-08-22)

  • Match "childprocess" gem version to selenium-webdriver. Closes #99.
  • Add support for screenshot resolution. Closes #98.

1.5.0 (2021-03-23)

  • Relax "os" gem version to minor level (#97). Thanks, hlascelles!

1.4.0 (2020-01-27)

  • Users can now select a ffmpeg capture device from advanced -> input.
  • Fix a bug where some advanced parameters were not parsed correctly.
  • Add support for audio stream capture (#15)
  • Fix #84 where the user given ffmpeg binary path was never used.
  • Relax childprocess gem version requirement to roughly match requirements in selenium-webdriver gem (#85)
  • Add support for capturing screenshots in both desktop and window modes (#44).

1.3.1 (2019-10-20)

  • Reattempt ffprobe execution up to times if the first try raises Errno::EAGAIN. Hopefully fixes #79.

1.3.0 (2019-07-26)

  • Support JRuby 9.2+ (#58)
  • Add ScreenRecorder:: as an alias for ScreenRecorder::Window.fetch_title. The Titles class will be removed in version 2.0.

1.2.0 (2019-05-12)

  • Separate input/output specific ffmpeg arguments through the advanced Hash. See example here.
  • Check for errors after starting the ffmpeg process to make sure the recording does not stop silently because of an error. Prints the error from the log if the process exists unexpectedly.
  • Now using childprocess gem to manage the ffmpeg process. This requires the ffi gem to be installed on Windows. See childprocess#132 for more information.

1.1.0 (2019-04-14)

  • Add support for macOS (#55). Thanks to Denys Bazarnyi for testing this and providing feedback.
  • Force kill ffmpeg if it takes more than 10s to quit (#60).
  • Fix a bug where ScreenRecorder.ffmpeg_binary=() was not properly defined.
  • ScreenRecorder::Titles#fetch will now raise NotImplementedError when used in a Linux or a macOS environment. Only works on Windows.
  • Default input value on Linux is now :0.

1.0.0 (2019-03-15)

  • Released first major version.
  • Now uses ScreenRecorder as top level module. FFMPEG is not directly exposed anymore.
  • The recording modes are now available through ScreenRecorder::Desktop and ScreenRecorder::Window classes to make the usage (parameters) simpler.
  • Method parameters are now keywords instead of an opts Hash. This means at least Ruby 2.0.0 is required.
  • framerate: is now to be passed through the advanced Hash.

1.0.0.beta13 (2019-03-15)

  • Gem will now be renamed to screen-recorder. Please refer to Issue #45 for more information.

1.0.0.beta12 (2019-03-12)

  • Reverted post install message as screen_recorder is already taken.

1.0.0.beta11 (2019-03-12)

  • Recording FPS (framerate) is defaulted to 15.0.
  • Gem will soon be renamed to screen_recorder. Please refer to Issue #45 for more information.

1.0.0.beta10 (2019-02-05)

  • Fixed an edge case in Microsoft Windows specific implementation of WindowTitles#fetch where processes with mismatching names and window titles, such as process "Calculator.exe" with window title "CicMarshalWnd", were omitted (#35). This fix also prints a warning when this mismatch occurs.
  • Fixed bug in Linux specific WindowTitles#fetch implementation where the filter by application name logic was removed. This filter is required on Linux here because wmctrl returns all open window titles unlike Microsoft Windows where taskmgr allows us get window titles by process name.
  • On Linux, you are now required to provide the input as "desktop" or a display number, such as ":0.0". Run echo $DISPLAY to check your display number.
  • QOL improvements - Type checking of inputs, spec cleanup, added more tests, and fixed rubocop warnings.

1.0.0.beta9 (2019-01-22)

  • ⚠️ FFMPEG::RecordingRegions is now FFMPEG::WindowTitles, so the module name is true to the function it provides.
  • Added support for for a user given path via FFMPEG#ffmpeg_binary=().
  • Removed Bundler version requirement from gemspec to support all versions.
  • Implement #discard (alias #delete) to discard the video file. Useful when your test passes and you want to get rid of the video file.

1.0.0.beta8 (2019-01-03)

  • Fix a bug where the gem was incorrectly configured to be required as ffmpeg/screenrecorder instead of screen-recorder.
  • ScreenRecorder#start now returns the IO process object in case the user has a use case for it.
  • RecordingRegion#fetch now logs a warning that x11grab for Linux does not supporting window recording.
  • ⚠️ Parameter infile is now input to make it more intuitive.

1.0.0.beta7 (2018-12-23)

  • Fix bug in RecorderOptions where an incorrect object was referenced to read the user provided options.

1.0.0.beta6 (2018-12-3)

  • Stopping the screenrecorder now prints the failure reason given by the ffmpeg binary when #stop fails (Issue #7).
  • Log file is now defaulted to ffmpeg.log instead of redirecting to nul.
  • log_level now defaults to Logger::ERROR instead of Logger::INFO.

1.0.0.beta5 (2018-11-26)

  • Screenrecorder class is now ScreenRecorder.
  • Add support for Linux.
  • Now an exception raised if the gem fails to find ffmpeg.
  • Fix a bug where a file named nul was created instead of directing the output to NUL.
  • Fix a bug where RecordingRegions#window_titles was not returning anything because of missing return keyword.