]> git.nihav.org Git - nihav.git/log
nihav.git
13 months agobinkaud: split out common data definitions for the future encoder
Kostya Shishkov [Sat, 30 Sep 2023 09:59:51 +0000 (11:59 +0200)]
binkaud: split out common data definitions for the future encoder

13 months agoBink muxer
Kostya Shishkov [Sat, 30 Sep 2023 09:43:02 +0000 (11:43 +0200)]
Bink muxer

13 months agoBink Video encoder (only 'b' version for now)
Kostya Shishkov [Sat, 30 Sep 2023 09:40:32 +0000 (11:40 +0200)]
Bink Video encoder (only 'b' version for now)

13 months agobinkvid: move data tables into separate module
Kostya Shishkov [Sat, 30 Sep 2023 08:12:40 +0000 (10:12 +0200)]
binkvid: move data tables into separate module

This is preparation work for the upcoming encoder.

13 months agosmacker: add forgotten recursion depth check
Kostya Shishkov [Sat, 30 Sep 2023 09:46:18 +0000 (11:46 +0200)]
smacker: add forgotten recursion depth check

14 months agogifenc: support grayscale input directly
Kostya Shishkov [Mon, 11 Sep 2023 15:38:13 +0000 (17:38 +0200)]
gifenc: support grayscale input directly

14 months agogifenc: improve no-compression mode by keeping code lengths the same
Kostya Shishkov [Mon, 11 Sep 2023 10:08:52 +0000 (12:08 +0200)]
gifenc: improve no-compression mode by keeping code lengths the same

14 months agoGIF support
Kostya Shishkov [Sun, 10 Sep 2023 16:46:32 +0000 (18:46 +0200)]
GIF support

14 months agocore/scale: support copying paletted frames
Kostya Shishkov [Sat, 9 Sep 2023 07:33:36 +0000 (09:33 +0200)]
core/scale: support copying paletted frames

14 months agoadd (limited) support for Digital Pictures SGA format
Kostya Shishkov [Sat, 2 Sep 2023 15:45:27 +0000 (17:45 +0200)]
add (limited) support for Digital Pictures SGA format

14 months agozmbvenc: implement coarse but fast motion estimation and use it by default
Kostya Shishkov [Fri, 25 Aug 2023 16:57:22 +0000 (18:57 +0200)]
zmbvenc: implement coarse but fast motion estimation and use it by default

14 months agowav: try to read as much PCM data as possible
Kostya Shishkov [Fri, 25 Aug 2023 16:55:42 +0000 (18:55 +0200)]
wav: try to read as much PCM data as possible

Otherwise read_buf_some() may return random small buffer size that
is not even aligned to the sample size.

14 months agowav: allow demuxing custom block sizes
Kostya Shishkov [Fri, 25 Aug 2023 16:54:44 +0000 (18:54 +0200)]
wav: allow demuxing custom block sizes

15 months agocore/compr: fix documentation comments
Kostya Shishkov [Thu, 17 Aug 2023 16:20:27 +0000 (18:20 +0200)]
core/compr: fix documentation comments

15 months agoflashsv: the codec uses BGR24 format instead of RGB24
Kostya Shishkov [Sat, 12 Aug 2023 07:24:17 +0000 (09:24 +0200)]
flashsv: the codec uses BGR24 format instead of RGB24

15 months agoflashsv: whitespace fix
Kostya Shishkov [Sat, 12 Aug 2023 07:17:04 +0000 (09:17 +0200)]
flashsv: whitespace fix

15 months agoh264: more micro-optimisations
Kostya Shishkov [Fri, 11 Aug 2023 16:27:48 +0000 (18:27 +0200)]
h264: more micro-optimisations

* split IDCT function so it has only two parameters
* evade instantiating frame references for each MB or even sub-block
* other small code changes

15 months agoh264: prepare data references before decoding
Kostya Shishkov [Tue, 8 Aug 2023 12:39:17 +0000 (14:39 +0200)]
h264: prepare data references before decoding

This speeds up decoding by eliminating the need for refcounted accesses.

15 months agoh264: miscellaneous micro-optimisations
Kostya Shishkov [Mon, 7 Aug 2023 17:01:42 +0000 (19:01 +0200)]
h264: miscellaneous micro-optimisations

15 months agoh264: cache data before use in fill_deblock()
Kostya Shishkov [Sat, 5 Aug 2023 17:06:09 +0000 (19:06 +0200)]
h264: cache data before use in fill_deblock()

