diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/live555 | |
Diffstat (limited to 'vcpkg/ports/live555')
| -rw-r--r-- | vcpkg/ports/live555/CMakeLists.txt | 68 | ||||
| -rw-r--r-- | vcpkg/ports/live555/fix-RTSPClient.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/live555/fix_operator_overload.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/live555/portfile.cmake | 37 | ||||
| -rw-r--r-- | vcpkg/ports/live555/vcpkg.json | 19 |
5 files changed, 150 insertions, 0 deletions
diff --git a/vcpkg/ports/live555/CMakeLists.txt b/vcpkg/ports/live555/CMakeLists.txt new file mode 100644 index 0000000..57cca4b --- /dev/null +++ b/vcpkg/ports/live555/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required(VERSION 3.5) +project(live555 C CXX) + +set(CMAKE_CXX_STANDARD 20) +include_directories( + BasicUsageEnvironment/include + groupsock/include + liveMedia/include + UsageEnvironment/include +) + +if (WIN32) + add_definitions(-DNO_GETIFADDRS) +endif(WIN32) + +if (NOT MSVC) + add_compile_options(-DSOCKLEN_T=socklen_t) +endif() + +if (CMAKE_SYSTEM_NAME MATCHES "Darwin") + add_compile_options(-DBSD=1) + add_compile_options(-DHAVE_SOCKADDR_LEN=1) + add_compile_options(-DTIME_BASE=int) + add_compile_options(-DNEED_XLOCALE_H=1) +endif() + +file(GLOB BASIC_USAGE_ENVIRONMENT_SRCS BasicUsageEnvironment/*.c BasicUsageEnvironment/*.cpp) +add_library(BasicUsageEnvironment ${BASIC_USAGE_ENVIRONMENT_SRCS}) +target_include_directories(BasicUsageEnvironment PUBLIC $<INSTALL_INTERFACE:include>) + +file(GLOB GROUPSOCK_SRCS groupsock/*.c groupsock/*.cpp) +add_library(groupsock ${GROUPSOCK_SRCS}) +target_include_directories(groupsock PUBLIC $<INSTALL_INTERFACE:include>) + +file(GLOB LIVEMEDIA_SRCS liveMedia/*.c liveMedia/*.cpp) +add_library(liveMedia ${LIVEMEDIA_SRCS}) +find_package(OpenSSL REQUIRED) +target_include_directories(liveMedia PRIVATE "${OPENSSL_INCLUDE_DIR}" PUBLIC $<INSTALL_INTERFACE:include>) + +file(GLOB USAGE_ENVIRONMENT_SRCS UsageEnvironment/*.c UsageEnvironment/*.cpp) +add_library(UsageEnvironment ${USAGE_ENVIRONMENT_SRCS}) +target_include_directories(UsageEnvironment PUBLIC $<INSTALL_INTERFACE:include>) + +file(WRITE "${CMAKE_BINARY_DIR}/unofficial-live555-config.cmake" +[[ +include(CMakeFindDependencyMacro) + +find_dependency(OpenSSL) + +include("${CMAKE_CURRENT_LIST_DIR}/unofficial-live555-targets.cmake") +]] +) + +install(FILES "${CMAKE_BINARY_DIR}/unofficial-live555-config.cmake" DESTINATION share/unofficial-live555) + +install(TARGETS groupsock BasicUsageEnvironment liveMedia UsageEnvironment + EXPORT unofficial-live555-targets + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +install( + EXPORT unofficial-live555-targets + FILE unofficial-live555-targets.cmake + NAMESPACE unofficial:: + DESTINATION share/unofficial-live555 +) diff --git a/vcpkg/ports/live555/fix-RTSPClient.patch b/vcpkg/ports/live555/fix-RTSPClient.patch new file mode 100644 index 0000000..bdf36cf --- /dev/null +++ b/vcpkg/ports/live555/fix-RTSPClient.patch @@ -0,0 +1,13 @@ +diff --git a/liveMedia/RTSPClient.cpp b/liveMedia/RTSPClient.cpp +index 66e0c79..13255af 100644 +--- a/liveMedia/RTSPClient.cpp ++++ b/liveMedia/RTSPClient.cpp +@@ -2029,7 +2029,7 @@ int RTSPClient::write(const char* data, unsigned count) { + if (fOutputTLS->isNeeded) { + return fOutputTLS->write(data, count); + } else { +- return send(fOutputSocketNum, data, count, MSG_NOSIGNAL); ++ return send(fOutputSocketNum, (const char *)data, count, MSG_NOSIGNAL); + } + } + diff --git a/vcpkg/ports/live555/fix_operator_overload.patch b/vcpkg/ports/live555/fix_operator_overload.patch new file mode 100644 index 0000000..0920618 --- /dev/null +++ b/vcpkg/ports/live555/fix_operator_overload.patch @@ -0,0 +1,13 @@ +diff --git a/liveMedia/MPEGVideoStreamFramer.cpp b/liveMedia/MPEGVideoStreamFramer.cpp +index 59c4656..a705e68 100644 +--- a/liveMedia/MPEGVideoStreamFramer.cpp ++++ b/liveMedia/MPEGVideoStreamFramer.cpp +@@ -129,7 +129,7 @@ void MPEGVideoStreamFramer + fPictureTimeBase = fFrameRate == 0.0 ? 0.0 : tc.pictures/fFrameRate; + fTcSecsBase = (((tc.days*24)+tc.hours)*60+tc.minutes)*60+tc.seconds; + fHaveSeenFirstTimeCode = True; +- } else if (fCurGOPTimeCode == fPrevGOPTimeCode) { ++ } else if (fCurGOPTimeCode.TimeCode::operator==(fPrevGOPTimeCode)) { + // The time code has not changed since last time. Adjust for this: + fPicturesAdjustment += picturesSinceLastGOP; + } else { diff --git a/vcpkg/ports/live555/portfile.cmake b/vcpkg/ports/live555/portfile.cmake new file mode 100644 index 0000000..b1cc11b --- /dev/null +++ b/vcpkg/ports/live555/portfile.cmake @@ -0,0 +1,37 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) + +string(REPLACE "-" "." format_version ${VERSION}) +vcpkg_download_distfile(ARCHIVE + URLS "http://live555.com/liveMedia/public/live.${format_version}.tar.gz" + FILENAME "live.${format_version}.tar.gz" + SHA512 ee2bf17d2803c4bb6f49408a123de9238273749b9c110113facbf78eb01b9961bbd04178335f40d36425c9f96a26ee3da57e970f86d4912b4ec42ab6f4b2c7e9 +) + +vcpkg_extract_source_archive( + SOURCE_PATH + ARCHIVE "${ARCHIVE}" + PATCHES + fix-RTSPClient.patch + fix_operator_overload.patch +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-live555) + +file(GLOB HEADERS + "${SOURCE_PATH}/BasicUsageEnvironment/include/*.h*" + "${SOURCE_PATH}/groupsock/include/*.h*" + "${SOURCE_PATH}/liveMedia/include/*.h*" + "${SOURCE_PATH}/UsageEnvironment/include/*.h*" +) + +file(COPY ${HEADERS} DESTINATION "${CURRENT_PACKAGES_DIR}/include") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/live555/vcpkg.json b/vcpkg/ports/live555/vcpkg.json new file mode 100644 index 0000000..b519c88 --- /dev/null +++ b/vcpkg/ports/live555/vcpkg.json @@ -0,0 +1,19 @@ +{ + "name": "live555", + "version-date": "2024-11-28", + "description": "A complete RTSP server application", + "homepage": "http://www.live555.com/liveMedia", + "license": "GPL-3.0-or-later", + "supports": "!xbox", + "dependencies": [ + "openssl", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |