ffmpegfs (2.17-1.1) unstable; urgency=medium

  * Non-maintainer upload.
  * Backport upstream fixes for FTBFS with FFmpeg 8. (Closes: #1115015)

 -- Adrian Bunk <bunk@debian.org>  Sat, 03 Jan 2026 23:24:22 +0200

ffmpegfs (2.17-1) unstable; urgency=medium

  * Bugfix: Issue #164: Fixed incorrectly discarded HLS seek requests.

  * Bugfix: Wrong error message fixed when an invalid audio/video codec was
    selected. The message should rather say "unsupported codec" instead of
    talking about "sample format not supported.".
  * Bugfix: Issue #162: If not present, add time stamps to the copied streams.
  * Changed quality from 34 to 40 for hardware encoded video streams to create
    slightly smaller files.
  * Closes: #1084487: Moved from the Fuse 2 to the Fuse 3 API.

 -- Norbert Schlia <nschlia@oblivion-software.de>  Fri, 22 Nov 2024 16:43:59 +0100

ffmpegfs (2.16-1) unstable; urgency=medium

  * Bugfix: Closes:1072412: Fix build with FFmpeg 7.0. write_packet() now with
    const buffer as of Libavformat 61+.
  * Fixed deprecation: 2014-05-18 - 68c0518 / fd05602 - lavc 55.63.100 / 55.52.0
    - avcodec.h
    Add avcodec_free_context(). From now on it should be used for freeing
    AVCodecContext.
  * Fixed deprecation: 2023-05-15 - 7d1d61cc5f5 - lavc 60 - avcodec.h
    Depreate AVCodecContext.ticks_per_frame in favor of
    AVCodecContext.framerate (encoding) and
    AV_CODEC_PROP_FIELDS (decoding).

 -- Norbert Schlia <nschlia@oblivion-software.de>  Mon, 10 Jun 2024 21:05:51 +0200

ffmpegfs (2.15-1) unstable; urgency=medium

  * Bugfix: Issue #151: Fixed autocopy STRICT never triggers for video streams
  * Bugfix: Closes #153: The --include_extensions parameter now contains a
    description, which was previously missing from the manual and online help.
  * Issue #149: 2023-05-04 - xxxxxxxxxx - lavu 58.7.100 - frame.h
    Deprecate AVFrame.interlaced_frame, AVFrame.top_field_first, and
    AVFrame.key_frame.
    Add AV_FRAME_FLAG_INTERLACED, AV_FRAME_FLAG_TOP_FIELD_FIRST, and
    AV_FRAME_FLAG_KEY flags as replacement.
  * Issue #149: 2023-05-04 - xxxxxxxxxx - lavu 58.7.100 - frame.h
    Deprecate AVFrame.interlaced_frame, AVFrame.top_field_first, and
    AVFrame.key_frame.
    Add AV_FRAME_FLAG_INTERLACED, AV_FRAME_FLAG_TOP_FIELD_FIRST, and
    AV_FRAME_FLAG_KEY flags as replacement.
  * Issue #149: 2021-09-20 - dd846bc4a91 - lavc 59.8.100 - avcodec.h codec.h
    Deprecate AV_CODEC_FLAG_TRUNCATED and AV_CODEC_CAP_TRUNCATED,
    as they are redundant with parsers.
  * Closes #136: The CMake build files have been removed. Support was never more
    than experimental, and CMake lacks a good uninstall option. Will stick to
    automake system from now on.

 -- Norbert Schlia <nschlia@oblivion-software.de>  Sat, 03 Feb 2024 21:11:45 +0100

ffmpegfs (2.14-1) unstable; urgency=medium

  * Bugfix: Closes #141: Improved memory management by allocating several times
    the average size of allocations. This prevents obtaining tiny portions over
    and over again. Additionally, after the file is opened, grab the entire
    expected memory block rather than doing a tiny allocation initially,
    followed by a larger allocation.
  * Bugfix: Avoid race conditions that cause the inter-process semaphore
    creation to fail for the second process.
  * Bugfix: Issue #119: If a seek request is still open after EOF, restart
    transcoding.
  * Bugfix: Issue #119: To prevent frame/segment creation errors, the frame set
    and HLS code has been updated.
  * Bugfix: Avoid crashes during shutdown if cache objects have already been
    closed.
  * Bugfix: Issue #119: The AVSEEK_FLAG_FRAME set should be used to seek to
    frames when building frame sets. Otherwise, output images may vary if
    searched for or continuously decoded.
  * Bugfix: The conversion of PTS to frame number and vice versa for frame sets
    was incorrect if TBR did not equal frames per second.
  * Bugfix: Fixed seek requests that are being ignored with frame sets.
  * Bugfix: When transferring from cache to the Fuse buffer, avoid a possible
    1 byte overrun.
  * Bugfix: Issue #143: To avoid occasional EPERM failures, missing
    synchronisation objects were added.
  * Bugfix: Issue #144: To fix the crashes that may have been caused by them,
    the variables impacted by a potential threading issue were marked as
    "volatile."
  * Bugfix: Closes:#1037653: Fix build with GCC-13
  * Bugfix: Update docker build for Debian Bookworm
  * Enhancement: Record milliseconds for every log event.
  * Enhancement: make check: added a file size check to frame set tests.
  * Optimisation: When reopening after invalidating the cache, the size remained
    at 0. The original size is now once again reserved in order to prevent
    reallocations.
  * Optimisation: To avoid reallocations, save enough space in the cache buffer
    to hold the entire frame set.
  * Optimisation: Checking folders to see if they can be transcoded is
    completely pointless. Directories are now immediately skipped.
  * To avoid problems with logfile viewers, renamed built-in logfiles to
    *_builtin.log (removing the double extension).

 -- Norbert Schlia <nschlia@oblivion-software.de>  Thu, 15 Jun 2023 22:01:32 +0200

ffmpegfs (2.13-1) unstable; urgency=medium

  * Added --prebuffer_time parameter. Files will be decoded until the buffer
    contains the specified playing time, allowing playback to start smoothly
    without lags. Works similar to --prebuffer_size but gives better control
    because it does not depend on the bit rate. An example: when set to
    25 seconds for HLS transcoding, this will make sure that at least 2 complete
    segments will be available once the file is released and visible.
  * Feature: Closes #140: Filtering the files that will be encoded has been
    added. A comma-separated list of extensions is specified by the
    --include_extensions parameter. These file extensions are the only ones that
    will be transcoded.
    The entries support shell wildcard patterns.
  * Feature: The --hide_extensions parameter syntax has been extended. The
    entries now support shell wildcard patterns.
  * Bugfix: Closes #139: Additional files could be added using the --extensions
    parameter. However, this is no longer necessary; in the past, a file's
    extension determined whether or not it would be transcoded. Files with
    unknown extensions would be ignored. The extension is no longer important
    because FFmpegfs now examines all input files and recognises transcodable
    files by the format.
    The outdated --extensions argument was removed without substitution.
  * Bugfix: Fixed crash when implode() function was called with an empty string.
    Happened with Windows GCC 11.3.0 only.

 -- Norbert Schlia <nschlia@oblivion-software.de>  Sun, 15 Jan 2023 12:19:42 +0100

ffmpegfs (2.12-1) unstable; urgency=medium

  * The code has been run through clang-tidy to identify bug-prone or
    inefficient code, and to find parts that could be modernised to C++17.
    Several issues could be resolved. Sometimes, many lines of code could be
    replaced by a few. Some parts run far more efficiently than before. C++17
    is cool. I need to get a t-shirt.
  * Bugfix: In get prores bitrate(), a crash that might have happened under
    unusual circumstances has been corrected. If the best match resolution
    could not be found, array access out-of-bounds could happen.
  * Bugfix: Several unlikely, but potential problems that could have happened
    when subtitle decoding failed or delayed video/audio packets couldn't be
    decoded have been fixed.
  * Bugfix: An internal problem could cause the application to crash. Should
    never happen, though. Fixed anyway.
  * Bugfix: Sometimes, the last segment's estimated size was incredibly small -
    about 2 bytes. Each segment should have the same predicted size as it is
    calculated simply by dividing the projected size of the entire file by the
    number of segments. Following transcoding, the size was accurate.

 -- Norbert Schlia <nschlia@oblivion-software.de>  Sat, 27 Aug 2022 17:08:02 +0200

ffmpegfs (2.11-1) unstable; urgency=medium

  * Feature: Issue #86: Smart transcode now detects if a source file is audio
    only and uses the correct target format. For example, with
    --destination=webm+mp3, if one MP4 input file contains a video stream and
    another an audio stream only, the resulting files will be WebM (for the
    video input) and mp3 for the audio only file.
  * Feature: Issue #137: Add --no_subtitles option to turn subtitles off.
  * Bugfix: Smart encode selected the video format for cue sheet tracks,
    regardless of the input format. This has been fixed now.
  * Bugfix: Fix a crash that occurs when a DVD/Blu-ray is transcoded to audio
    only.
  * Bugfix: If the track performer field in the cuesheet is blank, try album
    performer instead.
  * Bugfix: Failing to mount Fuse during "make check" went unnoticed as the
    result code (which was supposed to be 99) was actually 0. Return the correct
    result code, failing the operation as expected.
  * Bugfix: The Docker build command contained a "make check" which actually
    failed altogether. Step has been removed. "make check" mounts Fuse, but this
    requires privileges that do not exist during "docker build".
  * Bugfix: On error, mremap () returns MAP_FAILED rather than NULL. Fixed a
    check for incorrect error conditions, which could cause the application to
    crash or return illogical error messages.
  * Bugfix: Issue #119: Fix a problem that caused frame set generation to fail
    sometimes. It seems to be related to the nremap() issue.
  * Generally revisited documentation, logging, and display texts. Improved
    grammar, formatting, and fixed quite a few typos that escaped all
    proofreading sessions.
  * The FFmpeg API INFO and DEBUG level log output has been changed to the
    FFmpegfs DEBUG level. What FFmpeg considers "INFO" is far too chatty.
  * Frequent memory reallocations when creating HLS segments have been reduced
    to speed up processing.
  * Optimised logging to save CPU time by not formatting log entries that are
    not written anyway at their log level.
  * Logging has been revised to shorten file paths and remove mount, input, and
    cache paths. Log the additional portion only to reduce log file size and
    improve readability.
  * Bugfix: To fix the build with GCC 12, add the missing include headers
    (closes: #1012925).

 -- Norbert Schlia <nschlia@oblivion-software.de>  Thu, 16 Jun 2022 16:44:18 +0200

ffmpegfs (2.10-2) unstable; urgency=medium

  * Drop MULTIFRAME_NODE typedef in favour of auto to avoid build fails under
    arm/i386/mipsel.

 -- Norbert Schlia <nschlia@oblivion-software.de>  Sun, 15 May 2022 16:28:10 +0200

ffmpegfs (2.10-1) unstable; urgency=medium

  * Feature: Issue #123: New command line option to hide files by extension.
    Example: --hide_extensions=jpg,png,cue would stop covers and cue sheets
    from showing up.
  * Feature: Issue #120: Added subtitle support. Subtitle streams can now also
    be transcoded to the output files. Separate SRT or VTT files will be
    incorporated as subtitle streams.
  * Bugfix: Fixed memory leak in encode_audio_frame().
  * Bugfix: Issue #122: Last song was missing from cuesheet files.
  * Bugfix: Issue #129: Files remained zero size when previously transcoded.
  * Bugfix: Issue #130: Fix file sizes can be incorrectly reported by ls but
    are correct when data is read.
  * Bugfix: Duration was not saved in cache SQLite database.
  * Bugfix: Issue #131: Sometimes video parameters for some Bluray or DVD
    chapters cannot be detected by FFmpeg API. Transcode then failes - fixed
    by using data from the Bluray directory or DVD IFO instead.
  * Lowest supported FFmpeg API version raised to 4.1.8 "al-Khwarizmi".
  * Dropped libavresample support, library was removed from FFmpeg API after
    3.4.9.
  * Deprecated previous channel layout API based on uint64 bitmasks.
  * Deprecated swr_alloc_set_opts() and swr_build_matrix().
  * Going C++17 now: The packet queue has been recoded in C++17 to support
    external subtitles files. As C++17 is required now, why not go all the way:
    Starting to replace legacy C++ and somewhat C-like parts with real C++.
  * Using std::shared_ptr to ensure proper memory allocation/free.

 -- Norbert Schlia <nschlia@oblivion-software.de>  Tue, 26 Apr 2022 20:00:34 +0200

# For older changelog entries, run 'apt-get changelog ffmpegfs'
