Skip to content

Commit f457fdd

Browse files
committed
Media Transport Library V22.09 release
Signed-off-by: Du, Frank <[email protected]>
1 parent f7a78a0 commit f457fdd

File tree

281 files changed

+31431
-9551
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

281 files changed

+31431
-9551
lines changed

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Change log
22

3+
## Change log for 22.09:
4+
* License: update to BSD-3
5+
* dpdk: update DPDK to v22.07
6+
* ice: update driver to 1.9.11
7+
* CSC: Color format SIMD convert API from CPU little endian format to RFC4175 YUV422 10bit BE, see st_convert_api.h.
8+
* AF_XDP: introduce AF_XDP PMD experimental support, see af_xdp.md.
9+
* pipeline: introduce pipeline friendly API for both st20 tx and rx, see st_pipeline_api.h for detail.
10+
* tasklet: support unregister now.
11+
* iova: add map/unmap support for IO device, see st_dma_map and st_dma_unmap.
12+
* Header split: introduce hdr split offload experimental support, see header_split.md.
13+
* Ext frame: external frame mode to support user allocated memory, see st20_ext_frame and ST20_TX_FLAG_EXT_FRAME/ST20P_TX_FLAG_EXT_FRAME.
14+
* st30: support 250us, 333us, and 4ms packet time.
15+
* Windows: support DSA for rx offload.
16+
* Windows: add TAP driver support.
17+
* API: change st20_frame_meta to st20_rx_frame_meta, also add st20_tx_frame_meta for get_next_frame of st20 tx.
18+
* API: change st_frame_meta to st_frame, also change the callback arg of st20p.notify_frame_done from void* to struct st_frame*.
19+
* plugin: add kahawai as a plugin to OBS, only rx path now.
20+
* tasklet: add thread and sleep option for core usage, see ST_FLAG_TASKLET_THREAD and ST_FLAG_TASKLET_SLEEP.
21+
* fps: add 120(119.88) fps support, see ST_FPS_P119_88.
22+
323
## Change log for 22.06:
424
* User frame mode with uframe_pg_callback for rx video session.
525
* Color format SIMD convert API between RFC4175 YUV422 10bit BE and other LE format, see st_convert_api.h.

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,15 @@ The Media Transport Library(Kahawai) is a solution based on DPDK prepared for tr
1111

1212
## 2. Build:
1313
Please refer to [build guide](doc/build.md) for how to build DPDK, the library and the sample application.
14-
Please refer to [build guide](doc/build_WIN.md) for how to build DPDK, the library and the sample application in Windows.
14+
15+
For Windows, please refer to [Win build guide](doc/build_WIN.md) for how to build.
1516

1617
## 3. Run:
1718
Please refer to [run guide](doc/run.md) for how to setup and run the demo pipeline application.
18-
Please refer to [run guide](doc/run_WIN.md) for how to setup and run the demo pipeline application in Windows.
19+
20+
For Windows, please refer to [Win run guide](doc/run_WIN.md) for how to setup and run the demo.
21+
22+
For VF and VM support under Linux, please refer to [vf guide](doc/vf.md) for how to setup VF based on SRIOV, [vm guide](doc/vm.md) for how to setup VM based on VF passthrough.
1923

