]> git.nihav.org Git - nihav.git/log
nihav.git
2 days agonihav_core/scale: add a stage for high- to 8-bit image conversion master
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 days 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 days 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 days agoh264: implement decoder wrappers
Kostya Shishkov [Sat, 7 Mar 2026 14:12:32 +0000 (15:12 +0100)]
h264: implement decoder wrappers

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

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

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

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

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

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

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

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

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

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

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

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

7 days 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 days 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 days 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 days 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 days 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 days agoavi: remove useless cast
Kostya Shishkov [Mon, 2 Mar 2026 17:06:42 +0000 (18:06 +0100)]
avi: remove useless cast

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

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

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

9 days 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.

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

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

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

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

10 days agojpeg: remove unused variable xstep[]
Kostya Shishkov [Fri, 27 Feb 2026 17:52:26 +0000 (18:52 +0100)]
jpeg: remove unused variable xstep[]

It is not needed since subsampling is handled in the loop per case.

10 days agokmvc: update test after AVI extradata handling change
Kostya Shishkov [Fri, 27 Feb 2026 17:33:13 +0000 (18:33 +0100)]
kmvc: update test after AVI extradata handling change

Previously AVI demuxer put everything after BMP header into extradata,
now it splits that into actual BMP header extradata and palette following
that BMP header. This makes a difference for KMVC since it takes into account
when extradata contains palette and not.

10 days agoavi: use common structures from nihav_codec_support
Kostya Shishkov [Fri, 27 Feb 2026 17:32:55 +0000 (18:32 +0100)]
avi: use common structures from nihav_codec_support

10 days agonihav_ms/avidib: use common structures from nihav_codec_support
Kostya Shishkov [Fri, 27 Feb 2026 17:20:57 +0000 (18:20 +0100)]
nihav_ms/avidib: use common structures from nihav_codec_support

10 days agonihav_indeo/ivf: use common structures from nihav_codec_support
Kostya Shishkov [Fri, 27 Feb 2026 17:19:58 +0000 (18:19 +0100)]
nihav_indeo/ivf: use common structures from nihav_codec_support

10 days agonihav_misc/av: use common structures reading from nihav_codec_support
Kostya Shishkov [Fri, 27 Feb 2026 17:19:03 +0000 (18:19 +0100)]
nihav_misc/av: use common structures reading from nihav_codec_support

10 days agowav: use WAVEFORMAT reader from nihav_codec_support
Kostya Shishkov [Fri, 27 Feb 2026 17:17:57 +0000 (18:17 +0100)]
wav: use WAVEFORMAT reader from nihav_codec_support

10 days agonihav_codec_support: factor out support for BITMAPINFO/WAVEFORMAT(EX)
Kostya Shishkov [Fri, 27 Feb 2026 17:15:56 +0000 (18:15 +0100)]
nihav_codec_support: factor out support for BITMAPINFO/WAVEFORMAT(EX)

11 days agomov: use sample-based CBR audio demuxing
Kostya Shishkov [Thu, 26 Feb 2026 19:53:21 +0000 (20:53 +0100)]
mov: use sample-based CBR audio demuxing

11 days agonihav_registry: add fourcc for QT RLE in AVI
Kostya Shishkov [Thu, 26 Feb 2026 17:45:55 +0000 (18:45 +0100)]
nihav_registry: add fourcc for QT RLE in AVI

11 days agofix some PTS/DTS confusion
Kostya Shishkov [Thu, 26 Feb 2026 17:42:49 +0000 (18:42 +0100)]
fix some PTS/DTS confusion

13 days agoindeo3enc: improve rate control a bit
Kostya Shishkov [Tue, 24 Feb 2026 18:05:06 +0000 (19:05 +0100)]
indeo3enc: improve rate control a bit

13 days agoindeo3enc: fix handling of skipped frame
Kostya Shishkov [Tue, 24 Feb 2026 17:28:30 +0000 (18:28 +0100)]
indeo3enc: fix handling of skipped frame

Previously it forgot to _not_ update buffer reference, leadring
to decoders reading from the wrong previous frame.

2 weeks agofix (some) clippy warnings
Kostya Shishkov [Sun, 22 Feb 2026 19:25:50 +0000 (20:25 +0100)]
fix (some) clippy warnings

