]> git.nihav.org Git - nihav.git/log
nihav.git
19 hours agoh264: silence unused assigment warning master
Kostya Shishkov [Fri, 27 Feb 2026 17:53:23 +0000 (18:53 +0100)]
h264: silence unused assigment warning

19 hours 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.

20 hours 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.

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

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

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

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

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

20 hours 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)

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

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

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

3 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

13 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

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

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

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

2 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

2 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

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

2 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

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

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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

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

3 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

3 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

3 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

3 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

3 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

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

3 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

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

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

3 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

3 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

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

3 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

3 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

3 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

3 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

3 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

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

3 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

3 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

4 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

4 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

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

4 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

4 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

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

4 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

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

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

5 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

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

5 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

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

5 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