]> git.nihav.org Git - nihav.git/log
nihav.git
2 days agonihav_commonfmt: allow validate!() to be unused
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.

2 days agoMACE-3 and MACE-6 encoder
Kostya Shishkov [Fri, 15 May 2026 15:52:27 +0000 (17:52 +0200)]
MACE-3 and MACE-6 encoder

2 days agomace: split common code in preparations for an upcoming encoder
Kostya Shishkov [Fri, 15 May 2026 15:51:02 +0000 (17:51 +0200)]
mace: split common code in preparations for an upcoming encoder

4 days agochange 'recognize' to 'recognise'
Kostya Shishkov [Wed, 13 May 2026 16:53:28 +0000 (18:53 +0200)]
change 'recognize' to 'recognise'

4 days agorename 'gray' to 'grey' where appropriate
Kostya Shishkov [Wed, 13 May 2026 16:50:44 +0000 (18:50 +0200)]
rename 'gray' to 'grey' where appropriate

4 days agofactor out commonly used greyscale pixel formaton
Kostya Shishkov [Wed, 13 May 2026 16:48:51 +0000 (18:48 +0200)]
factor out commonly used greyscale pixel formaton

4 days agonihav_core/scale: rename colorcvt to colourcvt
Kostya Shishkov [Wed, 13 May 2026 16:47:29 +0000 (18:47 +0200)]
nihav_core/scale: rename colorcvt to colourcvt

4 days agorename ColorModel to ColourModel
Kostya Shishkov [Wed, 13 May 2026 16:41:40 +0000 (18:41 +0200)]
rename ColorModel to ColourModel

4 days agomov: support unsigned PCM in version -1 files
Kostya Shishkov [Wed, 13 May 2026 16:40:26 +0000 (18:40 +0200)]
mov: support unsigned PCM in version -1 files

8 days agoavi: fix 15-bit raw video format
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.

9 days agonihav_registry: add MSVideo1 tag for MOV
Kostya Shishkov [Fri, 8 May 2026 05:37:40 +0000 (07:37 +0200)]
nihav_registry: add MSVideo1 tag for MOV

11 days agoQT SIVQ decoder
Kostya Shishkov [Wed, 6 May 2026 16:06:28 +0000 (18:06 +0200)]
QT SIVQ decoder

13 days agonihav_codec_support/dec_video: use stream number instead of ID
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.

13 days agoqdraw: update test to account only for single sub-track samples
Kostya Shishkov [Mon, 4 May 2026 18:15:04 +0000 (20:15 +0200)]
qdraw: update test to account only for single sub-track samples

13 days agomov: support several descriptors per track
Kostya Shishkov [Mon, 4 May 2026 18:07:35 +0000 (20:07 +0200)]
mov: support several descriptors per track

2 weeks agoRPZA (very simple) encoder
Kostya Shishkov [Thu, 30 Apr 2026 19:10:40 +0000 (21:10 +0200)]
RPZA (very simple) encoder

2 weeks agomovmuxer: handle writing just single time point in stts atom
Kostya Shishkov [Wed, 29 Apr 2026 16:05:52 +0000 (18:05 +0200)]
movmuxer: handle writing just single time point in stts atom

2 weeks agonihav_qt: put encoder registry under #[cfg()]
Kostya Shishkov [Tue, 28 Apr 2026 16:15:21 +0000 (18:15 +0200)]
nihav_qt: put encoder registry under #[cfg()]

2 weeks agoqtrleenc: fix encoding
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

2 weeks agoQuickTime RLE encoding support
Kostya Shishkov [Mon, 27 Apr 2026 16:07:21 +0000 (18:07 +0200)]
QuickTime RLE encoding support

3 weeks agomovmuxer: fix writing low-bit palette
Kostya Shishkov [Sun, 26 Apr 2026 18:27:12 +0000 (20:27 +0200)]
movmuxer: fix writing low-bit palette

3 weeks agomovmuxer: write an ID for default palette when possible
Kostya Shishkov [Sat, 25 Apr 2026 16:23:44 +0000 (18:23 +0200)]
movmuxer: write an ID for default palette when possible

