]>
git.nihav.org Git - nihav.git/log
Kostya Shishkov [Wed, 23 Sep 2026 14:10:02 +0000 (16:10 +0200)]
qdraw: implement DirectBits 32-bit mode
Kostya Shishkov [Tue, 22 Sep 2026 15:33:45 +0000 (17:33 +0200)]
qdraw: add destination rescaling mode
Kostya Shishkov [Sat, 19 Sep 2026 08:28:39 +0000 (10:28 +0200)]
nihav_qt: introduce a public function for custom creating of QDraw decoder
It is needed for the various QuickTime codecs support inside QuickDraw data.
Kostya Shishkov [Fri, 18 Sep 2026 09:07:25 +0000 (11:07 +0200)]
mov: recognise PPT data stream
Kostya Shishkov [Wed, 16 Sep 2026 16:30:32 +0000 (18:30 +0200)]
qdraw: try to decode QT data with a sub-codec
It is limited to the codecs inside nihav_qt crate though.
Kostya Shishkov [Wed, 16 Sep 2026 16:23:38 +0000 (18:23 +0200)]
8bps: support interleaved plane format
It seems to be signalled by first line size = 1.
Kostya Shishkov [Wed, 16 Sep 2026 14:31:27 +0000 (16:31 +0200)]
8BPS decoder support
Kostya Shishkov [Wed, 16 Sep 2026 14:30:43 +0000 (16:30 +0200)]
mov: fix read_palette() reporting wrong read amount
Kostya Shishkov [Sat, 12 Sep 2026 14:57:17 +0000 (16:57 +0200)]
nihav_registry/registry: add yet another JPEG in MOV tag
Kostya Shishkov [Sat, 12 Sep 2026 14:24:10 +0000 (16:24 +0200)]
mov: handle special flattened files
They seem to simply concatenate various data forks, usually with some
irrelevant data around moov atom.
Kostya Shishkov [Sat, 12 Sep 2026 14:23:43 +0000 (16:23 +0200)]
mov: recognise skin data stream
Kostya Shishkov [Sat, 12 Sep 2026 13:55:58 +0000 (15:55 +0200)]
mov: recognise 0x0000000 as PCM format
Kostya Shishkov [Sat, 12 Sep 2026 13:55:21 +0000 (15:55 +0200)]
mov: ignore short zero padding at the end of codec descriptor
Kostya Shishkov [Sat, 12 Sep 2026 12:32:03 +0000 (14:32 +0200)]
mov: try to guess data stream type from its handler if possible
This is a preparation work for a new tool that will handle such streams.
Kostya Shishkov [Sat, 12 Sep 2026 08:37:01 +0000 (10:37 +0200)]
nihav_hlblocks/demux: implement skipping PE player in detect_tags()
This usually comes in handy with the embedded Bink player.
Kostya Shishkov [Sat, 12 Sep 2026 08:00:01 +0000 (10:00 +0200)]
nihav_hlblocks/demux: ignore RIFF MP3 container as well
Kostya Shishkov [Fri, 28 Aug 2026 14:49:44 +0000 (16:49 +0200)]
avi: support greyscale raw video
Kostya Shishkov [Fri, 28 Aug 2026 14:48:56 +0000 (16:48 +0200)]
nihav_codec_support/msstructs: do not error out on greyscale format
Kostya Shishkov [Sat, 22 Aug 2026 17:21:12 +0000 (19:21 +0200)]
janitorial: refactor some manual range loops
Kostya Shishkov [Sat, 22 Aug 2026 17:11:51 +0000 (19:11 +0200)]
vp8: use padded buffer for (near)empty data partitions
Kostya Shishkov [Sat, 22 Aug 2026 17:01:58 +0000 (19:01 +0200)]
duck_ivf: support files with zero declared frames
Kostya Shishkov [Wed, 19 Aug 2026 17:12:22 +0000 (19:12 +0200)]
mov: skip mfra box
Kostya Shishkov [Wed, 19 Aug 2026 16:38:46 +0000 (18:38 +0200)]
mov: better handling of size-zero atoms/boxes
Kostya Shishkov [Sun, 2 Aug 2026 17:13:07 +0000 (19:13 +0200)]
nihav_misc/avix: remove unneeded mut qualifier
Kostya Shishkov [Mon, 27 Jul 2026 16:15:48 +0000 (18:15 +0200)]
Sun RAD screenplay AVIX demuxer
Kostya Shishkov [Fri, 24 Jul 2026 13:06:05 +0000 (15:06 +0200)]
janitorial: pretty format potentially extensible lists in Cargo.toml
This should make them easier to extend than just one extremely long line.
Kostya Shishkov [Fri, 24 Jul 2026 12:38:36 +0000 (14:38 +0200)]
mov: ignore uuid box
Kostya Shishkov [Fri, 24 Jul 2026 12:32:24 +0000 (14:32 +0200)]
NeXT Micro Wavelet decoder
Kostya Shishkov [Fri, 24 Jul 2026 12:30:21 +0000 (14:30 +0200)]
mov: load track user data into codec extradata in certain cases
This is needed mostly for NeXTTime Micro Wavelet codec
Kostya Shishkov [Fri, 24 Jul 2026 12:29:51 +0000 (14:29 +0200)]
mov: allow handling of (normally) ignored chunks
Kostya Shishkov [Wed, 15 Jul 2026 13:24:19 +0000 (15:24 +0200)]
add decoder for Pixar QuickTime codecs
Kostya Shishkov [Wed, 10 Jun 2026 16:05:41 +0000 (18:05 +0200)]
movmux: allow setting custom track tag
Kostya Shishkov [Tue, 9 Jun 2026 18:39:10 +0000 (20:39 +0200)]
use common definition for forcing stream tag option
Kostya Shishkov [Tue, 9 Jun 2026 16:52:58 +0000 (18:52 +0200)]
nihav_core/muxer: make Muxer fields and constructor public
At last this will allow creating it from custom MuxCore manually.
Kostya Shishkov [Tue, 9 Jun 2026 16:52:30 +0000 (18:52 +0200)]
avimux: allow setting custom stream tags
Kostya Shishkov [Sat, 30 May 2026 10:15:00 +0000 (12:15 +0200)]
nihav_indeo: rewrite some bits of Indeo 4/5 using more modern Rust
Kostya Shishkov [Thu, 28 May 2026 05:28:36 +0000 (07:28 +0200)]
nihav_registry: add AC3 entry for MOV (MP4)
Kostya Shishkov [Sat, 23 May 2026 15:41:46 +0000 (17:41 +0200)]
resurrect VX video decoder
While VX format is handled by na_game_tool, this codec may occur
in AVI as well. So this decoder will be used just for that.
Kostya Shishkov [Thu, 21 May 2026 16:28:31 +0000 (18:28 +0200)]
(very basic) JPEG encoder
Kostya Shishkov [Thu, 21 May 2026 16:26:45 +0000 (18:26 +0200)]
avimuxer: report 8-bit no-palette format (greyscale) as 24-bit
Kostya Shishkov [Tue, 19 May 2026 04:28:09 +0000 (06:28 +0200)]
avimuxer: pad odd-sized chunks
Kostya Shishkov [Tue, 19 May 2026 04:12:14 +0000 (06:12 +0200)]
vp56: remove outdated comment
Kostya Shishkov [Tue, 19 May 2026 04:09:03 +0000 (06:09 +0200)]
vp6: add a test for Huffman-encoded VP6A
Kostya Shishkov [Tue, 19 May 2026 04:05:10 +0000 (06:05 +0200)]
vp6: fix image data buffer size for Huffman-coded VP6 with alpha
Reported by Benjamin Berman (via Attila Török)
Kostya Shishkov [Tue, 19 May 2026 03:56:41 +0000 (05:56 +0200)]
flvdemux: support extremely short files
Kostya Shishkov [Sat, 16 May 2026 14:32:28 +0000 (16:32 +0200)]
SMC encoder
Kostya Shishkov [Sat, 16 May 2026 08:17:55 +0000 (10:17 +0200)]
nihav_ms/imaadpcmenc: fix encoder
The format outputs deltas in 32-bit words, so block length should be
8*N+1 and the channel output should be grouped accordingly.
Kostya Shishkov [Fri, 15 May 2026 16:31:29 +0000 (18:31 +0200)]
mov: support demuxing self-created IMA ADPCM tracks
Kostya Shishkov [Fri, 15 May 2026 16:24:54 +0000 (18:24 +0200)]
mace: apparently MACE-3 decodes two byte packets per channel
Kostya Shishkov [Fri, 15 May 2026 16:21:54 +0000 (18:21 +0200)]
QT IMA ADPCM encoder
Kostya Shishkov [Fri, 15 May 2026 16:19:41 +0000 (18:19 +0200)]
nihav_commonfmt: allow validate!() to be unused
This suppresses a warning when (e.g. a test environment) imports
only decoders that do not use it.
Kostya Shishkov [Fri, 15 May 2026 15:52:27 +0000 (17:52 +0200)]
MACE-3 and MACE-6 encoder
Kostya Shishkov [Fri, 15 May 2026 15:51:02 +0000 (17:51 +0200)]
mace: split common code in preparations for an upcoming encoder
Kostya Shishkov [Wed, 13 May 2026 16:53:28 +0000 (18:53 +0200)]
change 'recognize' to 'recognise'
Kostya Shishkov [Wed, 13 May 2026 16:50:44 +0000 (18:50 +0200)]
rename 'gray' to 'grey' where appropriate
Kostya Shishkov [Wed, 13 May 2026 16:48:51 +0000 (18:48 +0200)]
factor out commonly used greyscale pixel formaton
Kostya Shishkov [Wed, 13 May 2026 16:47:29 +0000 (18:47 +0200)]
nihav_core/scale: rename colorcvt to colourcvt
Kostya Shishkov [Wed, 13 May 2026 16:41:40 +0000 (18:41 +0200)]
rename ColorModel to ColourModel
Kostya Shishkov [Wed, 13 May 2026 16:40:26 +0000 (18:40 +0200)]
mov: support unsigned PCM in version -1 files
Kostya Shishkov [Sat, 9 May 2026 17:56:39 +0000 (19:56 +0200)]
avi: fix 15-bit raw video format
After recent revamp of format name parsing it should've been changed.
Kostya Shishkov [Fri, 8 May 2026 05:37:40 +0000 (07:37 +0200)]
nihav_registry: add MSVideo1 tag for MOV
Kostya Shishkov [Wed, 6 May 2026 16:06:28 +0000 (18:06 +0200)]
QT SIVQ decoder
Kostya Shishkov [Mon, 4 May 2026 18:16:01 +0000 (20:16 +0200)]
nihav_codec_support/dec_video: use stream number instead of ID
The former is sequential, the latter can be arbitrarily large.
Kostya Shishkov [Mon, 4 May 2026 18:15:04 +0000 (20:15 +0200)]
qdraw: update test to account only for single sub-track samples
Kostya Shishkov [Mon, 4 May 2026 18:07:35 +0000 (20:07 +0200)]
mov: support several descriptors per track
Kostya Shishkov [Thu, 30 Apr 2026 19:10:40 +0000 (21:10 +0200)]
RPZA (very simple) encoder
Kostya Shishkov [Wed, 29 Apr 2026 16:05:52 +0000 (18:05 +0200)]
movmuxer: handle writing just single time point in stts atom
Kostya Shishkov [Tue, 28 Apr 2026 16:15:21 +0000 (18:15 +0200)]
nihav_qt: put encoder registry under #[cfg()]
Kostya Shishkov [Mon, 27 Apr 2026 17:04:25 +0000 (19:04 +0200)]
qtrleenc: fix encoding
zero marker should be at the end of frame, not after each line
Kostya Shishkov [Mon, 27 Apr 2026 16:07:21 +0000 (18:07 +0200)]
QuickTime RLE encoding support
Kostya Shishkov [Sun, 26 Apr 2026 18:27:12 +0000 (20:27 +0200)]
movmuxer: fix writing low-bit palette
Kostya Shishkov [Sat, 25 Apr 2026 16:23:44 +0000 (18:23 +0200)]
movmuxer: write an ID for default palette when possible
Kostya Shishkov [Sat, 25 Apr 2026 16:22:45 +0000 (18:22 +0200)]
avimux: write smaller palettes if actual palette bits are lower
Kostya Shishkov [Sat, 25 Apr 2026 16:20:18 +0000 (18:20 +0200)]
rawvideo{enc,dec}: support 1-4 bit paletted formats
Kostya Shishkov [Sat, 25 Apr 2026 13:28:04 +0000 (15:28 +0200)]
mov: improve support for version -1 files with audio track
Kostya Shishkov [Sat, 25 Apr 2026 10:38:10 +0000 (12:38 +0200)]
nihav_codec_support/msstructs: do not check Cinepak header that strictly
Kostya Shishkov [Fri, 24 Apr 2026 20:03:30 +0000 (22:03 +0200)]
rawvideo: support paletted input
Kostya Shishkov [Fri, 24 Apr 2026 20:02:23 +0000 (22:02 +0200)]
rawvideoenc: refactor a bit and support paletted format
Kostya Shishkov [Fri, 24 Apr 2026 20:01:09 +0000 (22:01 +0200)]
movmuxer: support muxing (8-bit only for now) paletted formats
Kostya Shishkov [Mon, 20 Apr 2026 18:04:38 +0000 (20:04 +0200)]
cinepak: skip unknown empty strip that happens in very old files
Kostya Shishkov [Mon, 20 Apr 2026 04:20:58 +0000 (06:20 +0200)]
qt-cdvideo: fix and improve single-vector block reconstruction
Kostya Shishkov [Sun, 19 Apr 2026 17:00:34 +0000 (19:00 +0200)]
QT CD Video codec
Kostya Shishkov [Sun, 19 Apr 2026 16:59:26 +0000 (18:59 +0200)]
mov: allow files with 'APPL' creator in MacBinary demuxer
Kostya Shishkov [Sat, 18 Apr 2026 09:45:12 +0000 (11:45 +0200)]
avi: improve non-interleaved case detection and handling
Kostya Shishkov [Tue, 14 Apr 2026 19:10:47 +0000 (21:10 +0200)]
mov: when inventing keyframes intra-only mode should take priority
Kostya Shishkov [Tue, 14 Apr 2026 18:39:09 +0000 (20:39 +0200)]
nihav_core/scale: fix copying of single-plane images
Kostya Shishkov [Thu, 9 Apr 2026 16:41:57 +0000 (18:41 +0200)]
Ultimotion encoder
Kostya Shishkov [Thu, 9 Apr 2026 16:03:55 +0000 (18:03 +0200)]
ultimotion: split out data arrays for the upcoming encoder
Kostya Shishkov [Wed, 8 Apr 2026 17:22:38 +0000 (19:22 +0200)]
mov: do not use one-to-one demuxing mode with non-empty sample map
Kostya Shishkov [Mon, 6 Apr 2026 16:15:33 +0000 (18:15 +0200)]
mov: hopefully improve seeking
Since PTS in seek index are actually sample IDs and e.g. for remuxed
tidemo1-24bit-rle.mov seek search returns audio first, it makes sense
to search in the stream-specific index first before rescaling seek
result PTS.
Kostya Shishkov [Mon, 6 Apr 2026 15:05:37 +0000 (17:05 +0200)]
mov: keyframes are always sample numbers, not chunk numbers
Also update movmuxer checksum changed because of input keyframes.
Kostya Shishkov [Mon, 6 Apr 2026 14:53:47 +0000 (16:53 +0200)]
movmuxer: rename sample to chunk where the latter was meant to be
Kostya Shishkov [Mon, 6 Apr 2026 13:59:16 +0000 (15:59 +0200)]
movmuxer: write more compact stsc atom representation
Kostya Shishkov [Sat, 4 Apr 2026 17:01:26 +0000 (19:01 +0200)]
mov: add another mode for inventing keyframes
This time treat multi-sample chunks as the ones with keyframe first
and inter frames next.
Kostya Shishkov [Sat, 4 Apr 2026 12:16:14 +0000 (14:16 +0200)]
QT YUV2 and YUV4 encoders
Kostya Shishkov [Fri, 3 Apr 2026 16:42:54 +0000 (18:42 +0200)]
use test_file_demux() function in the demuxer tests
Kostya Shishkov [Fri, 3 Apr 2026 15:48:48 +0000 (17:48 +0200)]
nihav_codec_support/dmx_test: add a function for simple demuxer testing
Kostya Shishkov [Thu, 2 Apr 2026 19:20:24 +0000 (21:20 +0200)]
mov: make packet demuxing modes explicit
Kostya Shishkov [Thu, 2 Apr 2026 17:56:06 +0000 (19:56 +0200)]
dmx test fixup
Kostya Shishkov [Thu, 2 Apr 2026 17:31:49 +0000 (19:31 +0200)]
mov: improve and extend tests
Test data is based on pre-refactored version.