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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

6 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

6 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

6 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

6 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

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

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

6 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

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

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

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

6 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

6 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

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

6 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

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

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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

6 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

6 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

6 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

6 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

6 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

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

6 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

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

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

6 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

6 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

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

6 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

6 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

6 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

6 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

6 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

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

6 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

6 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

6 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

7 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

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

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

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

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

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

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

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

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

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

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

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

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

8 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

9 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

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

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

10 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

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

10 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

10 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

10 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

10 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

10 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

10 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

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

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

10 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

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

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

10 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

10 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

10 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

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

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

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

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

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

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

11 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

11 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

11 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

11 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

11 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

11 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