Mike-Solar
bb40b4923e
style: unify identifier naming per updated conventions
...
Automated with clang-tidy readability-identifier-naming (config added to
.clang-tidy) plus scripted passes, per the updated rules now documented
in CONTRIBUTING.md:
- types (class/struct/enum/alias/template params): PascalCase
- functions, variables, members: snake_case (incl. rational -> Rational)
- private/protected members: trailing underscore; static member
variables likewise (instance_, available_themes_)
- constants and enum values: snake_case (kLinear -> k_linear,
F32P -> f32p); ALL_CAPS reserved for macros
- macros: OAK_ prefix (OLIVE_ADD_TEST/OLIVE_ASSERT/OLIVE_CONFIG ->
OAK_ADD_TEST/OAK_ASSERT/OAK_CONFIG, GL_PREAMBLE -> OAK_GL_PREAMBLE,
include guards -> OAK_*)
- file names: all lowercase (Current/Plugin/OliveHost/OliveClip/
OlivePluginInstance -> current/plugin/olivehost/oliveclip/
oliveplugininstance)
- getters share the member name sans underscore, setters set_foo()
- Qt and third-party (OpenFX) virtual overrides and framework callbacks
keep their original names (exempt in .clang-tidy)
Manual follow-ups required where automation could not reach:
- string-based QMetaObject/SIGNAL/SLOT references updated to renamed
methods (AddTask, CreatedFile, DeleteSpecificFile, moveSelectionUp, ...)
- macro bodies referencing renamed methods (OLIVE_CONFIG,
NODE_DEFAULT_DESTRUCTOR, MANAGEDDISPLAYWIDGET_*)
- self-shadowing locals renamed where signals/methods became same-named
(size_changed, worker_count, selected_items, import param, filters)
- third_party OFX member/namespace usages restored (OFX::Host::*,
_created, _clipPrefsDirty, createInstance, clearPersistentMessage)
- STL protocol aliases restored (const_iterator) with .clang-tidy
ignore rules; qHash overloads restored
Full build and test suite pass: ctest 4/4, ~1960 gtest cases green.
2026-07-19 16:10:54 +08:00
Mike-Solar
3a3ead6fc0
app: route all FFmpeg access through the ffmpeg_bridge C API
...
Replace every direct FFmpeg call in the editor and the render worker
with the pure C ffmpeg_bridge API, wrapped in thin C++ adapters that
preserve the original interfaces:
- avframeptr.h: olive::AVFrame adapter around FBFrame handles
- ffmpegutils: format conversion helpers on FB_* constants; the int
overload is renamed GetCompatibleBridgePixelFormat to avoid a silent
overload-resolution trap with the PixelFormat enum
- ffmpegdecoder/ffmpegencoder: rewritten as handle-based adapters over
FBDecoder/FBProbe/FBEncoder/FBScaler/FBResampler
- audioprocessor: FBAudioGraph push/pull adapter
- pluginrenderer/OliveClip: sws/pixdesc usage converted to FBScaler and
fb_pix_fmt_* queries
- AudioParams/channel layouts are plain uint64_t masks everywhere
Build integration: the root project no longer links FFMPEG directly;
only ffmpeg_bridge does. Binaries resolve the bridge library at runtime
via @loader_path inside the macOS app bundle (copied there post-build)
and via $ORIGIN/../ffmpeg_bridge/bin on Linux; on Windows the DLL is
installed next to the executables, so packages on all three platforms
ship the bridge library.
ffmpeg_bridge gains the extra API the adapters need:
fb_frame_make_writable, fb_decoder_get_format_duration,
fb_resampler_convert_frame, FB_PIX_FMT_YUV440P, SRT validation in
fb_probe_read_subtitle_stream, packed/planar fixes in
fb_encoder_write_audio, and a component-size fix in
fb_pix_fmt_component_size.
2026-07-15 23:00:06 +08:00
孙羽
116a4b8368
fix windows compile
2026-05-27 21:34:09 +08:00
Mike-Solar
bfb1b2fce4
update copyright back
2026-01-16 21:22:05 +08:00
Mike-Solar
b8669f6a11
Change project name;
2026-01-05 16:22:26 +08:00
Mike Solar
22fd521951
Merge branch 'refs/heads/dev' into plugin
...
# Conflicts:
# .gitmodules
# CMakeLists.txt
# ext/core
2025-12-13 21:45:46 +08:00
Mike-Solar
2ea53667c0
Refactor FFmpeg decoder for improved readability and efficiency
...
Simplify the frame reading process and metadata extraction in `ffmpegdecoder.cpp` by reducing redundant code and improving variable initialization. Add a helper function in `ffmpegdecoder.h` to map FFmpeg field orders to Olive interlacing types, enhancing code clarity. Adjust the condition for interleaved write in `ffmpegencoder.cpp` for better handling.
2025-11-10 21:06:35 +08:00
Mike Solar
6fdfd03ffd
update: update copyright
2025-08-05 17:12:49 +08:00
Mike Solar
74f73ab3be
change: change code style to Linux style except indent.
2025-08-03 03:09:40 +08:00
Mike Solar
c04fceef9b
试图解决编译错误
2025-06-18 20:42:45 +08:00
Mike Solar
5f9508434f
试图解决编译错误
2025-06-18 08:54:06 +08:00
itsmattkc
fa88db42e4
Merge pull request #1943 from jazztickets/av1
...
AV1 export support
2023-02-08 13:03:51 -08:00
itsmattkc
c322bb6463
exportdialog: fixed UI issue that allowed "sidecar" files on direct subtitle exports
2023-02-06 17:27:27 -08:00
jazztickets
9959f15bc4
Merge branch 'master' into av1
2023-01-30 14:04:15 -07:00
itsmattkc
c1c6893713
various: moved more to core lib
2023-01-19 16:01:31 -08:00
itsmattkc
dd9c52ab59
start moving core frameworks to external libraries
2023-01-19 09:51:47 -08:00
jazztickets
d54465b16a
Merge branch 'olive-editor:master' into av1
2022-11-25 11:18:49 -07:00
itsmattkc
ca47792dc7
nodes: clamp footage retrieval times for clips
...
Fixes #2070
2022-11-01 12:44:01 -07:00
itsmattkc
e94580c369
ffmpegencoder: split sample buffer when writing audio
...
Avoids integer overflow in FFmpeg
Fixes #2072
2022-10-29 12:07:55 -07:00
itsmattkc
972ec1e340
ffmpegencoder: catch error on sample array alloc
2022-10-29 11:36:09 -07:00
jazztickets
b901762df9
Merge branch 'olive-editor:master' into av1
2022-09-07 17:26:09 -06:00
itsmattkc
409f24be39
exportdialog: allow restoring parameters
2022-08-10 11:49:21 -07:00
itsmattkc
1ac205413c
footage: allow overriding YCbCr range
...
Fixes #1354
2022-08-08 12:49:50 -07:00
itsmattkc
73fa930f02
ffmpegencoder: use avfilter instead of swscale for pixel format conversions
2022-08-07 14:00:12 -07:00
itsmattkc
91eaa759b7
ffmpegencoder: various improvements
2022-07-27 13:39:27 -07:00
Thomas Wilshaw
fb34a4b799
Reset transfer tag
2022-07-27 14:17:06 +01:00
Thomas Wilshaw
9fa1ce00e5
Add basic nclc tag support
...
Sets nclc tags based on the selected output color space.
Also adds a Rec.709 OETF to the config
2022-07-26 20:19:23 +01:00
itsmattkc
187568324a
render: ensure correct yuv range handling
2022-07-20 23:16:08 -07:00
itsmattkc
5ea97f7a64
render: remove alpha request option
2022-07-20 23:14:16 -07:00
Alan Witkowski
307c393996
fallback to default av1 encoder if libsvtav1 isn't found
2022-05-30 16:46:13 -06:00
Alan Witkowski
6dbe01f415
preliminary AV1 support
2022-05-30 13:45:25 -06:00
itsmattkc
c75ee6014c
ffmpeg: bypass ass encoding for srt
...
Fixes #1927
2022-05-14 08:56:06 -07:00
itsmattkc
8e642c82f8
Merge pull request #1914 from luzpaz/typos
...
Fix misc. source comment typos
2022-05-13 08:23:18 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
bb0fedabba
simplified and optimized samplebuffer
2022-05-09 14:55:51 -07:00
itsmattkc
591d02bdd6
audiomanager: fix crash and return error text if applicable
2022-05-05 11:47:53 -07:00
luz paz
19dc803020
Fix misc. source comment typos
2022-05-04 19:53:53 -04:00
itsmattkc
b290c4d007
audio: extended support for planar/packed formats
2022-05-03 13:41:27 -07:00
itsmattkc
ef515579df
completed audio recording implementation
2022-05-02 17:05:11 -07:00
itsmattkc
9101f5dc49
implemented core audio recording support
2022-05-02 14:00:03 -07:00
itsmattkc
03f0ec9f64
ffmpeg: updated for 5.0
2022-02-17 14:53:12 -08:00
Quackdoc and itsmattkc
249006c685
Cineform support ( #1853 )
...
* Cineform Support
Add default cineform support
* Revert "Cineform Support"
This reverts commit f810358b7997ea2d996a3dbbae21252c9f37e7e9.
* Cineform Support
Add default cineform support
* Do not expose DNxHD yet
* ExportDialog: Add CineformSection
Co-authored-by: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
2022-02-02 09:58:13 -08:00
itsmattkc
f5eaf9c6aa
ffmpeg: use hex for encoder error
2021-11-17 12:30:19 -08:00
itsmattkc
222c62fa80
ffmpeg: find x264 specifically
2021-10-24 13:29:50 -07:00
Cobalt Space
8a91932889
use encoder, not decoder, and add to mpeg4
2021-10-22 15:35:03 -07:00
Cobalt Space
b9766bf585
add H.264 RGB export using libx264rgb
2021-10-08 19:38:02 -07:00
itsmattkc
e4bf8a92f3
ffmpegencoder: set avg_frame_rate
2021-08-08 12:14:11 -07:00
itsmattkc
5c5f6bd0c3
ffmpegencoder: set gop size
2021-08-08 11:08:16 -07:00
itsmattkc
a0bd9b5d8c
ffmpegencoder: rescale audio frames just in case
2021-08-08 11:07:57 -07:00
itsmattkc
b5ad35bde2
ffmpegencoder: fix subtitle timestamps
2021-08-08 10:40:55 -07:00