Kurento Developer Guide -Kurento 开发人员指南-待续

开发人员指南

本节是对库兰托自身发展的全面指导。本文的目标读者是任何想参与为Kurento项目编写代码,或想了解该项目的源代码是如何构造的人。

如果您希望编写使用Kurento的应用程序,那么您应该阅读Writing Kurento应用程序。

目录

  • 开发人员指南
    • 介绍
    • 代码库
    • 开发101
      • Libraries
      • Debian软件包
      • Build Tools
    • Build from sources
      • Install required tools
      • Add Kurento repository
      • Download KMS
      • Install build dependencies
      • Build and run KMS
      • KMS Unit Tests
      • Clean up your system
    • Install debugging symbols
    • Working on a forked library
      • Full cycle
      • In-place linking
    • Debian packaging
      • Dependency resolution: to repo or not to repo
      • Package generation script
    • How-To
      • How to add or update external libraries
      • How to add new fork libraries
      • How to work with API changes
      • Known problems

Introduction-介绍

这是KMS使用的工具和技术的概述:

  • 代码是用C语言和C++语言编写的。
  • 代码风格深受Gtk和GStreamer项目的影响。
  • CMake是首选的构建工具,用于构建所有模块。
  • 源代码在几个GitHub存储库中进行版本控制。
  • 官方支持的平台是Ubuntu的长期支持(LTS)版本:Ubuntu 16.04(Xenial)和Ubuntu 18.04(Bionic)(仅64位)。
  • GStreamer多媒体框架位于Kurento媒体服务器的核心。
  • 除了GStreamer,KMS还使用其他库,如boost、jsoncpp、libnice等。

Code repositories-代码库

Kurento源代码存储在几个GitHub存储库中,网址为https://GitHub.com/Kurento。这些存储库中的每一个都有特定的用途,通常包含构建同名共享库所需的代码。

构成Kurento媒体服务器的所有回购之间关系的概述:
Kurento Developer Guide -Kurento 开发人员指南-待续
所有向图依赖项

由于依赖关系图不是严格的线性关系,因此有多种可能的方法将所有模块排序到线性依赖关系列表中;本节提供了一个可能的排序列表,该列表将在所有Kurento文档中一致使用。

Fork repositories-分叉存储库:

KMS依赖于几个开源库,其中主要的库是GStreamer。有时,这些库显示需要调整的特定行为,以便对KMS有用;有时,存在已修复的错误,但由于任何原因,上游源代码不接受修补程序。在这些情况下,虽然功能请求和/或补丁提交的正式路径仍在尝试中,但我们已经创建了受影响库的分支。

  • jsoncpp
  • libsrtp
  • openh264
  • usrsctp
  • gstreamer (produces libgstreamer1.5)
  • gst-plugins-base
  • gst-plugins-good
  • gst-plugins-bad
  • gst-plugins-ugly
  • gst-libav
  • openwebrtc-gst-plugins
  • libnice (produces gstreamer1.0-nice, gstreamer1.5-nice)

Main repositories-主要存储库

  • kurento-module-creator:它是一个代码生成工具,用于生成插件的代码脚手架。此代码包括KMS代码和Kurento客户端代码。它主要有Java代码。
  • kms-cmake-utils:包含一组用于使用cmake构建kms的实用程序。
  • kms jsonrpc:Kurento协议是基于jsonrpc的,它使用了这个存储库中包含的jsonrpc库。它有C++代码。
  • kms core:包含核心GStreamer代码。这是其他库所需的基本库。它有80%个C代码和20%个C++代码。
  • kms-elements:包含提供WebRtc、Rtp、播放器、记录器等流水线功能的主要元素。它有80%个C代码和20%个C++代码。
  • kms-filters:包含kms中包含的基本视频过滤器。它有65%个C代码和35%个C++代码。
  • kurento-media-server:包含KMS的主要入口点。也就是说,服务器可执行代码的main()函数。此程序依赖于位于上述存储库中的库。它主要有C++代码。

Extra repositories-分叉存储库:

KMS依赖于几个开源库,其中主要的库是GStreamer。有时,这些库显示需要调整的特定行为,以便对KMS有用;有时,存在已修复的错误,但由于任何原因,上游源代码不接受修补程序。在这些情况下,虽然功能请求和/或补丁提交的正式路径仍在尝试中,但我们已经创建了受影响库的分支。

Omni-Build repository-构建存储库

这个储存库是一个特殊的项目,因为它被设计成从一个入口点构建所有KMS主储存库。此repo将其他KMS主存储库作为Git子模块:它使KMS开发更容易,因为如果您构建此项目,则不需要手动安装其他KMS主存储库的库。但是,所有其他开发和支持库仍必须手动安装。

相关文章: