]> git.nihav.org Git - nihav.git/log
nihav.git
4 hours agonihav_core/scale: support unpacking e.g. 15-bit RGB sent as bytes master
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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2 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

2 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

2 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

2 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

2 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

2 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

2 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

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

2 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

2 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

2 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

2 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

2 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

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

2 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

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

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

2 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

2 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

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

2 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

2 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

2 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

2 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

2 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

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

2 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

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

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

3 weeks agonihav_core/soundcvt: improve calculate_remix_matrix()
Kostya Shishkov [Wed, 28 Jan 2026 17:57:14 +0000 (18:57 +0100)]
nihav_core/soundcvt: improve calculate_remix_matrix()

3 weeks agonihav_core/formats: add another helper function for NAChannelType
Kostya Shishkov [Wed, 28 Jan 2026 17:56:03 +0000 (18:56 +0100)]
nihav_core/formats: add another helper function for NAChannelType

3 weeks agonihav_core/formats: add channels iterator for NAChannelMap
Kostya Shishkov [Wed, 28 Jan 2026 17:54:25 +0000 (18:54 +0100)]
nihav_core/formats: add channels iterator for NAChannelMap

3 weeks agonihav_core/formats: more idiomatic NAChannelMap::find_channel_id()
Kostya Shishkov [Wed, 28 Jan 2026 17:52:16 +0000 (18:52 +0100)]
nihav_core/formats: more idiomatic NAChannelMap::find_channel_id()

3 weeks agonihav_core/formats: correct spelling for one function
Kostya Shishkov [Wed, 28 Jan 2026 17:50:20 +0000 (18:50 +0100)]
nihav_core/formats: correct spelling for one function

3 weeks agoQuickDraw decoder (with limited functionality)
Kostya Shishkov [Wed, 28 Jan 2026 17:48:13 +0000 (18:48 +0100)]
QuickDraw decoder (with limited functionality)

3 weeks agowav: better handling for VBR codecs (like MP3)
Kostya Shishkov [Sun, 25 Jan 2026 17:13:05 +0000 (18:13 +0100)]
wav: better handling for VBR codecs (like MP3)

Those formats set block_size=1, so make demuxer read and pass
~1kB packets to the decoder instead in hope it can handle it.

4 weeks agoreplace NATimeInfo::{time_to_ts,ts_to_time} with single rescale_ts
Kostya Shishkov [Thu, 22 Jan 2026 18:03:01 +0000 (19:03 +0100)]
replace NATimeInfo::{time_to_ts,ts_to_time} with single rescale_ts

4 weeks agosupport raw YUV420 in MOV
Kostya Shishkov [Wed, 21 Jan 2026 17:27:55 +0000 (18:27 +0100)]
support raw YUV420 in MOV

4 weeks agoavimux: report depth 16 for 15-bit content
Kostya Shishkov [Wed, 21 Jan 2026 20:15:39 +0000 (21:15 +0100)]
avimux: report depth 16 for 15-bit content

4 weeks agonihav_core/scale: copy only the common part of the buffer
Kostya Shishkov [Wed, 21 Jan 2026 20:05:13 +0000 (21:05 +0100)]
nihav_core/scale: copy only the common part of the buffer

For padded pictures strides and offsets may be the same while
overall size differs, leading to panic during copy.

4 weeks agomov: skip gama atom in codec descriptor
Kostya Shishkov [Tue, 20 Jan 2026 17:36:00 +0000 (18:36 +0100)]
mov: skip gama atom in codec descriptor

2 months agonihav_core/scale: fix the case when unpacking with discarding alpha
Kostya Shishkov [Tue, 2 Dec 2025 17:09:27 +0000 (18:09 +0100)]
nihav_core/scale: fix the case when unpacking with discarding alpha

3 months agopgvv: version 2 is decoded fine apparently
Kostya Shishkov [Thu, 6 Nov 2025 16:46:45 +0000 (17:46 +0100)]
pgvv: version 2 is decoded fine apparently

3 months agoadd Fractal Codec (VfW version)
Kostya Shishkov [Sat, 25 Oct 2025 16:05:47 +0000 (18:05 +0200)]
add Fractal Codec (VfW version)

4 months agomov: invent keyframes for video stream if none were found
Kostya Shishkov [Sat, 18 Oct 2025 12:03:09 +0000 (14:03 +0200)]
mov: invent keyframes for video stream if none were found

