Skip to content

Releases: facebookresearch/spdl

v0.0.14

12 May 15:32
b9a01c7

Choose a tag to compare

Documentation Update

  • Improved the documentation.
    The SPDL was started as a experiment for multi-threading, but now it's not just multi-threading but also multi-processing.
    It's more about production readiness, iterative optimization enabled by observability and flexibility.
    The Overview and Getting Started have been updated to reflect this
  • Optimization Guide
    https://facebookresearch.github.io/spdl/0.0.14/performance_analysis/index.html
    In the new Optimization Guide section, we share the methodologies we develop while optimizing various production pipelines.
    It illustrates how we estimate the data loading inefficiency, identify the bottleneck, and how we approach solving the bottleneck.

BC-breaking Changes

  • Propagate severe Pipeline errors to front-end by @mthrok in #699
    When Pipeline encounters an unexpected error, in addition to shutting down the pipeline,
    the error is now propagated to the foreground.

    The unexpected error includes an error occurred in source iterator.
    The errors happen in functions provided by users to Pipeline.pipe are expected, so they are not part of it.

Bugfixes

Other Changes

Full Changelog: v0.0.13...v0.0.14

v0.0.13 - Observability Improvment

02 May 14:32
fe75c39

Choose a tag to compare

Better observability towards bottleneck detection

In this release, we re-organized the pipeline hooks, and expose the periodic performance measurement mechanism as public interface.
This allows to tap into the performance statistics of data processing pipeline, which makes it easy to analyze the pipeline performance, and optimize the pipeline.

Please checkout the renewed Performance Analysis documentation, and example to learn how to log the runtime performance statistics.

BC-breaking Changes

New Features

Full Changelog: v0.0.12...v0.0.13

v0.0.12

23 Apr 15:40
a4fe619

Choose a tag to compare

New features

  • Improved streaming media processing capability, including multi-stream demuxing, remuxing, encoding and complex filter graph capability.
    • You can demux multiple streams from the source. (such as audio and video packets.)
    • With the new Muxer class, you can encode media or remux packets.
    • Please check out the streaming_video_processing.py for audio remuxing, streaming video decoding, and encoding.
  • The new FilterGraph class can perform complex filtering, multiple-input, multiple-output and multi-media processing. One popular example is overlay to add watermark on videos processed by AI. Please checkout the documentation.

What's Changed

Full Changelog: v0.0.11...v0.0.12

v0.0.11

11 Apr 22:14
edb2ad1

Choose a tag to compare

New features

  • Add streaming NVDEC decoding example #571
  • Add streaming_load_video_nvdec func #538
  • Use None for skipping item in pipeline #545
  • Add codec metadata #569
  • Add stream sync #537
  • Add streaming decoder #553, #566
  • Add timestamp to frames __repr__ #586
  • Add function to convert RGB video tensor to Frames #587

The following new features will be available in the next release.

  • Add video encoder #592
  • Add Muxer implementation #594
  • Add audio encoding #597
  • Add colorspace options #603
  • Add time_base attributes to Audio/Video codec #604
  • Add end time in Frames timestamp representation #605
  • Add FilterGraph public C++ interface #606
  • Add stream_index to Packets #626

BC-breaking changes

  • [BC-breaking] Remove streaming_decode_packets #562
  • [BC-Breaking] Do not copy attach codec when stream demuxing #621

Fixes

  • Fix nvJPEG build #546

Test/CI

  • Use ffmpeg 7.0.2 for build #568
  • Add encoder parity test #584

Full Changelog: v0.0.10...v0.0.11

v0.0.10

20 Mar 21:23
e1d3537

Choose a tag to compare

Summary

  • You can now install SPDL with pip install spdl, and use CUDA and NVDEC.
    • The extension module has been split into core and CUDA. Now it's possible to use CUDA package in environments without CUDA.
    • The PyPI distributions for Linux x86_64 includes CUDA extension.
  • NVEDC support has been added to CUDA extension. See the doc for the detail.

New Features

  • Added spdl.io.apply_bsf to apply bit-stream filtering to packets (#522, #503)
  • Added function to fetch FFmpeg versions (#507)
  • Added NV12 to RGB color conversion functions (#528, #525, #526)
  • Added a new NvDecDecoder, which supports streaming decoding. (#517, #520, #531)
  • Added support to fetch codec from Packets and Demuxer. (#521)

BC-Breaking changes

  • Removed alpha channel from NVDEC decoding (#527)
  • The HOLD_GIL build option has been removed (#509, #511)
  • Renamed the build config query functions is_available to built_with (#514, #505)

Bugfix

  • Fixed the allocator function signature by @mthrok in #504
  • Fixed segfault when not built with CUDA by @mthrok in #513

Split code/binding/packages

Refactoring CUDA-related code

CI Improvement

Full Changelog: v2025.03.17.00...v0.0.10

v0.0.9

05 Mar 23:10
d5a2b78

Choose a tag to compare

What's Changed

The FFmpeg7 integration has been fixed.

Full Changelog: v0.0.8...v0.0.9

Please checkout the Assets bellow to download CUDA binaries.

Release Assets

05 Mar 21:11

Choose a tag to compare

release-assets

Initial Commit

v0.0.8 - The first (yet experimental) release

28 Feb 04:41
256ecb3

Choose a tag to compare

SPDL is now available on PyPI for the following platform and Python versions.
You can install it with pip install spdl.

  • Linux/macOS
  • Python 3.10, 3.11, 3.12 and 3.13

There is no binary distribution for 3.13t yet.

The IO module with CUDA support is not available on PyPI.
Instead you can download wheels compiled with CUDA 12.6 from the following Assets section.
You need to install nvidia-cuda-runtime-cu12 package.
(It's available in https://pypi.org/project/nvidia-cuda-runtime-cu12/ or
if you are installing PyTorch following from the official channel, it will be automatically installed.)

The spdl distribution is an empty meta package.
The actual functionalities are split into spdl_io and spdl_core packages.
They are independent each other and can be installed separately.

For the detail of package usage, please refer to the documentation.
https://facebookresearch.github.io/spdl/0.0.8/index.html