]>
git.nihav.org Git - nihav-encoder.git/log
Kostya Shishkov [Sat, 25 Apr 2026 16:33:17 +0000 (18:33 +0200)]
allow low-bits palette modes as well
Kostya Shishkov [Sat, 25 Apr 2026 10:59:36 +0000 (12:59 +0200)]
palettise: clear the unused part of the palette
Kostya Shishkov [Sat, 25 Apr 2026 08:52:27 +0000 (10:52 +0200)]
set pixel format to pal8 if palettisation is requested
Kostya Shishkov [Sat, 25 Apr 2026 08:44:36 +0000 (10:44 +0200)]
allow palettisation for a defined number of colours
Kostya Shishkov [Thu, 23 Apr 2026 19:09:31 +0000 (21:09 +0200)]
introduce silent option setting and use for encoder post-init options setting
Otherwise it complains about invalid or unknown options twice.
Kostya Shishkov [Thu, 23 Apr 2026 16:51:50 +0000 (18:51 +0200)]
add a mode for multiple palettes per video (that is not one per frame)
Kostya Shishkov [Thu, 23 Apr 2026 16:06:12 +0000 (18:06 +0200)]
palettise: fix cache search in palettisation
Kostya Shishkov [Fri, 17 Apr 2026 16:25:04 +0000 (18:25 +0200)]
improve palettisation
* add an alternative colour counter mode (faster but eats a lot of RAM)
* add support for palette generation options (to that mode can be set)
* change full palettisation mode into using 16MB LUT
Kostya Shishkov [Thu, 16 Apr 2026 19:13:37 +0000 (21:13 +0200)]
palettise: ignore skip frames
Kostya Shishkov [Thu, 16 Apr 2026 19:09:53 +0000 (21:09 +0200)]
palettise: introduce simple cache for faster palettisation
Kostya Shishkov [Thu, 16 Apr 2026 18:38:41 +0000 (20:38 +0200)]
use PaletteSearchMode from nihav_core
Kostya Shishkov [Wed, 15 Apr 2026 20:01:37 +0000 (22:01 +0200)]
add global palette calculation feature/hack
Kostya Shishkov [Wed, 15 Apr 2026 16:51:42 +0000 (18:51 +0200)]
move decoder creation into a separate transcoder function
Kostya Shishkov [Tue, 14 Apr 2026 18:28:51 +0000 (20:28 +0200)]
fix clippy warning
Kostya Shishkov [Tue, 14 Apr 2026 18:26:24 +0000 (20:26 +0200)]
bolt on global palette conversion functionality
In the future it should probably implemented as more flexible filter
pipeline and support calculating palette for the output, but for now
even such hack should do.
Kostya Shishkov [Tue, 14 Apr 2026 16:25:23 +0000 (18:25 +0200)]
factor out stream encoder creation logic
The original instances were slightly different so it may re-introduce
some bugs but it's better to fix or change code just in one place.
Kostya Shishkov [Fri, 10 Apr 2026 17:36:57 +0000 (19:36 +0200)]
improve displayed time a bit
Kostya Shishkov [Tue, 31 Mar 2026 19:08:28 +0000 (21:08 +0200)]
do not allow packets with palette changes for muxers that don't support it
Kostya Shishkov [Tue, 31 Mar 2026 15:46:02 +0000 (17:46 +0200)]
Create scaler when input video format differs from the expected output format
Kostya Shishkov [Mon, 30 Mar 2026 13:55:27 +0000 (15:55 +0200)]
add a raw profile for MOV muxer
Kostya Shishkov [Mon, 30 Mar 2026 13:54:47 +0000 (15:54 +0200)]
parse stream-specific profile video options
Kostya Shishkov [Mon, 2 Mar 2026 17:49:16 +0000 (18:49 +0100)]
remove useless &format!("const string") in debug log
Kostya Shishkov [Sat, 14 Feb 2026 10:54:43 +0000 (11:54 +0100)]
introduce debug logging
Kostya Shishkov [Sat, 14 Feb 2026 04:29:18 +0000 (05:29 +0100)]
improve syncing somewhat
Kostya Shishkov [Fri, 13 Feb 2026 20:00:00 +0000 (21:00 +0100)]
implement volume adjustment for output audio streams
Kostya Shishkov [Thu, 12 Feb 2026 06:38:08 +0000 (07:38 +0100)]
add an option to prune unsupported input streams
Kostya Shishkov [Thu, 12 Feb 2026 06:13:07 +0000 (07:13 +0100)]
make --ignerr ignore streams where decoder failed to initialise too
Kostya Shishkov [Thu, 12 Feb 2026 05:48:00 +0000 (06:48 +0100)]
do not attempt to create decoders for ignored media types
Kostya Shishkov [Wed, 4 Feb 2026 18:00:57 +0000 (19:00 +0100)]
use clippy suggestion
Kostya Shishkov [Wed, 4 Feb 2026 17:59:14 +0000 (18:59 +0100)]
improve printing input file information
Kostya Shishkov [Wed, 4 Feb 2026 17:07:39 +0000 (18:07 +0100)]
print input stream name and number
Kostya Shishkov [Sat, 31 Jan 2026 14:49:07 +0000 (15:49 +0100)]
switch to nihav_hlblocks for demuxer and image sequence code
Kostya Shishkov [Sat, 31 Jan 2026 12:38:34 +0000 (13:38 +0100)]
use self-borrow box that from nihav_core
Kostya Shishkov [Thu, 22 Jan 2026 18:06:02 +0000 (19:06 +0100)]
switch to NATimeInfo::rescale_ts()
Kostya Shishkov [Tue, 20 Jan 2026 17:20:30 +0000 (18:20 +0100)]
add -f for selecting input stream 0 format
Kostya Shishkov [Thu, 15 Jan 2026 06:02:45 +0000 (07:02 +0100)]
add an option to keep encoding despite decoding errors
Kostya Shishkov [Fri, 10 Oct 2025 16:53:10 +0000 (18:53 +0200)]
fix target timebase calculation
Kostya Shishkov [Fri, 10 Oct 2025 16:48:57 +0000 (18:48 +0200)]
select proper reorderer depending on codec type
Kostya Shishkov [Mon, 18 Aug 2025 16:54:37 +0000 (18:54 +0200)]
switch to ByteIO
Kostya Shishkov [Wed, 28 May 2025 16:20:14 +0000 (18:20 +0200)]
use u32::MAX instead of deprecated std::u32::MAX
Kostya Shishkov [Wed, 28 May 2025 16:17:39 +0000 (18:17 +0200)]
transcoder: remove unused trait method
Kostya Shishkov [Wed, 28 May 2025 16:17:09 +0000 (18:17 +0200)]
simplify null muxer implementation a bit
Kostya Shishkov [Wed, 9 Apr 2025 16:53:58 +0000 (18:53 +0200)]
set default parameters for PCM output in case input format is incompatible
Kostya Shishkov [Wed, 9 Apr 2025 16:30:49 +0000 (18:30 +0200)]
set some default audio format for PCM encoder
This is better than re-using input format and running into problems with
e.g. ADPCM source resulting into 4-bit PCM that sound converter can't handle.
Kostya Shishkov [Wed, 9 Apr 2025 16:16:20 +0000 (18:16 +0200)]
handle demuxer creation errors more gracefully
Kostya Shishkov [Tue, 8 Apr 2025 16:38:23 +0000 (18:38 +0200)]
fix displaying copy marker
Kostya Shishkov [Mon, 7 Apr 2025 17:05:08 +0000 (19:05 +0200)]
create audio format converter when input format differs from expected
This may be needed when the decoded format differs from the declared one
(e.g. demuxer reports 16-bit audio while audio decoder outputs floats).
Also factor out channel map generation code so in case it ever gets
improved I don't have to change it in three places.
Kostya Shishkov [Mon, 7 Apr 2025 16:42:08 +0000 (18:42 +0200)]
make audio converter output some samples if the output format does not care
Otherwise it would go into infinite loop outputting zero samples.
Kostya Shishkov [Mon, 24 Mar 2025 16:48:54 +0000 (17:48 +0100)]
fix the bug with minimum duration calculation
It should be minimal known duration, previously it was always set to zero.
Kostya Shishkov [Mon, 24 Mar 2025 16:45:59 +0000 (17:45 +0100)]
print last valid time instead of question marks when current time is unknown
Kostya Shishkov [Sun, 23 Mar 2025 17:22:10 +0000 (18:22 +0100)]
add raw avi profile
Kostya Shishkov [Sat, 22 Mar 2025 15:00:47 +0000 (16:00 +0100)]
do not attempt to synchronise packets when some of them lack timestamps
Kostya Shishkov [Fri, 21 Mar 2025 12:59:13 +0000 (13:59 +0100)]
hopefully fix audio parameters
Kostya Shishkov [Fri, 21 Mar 2025 11:36:58 +0000 (12:36 +0100)]
add profiles for lazier encoding
Kostya Shishkov [Fri, 21 Mar 2025 11:19:17 +0000 (12:19 +0100)]
mark copied streams
Kostya Shishkov [Thu, 20 Mar 2025 17:09:14 +0000 (18:09 +0100)]
do not try to fill too large gaps in CFR mode
Kostya Shishkov [Wed, 19 Mar 2025 17:54:29 +0000 (18:54 +0100)]
handle possible encoding errors instead of panicking on .unwrap()
Kostya Shishkov [Wed, 19 Mar 2025 17:35:18 +0000 (18:35 +0100)]
error out on too large constant framerate
Kostya Shishkov [Wed, 19 Mar 2025 17:30:11 +0000 (18:30 +0100)]
add framerate conversion ability
Kostya Shishkov [Mon, 17 Mar 2025 17:55:15 +0000 (18:55 +0100)]
retrieve last (possibly unsynchronised) packets at the end
Kostya Shishkov [Mon, 17 Mar 2025 17:51:20 +0000 (18:51 +0100)]
attempt to sync packets when possible
Kostya Shishkov [Sun, 16 Mar 2025 17:51:50 +0000 (18:51 +0100)]
improve the process of queueing and retrieving packets
This should make it queue all packets (without losing them) and stop
at the right position without sending flushed packets after cut-off
to the muxer.
Additionally it should emprove encoding PCM audio.
Kostya Shishkov [Sat, 15 Mar 2025 17:59:30 +0000 (18:59 +0100)]
refactor code for more self-contained encoders and decoders
Kostya Shishkov [Sat, 15 Mar 2025 12:44:34 +0000 (13:44 +0100)]
prepare framework for syncing output packets
Kostya Shishkov [Fri, 14 Mar 2025 17:30:39 +0000 (18:30 +0100)]
split transcoder code into separate module
Kostya Shishkov [Thu, 13 Mar 2025 17:57:17 +0000 (18:57 +0100)]
enforce streams duration calculation in case muxer quirk demands it
Kostya Shishkov [Thu, 13 Mar 2025 17:37:42 +0000 (18:37 +0100)]
set audio encoder timebase to the first video stream timebase automatically
This allows e.g. PCM encoder to calculate frame length.
Kostya Shishkov [Thu, 13 Mar 2025 17:33:22 +0000 (18:33 +0100)]
add muxer quirks to NULL muxer
Kostya Shishkov [Sun, 30 Jun 2024 12:11:40 +0000 (14:11 +0200)]
introduce --iformat as an alias for --input-format
Kostya Shishkov [Sun, 30 Jun 2024 12:10:18 +0000 (14:10 +0200)]
imgseq: always use rawvideo
rawvideo-ms requires a padding to multiple of 4 and thus not always suitable
Kostya Shishkov [Sat, 27 Apr 2024 11:41:55 +0000 (13:41 +0200)]
use NAPacketiser::attach_stream() where appropriate
Kostya Shishkov [Fri, 5 Jan 2024 17:10:51 +0000 (18:10 +0100)]
make audio pipe work with interleaved audio properly
Kostya Shishkov [Fri, 5 Jan 2024 17:10:15 +0000 (18:10 +0100)]
force PCM audio processing in (almost) all cases
Kostya Shishkov [Fri, 5 Jan 2024 11:45:12 +0000 (12:45 +0100)]
audio queue: support interleaved formats
Kostya Shishkov [Sat, 11 Nov 2023 14:10:12 +0000 (15:10 +0100)]
OnlyVideo/OnlyAudio muxer capabilities mean several streams are accepted
Kostya Shishkov [Fri, 6 Oct 2023 16:47:40 +0000 (18:47 +0200)]
add an option to set the same timebase for as the first video stream
Kostya Shishkov [Tue, 3 Oct 2023 15:16:37 +0000 (17:16 +0200)]
add option to calculate number of frames in the stream
This information may be useful when e.g. transcoding full input file to Bink.
Kostya Shishkov [Tue, 3 Oct 2023 15:14:40 +0000 (17:14 +0200)]
make demuxer print information only when requested
Kostya Shishkov [Sun, 1 Oct 2023 16:05:26 +0000 (18:05 +0200)]
parse and try to apply output stream options before the encoder is created too
Kostya Shishkov [Sun, 1 Oct 2023 16:03:50 +0000 (18:03 +0200)]
exit in case muxer is not found
Kostya Shishkov [Fri, 25 Aug 2023 16:09:41 +0000 (18:09 +0200)]
print unrecognized option/argument value
Kostya Shishkov [Sat, 19 Aug 2023 16:02:09 +0000 (18:02 +0200)]
allow encoder to work with multiple inputs
Kostya Shishkov [Sat, 19 Aug 2023 15:54:44 +0000 (17:54 +0200)]
whitespace fix
Kostya Shishkov [Sun, 13 Aug 2023 16:04:00 +0000 (18:04 +0200)]
add PNM image sequence as possible input source
Kostya Shishkov [Thu, 27 Jul 2023 16:17:35 +0000 (18:17 +0200)]
fix clippy warnings
Kostya Shishkov [Thu, 25 May 2023 15:46:15 +0000 (17:46 +0200)]
improve audio conversion
Kostya Shishkov [Thu, 18 May 2023 16:54:45 +0000 (18:54 +0200)]
do not use 'str' as the variable name
Kostya Shishkov [Thu, 18 May 2023 16:46:37 +0000 (18:46 +0200)]
recognize /dev/null as null muxer output by default
Kostya Shishkov [Tue, 16 May 2023 16:13:11 +0000 (18:13 +0200)]
duplicate last frame when the encoder does not support skip frames
Kostya Shishkov [Fri, 5 May 2023 16:01:34 +0000 (18:01 +0200)]
improve audio processing pipeline
Kostya Shishkov [Thu, 4 May 2023 16:22:39 +0000 (18:22 +0200)]
parse bitrate in a more flexible way
Kostya Shishkov [Tue, 14 Mar 2023 10:12:43 +0000 (11:12 +0100)]
adapt to freshly-introduced encoder capabilities
Kostya Shishkov [Fri, 10 Mar 2023 18:35:17 +0000 (19:35 +0100)]
enhance printed runtime stats
Kostya Shishkov [Fri, 10 Mar 2023 17:23:23 +0000 (18:23 +0100)]
pass null frames to the encoder without attempting to convert them
Kostya Shishkov [Mon, 22 Nov 2021 17:43:03 +0000 (18:43 +0100)]
use raw stream duration
Kostya Shishkov [Thu, 18 Nov 2021 13:11:27 +0000 (14:11 +0100)]
calculate PTS for raw stream if needed and possible
Kostya Shishkov [Thu, 18 Nov 2021 12:58:28 +0000 (13:58 +0100)]
document --verbose option
Kostya Shishkov [Wed, 17 Nov 2021 17:40:51 +0000 (18:40 +0100)]
add verbose option
Kostya Shishkov [Wed, 17 Nov 2021 16:51:16 +0000 (17:51 +0100)]
try to apply default encoder if possible
Kostya Shishkov [Wed, 17 Nov 2021 16:31:28 +0000 (17:31 +0100)]
support various input stream types