]> git.nihav.org Git - nihav.git/log
nihav.git
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

8 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

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

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

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

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

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

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

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

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

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

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

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

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

8 weeks 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 months agofix (some) clippy warnings
Kostya Shishkov [Sun, 22 Feb 2026 19:25:50 +0000 (20:25 +0100)]
fix (some) clippy warnings

2 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months 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 months agoqcelp: typo
Kostya Shishkov [Wed, 18 Feb 2026 17:33:01 +0000 (18:33 +0100)]
qcelp: typo

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

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

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

2 months 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 months 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)

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

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

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

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

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

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

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

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

2 months 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()

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

2 months agointroduce nihav_hlblocks, crate with common code for NihAV-based apps
Kostya Shishkov [Sat, 31 Jan 2026 14:43:38 +0000 (15:43 +0100)]
introduce nihav_hlblocks, crate with common code for NihAV-based apps

2 months agonihav_core: add self-borrowing box structure
Kostya Shishkov [Sat, 31 Jan 2026 12:37:18 +0000 (13:37 +0100)]
nihav_core: add self-borrowing box structure

2 months agonihav_core/frame: fix NATimeInfo::rescale_ts documentation tests
Kostya Shishkov [Wed, 28 Jan 2026 18:00:33 +0000 (19:00 +0100)]
nihav_core/frame: fix NATimeInfo::rescale_ts documentation tests