2 weeks agomov: fix little-endian raw audio reporting
Kostya Shishkov [Sun, 22 Feb 2026 18:53:23 +0000 (19:53 +0100)]
mov: fix little-endian raw audio reporting

2 weeks agomov: yet another fix for raw audio demuxing
Kostya Shishkov [Sun, 22 Feb 2026 18:48:10 +0000 (19:48 +0100)]
mov: yet another fix for raw audio demuxing

2 weeks agomov: create index for intra-only video streams
Kostya Shishkov [Sun, 22 Feb 2026 16:58:06 +0000 (17:58 +0100)]
mov: create index for intra-only video streams

2 weeks agoima_qt: update test after demuxer fix
Kostya Shishkov [Sun, 22 Feb 2026 16:44:47 +0000 (17:44 +0100)]
ima_qt: update test after demuxer fix

2 weeks agomov: try to improve raw audio demuxing
Kostya Shishkov [Sun, 22 Feb 2026 16:38:43 +0000 (17:38 +0100)]
mov: try to improve raw audio demuxing

2 weeks agoavi: use inertial system for PCM timestamp calculation
Kostya Shishkov [Sat, 21 Feb 2026 20:55:15 +0000 (21:55 +0100)]
avi: use inertial system for PCM timestamp calculation

2 weeks agonihav_core/byteio: introduce functions for writing arrays of integers
Kostya Shishkov [Sat, 21 Feb 2026 09:32:58 +0000 (10:32 +0100)]
nihav_core/byteio: introduce functions for writing arrays of integers

2 weeks agonihav_hlblocks: split out template formatting into separate module
Kostya Shishkov [Sat, 21 Feb 2026 03:57:39 +0000 (04:57 +0100)]
nihav_hlblocks: split out template formatting into separate module

2 weeks agomov: do not let data streams interfere with seeking
Kostya Shishkov [Fri, 20 Feb 2026 20:14:08 +0000 (21:14 +0100)]
mov: do not let data streams interfere with seeking

2 weeks agonihav_core/scale: support unpacking e.g. 15-bit RGB sent as bytes
Kostya Shishkov [Fri, 20 Feb 2026 18:39:50 +0000 (19:39 +0100)]
nihav_core/scale: support unpacking e.g. 15-bit RGB sent as bytes

This may happen with raw video data demuxer and re-wrapped as is.

2 weeks agomov: reported rgb555 format should be big-endian
Kostya Shishkov [Fri, 20 Feb 2026 18:37:39 +0000 (19:37 +0100)]
mov: reported rgb555 format should be big-endian

2 weeks agomov: use sample size in get_size() if possible
Kostya Shishkov [Fri, 20 Feb 2026 17:58:00 +0000 (18:58 +0100)]
mov: use sample size in get_size() if possible

2 weeks agoadd raw YUV decoders for QT
Kostya Shishkov [Fri, 20 Feb 2026 17:28:44 +0000 (18:28 +0100)]
add raw YUV decoders for QT

2 weeks agonihav_registry/detect: slightly improve old QT MOV detection
Kostya Shishkov [Thu, 19 Feb 2026 17:15:15 +0000 (18:15 +0100)]
nihav_registry/detect: slightly improve old QT MOV detection

2 weeks agoqcelp: typo
Kostya Shishkov [Wed, 18 Feb 2026 17:33:01 +0000 (18:33 +0100)]
qcelp: typo

2 weeks agoadd PDQ2 decoder
Kostya Shishkov [Tue, 17 Feb 2026 17:19:04 +0000 (18:19 +0100)]
add PDQ2 decoder

3 weeks agoavi: reject chunks larger than remaining movi size
Kostya Shishkov [Sat, 14 Feb 2026 17:33:13 +0000 (18:33 +0100)]
avi: reject chunks larger than remaining movi size

3 weeks agoUltimotion decoder
Kostya Shishkov [Wed, 11 Feb 2026 17:53:30 +0000 (18:53 +0100)]
Ultimotion decoder