15 months agoh264: introduce frame pool for average block buffers in MT decoder
Kostya Shishkov [Sat, 5 Aug 2023 14:19:31 +0000 (16:19 +0200)]
h264: introduce frame pool for average block buffers in MT decoder

15 months agoh264: make a specific version of 4x4 bidirectional MC function
Kostya Shishkov [Sat, 5 Aug 2023 09:47:21 +0000 (11:47 +0200)]
h264: make a specific version of 4x4 bidirectional MC function

15 months agoh264: reduce number of arguments for mc_blocks()
Kostya Shishkov [Fri, 4 Aug 2023 16:55:18 +0000 (18:55 +0200)]
h264: reduce number of arguments for mc_blocks()

15 months agoh264: optimise check_filter() for AMD64
Kostya Shishkov [Fri, 4 Aug 2023 16:10:22 +0000 (18:10 +0200)]
h264: optimise check_filter() for AMD64

15 months agovp6dsp: SSE2 intrinsics version of bilinear motion compensation
Kostya Shishkov [Thu, 27 Jul 2023 16:07:18 +0000 (18:07 +0200)]
vp6dsp: SSE2 intrinsics version of bilinear motion compensation

This is an old patch picked up mostly because those intrinsics
are stable now.

15 months agofix clippy warnings
Kostya Shishkov [Wed, 26 Jul 2023 17:03:18 +0000 (19:03 +0200)]
fix clippy warnings

15 months agoh264: introduce inline assembly for CABAC get_bit() and bump compiler version
Kostya Shishkov [Wed, 26 Jul 2023 16:22:42 +0000 (18:22 +0200)]
h264: introduce inline assembly for CABAC get_bit() and bump compiler version

15 months agoswitch to rustc 1.69
Kostya Shishkov [Thu, 27 Jul 2023 16:00:34 +0000 (18:00 +0200)]
switch to rustc 1.69

15 months agoh264: fix warnings regarding uninitialised memory
Kostya Shishkov [Wed, 26 Jul 2023 16:21:07 +0000 (18:21 +0200)]
h264: fix warnings regarding uninitialised memory

15 months agocore/soundcvt: typo
Kostya Shishkov [Tue, 25 Jul 2023 16:31:01 +0000 (18:31 +0200)]
core/soundcvt: typo

15 months agormmux: fix test checksums
Kostya Shishkov [Tue, 25 Jul 2023 16:01:50 +0000 (18:01 +0200)]
rmmux: fix test checksums

Those were wrong in 353373a32fcbf842efb6fb11462b5c757b0d382e

16 months agoaac: fix intensity stereo direction
Kostya Shishkov [Wed, 19 Jul 2023 16:00:35 +0000 (18:00 +0200)]
aac: fix intensity stereo direction

16 months agoTrueMotion 1 encoder
Kostya Shishkov [Tue, 18 Jul 2023 16:54:02 +0000 (18:54 +0200)]
TrueMotion 1 encoder

Only 15-bit mode is supported.

16 months agotruemotion1data: signal delta table sizes
Kostya Shishkov [Tue, 18 Jul 2023 16:17:41 +0000 (18:17 +0200)]
truemotion1data: signal delta table sizes

16 months agotruemotion1: split off data tables for the upcoming encoder
Kostya Shishkov [Tue, 11 Jul 2023 16:49:59 +0000 (18:49 +0200)]
truemotion1: split off data tables for the upcoming encoder

16 months agoh264: clear frame refs on flush
Kostya Shishkov [Thu, 6 Jul 2023 16:30:20 +0000 (18:30 +0200)]
h264: clear frame refs on flush

16 months agocore/reorder: clear frame IDs in MTFrameReorderer on flush
Kostya Shishkov [Thu, 6 Jul 2023 16:30:04 +0000 (18:30 +0200)]
core/reorder: clear frame IDs in MTFrameReorderer on flush

16 months agomov: do not overwrite timebase with sample rate
Kostya Shishkov [Fri, 30 Jun 2023 16:11:11 +0000 (18:11 +0200)]
mov: do not overwrite timebase with sample rate

E.g. in AAC SBR case we may get timebase 2048/44100 with the nominal
sample rate being 22050 Hz.

16 months agomov: try to sync audio and video tracks when seeking
Kostya Shishkov [Wed, 28 Jun 2023 17:08:36 +0000 (19:08 +0200)]
mov: try to sync audio and video tracks when seeking

16 months agoaac: fix intensity and mid/side stereo reconstruction
Kostya Shishkov [Sat, 24 Jun 2023 09:44:59 +0000 (11:44 +0200)]
aac: fix intensity and mid/side stereo reconstruction

