]> git.nihav.org Git - nihav.git/log
nihav.git
4 days agocinepak: skip unknown empty strip that happens in very old files master
Kostya Shishkov [Mon, 20 Apr 2026 18:04:38 +0000 (20:04 +0200)]
cinepak: skip unknown empty strip that happens in very old files

4 days 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

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

5 days 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

6 days 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

10 days 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

10 days 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

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

2 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

2 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

2 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.

2 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.

2 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

2 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

2 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.

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

3 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

3 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

3 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

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

3 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.

3 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

3 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

3 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

3 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.

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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

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

3 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

3 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

3 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

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

3 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

3 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.

3 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

3 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

3 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

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

3 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.

3 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

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

3 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

3 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

4 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

4 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.

4 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.

4 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.

4 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

4 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

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

4 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

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

5 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

5 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

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

6 weeks 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)

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

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

6 weeks 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.

6 weeks 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

6 weeks 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

6 weeks 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

6 weeks 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.

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

6 weeks agoh264: make SliceState more shareable
Kostya Shishkov [Sat, 7 Mar 2026 13:20:31 +0000 (14:20 +0100)]
h264: make SliceState more shareable

6 weeks agoh264: split decoder into common and 8-bit specific decoding parts
Kostya Shishkov [Sat, 7 Mar 2026 13:06:36 +0000 (14:06 +0100)]
h264: split decoder into common and 8-bit specific decoding parts

This is a preparation for future high-bitdepth support.

6 weeks agonihav_codec_support/imgwrite: add support for high-bitdepth PGMYUV
Kostya Shishkov [Sat, 7 Mar 2026 05:20:41 +0000 (06:20 +0100)]
nihav_codec_support/imgwrite: add support for high-bitdepth PGMYUV

6 weeks agonihav_codec_support/imgwrite: switch to byteio and custom errors
Kostya Shishkov [Sat, 7 Mar 2026 05:12:53 +0000 (06:12 +0100)]
nihav_codec_support/imgwrite: switch to byteio and custom errors

This is done in preparation for high-bitdepth image writing.

6 weeks agonihav_codec_support: remove unneeded feature selection guard
Kostya Shishkov [Sat, 7 Mar 2026 05:07:12 +0000 (06:07 +0100)]
nihav_codec_support: remove unneeded feature selection guard

6 weeks agonihav_codec_support/imaadpcm: fix doxygen comments
Kostya Shishkov [Sat, 7 Mar 2026 05:06:44 +0000 (06:06 +0100)]
nihav_codec_support/imaadpcm: fix doxygen comments

7 weeks agoavimux: palette should not be a part of bitmap header
Kostya Shishkov [Fri, 6 Mar 2026 16:38:20 +0000 (17:38 +0100)]
avimux: palette should not be a part of bitmap header

7 weeks agoavi: take palette from bitmapinfo extradata if it happens to be there
Kostya Shishkov [Fri, 6 Mar 2026 16:34:31 +0000 (17:34 +0100)]
avi: take palette from bitmapinfo extradata if it happens to be there

7 weeks agoh264: fix adaptive marking with log2_max_frame_num=16
Kostya Shishkov [Thu, 5 Mar 2026 17:23:10 +0000 (18:23 +0100)]
h264: fix adaptive marking with log2_max_frame_num=16

7 weeks agoh264: increase margin in wait_for_mb for the luma interpolation filter
Kostya Shishkov [Thu, 5 Mar 2026 17:07:24 +0000 (18:07 +0100)]
h264: increase margin in wait_for_mb for the luma interpolation filter

7 weeks agoh264: fix the typo that made multi-threaded decoding test fail too often
Kostya Shishkov [Thu, 5 Mar 2026 16:58:28 +0000 (17:58 +0100)]
h264: fix the typo that made multi-threaded decoding test fail too often

7 weeks agoAdorage decoder
Kostya Shishkov [Wed, 4 Mar 2026 17:18:20 +0000 (18:18 +0100)]
Adorage decoder

7 weeks agonihav_core/formats: allow proper spelling of "grey" in formaton name
Kostya Shishkov [Mon, 2 Mar 2026 18:25:02 +0000 (19:25 +0100)]
nihav_core/formats: allow proper spelling of "grey" in formaton name

