You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+43-19Lines changed: 43 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# OpenMOQ Publisher
2
2
3
-
`moqxr` is a C++20 OpenMOQ publisher contribution project for Linuxand macOS.
3
+
`moqxr` is a C++20 OpenMOQ publisher contribution project for Linux, macOS, and Windows.
4
4
5
5
It packages MP4 input into CMSF-style publishable objects, supports MOQT draft-specific framing for drafts 14 and 16, and can either inspect the generated publish plan locally or publish it over a picoquic-backed transport when local `picoquic` and `picotls` checkouts are available.
6
6
@@ -42,7 +42,7 @@ This keeps the project aligned with CMAF-style publication while reusing the sam
42
42
43
43
-`draft-ietf-moq-transport-14` is the primary target
44
44
-`draft-ietf-moq-transport-16` is represented as a secondary compatibility profile
45
-
- draft-specific assumptions are documented in [docs/protocol-mapping.md](/media/mondain/terrorbyte/workspace/github/moqxr/docs/protocol-mapping.md)
45
+
- draft-specific assumptions are documented in [docs/protocol-mapping.md](docs/protocol-mapping.md)
46
46
47
47
## Repository layout
48
48
@@ -51,62 +51,85 @@ This keeps the project aligned with CMAF-style publication while reusing the sam
51
51
-`tests`: CTest-based unit coverage
52
52
-`docs`: protocol notes and design references
53
53
-`docs/transport-plan.md`: picoquic integration plan and implementation checklist
54
-
-`.github/workflows/ci.yml`: GitHub Actions build and test workflow for Linuxand macOS
55
-
-`.github/workflows/release.yml`: GitHub Actions release-build workflow that uploads Linuxand macOS archives
54
+
-`.github/workflows/ci.yml`: GitHub Actions build and test workflow for Linux, macOS, and Windows
55
+
-`.github/workflows/release.yml`: GitHub Actions release-build workflow that uploads Linux, macOS, and Windows archives
56
56
57
57
## Release builds
58
58
59
-
For users who just want a prebuilt binary, GitHub Actions publishes release archives for Linuxand macOS:
59
+
For users who just want a prebuilt binary, GitHub Actions publishes release archives for Linux, macOS, and Windows:
60
60
61
61
- pushing a `v*` tag builds release artifacts and attaches them to the matching GitHub Release
62
62
- running the `Release Builds` workflow manually uploads the same archives as workflow artifacts
63
63
- manual runs can also publish a GitHub Release when you provide a `release_tag` such as `v0.1.0`
64
64
- both CI and release workflows check out `private-octopus/picoquic` plus `private-octopus/picotls`, so published binaries include the picoquic transport path instead of falling back to a local-inspection-only build
65
+
- Linux and macOS archives are `.tar.gz`; Windows archives are `.zip` and contain `openmoq-publisher.exe`
65
66
66
67
## Build
67
68
68
69
### Baseline build
69
70
70
-
This is the default path for local development:
71
+
This is the default path for local development. It works on Linux, macOS, and Windows:
**Windows additional requirements — pkg-config and OpenSSL**
102
+
103
+
picotls requires both `pkg-config` (to probe for optional brotli) and OpenSSL headers and libraries. On Windows you need to install both and tell CMake where OpenSSL is:
104
+
105
+
```powershell
106
+
# One-time: install pkg-config shim and OpenSSL (skip if already present)
On Windows, GitHub Actions workflows (including CI and release) set `OPENSSL_ROOT_DIR` automatically from the runner's pre-installed OpenSSL, so no manual step is needed there.
-`-DOPENSSL_ROOT_DIR=/path/to/openssl` (Windows only, when OpenSSL is not on the system path)
105
126
-`-DOPENMOQ_RUN_PICOQUIC_SMOKE_TESTS=ON|OFF`
106
127
107
128
## Quick Start
108
129
109
-
If you already have a sample MP4 and just want to see what the publisher does, these are the most useful first commands:
130
+
If you already have a sample MP4 and just want to see what the publisher does, these are the most useful first commands.
131
+
132
+
> **Windows note**: replace `./build/openmoq-publisher` with `build\Release\openmoq-publisher.exe` in the examples below. For trace-enabled examples, use `set OPENMOQ_PICOQUIC_TRACE=1` in `cmd.exe` or `$env:OPENMOQ_PICOQUIC_TRACE=1` in PowerShell instead of the shell prefix form.
110
133
111
134
Inspect the publish plan with the default settings:
112
135
@@ -556,8 +579,9 @@ GitHub Actions is configured to build and test the project on:
556
579
557
580
-`ubuntu-latest`
558
581
-`macos-latest`
582
+
-`windows-latest`
559
583
560
-
The workflow runs the same CMake configure, build, and CTest steps on both platforms.
584
+
The workflow runs the same CMake configure, build, and CTest steps on all three platforms. On Windows, OpenSSL is located automatically from the runner's pre-installed copy and passed to CMake via `OPENSSL_ROOT_DIR`.
0 commit comments