3 weeks agoavi: allow smaller strh chunk (as seen in really old AVI files)
Kostya Shishkov [Wed, 11 Feb 2026 17:39:11 +0000 (18:39 +0100)]
avi: allow smaller strh chunk (as seen in really old AVI files)

3 weeks agoindeo3: relax size check
Kostya Shishkov [Wed, 11 Feb 2026 17:34:54 +0000 (18:34 +0100)]
indeo3: relax size check

borg95.avi (and maybe other Indeo 3.1 videos) declare size to be
16 bits more than real payload size.

3 weeks agorawvideo_ms: reject too short input
Kostya Shishkov [Wed, 11 Feb 2026 17:29:39 +0000 (18:29 +0100)]
rawvideo_ms: reject too short input

3 weeks agoavi: ignore palette change chunks in index
Kostya Shishkov [Tue, 10 Feb 2026 17:17:30 +0000 (18:17 +0100)]
avi: ignore palette change chunks in index

3 weeks agopgvv: fix interlaced mode decoding
Kostya Shishkov [Tue, 10 Feb 2026 17:16:22 +0000 (18:16 +0100)]
pgvv: fix interlaced mode decoding

3 weeks agopgvv: do not de-zigzag quantisation matrices
Kostya Shishkov [Tue, 10 Feb 2026 17:05:31 +0000 (18:05 +0100)]
pgvv: do not de-zigzag quantisation matrices

4 weeks agopgvv: support interlaced mode
Kostya Shishkov [Mon, 9 Feb 2026 17:16:06 +0000 (18:16 +0100)]
pgvv: support interlaced mode

4 weeks agoadd support for AV format
Kostya Shishkov [Sat, 7 Feb 2026 17:32:43 +0000 (18:32 +0100)]
add support for AV format

4 weeks agonihav_hlblocks/demux: handle empty or too short files better
Kostya Shishkov [Fri, 6 Feb 2026 18:02:11 +0000 (19:02 +0100)]
nihav_hlblocks/demux: handle empty or too short files better

4 weeks agouse integer array reading functions where applicable
Kostya Shishkov [Fri, 6 Feb 2026 17:55:06 +0000 (18:55 +0100)]
use integer array reading functions where applicable

4 weeks agonihav_core/byteio: add functions for reading arrays of integers
Kostya Shishkov [Fri, 6 Feb 2026 17:41:25 +0000 (18:41 +0100)]
nihav_core/byteio: add functions for reading arrays of integers

4 weeks agojpeg: add messages for unsupported features/flavours
Kostya Shishkov [Fri, 6 Feb 2026 16:53:30 +0000 (17:53 +0100)]
jpeg: add messages for unsupported features/flavours

4 weeks agodetect: add an entry for MOV in MacBinary II without mdat atom
Kostya Shishkov [Thu, 5 Feb 2026 17:54:05 +0000 (18:54 +0100)]
detect: add an entry for MOV in MacBinary II without mdat atom

4 weeks agomov: allow force seeking if requested
Kostya Shishkov [Thu, 5 Feb 2026 17:42:37 +0000 (18:42 +0100)]
mov: allow force seeking if requested

4 weeks agoavi: add an option to print file structure
Kostya Shishkov [Thu, 5 Feb 2026 17:21:36 +0000 (18:21 +0100)]
avi: add an option to print file structure

4 weeks agonihav_core/scale: stricter checks for 2x special scaling path
Kostya Shishkov [Wed, 4 Feb 2026 19:31:24 +0000 (20:31 +0100)]
nihav_core/scale: stricter checks for 2x special scaling path

It should have not been used when different components have different
scaling factors (e.g. 16x16 YUV410 to 32x32 YUV420).

4 weeks agonihav_hlblocks/demux: allow printing demuxer information
Kostya Shishkov [Wed, 4 Feb 2026 17:49:37 +0000 (18:49 +0100)]
nihav_hlblocks/demux: allow printing demuxer information

4 weeks agomov: do not demux packets from the ignored streams
Kostya Shishkov [Wed, 4 Feb 2026 17:29:10 +0000 (18:29 +0100)]
mov: do not demux packets from the ignored streams

4 weeks agonihav_hlblocks/demux: change printed messages
Kostya Shishkov [Wed, 4 Feb 2026 17:01:12 +0000 (18:01 +0100)]
nihav_hlblocks/demux: change printed messages