17 months agomov: set DTS to PTS when actual value is not available
Kostya Shishkov [Sat, 17 Jun 2023 14:04:54 +0000 (16:04 +0200)]
mov: set DTS to PTS when actual value is not available

17 months agoavimux: set palette change flag in stream header if applicable
Kostya Shishkov [Sat, 17 Jun 2023 09:03:04 +0000 (11:03 +0200)]
avimux: set palette change flag in stream header if applicable

17 months agocore/scale: fix typos in scaling loop
Kostya Shishkov [Fri, 16 Jun 2023 16:08:04 +0000 (18:08 +0200)]
core/scale: fix typos in scaling loop

17 months agorawvideoenc: suggest YUV during format negotiation
Kostya Shishkov [Fri, 16 Jun 2023 16:07:39 +0000 (18:07 +0200)]
rawvideoenc: suggest YUV during format negotiation

17 months agoallstuff: register multi-threaded decoders as well
Kostya Shishkov [Wed, 14 Jun 2023 16:53:10 +0000 (18:53 +0200)]
allstuff: register multi-threaded decoders as well

17 months agoh264: add multi-threaded decoder
Kostya Shishkov [Wed, 14 Jun 2023 16:51:44 +0000 (18:51 +0200)]
h264: add multi-threaded decoder

17 months agoh264: make some structures shareable
Kostya Shishkov [Wed, 14 Jun 2023 16:47:18 +0000 (18:47 +0200)]
h264: make some structures shareable

This is a preparation work for an upcoming multi-threaded decoding.

17 months agoh264: split current slice references into a separate structure
Kostya Shishkov [Wed, 14 Jun 2023 16:41:31 +0000 (18:41 +0200)]
h264: split current slice references into a separate structure

This will become useful when decoding a whole frame at once.

17 months agoh264: move decoder-specific bits into separate module
Kostya Shishkov [Wed, 14 Jun 2023 16:32:04 +0000 (18:32 +0200)]
h264: move decoder-specific bits into separate module

This is done as a preparation work for introducing multi-threaded decoding.

17 months agocodec_support/test: add a function for testing multi-threaded decoders
Kostya Shishkov [Sat, 10 Jun 2023 10:31:39 +0000 (12:31 +0200)]
codec_support/test: add a function for testing multi-threaded decoders

17 months agocore/frame: add means for NAVideoBufferPool to grow and report its usage
Kostya Shishkov [Sat, 10 Jun 2023 10:30:54 +0000 (12:30 +0200)]
core/frame: add means for NAVideoBufferPool to grow and report its usage

17 months agogeneric frame reorderer for multi-threaded decoders
Kostya Shishkov [Sat, 10 Jun 2023 10:29:48 +0000 (12:29 +0200)]
generic frame reorderer for multi-threaded decoders

17 months agointroduce the interface for multi-threaded decoders
Kostya Shishkov [Sat, 10 Jun 2023 10:28:31 +0000 (12:28 +0200)]
introduce the interface for multi-threaded decoders

17 months agocinepakenc: add an option to further refine the selected vectors
Kostya Shishkov [Mon, 5 Jun 2023 16:27:43 +0000 (18:27 +0200)]
cinepakenc: add an option to further refine the selected vectors

17 months agoraw video "encoder"
Kostya Shishkov [Sun, 4 Jun 2023 13:22:49 +0000 (15:22 +0200)]
raw video "encoder"

17 months agoadd YUV4MPEG muxer
Kostya Shishkov [Sat, 3 Jun 2023 14:56:56 +0000 (16:56 +0200)]
add YUV4MPEG muxer

17 months agoy4m: if no colourspace is specified it should be YUV 4:2:0
Kostya Shishkov [Sat, 3 Jun 2023 08:42:19 +0000 (10:42 +0200)]
y4m: if no colourspace is specified it should be YUV 4:2:0

17 months agocinepakenc: introduce fast VQ mode and make it default
Kostya Shishkov [Sat, 3 Jun 2023 08:06:24 +0000 (10:06 +0200)]
cinepakenc: introduce fast VQ mode and make it default

17 months agocinepakenc: factor out ELBG quantisation
Kostya Shishkov [Sat, 3 Jun 2023 07:45:13 +0000 (09:45 +0200)]
cinepakenc: factor out ELBG quantisation

This will be useful in the upcoming fast VQ mode.