3 weeks agoavimux: write smaller palettes if actual palette bits are lower
Kostya Shishkov [Sat, 25 Apr 2026 16:22:45 +0000 (18:22 +0200)]
avimux: write smaller palettes if actual palette bits are lower

3 weeks agorawvideo{enc,dec}: support 1-4 bit paletted formats
Kostya Shishkov [Sat, 25 Apr 2026 16:20:18 +0000 (18:20 +0200)]
rawvideo{enc,dec}: support 1-4 bit paletted formats

3 weeks agomov: improve support for version -1 files with audio track
Kostya Shishkov [Sat, 25 Apr 2026 13:28:04 +0000 (15:28 +0200)]
mov: improve support for version -1 files with audio track

3 weeks agonihav_codec_support/msstructs: do not check Cinepak header that strictly
Kostya Shishkov [Sat, 25 Apr 2026 10:38:10 +0000 (12:38 +0200)]
nihav_codec_support/msstructs: do not check Cinepak header that strictly

3 weeks agorawvideo: support paletted input
Kostya Shishkov [Fri, 24 Apr 2026 20:03:30 +0000 (22:03 +0200)]
rawvideo: support paletted input

3 weeks agorawvideoenc: refactor a bit and support paletted format
Kostya Shishkov [Fri, 24 Apr 2026 20:02:23 +0000 (22:02 +0200)]
rawvideoenc: refactor a bit and support paletted format

3 weeks agomovmuxer: support muxing (8-bit only for now) paletted formats
Kostya Shishkov [Fri, 24 Apr 2026 20:01:09 +0000 (22:01 +0200)]
movmuxer: support muxing (8-bit only for now) paletted formats

3 weeks agocinepak: skip unknown empty strip that happens in very old files
Kostya Shishkov [Mon, 20 Apr 2026 18:04:38 +0000 (20:04 +0200)]
cinepak: skip unknown empty strip that happens in very old files

3 weeks agoqt-cdvideo: fix and improve single-vector block reconstruction
Kostya Shishkov [Mon, 20 Apr 2026 04:20:58 +0000 (06:20 +0200)]
qt-cdvideo: fix and improve single-vector block reconstruction

4 weeks agoQT CD Video codec
Kostya Shishkov [Sun, 19 Apr 2026 17:00:34 +0000 (19:00 +0200)]
QT CD Video codec

4 weeks agomov: allow files with 'APPL' creator in MacBinary demuxer
Kostya Shishkov [Sun, 19 Apr 2026 16:59:26 +0000 (18:59 +0200)]
mov: allow files with 'APPL' creator in MacBinary demuxer

4 weeks agoavi: improve non-interleaved case detection and handling
Kostya Shishkov [Sat, 18 Apr 2026 09:45:12 +0000 (11:45 +0200)]
avi: improve non-interleaved case detection and handling

4 weeks agomov: when inventing keyframes intra-only mode should take priority
Kostya Shishkov [Tue, 14 Apr 2026 19:10:47 +0000 (21:10 +0200)]
mov: when inventing keyframes intra-only mode should take priority

4 weeks agonihav_core/scale: fix copying of single-plane images
Kostya Shishkov [Tue, 14 Apr 2026 18:39:09 +0000 (20:39 +0200)]
nihav_core/scale: fix copying of single-plane images

5 weeks agoUltimotion encoder
Kostya Shishkov [Thu, 9 Apr 2026 16:41:57 +0000 (18:41 +0200)]
Ultimotion encoder

5 weeks agoultimotion: split out data arrays for the upcoming encoder
Kostya Shishkov [Thu, 9 Apr 2026 16:03:55 +0000 (18:03 +0200)]
ultimotion: split out data arrays for the upcoming encoder

5 weeks agomov: do not use one-to-one demuxing mode with non-empty sample map
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

5 weeks agomov: hopefully improve seeking
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.

5 weeks agomov: keyframes are always sample numbers, not chunk numbers
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.

5 weeks agomovmuxer: rename sample to chunk where the latter was meant to be
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

5 weeks agomovmuxer: write more compact stsc atom representation
Kostya Shishkov [Mon, 6 Apr 2026 13:59:16 +0000 (15:59 +0200)]
movmuxer: write more compact stsc atom representation

6 weeks agomov: add another mode for inventing keyframes
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.