7 weeks agoprune duplicate definitions of RGB555_FORMAT
Kostya Shishkov [Mon, 2 Mar 2026 17:23:03 +0000 (18:23 +0100)]
prune duplicate definitions of RGB555_FORMAT

Also rename to/from BGR555_FORMAT where appropriate.

7 weeks agonihav_core/formats: introduce a function to make RGB5[56]5 formats
Kostya Shishkov [Mon, 2 Mar 2026 17:09:40 +0000 (18:09 +0100)]
nihav_core/formats: introduce a function to make RGB5[56]5 formats

And throw in RGB555_FORMAT as it seems to be used a lot.

7 weeks agomoviepak: obtain YUV422 formaton from string instead of hardcoding it
Kostya Shishkov [Mon, 2 Mar 2026 17:08:34 +0000 (18:08 +0100)]
moviepak: obtain YUV422 formaton from string instead of hardcoding it

7 weeks agopgvv: obtain YUV422 formaton by parsing string instead of hardcoding it
Kostya Shishkov [Mon, 2 Mar 2026 17:07:45 +0000 (18:07 +0100)]
pgvv: obtain YUV422 formaton by parsing string instead of hardcoding it

7 weeks agoavi: remove useless cast
Kostya Shishkov [Mon, 2 Mar 2026 17:06:42 +0000 (18:06 +0100)]
avi: remove useless cast

7 weeks agomoviepak: switch to nihav_codec_support module for JPEG decoding
Kostya Shishkov [Mon, 2 Mar 2026 17:04:43 +0000 (18:04 +0100)]
moviepak: switch to nihav_codec_support module for JPEG decoding

This also improves decoding.

7 weeks agopgvv: switch to nihav_codec_support module for JPEG decoding
Kostya Shishkov [Mon, 2 Mar 2026 17:04:07 +0000 (18:04 +0100)]
pgvv: switch to nihav_codec_support module for JPEG decoding

This fixes some decoding issues as well.

7 weeks agojpeg: use nihav_codec_support module for JPEG decoding
Kostya Shishkov [Mon, 2 Mar 2026 17:03:06 +0000 (18:03 +0100)]
jpeg: use nihav_codec_support module for JPEG decoding

7 weeks agonihav_codec_support: introduce module for common JPEG decoding functionality
Kostya Shishkov [Mon, 2 Mar 2026 16:59:18 +0000 (17:59 +0100)]
nihav_codec_support: introduce module for common JPEG decoding functionality

7 weeks agonihav_registry: move PGVV entry to MOV codecs as it is a QuickTime codec
Kostya Shishkov [Sun, 1 Mar 2026 17:10:24 +0000 (18:10 +0100)]
nihav_registry: move PGVV entry to MOV codecs as it is a QuickTime codec

7 weeks agoMoviePak decoder
Kostya Shishkov [Sun, 1 Mar 2026 17:04:52 +0000 (18:04 +0100)]
MoviePak decoder

7 weeks agoh264: fix test_h264_mt_real2 test
Kostya Shishkov [Sat, 28 Feb 2026 09:34:15 +0000 (10:34 +0100)]
h264: fix test_h264_mt_real2 test

The frame checksums are the same, but the order is different because
of B-frames and mandatory multi-threaded (re)ordering.

7 weeks agonihav_core/reorder: simplify and hopefully fix MTFrameReorderer
Kostya Shishkov [Sat, 28 Feb 2026 12:57:33 +0000 (13:57 +0100)]
nihav_core/reorder: simplify and hopefully fix MTFrameReorderer

7 weeks agoh264: single- and multi-threaded tests should give the same results
Kostya Shishkov [Sat, 28 Feb 2026 09:18:39 +0000 (10:18 +0100)]
h264: single- and multi-threaded tests should give the same results

7 weeks agoh264: make sure that mv_cache is aligned
Kostya Shishkov [Fri, 27 Feb 2026 20:23:52 +0000 (21:23 +0100)]
h264: make sure that mv_cache is aligned

8 weeks agoh264: silence unused assigment warning
Kostya Shishkov [Fri, 27 Feb 2026 17:53:23 +0000 (18:53 +0100)]
h264: silence unused assigment warning