diff options
Diffstat (limited to 'content')
| -rw-r--r-- | content/_index.md | 7 | ||||
| -rw-r--r-- | content/notes/ffmpeg.md | 21 | ||||
| -rw-r--r-- | content/notes/source-sdk.md | 43 |
3 files changed, 54 insertions, 17 deletions
diff --git a/content/_index.md b/content/_index.md index ccecef6..1548de9 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,6 +1 @@ -+++ -date = '2026-06-29T23:05:19-05:00' -title = '' -+++ - -hello world +Hello. Right now this website just hosts some notes I wrote. I will add more later.
\ No newline at end of file diff --git a/content/notes/ffmpeg.md b/content/notes/ffmpeg.md index cdd950c..a7e6803 100644 --- a/content/notes/ffmpeg.md +++ b/content/notes/ffmpeg.md @@ -1,6 +1,5 @@ +++ -date = '2026-06-17T17:50:30-05:00' -title = 'ffmpeg' +title = 'FFmpeg development notes' +++ ## Websites @@ -20,19 +19,19 @@ title = 'ffmpeg' ## Building List all compile options: -``` +```sh $ ./configure --help | vim - ``` Quick development build; takes about 90 seconds on an M1 MacBook Air: -``` +```sh $ ./configure --disable-optimizations --disable-asm $ make -j $(nproc) $ make -j $(sysctl -n hw.logicalcpu) ``` Troubleshooting build: -``` +```sh $ ./configure --disable-optimizations --assert-level=2 --toolchain=clang-asan $ ./configure --disable-optimizations --assert-level=2 --toolchain=clang-asan-ubsan ``` @@ -42,7 +41,7 @@ $ ./configure --disable-optimizations --assert-level=2 --toolchain=clang-asan-ub ## Regression testing FATE documentation: https://ffmpeg.org/fate.html, TLDR: -``` +```sh $ ./configure --disable-optimizations --assert-level=2 --toolchain=clang-asan --samples=$HOME/Proj/FFmpeg-FATE $ make $ make fate-rsync @@ -54,12 +53,12 @@ $ make fate checkasm docs: https://checkasm.videolan.me/ Build within FFmpeg: -``` +```sh $ make checkasm ``` List tests: -``` +```sh $ ./tests/checkasm/checkasm --list-tests | sort | vim - ``` @@ -69,7 +68,7 @@ The easiest way to see what test calls what functions is to check the source cod [`-> tests/checkasm/checkasm.c`](https://code.ffmpeg.org/FFmpeg/FFmpeg/src/branch/master/tests/checkasm/checkasm.c). Example: -``` +```sh $ ./tests/checkasm/checkasm --bench --test=vf_bwdif ``` <details> @@ -118,7 +117,7 @@ Benchmark results: </details> -## libavformat architecture +<!-- ## libavformat architecture Note: This is all based off of FFmpeg 8.1.2 (commit `38b88335f99e76ed89ff3c93f877fdefce736c13`) @@ -206,4 +205,4 @@ demuxer instance, and reads the file header. [`doc/examples/remux.c:80`](https://code.ffmpeg.org/FFmpeg/FFmpeg/src/commit/38b88335f99e76ed89ff3c93f877fdefce736c13/doc/examples/remux.c#L80): `main` calls `avformat_find_stream_info`. -</div> +</div> --> diff --git a/content/notes/source-sdk.md b/content/notes/source-sdk.md new file mode 100644 index 0000000..6a63601 --- /dev/null +++ b/content/notes/source-sdk.md @@ -0,0 +1,43 @@ ++++ +title = 'Source SDK (Team Fortress 2) development notes' ++++ + +## Websites + +* [ValveSoftware/source-sdk-2013](https://github.com/ValveSoftware/source-sdk-2013) - git repo +* [ValveSoftware/Source-1-Games](https://github.com/ValveSoftware/Source-1-Games) - issue tracker + +## Development + +Patches are merged by [EricS-Valve](https://github.com/EricS-Valve) from time to time, usually late in the day or on a weekend. + +The SDK game code and live TF2 are not identical. There is code in the SDK that is not present in TF2, and vice versa. For example, `NotificationQueue_Add` is [disabled in the SDK](https://github.com/ValveSoftware/source-sdk-2013/blob/9cbe7d5d3c847fb2e2be6049c3e2a72853bd6b85/src/game/client/econ/econ_notifications.cpp#L1292) but not in live TF2. Not to mention, Valve uses Perforce P4 for version control instead of Git. + +## Building with Visual Studio 2026 + +Valve Project Creator (VPC) only targets up to Visual Studio 2022. Visual Studio 2026 can be used if you install the 2022 toolchain: +```bat +"C:\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\18\Community" ^ + --add Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64 ^ + --add Microsoft.VisualStudio.Component.VC.14.44.17.14.MFC ^ + --add Microsoft.VisualStudio.Component.VC.14.44.17.14.ATL +``` + +You will need to install Python as well: +```bat +winget install Python.Python.3.14 +``` + +After that, follow the build instructions in README.md. + +## Code style + +* Use tabs for indentation. +* Use [hungarian notation](https://en.wikipedia.org/wiki/Hungarian_notation) for any variable that is serialized. +* Curly braces get a new line. ([Allman style](https://en.wikipedia.org/wiki/Indentation_style#Allman_style)) +* Curly braces can be omitted if the condition body is only one line. +* Pointer asterisks go on the right, next to the variable name. +* Put spaces around function arguments. +* Put spaces around template arguments. (Usually. The code base is like 60-40 in favor of this style.) + +All this being said, much of the code base is not consistent. Just pay attention to the surrounding code and match the style. |