6 weeks agoQT YUV2 and YUV4 encoders
Kostya Shishkov [Sat, 4 Apr 2026 12:16:14 +0000 (14:16 +0200)]
QT YUV2 and YUV4 encoders

6 weeks agouse test_file_demux() function in the demuxer tests
Kostya Shishkov [Fri, 3 Apr 2026 16:42:54 +0000 (18:42 +0200)]
use test_file_demux() function in the demuxer tests

6 weeks agonihav_codec_support/dmx_test: add a function for simple demuxer testing
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

6 weeks agomov: make packet demuxing modes explicit
Kostya Shishkov [Thu, 2 Apr 2026 19:20:24 +0000 (21:20 +0200)]
mov: make packet demuxing modes explicit

6 weeks agodmx test fixup
Kostya Shishkov [Thu, 2 Apr 2026 17:56:06 +0000 (19:56 +0200)]
dmx test fixup

6 weeks agomov: improve and extend tests
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.

6 weeks agonihav_codec_support: add demuxer testing functionality
Kostya Shishkov [Thu, 2 Apr 2026 17:31:16 +0000 (19:31 +0200)]
nihav_codec_support: add demuxer testing functionality

6 weeks agomov: split code into smaller components
Kostya Shishkov [Thu, 2 Apr 2026 16:18:03 +0000 (18:18 +0200)]
mov: split code into smaller components

6 weeks agonihav_core/frame: add default for StreamType
Kostya Shishkov [Thu, 2 Apr 2026 15:38:54 +0000 (17:38 +0200)]
nihav_core/frame: add default for StreamType

6 weeks agompeg4asp: set frame reference timestamp when appropriate
Kostya Shishkov [Thu, 2 Apr 2026 04:57:51 +0000 (06:57 +0200)]
mpeg4asp: set frame reference timestamp when appropriate

This fixes the situation with the decoder keeping updating old timestamps
after the seek instead of taking new time point into account.

6 weeks agofix some clippy warnings
Kostya Shishkov [Wed, 1 Apr 2026 20:01:37 +0000 (22:01 +0200)]
fix some clippy warnings

6 weeks agomove default QT palettes to nihav_codec_support
Kostya Shishkov [Wed, 1 Apr 2026 19:36:33 +0000 (21:36 +0200)]
move default QT palettes to nihav_codec_support

6 weeks agomovmuxer: (hopefully) improve CBR audio track writing
Kostya Shishkov [Wed, 1 Apr 2026 16:52:55 +0000 (18:52 +0200)]
movmuxer: (hopefully) improve CBR audio track writing

6 weeks agomovmuxer: add more video codec descriptions
Kostya Shishkov [Wed, 1 Apr 2026 16:49:39 +0000 (18:49 +0200)]
movmuxer: add more video codec descriptions

6 weeks agonihav_registry: add another FOURCC for Truemotion 1
Kostya Shishkov [Wed, 1 Apr 2026 16:05:26 +0000 (18:05 +0200)]
nihav_registry: add another FOURCC for Truemotion 1

6 weeks agonihav_registry: re-arrange MOV video codecs to have more common tag first
Kostya Shishkov [Wed, 1 Apr 2026 16:03:32 +0000 (18:03 +0200)]
nihav_registry: re-arrange MOV video codecs to have more common tag first

6 weeks agonihav_registry: add Truemotion 1 to native MOV codecs list
Kostya Shishkov [Wed, 1 Apr 2026 16:02:32 +0000 (18:02 +0200)]
nihav_registry: add Truemotion 1 to native MOV codecs list

6 weeks agomovmuxer: mark it as supporting global palette only
Kostya Shishkov [Tue, 31 Mar 2026 18:57:51 +0000 (20:57 +0200)]
movmuxer: mark it as supporting global palette only

6 weeks agonihav-core/muxers: introduce quirk for muxers that support global palette only
Kostya Shishkov [Tue, 31 Mar 2026 18:56:50 +0000 (20:56 +0200)]
nihav-core/muxers: introduce quirk for muxers that support global palette only

6 weeks agomov: support reading co64 atom
Kostya Shishkov [Tue, 31 Mar 2026 16:04:41 +0000 (18:04 +0200)]
mov: support reading co64 atom

