Skip to content

Commit

Permalink
naming: use Media Transport Library (#888)
Browse files Browse the repository at this point in the history
Intel® Media Transport Library -> Media Transport Library

Signed-off-by: Frank Du <frank.du@intel.com>
  • Loading branch information
frankdjx committed Jun 4, 2024
1 parent 62d573f commit 6606dea
Show file tree
Hide file tree
Showing 55 changed files with 223 additions and 223 deletions.
2 changes: 1 addition & 1 deletion ATTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Intel® Media Transport Library
# Media Transport Library

Component: json-c</br>
Repository: <https://github.com/json-c/json-c></br>
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@
* Windows: add TAP driver support.
* API: change st20_frame_meta to st20_rx_frame_meta, also add st20_tx_frame_meta for get_next_frame of st20 tx.
* API: change st_frame_meta to st_frame, also change the callback arg of st20p.notify_frame_done from (void*) to struct (st_frame*).
* plugin: add Intel® Media Transport Library as a plugin to OBS, only rx path now.
* plugin: add Media Transport Library as a plugin to OBS, only rx path now.
* fps: add 120(119.88) fps support, see ST_FPS_P119_88.

## Changelog for 22.06
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Intel® Media Transport Library
# Media Transport Library

[![Ubuntu](https://github.com/OpenVisualCloud/Media-Transport-Library/actions/workflows/ubuntu_build.yml/badge.svg)](https://github.com/OpenVisualCloud/Media-Transport-Library/actions/workflows/ubuntu_build.yml)
[![Windows](https://github.com/OpenVisualCloud/Media-Transport-Library/actions/workflows/msys2_build.yml/badge.svg)](https://github.com/OpenVisualCloud/Media-Transport-Library/actions/workflows/msys2_build.yml)
Expand All @@ -10,9 +10,9 @@ Scorecard](https://api.securityscorecards.dev/projects/github.com/OpenVisualClou

## 1. Overview

The Intel® Media Transport Library(IMTL) is a software based solution designed for high-throughput, low-latency transmission and reception of media data. It features an efficient user-space LibOS UDP stack specifically crafted for media transport, and comes equipped with a built-in SMPTE ST 2110-compliant implementation for Professional Media over Managed IP Networks.
The Media Transport Library(MTL) is a software based solution designed for high-throughput, low-latency transmission and reception of media data. It features an efficient user-space LibOS UDP stack specifically crafted for media transport, and comes equipped with a built-in SMPTE ST 2110-compliant implementation for Professional Media over Managed IP Networks.

The Intel® Media Transport Library solves the strict timing challenges of transporting ST2110 compliant media streams using a software library and through IP networks. Instead of specialized hardware, this library leverages existing commonly available CPU platforms with conventional NICs that incorporate rate limiting to meet the strict timing challenges in the SMPTE ST 2110 standard.
The Media Transport Library solves the strict timing challenges of transporting ST2110 compliant media streams using a software library and through IP networks. Instead of specialized hardware, this library leverages existing commonly available CPU platforms with conventional NICs that incorporate rate limiting to meet the strict timing challenges in the SMPTE ST 2110 standard.

If you find value in our project, please consider giving it a star. Your support helps us grow and reach more people in the open-source community. Every star counts and is greatly appreciated.

Expand Down Expand Up @@ -41,7 +41,7 @@ If you find value in our project, please consider giving it a star. Your support

### 1.2 Architecture

The Intel® Media Transport Library leverages DPDK (Data Plane Development Kit) EAL (Environment Abstraction Layer including the memory and core management) to implement a highly efficient, real-time, and low-latency media transport solution. This software-based media transport stack enables deployment on edge and cloud environments using COTS hardware.
The Media Transport Library leverages DPDK (Data Plane Development Kit) EAL (Environment Abstraction Layer including the memory and core management) to implement a highly efficient, real-time, and low-latency media transport solution. This software-based media transport stack enables deployment on edge and cloud environments using COTS hardware.

The library incorporates a virtual data path backend layer, designed to abstract various NIC implementation and provide a unified packet TX/RX interface to the upper network layer. It currently supports three types of NIC devices:

Expand All @@ -53,7 +53,7 @@ The library introduces a tasklet-based asynchronous scheduler that optimizes CPU

Additionally, the packet pacing module offers support for various pacing algorithms, including RL (Rate Limit), which is partially hardware-offloaded, and TSC (timestamp Counter), which is fully software-based.

IMTL also incorporates SIMD (Single Instruction, Multiple Data) for CSC (Color Space Format Conversion) of the big-endian and little-endian, DMA (Direct Memory Access), and plugin interfaces, enabling the creation of a comprehensive video production ecosystem.
MTL also incorporates SIMD (Single Instruction, Multiple Data) for CSC (Color Space Format Conversion) of the big-endian and little-endian, DMA (Direct Memory Access), and plugin interfaces, enabling the creation of a comprehensive video production ecosystem.

For the detail design, please refer to [design guide](doc/design.md).

Expand All @@ -63,11 +63,11 @@ For the detail design, please refer to [design guide](doc/design.md).

### 1.3 Ethernet supported

IMTL offers versatile Ethernet support, thanks to its compatibility with DPDK PMD, kernel socket, and AF_XDP backends.
MTL offers versatile Ethernet support, thanks to its compatibility with DPDK PMD, kernel socket, and AF_XDP backends.

For DPDK PMD support, you can refer to the DPDK PMD site <https://doc.dpdk.org/guides/nics/> for a comprehensive list of supported Ethernet hardware.

In cases where your NIC is not supported by DPDK, IMTL provides a fallback option with kernel (Linux) socket transport support.
In cases where your NIC is not supported by DPDK, MTL provides a fallback option with kernel (Linux) socket transport support.

However, please note that our daily development and validation is primarily conducted on the Intel E810 series and AWS ENA, so we can't guarantee the status for other network interface cards (NICs).

Expand All @@ -93,12 +93,12 @@ To run this library on the kernel network stack with the built-in kernel NIC dri

## 4. ST2110 Programmers guide

To quickly develop applications based on the Intel® Media Transport Library, please refer to `## 6. ST2110 API` from [design guide](doc/design.md).
To quickly develop applications based on the Media Transport Library, please refer to `## 6. ST2110 API` from [design guide](doc/design.md).

## 5. User space LibOS UDP stack guide

IMTL has support for a LD preload POSIX-compatible user-space UDP stack that operates directly within the current process context. This enhancement significantly boosts performance by eliminating the cross-core message costs typically associated with client-service architectures used in other user-space UDP stacks.
IMTL's stack allows the NIC transmission and reception functions to run directly from the sendto/recvfrom API, eliminating the need for cross-core calls and maintaining data affinity (LLC) to the UDP consumer, thereby optimizing performance.
MTL has support for a LD preload POSIX-compatible user-space UDP stack that operates directly within the current process context. This enhancement significantly boosts performance by eliminating the cross-core message costs typically associated with client-service architectures used in other user-space UDP stacks.
MTL's stack allows the NIC transmission and reception functions to run directly from the sendto/recvfrom API, eliminating the need for cross-core calls and maintaining data affinity (LLC) to the UDP consumer, thereby optimizing performance.

To learn how to use the LibOS UDP stack, please refer to the [udp doc](doc/udp.md).

Expand All @@ -112,7 +112,7 @@ Whitepaper: Open Source Library Enables Real-Time Media over IP Networks. <https

## 7. How to Contribute

We welcome community contributions to the Intel® Media Transport Library project. If you have any ideas or issues, please share them with us by using GitHub issues or opening a pull request.
We welcome community contributions to the Media Transport Library project. If you have any ideas or issues, please share them with us by using GitHub issues or opening a pull request.

### 7.1 Fork this repository

Expand Down
12 changes: 6 additions & 6 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ runs:
./configure --prefix=$MSYSTEM_PREFIX
make && make install
- name: Checkout IMTL repo
- name: Checkout MTL repo
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
repository: 'OpenVisualCloud/Media-Transport-Library'
Expand Down Expand Up @@ -110,34 +110,34 @@ runs:
meson setup build
meson install -C build
- name: Build IMTL lib
- name: Build MTL lib
shell: msys2 {0}
run: |
meson setup build
meson install -C build
- name: Build IMTL app
- name: Build MTL app
shell: msys2 {0}
run: |
cd app
meson setup build
meson compile -C build
- name: Build IMTL test
- name: Build MTL test
shell: msys2 {0}
run: |
cd tests
meson setup build
meson compile -C build
- name: Build IMTL plugins
- name: Build MTL plugins
shell: msys2 {0}
run: |
cd plugins
meson setup build
meson install -C build
- name: Build IMTL lib with TAP
- name: Build MTL lib with TAP
shell: msys2 {0}
run: |
meson setup tap_build -Denable_tap=${{inputs.tap}}
Expand Down
2 changes: 1 addition & 1 deletion app/sample/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 1. Introduction

The dir include the simple sample code for how to develop application quickly based on Intel® Media Transport Library.
The dir include the simple sample code for how to develop application quickly based on Media Transport Library.

## 2. Pipeline samples which based on get/put APIs

Expand Down
4 changes: 2 additions & 2 deletions app/sample/msvc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

## 1. Introduction

The is sample code for how to develop MSVC application quickly based on Intel® Media Transport Library. The guide is verified with Visual Studio 2022 (v143).
The is sample code for how to develop MSVC application quickly based on Media Transport Library. The guide is verified with Visual Studio 2022 (v143).

## 2. Steps

### 2.1 Prepare latest .lib file

* Build IMTL library in MSYS2, see [WIN build guide](../../../doc/build_WIN.md), also need to add MSYS2 binary PATH to system environment variables.
* Build MTL library in MSYS2, see [WIN build guide](../../../doc/build_WIN.md), also need to add MSYS2 binary PATH to system environment variables.

* After build, in the build folder, you will get `libmtl.def` file.

Expand Down
2 changes: 1 addition & 1 deletion app/sample/msvc/imtl_sample/imtl_sample.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ void signalHandler(int signum) {

int main() {
int ret = 0;
std::cout << "Starting IMTL sample..." << std::endl << mtl_version() << std::endl;
std::cout << "Starting MTL sample..." << std::endl << mtl_version() << std::endl;

std::signal(SIGINT, signalHandler);

Expand Down
2 changes: 1 addition & 1 deletion app/udp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 1. Introduction

The dir include the simple sample code for how to develop application quickly based on UDP API of Intel® Media Transport Library.
The dir include the simple sample code for how to develop application quickly based on UDP API of Media Transport Library.

## 2. Samples with POSIX socket compatible(file descriptor) API

Expand Down
4 changes: 2 additions & 2 deletions doc/asan.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ASan guide

AddressSanitizer (also known as ASan, <https://github.com/google/sanitizers/wiki/AddressSanitizer>) is a fast memory error detector for C/C++ developed by Google. The Intel® Media Transport Library uses ASan for memory-related checks. ASan is a part of LLVM (version 3.1+) and GCC (version 4.8+). To enable ASan, pass the -fsanitize=address option to the compiler flags.
AddressSanitizer (also known as ASan, <https://github.com/google/sanitizers/wiki/AddressSanitizer>) is a fast memory error detector for C/C++ developed by Google. The Media Transport Library uses ASan for memory-related checks. ASan is a part of LLVM (version 3.1+) and GCC (version 4.8+). To enable ASan, pass the -fsanitize=address option to the compiler flags.

The library uses DPDK API to perform memory malloc/free operations. Therefore, the error monitoring capability depends on the DPDK ASan support.

Expand All @@ -19,7 +19,7 @@ pkg-config --libs libdpdk
pkg-config --modversion libdpdk
```

## 2. Build Intel® Media Transport Library with ASan detector
## 2. Build Media Transport Library with ASan detector

```bash
rm build/ -rf
Expand Down
6 changes: 3 additions & 3 deletions doc/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ Instance example:

![instance](png/instance.png)

## 2. Install Intel® Media Transport Library and other software
## 2. Install Media Transport Library and other software

### 2.1 Build and install DPDK & Intel® Media Transport Library
### 2.1 Build and install DPDK & Media Transport Library

Refer to CentOS part of [build.md](./build.md).

Expand Down Expand Up @@ -55,7 +55,7 @@ Choose same subnet for all new interfaces, set the right security groups for you

Right-click on your running instance, go to `Networking > Attach network interface`, choose an idle interface.

After attaching the interface, remember the Private IPv4 address allocated by AWS, this will be used by Intel® Media transport library as interface IP.
After attaching the interface, remember the Private IPv4 address allocated by AWS, this will be used by Media Transport Library as interface IP.

### 4.3 Bind interface to DPDK PMD

Expand Down
22 changes: 11 additions & 11 deletions doc/build.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Build Guide

Building the Intel® Media Transport Library requires three parts: building the DPDK library, building the Intel® Media Transport Library on top of DPDK, and building the sample application.
Building the Media Transport Library requires three parts: building the DPDK library, building the Media Transport Library on top of DPDK, and building the sample application.

Please note that the DPDK dependency remains necessary when utilizing the XDP/kernel socket data path backend. We leverage numerous DPDK APIs, including those for CPU, memory, queues, and mbufs, to construct a highly efficient network processing implementation.

Expand Down Expand Up @@ -117,13 +117,13 @@ Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

Reboot the system to let change take effect.

### 1.4 Clone Intel® Media Transport Library code
### 1.4 Clone Media Transport Library code

Download Intel® Media Transport Library to top folder Directory
Download Media Transport Library to top folder Directory

```bash
git clone https://github.com/OpenVisualCloud/Media-Transport-Library.git
export imtl_source_code=${PWD}/Media-Transport-Library
export mtl_source_code=${PWD}/Media-Transport-Library
```

## 2. DPDK build and install
Expand All @@ -138,13 +138,13 @@ git switch -c v23.11
cd ..
```

### 2.2 Apply the DPDK patches required to run Intel® Media Transport Library
### 2.2 Apply the DPDK patches required to run Media Transport Library

Note: $imtl_source_code should be pointed to top source code tree of Intel® Media Transport Library.
Note: $mtl_source_code should be pointed to top source code tree of Media Transport Library.

```bash
cd dpdk
git am $imtl_source_code/patches/dpdk/23.11/*.patch
git am $mtl_source_code/patches/dpdk/23.11/*.patch
```

### 2.3 Build and install DPDK library
Expand All @@ -168,10 +168,10 @@ If you see below log from `sudo ninja install -C build`, it seems you're encount
sudo: ninja: command not found
```

## 3. Build Intel® Media Transport Library and app
## 3. Build Media Transport Library and app

```bash
cd $imtl_source_code
cd $mtl_source_code
./build.sh
```

Expand Down Expand Up @@ -217,10 +217,10 @@ sudo ninja install -C build
cd ..
```

Next, rebuild the Intel® Media Transport Library. IMTL will reuse the build flags from DPDK.
Next, rebuild the Media Transport Library. MTL will reuse the build flags from DPDK.

```bash
cd $imtl_source_code
cd $mtl_source_code
rm build -rf
./build.sh
```
Expand Down
22 changes: 11 additions & 11 deletions doc/build_WIN.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Intel® Media Transport Library compilation and build on Windows OS (MSYS2)
# Media Transport Library compilation and build on Windows OS (MSYS2)

## 1. Introduction

This document contains instructions for installing and configuring the Intel® Media Transport Library for Windows Operation System in MSYS2 environment.
This document contains instructions for installing and configuring the Media Transport Library for Windows Operation System in MSYS2 environment.

## 2. Prerequisites

Expand Down Expand Up @@ -50,17 +50,17 @@ make && make install

## 5. Build DPDK

* Clone the IMTL repository if not:
* Clone the MTL repository if not:

```bash
git clone https://github.com/OpenVisualCloud/Media-Transport-Library.git
export imtl_source_code=${PWD}/Media-Transport-Library
export mtl_source_code=${PWD}/Media-Transport-Library
```

* Convert symlink patch files to real file:

```bash
cd $imtl_source_code/patches/dpdk/23.11
cd $mtl_source_code/patches/dpdk/23.11
ls *.patch | xargs -I{} bash -c 'if [[ $(sed -n '1p' "{}") =~ ^../.*\.patch$ ]]; then cp "$(cat "{}")" "{}"; fi'
cd windows
ls *.patch | xargs -I{} bash -c 'if [[ $(sed -n '1p' "{}") =~ ^../.*\.patch$ ]]; then cp "$(cat "{}")" "{}"; fi'
Expand All @@ -69,16 +69,16 @@ ls *.patch | xargs -I{} bash -c 'if [[ $(sed -n '1p' "{}") =~ ^../.*\.patch$ ]];
* Clone the DPDK repository and apply patches:

```bash
cd $imtl_source_code
cd $mtl_source_code
git clone https://github.com/DPDK/dpdk.git
cd dpdk
git checkout v23.11
git switch -c v23.11

git config user.name "Your Name" # config if not
git config user.email "you@example.com" # config if not
git am $imtl_source_code/patches/dpdk/23.11/*.patch
git am $imtl_source_code/patches/dpdk/23.11/windows/*.patch
git am $mtl_source_code/patches/dpdk/23.11/*.patch
git am $mtl_source_code/patches/dpdk/23.11/windows/*.patch
```

* Build and install DPDK:
Expand All @@ -88,16 +88,16 @@ meson setup build
meson install -C build
```

## 6. Build Intel® Media Transport Library and app
## 6. Build Media Transport Library and app

```bash
cd $imtl_source_code
cd $mtl_source_code
./build.sh
```

## 7. Add MSYS2 binary PATH to system environment variables (Optional)

The MSYS2 path is not in Windows system environment variables by default, if you want to run IMTL apps in PowerShell/CMD, you need to add the paths first. For example, MSYS2 is installed in `C:\msys64`.
The MSYS2 path is not in Windows system environment variables by default, if you want to run MTL apps in PowerShell/CMD, you need to add the paths first. For example, MSYS2 is installed in `C:\msys64`.

* (optional)Add MSYS2 common toolchain path: `C:\msys64\usr\bin`

Expand Down
2 changes: 1 addition & 1 deletion doc/compliance.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The ST2110 compliance result

The Intel® Media Transport Library implements many software novel algorithms to achieve ST 2110’s strict narrow timing requirements. It's verified using third-party test equipments, please check below detail result:
The Media Transport Library implements many software novel algorithms to achieve ST 2110’s strict narrow timing requirements. It's verified using third-party test equipments, please check below detail result:

## 1. Setup

Expand Down
2 changes: 1 addition & 1 deletion doc/configuration_guide.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# JSON Configuration Guide

Intel® Media Transport Library sample app can use json file to configure sessions. this documentation explains how to write the json files.
Media Transport Library sample app can use json file to configure sessions. this documentation explains how to write the json files.

## Examples

Expand Down
2 changes: 1 addition & 1 deletion doc/convert.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Introduction

Starting from version 22.06, the Intel® Media Transport Library introduces a color format SIMD convert API, which can be used to convert between RFC4175 YUV422 10-bit BE and common LE formats.
Starting from version 22.06, the Media Transport Library introduces a color format SIMD convert API, which can be used to convert between RFC4175 YUV422 10-bit BE and common LE formats.

### The SIMD API

Expand Down
Loading

0 comments on commit 6606dea

Please sign in to comment.