1 Star 0 Fork 0

HR1025 / MMP-Core

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

README

简介

MMP (Multi Media Plug-in) 多媒体插件核心基础库.

编译

MMP 目前仅支持运行在 linuxwindows 平台, 短期内功能开发集中在 linux.

debian desktop environment

debian 环境下, 可以运行以下命令进行构建:

# debian 环境下
# [option] USE_OPENGL
sudo apt install libgl1-mesa-dev* nasm
# [option] USE_SDL
sudo apt install libsdl2-dev
# [option] USE_X11
sudo apt install libx11-dev
# [option] USE_GBM
sudo apt install libgbm-dev
# [option] USE_GBM 、USE_VAAPI
sudo apt install libdrm-dev
# [option] USE_VAAPI
sudo apt install libva-dev
rm -rf build
mkdir build
git submodule update --init --recursive
cd build
cmake .. -DUSE_OPENGL=ON -DUSE_EGL=ON -DUSE_GBM=ON -DUSE_SDL=ON -DUSE_X11=ON -DUSE_VAAPI=ON
make -j4

x86 windows MSVC 2022

在 Windows 上 MMP, 通过 vcpkg 来管理依赖, 为了方便将 vcpkg 作为一个子仓库管理.

See also : vcpkg

在第一次编译项目前, 需要生成 vcpkg.exe 以及使用其下载依赖项:

# Power Shell
# 生成 vcpkg.exe
git submodule update --init --recursive
git clone https://github.com/microsoft/vcpkg.git Extension/vcpkg
.\Extension\vcpkg\bootstrap-vcpkg.bat
# 安装 SDL
.\Extension\vcpkg\vcpkg.exe install sdl2:x86-windows
# Git Bash
mkdir build
cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -S. -B./build -G "Visual Studio 17 2022" -T host=x86 -A win32
cmake --build build --config Release -j 16

raw linux environment

在许多场景下,嵌入式 linux 操作系统通常为定制系统,而非 debian, 这时可以通过以下命令进行初步构建:

sudo apt install nasm
rm -rf build
mkdir build
git submodule update --init --recursive
cd build
cmake ..
make -j4

初步编译成功后,可以通过手动配置依赖开启其他功能,如下:

MMP 使用 find_package 来进行依赖管理,这个功能通常在桌面系统下才支持.

Enable EGL

set(USE_EGL ON)
set(OPENGL_FOUND ON)
set(OPENGL_INCLUDE_DIR `EGL header directory`)
set(OpenGL_LIBRARY_DIRS `EGL lib directory`)
add_library(OpenGL::OpenGL as `EGL lib`)

Enabel OpenGL

set(USE_OPENGL ON)
set(OPENGL_FOUND ON)
set(OPENGL_INCLUDE_DIR `OpenGL header directory`)
set(OpenGL_LIBRARY_DIRS `OpenGL lib directory`)
add_library(OpenGL::OpenGL as `OpenGL lib`)

Enable SDL

对于一个原生linux系统,应该没有SDL吧.

FAQ

交叉编译如何寻找这些库

应该在你的系统上就已经存在了! MMP 几乎所有代码都是从源码开始进行编译,只有两种例外情况:

  • 源码不可获取
  • 依赖库非可独立构建,或构建难度过大

支持 Window 、MacOS 、IOS 或 Android 吗

长期内有打算,短期没有.

MMP 短期内的方向在于完善功能,基于 linux 平台,以嵌入式 arm linux 作为实际应用场景,以 x86 debian 作为调试环境.

换句话说, MMP 面向是客户端,并不适合高并发的场景.

但是 MMP 本身是具有跨平台的可能性的!

调试

MMP-Core 实际上是作为 `MMP`` 的子仓库进行使用,调试相关部分位于 MMP.

工程结构

  • Common : 基础组件库
  • Extension : 第三方依赖
    • poco : 公共基础组件
    • GLEW : OpenGL 拓展辅助
    • lodepng : 轻量级 png 编解码实现
    • SPIRV-Cross : 跨平台 SL(Shader Language) 转换器
    • DirectX : Direct X (Microsoft)
    • Vulkan-Headers : Vulkan 头文件
    • VulkanMemoryAllocator : vulkan 内存分配管理
  • GPU : 通用 GPU 基础库
    • Windows: EGL or SDL or DXGI
    • GL : OpenGL (ES3) or D3D11
  • Codec : 编解码器
    • PNG : PNG 编解码实现
    • H264 : H264 语法解析
    • VAAPI : LIBVA 硬编解码
  • RPC : 远端调用
  • Cmake : 通用 Cmake 实现 或 Submoudle Cmake Wrapper
  • LICENSES : 使用到依赖库的相关 LICENSE
MIT License Copyright (c) 2022 MMP. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

MMP (Multi Media Plug-in) 多媒体插件核心基础库. 展开 收起
C++ 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/haorui1025/MMP-Core.git
git@gitee.com:haorui1025/MMP-Core.git
haorui1025
MMP-Core
MMP-Core
dev

搜索帮助