6 weeks agorawvideoenc: check that the input data is in the same format as on init
Kostya Shishkov [Tue, 31 Mar 2026 16:04:00 +0000 (18:04 +0200)]
rawvideoenc: check that the input data is in the same format as on init

6 weeks agoindeo3enc: fix condition for using single delta codebook
Kostya Shishkov [Tue, 31 Mar 2026 15:57:47 +0000 (17:57 +0200)]
indeo3enc: fix condition for using single delta codebook

6 weeks agomovmuxer: fix reported video track duration
Kostya Shishkov [Tue, 31 Mar 2026 15:49:03 +0000 (17:49 +0200)]
movmuxer: fix reported video track duration

6 weeks agomovmuxer: fix writing co64 atom
Kostya Shishkov [Tue, 31 Mar 2026 15:48:03 +0000 (17:48 +0200)]
movmuxer: fix writing co64 atom

7 weeks agorawvideoenc: support some RGB formats in addition to YUV420
Kostya Shishkov [Sun, 29 Mar 2026 16:59:19 +0000 (18:59 +0200)]
rawvideoenc: support some RGB formats in addition to YUV420

7 weeks agonihav_core/formats: improve formaton conversion to/from string
Kostya Shishkov [Sun, 29 Mar 2026 16:54:43 +0000 (18:54 +0200)]
nihav_core/formats: improve formaton conversion to/from string

That includes fixing bugs in both parsing and formatting with
to_short_string() as well as adding more extensive tests.

7 weeks agoeuclid: add test cases for raw and RLE mode
Kostya Shishkov [Sun, 29 Mar 2026 14:54:00 +0000 (16:54 +0200)]
euclid: add test cases for raw and RLE mode

7 weeks agonihav_core/scale: fix copying packed frames
Kostya Shishkov [Sun, 29 Mar 2026 14:18:02 +0000 (16:18 +0200)]
nihav_core/scale: fix copying packed frames

7 weeks ago(very very imperfect) MOV muxer
Kostya Shishkov [Sat, 28 Mar 2026 17:26:56 +0000 (18:26 +0100)]
(very very imperfect) MOV muxer

7 weeks agomov: mark keyframe packets
Kostya Shishkov [Sat, 28 Mar 2026 15:55:29 +0000 (16:55 +0100)]
mov: mark keyframe packets

7 weeks agoindeo3enc: forcefully split too large intra cells
Kostya Shishkov [Sat, 28 Mar 2026 14:51:51 +0000 (15:51 +0100)]
indeo3enc: forcefully split too large intra cells

The codec cannot handle non-skip cells over certain limit.

7 weeks agomov: fix typo in MS IMA ADPCM tag
Kostya Shishkov [Sat, 28 Mar 2026 13:19:16 +0000 (14:19 +0100)]
mov: fix typo in MS IMA ADPCM tag

7 weeks agoeuclid: support more output modes
Kostya Shishkov [Sat, 28 Mar 2026 09:51:53 +0000 (10:51 +0100)]
euclid: support more output modes

7 weeks agoeuclid: use default palette for 16-colour modes
Kostya Shishkov [Sat, 28 Mar 2026 09:33:48 +0000 (10:33 +0100)]
euclid: use default palette for 16-colour modes

7 weeks agoeuclid: add support for RLE and raw modes
Kostya Shishkov [Sat, 28 Mar 2026 09:33:09 +0000 (10:33 +0100)]
euclid: add support for RLE and raw modes

7 weeks agonihav_registry: add functions for MOV fourcc look-up
Kostya Shishkov [Wed, 25 Mar 2026 17:44:52 +0000 (18:44 +0100)]
nihav_registry: add functions for MOV fourcc look-up

7 weeks agompeg4asp: error out on GMC frames
Kostya Shishkov [Tue, 24 Mar 2026 17:00:06 +0000 (18:00 +0100)]
mpeg4asp: error out on GMC frames

Otherwise it would simply hit unimplemented!() later.

7 weeks agompeg4asp: do not support qpel mode
Kostya Shishkov [Tue, 24 Mar 2026 16:54:47 +0000 (17:54 +0100)]
mpeg4asp: do not support qpel mode