17 months agocinepakenc: make ELBG mode to behave like hybrid mode (and drop that one)
Kostya Shishkov [Sat, 3 Jun 2023 07:40:19 +0000 (09:40 +0200)]
cinepakenc: make ELBG mode to behave like hybrid mode (and drop that one)

In reality it is the proper way to perform (E)LBG VQ so the old ineffective
ELBG should be replaced with "hybrid" quantisation way.

17 months agozmbvenc: handle I-frames that turned out to be skip frames
Kostya Shishkov [Thu, 25 May 2023 15:46:59 +0000 (17:46 +0200)]
zmbvenc: handle I-frames that turned out to be skip frames

17 months agozmbvenc: update checksums after deflate changes
Kostya Shishkov [Wed, 24 May 2023 17:33:17 +0000 (19:33 +0200)]
zmbvenc: update checksums after deflate changes

17 months agocore/soundcvt: add resampling support
Kostya Shishkov [Tue, 23 May 2023 17:52:37 +0000 (19:52 +0200)]
core/soundcvt: add resampling support

17 months agocore/scale: add proper rescaling
Kostya Shishkov [Tue, 23 May 2023 17:36:04 +0000 (19:36 +0200)]
core/scale: add proper rescaling

17 months agocore/compr: make code length limiting in deflate actually work
Kostya Shishkov [Wed, 24 May 2023 17:48:11 +0000 (19:48 +0200)]
core/compr: make code length limiting in deflate actually work

17 months agocore/compr: fix clippy warnings
Kostya Shishkov [Wed, 24 May 2023 17:20:11 +0000 (19:20 +0200)]
core/compr: fix clippy warnings

17 months agocore/compr: improve deflate match search
Kostya Shishkov [Wed, 24 May 2023 17:14:19 +0000 (19:14 +0200)]
core/compr: improve deflate match search

18 months agocinepakenc: try to calculate the number of strips automatically if requested
Kostya Shishkov [Sat, 20 May 2023 15:07:13 +0000 (17:07 +0200)]
cinepakenc: try to calculate the number of strips automatically if requested

18 months agocore/scale: fix off-by-one typo
Kostya Shishkov [Sat, 20 May 2023 14:53:47 +0000 (16:53 +0200)]
core/scale: fix off-by-one typo

18 months agoRealVideo 4 encoder
Kostya Shishkov [Thu, 18 May 2023 16:27:26 +0000 (18:27 +0200)]
RealVideo 4 encoder

18 months agorv34: make coefficient data public for the upcoming encoder
Kostya Shishkov [Thu, 18 May 2023 16:23:00 +0000 (18:23 +0200)]
rv34: make coefficient data public for the upcoming encoder

18 months agorv40: split off data into separate module for the upcoming encoder
Kostya Shishkov [Thu, 18 May 2023 16:21:48 +0000 (18:21 +0200)]
rv40: split off data into separate module for the upcoming encoder

18 months agoflacdemux: improve frame bounds search
Kostya Shishkov [Wed, 17 May 2023 16:27:39 +0000 (18:27 +0200)]
flacdemux: improve frame bounds search

18 months agormmux: rework video packetisation and add some debug prints
Kostya Shishkov [Thu, 11 May 2023 17:26:44 +0000 (19:26 +0200)]
rmmux: rework video packetisation and add some debug prints

18 months agormmux: generate monotone timestamps for video stream
Kostya Shishkov [Thu, 4 May 2023 17:14:14 +0000 (19:14 +0200)]
rmmux: generate monotone timestamps for video stream

18 months agocore/codecs: EncodeParameters.bitrate is in bits per second
Kostya Shishkov [Sun, 7 May 2023 15:06:22 +0000 (17:06 +0200)]
core/codecs: EncodeParameters.bitrate is in bits per second

20 months agoavimux: fix palette writing in the video stream header
Kostya Shishkov [Tue, 14 Mar 2023 10:32:11 +0000 (11:32 +0100)]
avimux: fix palette writing in the video stream header

20 months agointroduce a way for encoder to manifest its capabilities
Kostya Shishkov [Tue, 14 Mar 2023 10:11:31 +0000 (11:11 +0100)]
introduce a way for encoder to manifest its capabilities

20 months agoaacsbr: fix high<->low resolution envelope mapping
Kostya Shishkov [Mon, 13 Mar 2023 12:46:59 +0000 (13:46 +0100)]
aacsbr: fix high<->low resolution envelope mapping

20 months agoaacsbr: fix off-by-one situation with envelope borders
Kostya Shishkov [Mon, 13 Mar 2023 11:00:09 +0000 (12:00 +0100)]
aacsbr: fix off-by-one situation with envelope borders

