Based on the DVB-T2 SDK v2.4.0, a key feature to implement is Multi-PLP (Physical Layer Pipe) Support. Feature: Dynamic Multi-PLP Switching
This feature enables the SDK to concurrently process multiple independent data streams within a single DVB-T2 multiplex. This allows broadcasters to deliver different services (e.g., mobile-optimized SD and high-quality 4K/HD) with varying levels of error protection on the same frequency.
Selective PLP Extraction: Filters the transport stream to extract only the specific PLP ID requested by the application layer, reducing CPU overhead during decoding.
Seamless Handover: Implements logic to switch between PLPs without frame drops, useful for adaptive bitrate-style terrestrial broadcasting.
Signaling Parsing: Automatically parses L1-pre and L1-post signaling to identify available PLPs and their modulation parameters (e.g., 256QAM vs 16QAM). Implementation Guide dvb t2 sdk v2.4.0
Initialize Tuner: Set the frequency and bandwidth (typically 7MHz or 8MHz) using the DVB_T2_Set_Tuning_Params function.
Scan PLPs: Use DVB_T2_Scan_PLP_List to retrieve all active Physical Layer Pipes in the current multiplex.
Select Stream: Call DVB_T2_Bind_PLP(plp_id) to instruct the hardware demodulator to lock onto the specific data pipe.
Extract TS: Route the resulting MPEG-2 Transport Stream to the demuxer for video/audio playback. Based on the DVB-T2 SDK v2
For further integration, you can refer to implementation guides on DVB.org or check developer resources from AstroMeta and TBS Technologies.
If you'd like, I can provide a C++ code snippet or API documentation for: Configuring LDPC and BCH error correction Implementing Time-Frequency Slicing (TFS) Setting up OTA (Over-the-Air) firmware updates for the SDK
GitHub - drmpeg/gr-dvbt2: A DVB-T2 transmitter for GNU Radio
The DVB-T2 SDK v2.4.0 is structured in a layered architecture to ensure modularity and ease of porting across different Hardware Abstraction Layers (HAL). Application Layer (API):
dvb_t2.h, frontend.h).on_lock, on_unlock, on_signal_drop).i2c_read, i2c_write, and gpio_control functions to port the SDK to their specific tuner hardware.t2_lite_mobile_scan.c – T2-Lite mode with power cyclingplp_forwarding_gateway.c – Multi-PLP to IP streamingfef_snoop.c – Capturing FEF intervals for future standardsWhile previous versions focused on basic demodulation and signal locking, v2.4.0 shifts focus to optimization and extended feature sets.
The configuration structure has been expanded to support finer granularity:
typedef struct
uint32_t frequency_khz;
uint8_t bandwidth; // 8MHz, 7MHz, 6MHz, 1.7MHz (new in v2.4.0)
uint8_t plp_id; // Target PLP ID
uint8_t t2_mode; // T2_Base, T2_Lite
bool enable_miso; // MISO (Multiple Input Single Output) support
bool papr_mode; // Peak-to-Average Power Ratio control
dvb_t2_tune_params_t;
Unlike DVB-T, DVB-T2 requires a "channel discovery" phase. The SDK simplifies this:
t2_channel_t ch =
.frequency_khz = 514000,
.bandwidth = BANDWIDTH_8_MHZ,
.auto_plp = true
;
t2_tune(handle, &ch);
Get access to your Orders, Wishlist and Recommendations.
Your personal data will be used to support your experience throughout this website, to manage access to your account, and for other purposes described in our privacy policy.