4 weeks agonihav_hlblocks/demux: add more utility methods to DemuxerObject
Kostya Shishkov [Wed, 4 Feb 2026 16:56:26 +0000 (17:56 +0100)]
nihav_hlblocks/demux: add more utility methods to DemuxerObject

4 weeks agonihav_core/demuxers: add missing get_stream_manager_mut() to RawDemuxer
Kostya Shishkov [Wed, 4 Feb 2026 16:53:55 +0000 (17:53 +0100)]
nihav_core/demuxers: add missing get_stream_manager_mut() to RawDemuxer

4 weeks agoreplace ToString with Display implementation
Kostya Shishkov [Tue, 3 Feb 2026 17:56:53 +0000 (18:56 +0100)]
replace ToString with Display implementation

4 weeks agonihav_core/demux: add Demuxer::get_stream_manager_mut() method
Kostya Shishkov [Tue, 3 Feb 2026 17:43:04 +0000 (18:43 +0100)]
nihav_core/demux: add Demuxer::get_stream_manager_mut() method

4 weeks agoregistry: add another Cinepak FOURCC
Kostya Shishkov [Tue, 3 Feb 2026 17:39:27 +0000 (18:39 +0100)]
registry: add another Cinepak FOURCC

4 weeks agoindeo3: improve changing frame sizes (and ignoring it as well)
Kostya Shishkov [Tue, 3 Feb 2026 17:38:13 +0000 (18:38 +0100)]
indeo3: improve changing frame sizes (and ignoring it as well)

4 weeks agomov: add missing call to (re)initialise CTTS map search in fragmented MP4
Kostya Shishkov [Tue, 3 Feb 2026 17:11:35 +0000 (18:11 +0100)]
mov: add missing call to (re)initialise CTTS map search in fragmented MP4

4 weeks agoavi: slightly improve possibly unaligned chunk handling
Kostya Shishkov [Tue, 3 Feb 2026 17:07:13 +0000 (18:07 +0100)]
avi: slightly improve possibly unaligned chunk handling

5 weeks agonihav_indeo: remove dead assignment
Kostya Shishkov [Mon, 2 Feb 2026 19:43:12 +0000 (20:43 +0100)]
nihav_indeo: remove dead assignment

5 weeks agonihav_llaudio/demuxers/wavpack: set actual format instead of the default one
Kostya Shishkov [Mon, 2 Feb 2026 19:40:07 +0000 (20:40 +0100)]
nihav_llaudio/demuxers/wavpack: set actual format instead of the default one

5 weeks agonihav_acorn/rawaudio: "16-bit exponential" apparently means normal PCM
Kostya Shishkov [Mon, 2 Feb 2026 17:48:45 +0000 (18:48 +0100)]
nihav_acorn/rawaudio: "16-bit exponential" apparently means normal PCM

5 weeks agomov: improve search for headers in mov-macbin
Kostya Shishkov [Mon, 2 Feb 2026 17:11:39 +0000 (18:11 +0100)]
mov: improve search for headers in mov-macbin

5 weeks agomov: fix moov size limit in mov-macbin demuxer
Kostya Shishkov [Mon, 2 Feb 2026 17:07:58 +0000 (18:07 +0100)]
mov: fix moov size limit in mov-macbin demuxer

5 weeks agonihav_registry/detect: improve MacBinary II MOV detection
Kostya Shishkov [Mon, 2 Feb 2026 16:58:36 +0000 (17:58 +0100)]
nihav_registry/detect: improve MacBinary II MOV detection

5 weeks agonihav_core/sbbox: try slightly less undefined code for SelfBorrow::end()
Kostya Shishkov [Sun, 1 Feb 2026 19:55:40 +0000 (20:55 +0100)]
nihav_core/sbbox: try slightly less undefined code for SelfBorrow::end()

5 weeks agonihav_hlblocks/demux: add multi-threaded decoders to FullRegister
Kostya Shishkov [Sat, 31 Jan 2026 16:03:17 +0000 (17:03 +0100)]
nihav_hlblocks/demux: add multi-threaded decoders to FullRegister