- ice: update driver to 1.14.9
- st2110/20: add force NUMA option support on session level, see ST20_TX_FLAG_FORCE_NUMA/ST20_RX_FLAG_FORCE_NUMA
- st2110/30: add force NUMA option support on session level, see ST30_TX_FLAG_FORCE_NUMA/ST30_RX_FLAG_FORCE_NUMA
- ffmpeg: fix RX side dropping frames at the beginning of the session with st20/st22/st30.
- st22: fix last frame dropping in TX. Ensure that last frame status changed to FREE.
- dpdk: optimizing memory pool size.
- manager: fix docker build.
- ffmpeg: improve unicast initialization, reduce amount of dropping frames in the beginning of the session.
- ixgbe: add driver support. Tested on 10-Gigabit X540-AT2 (1528) and Intel 10G X550T (1563).
- sch/tasklet: fix API correct NUMA assigned when
mtl_sch_create
is used. - sch/tasklet: fix segfault when lcore out of
RTE_MAX_LCORE
assigned. - app: add new video formats to sample app - YUV_420_16bit, YUV_422_8BIT, YUV_444_8bit, YUV_444_16bit.
- RTP: fix checking for valid payload type.
- st30: add
fifo_size
parameter parsing from user. - st41: add
St2110-41
format for 'Fast Metadata Framework' standard. - ffmpeg: add support of
44100
rate forst30
format. - ffmpeg: add support for v7.0 version
- st22: fix correct NUMA assigned
socket_id
with pipeline when creating a new session. - GPU: add support for GPU direct buffers in ST2110/20. See
app/sample/gpu_direct
for usage. - ffmpeg: add support for GPU buffers.
- dpdk: upgrade dpdk version to 23.11.
- st22: add interlaced support.
- log: add custom log printer, see mtl_set_log_printer.
- rx/timing_parser: add timing_parser stat report for RX video,
--rx_timing_parser
in RxTxApp to enable. - pipeline: add block get mode support, see
ST20P_TX_FLAG_BLOCK_GET
/ST20P_RX_FLAG_BLOCK_GET
/ST22P_TX_FLAG_BLOCK_GET
/ST22P_RX_FLAG_BLOCK_GET
. - rx/timing_parser: add support to export the timing_parser to app, see
app/sample/rx_st20p_timing_parser_sample.c
for usage. - st40: add interlaced support.
- cvt: add st20_rfc4175_422be10_to_yuv422p8 with avx512
- backend: add XDP based backend, see doc/xdp.md.
- manager: add a daemon server for privileged control management, see manager/README.md.
- backend/xdp: add UDP port filter XDP program for splitting data path traffic.
- ice: update driver to 1.13.7
- rx/timing_parser: add timing_parser for audio, see
ST30_RX_FLAG_TIMING_PARSER_STAT
andST30_RX_FLAG_TIMING_PARSER_META
- tools/ebpf: add lcore_monitor to monitor the lcore status for debug usage
- tools/ebpf: add udp_monitor to sniff all UDP streaming on the network
- usdt: add eBPF based User Statically-Defined Tracing (USDT) probes support, see
doc/usdt.md
- multicast: add MTL_FLAG_NO_MULTICAST option
- st30p: add get/put support for audio, detail see
include/st30_pipeline_api.h
- ffmpeg: add audio plugin support
- log: add log to file support, see mtl_openlog_stream.
- dpdk: upgrade dpdk version to 23.07.
- virtio_user: add virtio_user support for exception path, deprecate kni.
- st22p/tx: add external frame support, see ST22P_TX_FLAG_EXT_FRAME.
- backend: add kernel socket based backend, see doc/kernel_socket.md.
- dpdk pmd: add AF_PACKET PMD support, see doc/experimental/af_packet.md.
- st22p/rx: add external frame support, see ST22P_RX_FLAG_EXT_FRAME.
- ptp: add user callback for ptp sync message. See ptp_sync_notify in struct mtl_init_params.
- api: add arp timeout parameter support for st2110 unicast address. See arp_timeout_s in struct mtl_init_params.
- st2110/tx: fix RTP passthrough interface support when PMD doesn't support multi segment mbuf.
- st2110/tx: fix redundant when PMD doesn't support multi segment mbuf.
- backend/kernel: add multi thread support for both TX and RX.
- convert: add interlace support.
- rtcp: add retransmit packet support for st20 sessions, see STxx_RX_FLAG_ENABLE_RTCP.
- st2110: add ssrc support.
- rss: add multi-core support.
- log: default add time info print, and a API
mtl_set_log_prefix_formatter
to customize the log prefix formatter. - lcore: add
LcoreMgr
tools to manage the inactive lcore status. See doc/lcore.md - ice: update driver to 1.12.7
- lib: add DHCP client implementation.
- ice: update driver to 1.11.14
- udp: add LD_PRELOAD to support no-code change deployment, see doc/udp.md
- udp: add select/epoll/send_msg/recvmsg support.
- ecosystem/ffmpeg: add output support.
- rss: add shared mode support, see mt_shared_rss.h
- st/video: add multi_src_port support.
- sample: add hdr split with gpu direct, see app/sample/ext_frame/rx_st20p_hdr_split_gpu_direct.c
- api/ops: add udp_src_port configuration
- build: disable Werror for debug build.
- tx/st30: separate build and pacing stage.
- tx/pacing: add epoch drop/onward stat.
- tx/st2110: add epoch information in stxx_tx_frame_meta for get_next_frame callback.
- dpdk: upgrade dpdk version to latest 23.03
- Windows: add MSYS2 build guide and CI
- vm: add Windows guest OS support, see vm_WIN.md.
- rx/video: add fpt(first packet time to epoch) in struct st20_rx_frame_meta.
- st20p: add interlace format support, refer to tests/script/loop_json/st20p_2v_1080i50.json
- CI: add ossf scorecard support.
- gtest: support run with AWS ena driver.
- dhcp: set proto to dhcp in interfaces segment of json to enable DHCP.
- rx/video: support out of sequence for both first and last(marker) packet.
- udp: add gso(general segment offload) for tx
- udp: add reuse port support.
- udp: add fork support
- Windows: add MSVC sample build, refer to app/sample/msvc/imtl_sample.
- audio: improve max density per process to 750 for both tx and rx by shared queue and no_tx_chain.
- ptp: add tsc time source support for VF.
- doc: use vf mode as default for E810 nic.
- tx/st20: improve the pacing profile accuracy.
- dpdk: upgrade dpdk version to latest 22.11 for both windows and linux.
- ptp: add pi controller and software frequency adjust to improve the accuracy to ~100ns.
- mtl_init_params: add gateway and netmask support for wan.
- udp: introduce a highly efficient udp stack support, see mudp_api.h
- udp: add POSIX socket compatible(file descriptor) API support, see mudp_sockfd_api.h
- udp: add sample code, see app/udp
- arp: add zero timeout support for UDP stack.
- mtl_init_params: add multi port support, user can initial MTL instance with up to 8 ports. See tests/script/multi_port_json/ for how to use from RxTxApp.
- sch/tasklet: add runtime unregister support.
- udp: add lcore daemon mode support for rx, see MTL_FLAG_UDP_LCORE.
- dev: add rss mode support for rx queue in case no rte_flow available.
- st2110/rx: add rss queue mode support
- st2110/tx/video: add tx no chain mode support
- st2110/tx/video: enable IOVA PA mode in 2M huge page environment
- sample/pipeline: add SQD split and merge sample
- sample/pipeline: add downscale sample
- sample/pipeline: add 2si-down sample
- CSC: add rfc4175 422be12 to le/planar avx512 version
- AWS: add ENA running guide, see aws.md for detail
- tasklet: add thread and sleep option for core usage, see ST_FLAG_TASKLET_THREAD and ST_FLAG_TASKLET_SLEEP.
- tx: add user timestamp control, see ST20_TX_FLAG_USER_TIMESTAMP/ST30_TX_FLAG_USER_TIMESTAMP/ST40_TX_FLAG_USER_TIMESTAMP.
- rx/video: add dual core redundant mode support. See st20_redundant_api.h for detail. Header split only support this dual core redundant mode.
- lib/log: add notice level log, see ST_LOG_LEVEL_NOTICE.
- build: add clang support. See "Build with clang" section in build.md.
- tx: add user pacing control, see ST20_TX_FLAG_USER_PACING, ST30_TX_FLAG_USER_PACING, ST40_TX_FLAG_USER_PACING.
- video: add notify_vsync callback which happened when epoch time change to a new frame, vsync period is same to fps. See notify_vsync parameter in the session create ops for detail.
- csc: add y210 format support, y210 is the format for GPU 10bit yuv422 layout.
- sch/tasklet: enhance sleep feature with timer based sleep and user control.
- build: add AddressSanitizer(aka ASan) support, see asan.md
- fps: add full fps support, see README.md.
- plugin: implement OBS Studio source plugin, support UYVY/NV12/I420 formats.
- ext frame: add external frame support, see doc/external_frame.md.
- build: rename package name to mtl, also API naming prefix to mtl_xxx.
- st20p: add YUV_422_12bit YUV_444_10bit YUV_444_12bit RGB_10bit RGB_12bit support.
- plugin: add ffmpeg support with MTL package, see plugins/ffmpeg_plugin/.
- st20p: add packet level convert mode, see ST20P_RX_FLAG_PKT_CONVERT.
- arp: cache the results to a table, the second arp request can use the history results directly.
- st20p: add plane and linesize support, see struct st_frame.
- st20p: add st_frame_convert API which both the source and destination are st_frame.
- sample: add MSDK encode sample with MTL source, see app/msdk.
- License: update to BSD-3
- dpdk: update DPDK to v22.07
- ice: update driver to 1.9.11
- vf: add SRIOV based virtual NIC support, see vf.md.
- vm: add SRIOV+KVM based virtualization support, see vm.md.
- CSC: Color format SIMD convert API from CPU little endian format to RFC4175 YUV422 10bit BE, see st_convert_api.h.
- AF_XDP: introduce AF_XDP PMD experimental support, see af_xdp.md.
- pipeline: introduce pipeline friendly API for both st20 tx and rx, see st_pipeline_api.h for detail.
- iova: add map/unmap support for IO device, see st_dma_map and st_dma_unmap.
- Header split: introduce hdr split offload experimental support, see header_split.md.
- 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.
- st30: support 250us, 333us, and 4ms packet time.
- Windows: support DSA for rx offload.
- 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 Media Transport Library as a plugin to OBS, only rx path now.
- fps: add 120(119.88) fps support, see ST_FPS_P119_88.
- User frame mode with uframe_pg_callback for rx video session.
- Color format SIMD convert API between RFC4175 YUV422 10bit BE and other LE format, see st_convert_api.h.
- SIMD build and runtime framework.
- Migration suppport for tx/rx video session if the cpu lcore usage is too busy, see ST_FLAG_TX_VIDEO_MIGRATE/ST_FLAG_RX_VIDEO_MIGRATE.
- DMA/DSA helper on SIMD convert API to reduce LLC usage for 4K/8K resolution, see st_convert_api.h.
- Format auto detect for rx video session, see ST20_RX_FLAG_AUTO_DETECT.
- rx: add payload type check in the hdr sanity inspection.
- st22: add frame mode support for tx and rx.
- st22: add pipeline mode support for both tx and rx, see st_pipeline_api.h for the API, tx_st22_pipeline_sample.c/rx_st22_pipeline_sample.c for the sample code.
- st22: add encode/decode plugin sample code, see jpegxs_plugin_sample.c for the sample and kahawai.json for the plugin so config.
- app: json config support for st22 pipeline mode.
- tx/st20: runtime session create/free features, adding runtime ratelimit support.
- st30: support 125us and 80us in audio pacing
- Enabled field mode to support 1080i,PAL,NTSC with narrow pacing.
- Mempool usage optimization for both TX/RX, each TX session has dedicated mempool, one mempool for each RX queue. It also improve LLC affinity extremely.
- DMA offload support for RX video, lcore usage reduced.
- DPDK 21.11 support.
- VF pass all GTest tests.
- Support for 25fps.
- Enhanced algorithm with noise filter for video pacing profiling and TSC freq calibration.
- Fix check sum calculation(rf1071) for multicast report message.
- RX video slice mode support for low latency.
- TX video slice mode support for low latency.
- DMA(copy/fill) user API support, st_udma_xxx.
- PCAP dump API support for RX video session.
- Support for yuv444 8, 10, 12, 16 bit.
- Dynamic IP address change support for RX video session.
- Provide metadata info in the RX callback.
- Full audio channels support.
- GPM(general packet mode) and BPM(block packet mode) support for TX.
- 8K resolution support for both TX and RX.
- More automatic test cases coverage, 144 Gtest items totally.
- Add rtp path sample code.
- Add ST2110-22 sample code.
- First version with new design based on DPDK 21.08.