Owner sign-off: replace root LICENSE with Apache License 2.0, add a root NOTICE file, and swap the GPL-2.0 boilerplate header in every first-party core/ and obs-adapter/ source file for a short Apache-2.0 notice. This resolves review finding C2 (GPLv2 top-level LICENSE vs. the vendored Apache-2.0 LiveKit SDK is a license-compatibility violation): the whole repo is now Apache-2.0, matching LiveKit, so there's no GPL/Apache clash left. Updated the README Status gate and the CI workflow comment to reflect that C2 is resolved, while leaving the C1 WebRTC/OpenH264 patent/royalty gate untouched -- that question is still open and still blocks release. third_party/ stays under its own upstream licenses; only this project's own code changed hands. All 6 CTest suites still pass after the header swap. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RL8abRmgFXkVASHkkqiJbE
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
/*
|
|
streamer-tools OBS Camera Plugin - core library
|
|
Copyright (C) 2026 CyberCoveLLC <jknapp85@gmail.com>
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
// The small shared pieces of the core library: its version string, and the
|
|
// streamer-tools connection settings that both the API client and the OBS
|
|
// adapter pass around. Everything substantial lives in its own header --
|
|
// api_client.h, session.h, http.h, json.h -- and none of it depends on OBS,
|
|
// so the whole library builds and tests headlessly on all three platforms.
|
|
|
|
namespace stplugin {
|
|
|
|
// The core library's version string, injected by CMake from the top-level
|
|
// project() version, so what OBS logs on load is the actual build.
|
|
const char *core_version();
|
|
|
|
// What an operator types into the source's properties, and what ApiClient
|
|
// needs to reach the two read-key-scoped endpoints in
|
|
// apps/server/src/obs/plugin.routes.ts (streamer-tools repo). The read key is
|
|
// a credential: it is masked in the properties UI and never logged (see
|
|
// ApiClient::redactedUrl).
|
|
struct ConnectionConfig {
|
|
std::string server_url;
|
|
std::string room_slug;
|
|
std::string read_key;
|
|
|
|
bool is_valid() const;
|
|
};
|
|
|
|
} // namespace stplugin
|