This happens with e.g. TM1 in MOV files, supposedly every chunk starts
with a keyframe then.

4 months agoaac: 1-8 channels in LC are fine
Kostya Shishkov [Sat, 11 Oct 2025 12:28:37 +0000 (14:28 +0200)]
aac: 1-8 channels in LC are fine

4 months agoadd implicit lifetimes markers where appropriate
Kostya Shishkov [Thu, 9 Oct 2025 16:05:15 +0000 (18:05 +0200)]
add implicit lifetimes markers where appropriate

Default Rust 1.69 does not care but newer versions start to give warnings.

4 months agoreorganise warning suppressions so that audio-only builds won't complain
Kostya Shishkov [Thu, 9 Oct 2025 16:04:14 +0000 (18:04 +0200)]
reorganise warning suppressions so that audio-only builds won't complain

4 months agonihav_game: use abs_diff() where appropriate
Kostya Shishkov [Thu, 9 Oct 2025 16:01:56 +0000 (18:01 +0200)]
nihav_game: use abs_diff() where appropriate

4 months agonihav_codec_support: use clamp() where appropriate
Kostya Shishkov [Thu, 9 Oct 2025 16:01:23 +0000 (18:01 +0200)]
nihav_codec_support: use clamp() where appropriate

4 months agobinkdemux: fix arbitrary seeking with large timebase denominator
Kostya Shishkov [Tue, 7 Oct 2025 04:39:33 +0000 (06:39 +0200)]
binkdemux: fix arbitrary seeking with large timebase denominator

4 months agoavi: implement demuxing for non-interleaved case
Kostya Shishkov [Sat, 4 Oct 2025 16:24:04 +0000 (18:24 +0200)]
avi: implement demuxing for non-interleaved case

4 months agofix StreamManager::is_ignored() for the default case
Kostya Shishkov [Sat, 4 Oct 2025 16:23:20 +0000 (18:23 +0200)]
fix StreamManager::is_ignored() for the default case

4 months agoavi: improve working with Saturn videos
Kostya Shishkov [Sat, 4 Oct 2025 12:46:21 +0000 (14:46 +0200)]
avi: improve working with Saturn videos

Some of those have both unaligned chunks and junk between frame chunks.
Thus let it rely on the index from "iddx" to demux data properly.

4 months agofix some clippy warnings
Kostya Shishkov [Thu, 2 Oct 2025 17:08:52 +0000 (19:08 +0200)]
fix some clippy warnings

Mostly it is using clamp() where appropriate and using "static"
instead of "const" for large tables.

4 months agovmd: implement optional seeking to arbitrary position
Kostya Shishkov [Thu, 2 Oct 2025 16:33:23 +0000 (18:33 +0200)]
vmd: implement optional seeking to arbitrary position

4 months agobinkvid: allow decoding from inter frame
Kostya Shishkov [Wed, 1 Oct 2025 16:45:51 +0000 (18:45 +0200)]
binkvid: allow decoding from inter frame

The old behaviour may still be enabled with strict_mode option.

4 months agosmacker: clear frame after seeking
Kostya Shishkov [Wed, 1 Oct 2025 16:45:38 +0000 (18:45 +0200)]
smacker: clear frame after seeking

4 months agosmackerdemux: introduce optional seeking to arbitrary position
Kostya Shishkov [Wed, 1 Oct 2025 16:44:23 +0000 (18:44 +0200)]
smackerdemux: introduce optional seeking to arbitrary position

4 months agobinkdemux: introduce optional arbitrary seeking mode
Kostya Shishkov [Wed, 1 Oct 2025 16:43:55 +0000 (18:43 +0200)]
binkdemux: introduce optional arbitrary seeking mode

4 months agonihav_core: introduce common option for forced arbitrary seeks in demuxer
Kostya Shishkov [Wed, 1 Oct 2025 16:42:23 +0000 (18:42 +0200)]
nihav_core: introduce common option for forced arbitrary seeks in demuxer

4 months agoescape: relax dimensions checking
Kostya Shishkov [Sun, 28 Sep 2025 03:59:23 +0000 (05:59 +0200)]
escape: relax dimensions checking

4 months agoadd Gryphon Software ARBC decoder
Kostya Shishkov [Fri, 26 Sep 2025 17:05:30 +0000 (19:05 +0200)]
add Gryphon Software ARBC decoder

