Commit Graph

34 Commits

Author SHA1 Message Date
k4yt3x
7d10fa2814 fix(encoder): re-add PTS calculation after processing for interpolators
Signed-off-by: k4yt3x <i@k4yt3x.com>
2025-01-21 00:00:00 +00:00
k4yt3x
947788225e fix(encoder): fix a bug that causes the wrong encoder to be selected
Signed-off-by: k4yt3x <i@k4yt3x.com>
2025-01-20 00:00:00 +00:00
k4yt3x
eae89cea4b feat(libvideo2x): allow processing videos without PTS information
Signed-off-by: k4yt3x <i@k4yt3x.com>
2025-01-18 00:00:00 +00:00
Henje
8ffe1b84bd feat(encoder): copy input streams' metadata to output streams (#1284)
* feat(encoder): copy language tag for audio and subtitle streams

Containers with audio streams for different languages use a tag
to signal which track contains which language. This information is
saved in the metadata object of a stream and needs to be copied
in addition to the codec properties.

* feat(encoder): copy input streams' metadata to output streams

---------

Signed-off-by: k4yt3x <i@k4yt3x.com>
Co-authored-by: k4yt3x <i@k4yt3x.com>
2025-01-08 20:39:43 +00:00
k4yt3x
f38452ff94 fix(logging): fix logging statements not using the logger singleton
Signed-off-by: k4yt3x <i@k4yt3x.com>
2025-01-04 00:00:00 +00:00
k4yt3x
a9b9a71e9b style(*): add .clang-format and format all files
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-31 00:00:00 +00:00
k4yt3x
c95a6a46cd feat(encoder): improve av_opt_set error message
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-30 00:00:00 +00:00
k4yt3x
a72c094588 perf(*): change multiversioning target clones to x86-64-v3 and x86-64-v4
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-30 00:00:00 +00:00
K4YT3X
e1e8ed864d perf: improve vectorization optimizations and add function multi-versioning (#1271)
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-22 10:53:09 +00:00
k4yt3x
709cf08760 fix(encoder): decreasing PTS precision with increasing video duration (#1269)
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-21 00:00:00 +00:00
K4YT3X
6676cd2439 feat(logger): add logger manager to provide unified logging (#1267)
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-20 04:46:10 +00:00
K4YT3X
ae2d5d32e4 feat(ns): improve optimization flags and add namespaces (#1261)
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-17 16:24:51 +00:00
k4yt3x
5884dd1ba4 fix(encoder): always use the calculated PTS with corrected math
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-16 00:00:00 +00:00
k4yt3x
ca5044f09c feat(libvideo2x): add optimization for scene detection
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-12 00:00:00 +00:00
K4YT3X
0400cf51b0 refactor(video2x): split the CLI into multiple files; improve CLI args validation (#1247)
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-04 08:06:35 +00:00
K4YT3X
d4d1e58f8d refactor(libvideo2x): convert the video processor into a class (#1246)
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-03 05:22:07 +00:00
K4YT3X
f8dcad3aef chore(libvideo2x)!: replace the C API with C++ API (#1245)
* chore(libvideo2x)!: replace the C API with C++ API
* fix: convert wide string to u8 for av_opt_set
* style: removed unnecessary enum and struct specifiers

Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-02 07:24:30 +00:00
K4YT3X
627f3d84a4 feat(rife): add support for frame interpolation and RIFE (#1244)
* feat: add RIFE files and processor/interpolator abstractions
* feat: add `rife` as processor option
* feat: add frame interpolation math except first frame
* feat: complete motion interpolation and add scene detection
* feat: improve Vulkan device validation
* fix: fix casting issues and variable names
* refactor: improve error-checking; add abstractions and factories
* refactor: improve readability of the frames processor
* docs: update changelog

Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-12-01 09:55:56 +00:00
k4yt3x
3215c89870 feat(encoder): add support for more encoder options
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-11-22 00:00:00 +00:00
k4yt3x
169509b7d4 refactor(*): refactored the encoder and decoder into classes
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-11-17 00:00:00 +00:00
k4yt3x
e393910f21 feat(encoder): added auto selection of the most suitable output pix_fmt
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-11-10 00:00:00 +00:00
k4yt3x
e477123e88 fix(encoder): timestamp errors processing frames with PTS equal to 0
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-11-10 00:00:00 +00:00
k4yt3x
943b446d26 fix(encoder): make the encoder use the right color space
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-11-07 00:00:00 +00:00
k4yt3x
33b7c53e16 fix(encoder): fixed incorrect stream mapping for multi-stream files
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-11-06 00:00:00 +00:00
k4yt3x
94e69f9f62 fix(libvideo2x): fixed wide character string paths on Windows 2024-11-01 22:19:01 -04:00
k4yt3x
a8b952c3ad feat(libplacebo): auto-detect the buffer filter's supported options
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-10-31 00:00:00 +00:00
k4yt3x
d50cf54f2a style(libvideo2x): improved resource cleaning and error handling
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-10-29 00:00:00 +00:00
k4yt3x
613b75ffec fix(encoder): fixed incorrect encoded video frame rate
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-10-28 00:00:00 +00:00
k4yt3x
482e82f9c4 style(*): reduced implicit casting and other styling issues
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-10-25 00:00:00 +00:00
k4yt3x
640d9cd52b fix(encoder): fixed memory leak in the encoder
Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-10-21 00:00:00 +00:00
K4YT3X
bc168d11ab feat(libvideo2x): use OpenCV to retrieve total frame count (#1194) 2024-10-21 23:54:22 +00:00
K4YT3X
cd2006b4d9 feat(*): switched to spdlog for logging and organized headers (#1183)
* feat: updated PKGBUILD description
* feat: updated workflow syntax and dependencies
* feat: switched logging to spdlog
* chore: adjusted library defaults
* ci: fixed spdlog format string issues
* docs: fixed docs for libvideo2x functions
* feat: organized header files
* fix: fixed header installation directory
* feat: link spdlog statically if compiled from source
* feat: adjusted libvideo2x log level enum names
* feat: added version.h header

Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-10-14 02:46:59 +00:00
K4YT3X
37c2c4c647 feat(*): added support for copying audio/subtitle streams and pause/abort (#1179)
* feat: added Makefile target for debian
* fix: fixed Dockerfile installing the wrong package
* feat: added hwaccel for encoder and decoder
* feat: added benchmark mode
* feat: removed hard-coded keyframe info
* chore: cleaned up headers and organized code
* style: cleaned up headers and includes
* feat: added a progress bar for CLI
* feat: removed atomicity requirements on processed frames
* feat: added pause and abort for CLI
* chore: updated default preset and crf settings
* feat: added support for copying audio and subtitle streams
* fix: fixed syntax issues for MSVC
* fix: fixed audio/subtitle timestamp rescaling

Signed-off-by: k4yt3x <i@k4yt3x.com>
2024-10-10 07:23:13 +00:00
K4YT3X
a7952fc493 feat(*): rewritten the project with C/C++ (#1172) 2024-10-08 02:29:00 +00:00