Quarterpel interpolation is too annoying, but having a quick and dirty
approximation should work equally bad.

7 weeks agoaac: reset SBR on flush
Kostya Shishkov [Tue, 24 Mar 2026 16:49:59 +0000 (17:49 +0100)]
aac: reset SBR on flush

This should prevent unpleasant artefacts on seeking.

7 weeks agompeg4asp: update test checksums after fixes
Kostya Shishkov [Mon, 23 Mar 2026 17:12:47 +0000 (18:12 +0100)]
mpeg4asp: update test checksums after fixes

7 weeks agompeg4asp: fix B-frame chroma MC
Kostya Shishkov [Mon, 23 Mar 2026 17:12:09 +0000 (18:12 +0100)]
mpeg4asp: fix B-frame chroma MC

7 weeks agompeg4asp: fix codec version parsing
Kostya Shishkov [Mon, 23 Mar 2026 16:53:00 +0000 (17:53 +0100)]
mpeg4asp: fix codec version parsing

8 weeks agompeg4asp: recognise and work around some bugs
Kostya Shishkov [Sat, 21 Mar 2026 17:13:28 +0000 (18:13 +0100)]
mpeg4asp: recognise and work around some bugs

8 weeks agompeg4asp: quantiser-related fixes
Kostya Shishkov [Sat, 21 Mar 2026 14:17:43 +0000 (15:17 +0100)]
mpeg4asp: quantiser-related fixes

8 weeks agocodec_support/msstructs: check WAVEFORMATEX.cbSize for validity
Kostya Shishkov [Fri, 20 Mar 2026 17:54:09 +0000 (18:54 +0100)]
codec_support/msstructs: check WAVEFORMATEX.cbSize for validity

8 weeks agoavi: factor out chunk header size subtracting from movi_size
Kostya Shishkov [Wed, 18 Mar 2026 18:02:52 +0000 (19:02 +0100)]
avi: factor out chunk header size subtracting from movi_size

2 months agowarhol: remove useless mut
Kostya Shishkov [Thu, 12 Mar 2026 06:29:09 +0000 (07:29 +0100)]
warhol: remove useless mut

2 months agoadd support for alpha version of QuickTime (codename Warhol)
Kostya Shishkov [Wed, 11 Mar 2026 17:18:08 +0000 (18:18 +0100)]
add support for alpha version of QuickTime (codename Warhol)

2 months agomov: remove useless cast
Kostya Shishkov [Tue, 10 Mar 2026 18:20:13 +0000 (19:20 +0100)]
mov: remove useless cast

2 months agogif: support interlaced decoding
Kostya Shishkov [Tue, 10 Mar 2026 18:19:52 +0000 (19:19 +0100)]
gif: support interlaced decoding

2 months agorpza: check that declared size does not exceed real size
Kostya Shishkov [Mon, 9 Mar 2026 17:50:17 +0000 (18:50 +0100)]
rpza: check that declared size does not exceed real size

Old versions of the codec used only part of fixed-size frames.

2 months agomov: support (single known sample of) QuickTime beta version
Kostya Shishkov [Mon, 9 Mar 2026 17:45:40 +0000 (18:45 +0100)]
mov: support (single known sample of) QuickTime beta version

2 months agonihav_core/scale: add a stage for high- to 8-bit image conversion
Kostya Shishkov [Sat, 7 Mar 2026 19:44:35 +0000 (20:44 +0100)]
nihav_core/scale: add a stage for high- to 8-bit image conversion

2 months agonihav_core/scale: support high-bitdepth YUV to/from RGB conversion
Kostya Shishkov [Sat, 7 Mar 2026 19:44:03 +0000 (20:44 +0100)]
nihav_core/scale: support high-bitdepth YUV to/from RGB conversion

2 months agoh264: implement 10-bit decoder
Kostya Shishkov [Sat, 7 Mar 2026 14:57:09 +0000 (15:57 +0100)]
h264: implement 10-bit decoder

It can easily support other bitdepths but currently there's no need for that.

2 months agoh264: implement decoder wrappers
Kostya Shishkov [Sat, 7 Mar 2026 14:12:32 +0000 (15:12 +0100)]
h264: implement decoder wrappers