20 months agoCook encoder
Kostya Shishkov [Thu, 9 Mar 2023 18:44:20 +0000 (19:44 +0100)]
Cook encoder

20 months agocook: split data into a separate module
Kostya Shishkov [Thu, 2 Mar 2023 18:50:37 +0000 (19:50 +0100)]
cook: split data into a separate module

20 months agormmux: better audio codec flavour detection
Kostya Shishkov [Tue, 7 Mar 2023 17:32:44 +0000 (18:32 +0100)]
rmmux: better audio codec flavour detection

20 months agormmux: improve the audio packet timestamp handling
Kostya Shishkov [Tue, 7 Mar 2023 16:50:42 +0000 (17:50 +0100)]
rmmux: improve the audio packet timestamp handling

20 months agoadd RealMedia and RealAudio muxers
Kostya Shishkov [Wed, 1 Mar 2023 18:36:38 +0000 (19:36 +0100)]
add RealMedia and RealAudio muxers

20 months agorealmedia: hopefully fix reported block size
Kostya Shishkov [Wed, 1 Mar 2023 17:28:24 +0000 (18:28 +0100)]
realmedia: hopefully fix reported block size

20 months agorealmedia: clear non-existing timestamps in .ra
Kostya Shishkov [Wed, 1 Mar 2023 17:22:54 +0000 (18:22 +0100)]
realmedia: clear non-existing timestamps in .ra

20 months agorealmedia: parse the original RealAudio files with even shorter v3 header
Kostya Shishkov [Fri, 24 Feb 2023 17:25:02 +0000 (18:25 +0100)]
realmedia: parse the original RealAudio files with even shorter v3 header

20 months agocinepakenc: add option for forcing V1-only mode
Kostya Shishkov [Thu, 23 Feb 2023 18:22:25 +0000 (19:22 +0100)]
cinepakenc: add option for forcing V1-only mode

20 months agocinepakenc: in hybrid VQ mode do not run ELBG refinement for < 256 entries
Kostya Shishkov [Thu, 23 Feb 2023 17:25:35 +0000 (18:25 +0100)]
cinepakenc: in hybrid VQ mode do not run ELBG refinement for < 256 entries

20 months agocinepakenc: output only the active codebook part
Kostya Shishkov [Thu, 23 Feb 2023 17:15:06 +0000 (18:15 +0100)]
cinepakenc: output only the active codebook part

20 months agocinepakenc: fix detection of codebook changed part
Kostya Shishkov [Thu, 23 Feb 2023 16:53:43 +0000 (17:53 +0100)]
cinepakenc: fix detection of codebook changed part

20 months agocinepakenc: fix mask output optimisation
Kostya Shishkov [Thu, 23 Feb 2023 16:48:24 +0000 (17:48 +0100)]
cinepakenc: fix mask output optimisation

21 months agorename "str" variable to avoid confusion with the primitive type
Kostya Shishkov [Fri, 17 Feb 2023 17:23:38 +0000 (18:23 +0100)]
rename "str" variable to avoid confusion with the primitive type

21 months agoavi: fix handling of palette change chunk with 256 colours
Kostya Shishkov [Tue, 14 Feb 2023 17:50:51 +0000 (18:50 +0100)]
avi: fix handling of palette change chunk with 256 colours

21 months agomsvideo1enc: fix inversed flags in quantisation
Kostya Shishkov [Tue, 14 Feb 2023 17:50:21 +0000 (18:50 +0100)]
msvideo1enc: fix inversed flags in quantisation

21 months agoindeo3enc: advance frameno on skip frames as well
Kostya Shishkov [Wed, 15 Feb 2023 19:46:20 +0000 (20:46 +0100)]
indeo3enc: advance frameno on skip frames as well

21 months agoindeo3enc: requant input only in modes 0/3/10
Kostya Shishkov [Wed, 15 Feb 2023 19:45:23 +0000 (20:45 +0100)]
indeo3enc: requant input only in modes 0/3/10

21 months agoindeo3enc: rework cell intra flag logic
Kostya Shishkov [Wed, 15 Feb 2023 19:01:38 +0000 (20:01 +0100)]
indeo3enc: rework cell intra flag logic

Previously it was used to signal frame type instead of cell type, which led
to VQ NULL cell type appearing in intra-only cells.

21 months agoindeo3enc: fix always enabled frame recompression
Kostya Shishkov [Wed, 15 Feb 2023 18:49:20 +0000 (19:49 +0100)]
indeo3enc: fix always enabled frame recompression