4 months agomov: fix rawvideo format support
Kostya Shishkov [Wed, 24 Sep 2025 16:46:40 +0000 (18:46 +0200)]
mov: fix rawvideo format support

5 months agosmacker: refactor timestamp handling
Kostya Shishkov [Sun, 21 Sep 2025 15:59:30 +0000 (17:59 +0200)]
smacker: refactor timestamp handling

The files have constant rate so relying on pts_inc/100000 as timebase
is enough.

5 months agonihav-registry/detect: reorganise avi and avi-dib detection
Kostya Shishkov [Sun, 21 Sep 2025 15:46:02 +0000 (17:46 +0200)]
nihav-registry/detect: reorganise avi and avi-dib detection

This is more important for the encoding.

5 months agoadd DIB AVI demuxer
Kostya Shishkov [Fri, 19 Sep 2025 15:51:11 +0000 (17:51 +0200)]
add DIB AVI demuxer

5 months agomotionpixels: improve decoding of videos with kropping on odd lines
Kostya Shishkov [Wed, 10 Sep 2025 17:02:03 +0000 (19:02 +0200)]
motionpixels: improve decoding of videos with kropping on odd lines

5 months agonihav_registry: add Indeo 2 and 3 tags to known MOV codecs
Kostya Shishkov [Mon, 8 Sep 2025 17:05:27 +0000 (19:05 +0200)]
nihav_registry: add Indeo 2 and 3 tags to known MOV codecs

5 months agoindeo3enc: try to improve rate control a bit more
Kostya Shishkov [Mon, 8 Sep 2025 17:03:47 +0000 (19:03 +0200)]
indeo3enc: try to improve rate control a bit more

5 months agoindeo3enc: improve handling of skipped frames
Kostya Shishkov [Sun, 7 Sep 2025 16:59:17 +0000 (18:59 +0200)]
indeo3enc: improve handling of skipped frames

5 months agompeg4asp: mark actual skip MBs in B-frames as such
Kostya Shishkov [Sat, 6 Sep 2025 15:57:02 +0000 (17:57 +0200)]
mpeg4asp: mark actual skip MBs in B-frames as such

5 months agoadd a semblance of support for Intel DVI ADPCM
Kostya Shishkov [Fri, 5 Sep 2025 17:04:34 +0000 (19:04 +0200)]
add a semblance of support for Intel DVI ADPCM

5 months agodvi: better AVSS format support
Kostya Shishkov [Thu, 4 Sep 2025 16:29:27 +0000 (18:29 +0200)]
dvi: better AVSS format support

5 months agoindeo2: support custom codes
Kostya Shishkov [Thu, 4 Sep 2025 06:31:04 +0000 (08:31 +0200)]
indeo2: support custom codes

5 months agojpeg: improve support for fringe variants
Kostya Shishkov [Mon, 1 Sep 2025 16:50:36 +0000 (18:50 +0200)]
jpeg: improve support for fringe variants

This fixes decoding for files where each component is coded in separate scan
as well as introducing support for YUV410 format.

5 months agoavi: refactor demuxing code
Kostya Shishkov [Sat, 30 Aug 2025 16:58:01 +0000 (18:58 +0200)]
avi: refactor demuxing code

Use simpler approach to parsing, more idiomatic Rust, structure code better.

5 months agoIndeo YVU9 Compressed decoder
Kostya Shishkov [Sat, 30 Aug 2025 10:12:38 +0000 (12:12 +0200)]
Indeo YVU9 Compressed decoder

5 months agompadec: fix MPEG Layer III LSF decoding in multiframe mode
Kostya Shishkov [Sat, 23 Aug 2025 14:49:17 +0000 (16:49 +0200)]
mpadec: fix MPEG Layer III LSF decoding in multiframe mode

5 months agots102366: fix floor value
Kostya Shishkov [Sat, 23 Aug 2025 14:28:05 +0000 (16:28 +0200)]
ts102366: fix floor value

5 months agoTS 102.366 multi-frame stream decoder
Kostya Shishkov [Sat, 23 Aug 2025 14:27:17 +0000 (16:27 +0200)]
TS 102.366 multi-frame stream decoder

5 months agoATSC A/52B packetiser
Kostya Shishkov [Sat, 23 Aug 2025 12:33:50 +0000 (14:33 +0200)]
ATSC A/52B packetiser