2024
## 4. Programmers guide:
2125
For how to develop application quickly based on Kahawai library, pls refer to [sample code](app/sample).
@@ -24,4 +28,4 @@ For how to develop application quickly based on Kahawai library, pls refer to [s
2428
Run below command before opening a PR.
2529
```bash
2630
./format-coding.sh
27-
```
31+
```

README_WIN_ENV.md

Lines changed: 0 additions & 225 deletions
This file was deleted.

app/meson.build

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: BSD-3-Clause
22
# Copyright 2022 Intel Corporation
33

4-
project('Intel(R) ST DPDK sample app', 'c', default_options: ['c_std=gnu11', 'buildtype=release'], version: '22.06',)
4+
project('Intel(R) ST DPDK sample app', 'c', default_options: ['c_std=gnu11', 'buildtype=release'], version: '22.09',)
55

66
# allow experimental api
77
add_global_arguments('-DALLOW_EXPERIMENTAL_API', language : 'c')
@@ -55,7 +55,6 @@ if is_windows
5555
libjsonccflags = run_command('pkg-config', '--cflags', 'json-c')
5656
libsdl2cflags = run_command('pkg-config', '--cflags', 'sdl2')
5757
libsdl2_ttfcflags = run_command('pkg-config', '--cflags', 'sdl2-ttf')
58-
libdpdklinkflags = run_command('pkg-config', '--static', '--libs', 'libdpdk')
5958
libopensslcflags = run_command('pkg-config', '--cflags', 'openssl')
6059

6160
app_c_args += [libdpdkcflags.stdout().strip().split()]
@@ -72,9 +71,6 @@ app_ld_args = []
7271

7372
if is_windows
7473
app_ld_args += ['-lmingw32','-lws2_32','-lDbghelp','-lSetupapi','-ldinput8', '-ldxguid', '-ldxerr8', '-lwinmm', '-limm32','-lversion','-lwpcap','-lPacket','-lSDL2','-lSDL2Main','-lmman','-ljson-c','-ldl']
75-
app_ld_args += ['-Wl,--whole-archive']
76-
app_ld_args += [libdpdklinkflags.stdout().strip().split()]
77-
app_ld_args += ['-Wl,--no-whole-archive']
7874
endif
7975

8076
# build executable
@@ -192,7 +188,13 @@ executable('TxSliceVideoSample', video_tx_slice_sample_sources,
192188
dependencies: [libst_dpdk, libpthread]
193189
)
194190

195-
executable('RxSt20TxSt22Fwd', rx_st20_tx_st22_fwd_sources,
191+
executable('RxSt20pTxSt22pFwd', rx_st20p_tx_st22p_fwd_sources,
192+
c_args : app_c_args,
193+
link_args: app_ld_args,
194+
dependencies: [libst_dpdk, libpthread]
195+
)
196+
197+
executable('RxSt20pTxSt20pFwd', rx_st20p_tx_st20p_fwd_sources,
196198
c_args : app_c_args,
197199
link_args: app_ld_args,
198200
dependencies: [libst_dpdk, libpthread]
@@ -204,6 +206,18 @@ executable('RxSt20TxSt20Fwd', rx_st20_tx_st20_fwd_sources,
204206
dependencies: [libst_dpdk, libpthread]
205207
)
206208

209+
executable('TxSt20PipelineSample', pipeline_tx_st20_sample_sources,
210+
c_args : app_c_args,
211+
link_args: app_ld_args,
212+
dependencies: [libst_dpdk, libpthread]
213+
)
214+
215+
executable('RxSt20PipelineSample', pipeline_rx_st20_sample_sources,
216+
c_args : app_c_args,
217+
link_args: app_ld_args,
218+
dependencies: [libst_dpdk, libpthread]
219+
)
220+
207221
executable('DmaSample', dma_sample_sources,
208222
c_args : app_c_args,
209223
link_args: app_ld_args,

app/perf/rfc4175_422be10_to_le.c

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
#define DMA_PORT_BDF "0000:e7:01.0"
1717
#endif
1818

19-
#if 0 /* icelake */
19+
#if 1 /* icelake */
2020
#define NIC_PORT_BDF "0000:4b:00.0"
2121
#define DMA_PORT_BDF "0000:00:01.0"
2222
#endif
2323

24-
#if 1 /* clx */
24+
#if 0 /* clx */
2525
#define NIC_PORT_BDF "0000:af:00.0"
2626
#define DMA_PORT_BDF "0000:80:04.0"
2727
#endif
@@ -94,6 +94,20 @@ static int perf_cvt_422_10_pg2_be_to_le(st_handle st, int w, int h, int frames,
9494
printf("scalar, time: %f secs with %d frames(%dx%d,%fm@%d buffers)\n", duration, frames,
9595
w, h, planar_size_m, fb_cnt);
9696

97+
if (cpu_level >= ST_SIMD_LEVEL_AVX2) {
98+
start = clock();
99+
for (int i = 0; i < frames * 1; i++) {
100+
pg_be_in = pg_be + (i % fb_cnt) * (fb_pg2_size / sizeof(*pg_be));
101+
pg_le_out = pg_le + (i % fb_cnt) * (fb_pg2_size / sizeof(*pg_le));
102+
st20_rfc4175_422be10_to_422le10_simd(pg_be_in, pg_le_out, w, h, ST_SIMD_LEVEL_AVX2);
103+
}
104+
end = clock();
105+
float duration_simd = (float)(end - start) / CLOCKS_PER_SEC;
106+
printf("avx2, time: %f secs with %d frames(%dx%d@%d buffers)\n", duration_simd,
107+
frames, w, h, fb_cnt);
108+
printf("avx2, %fx performance to scalar\n", duration / duration_simd);
109+
}
110+
97111
if (cpu_level >= ST_SIMD_LEVEL_AVX512) {
98112
start = clock();
99113
for (int i = 0; i < frames * 1; i++) {

0 commit comments

Comments
 (0)