Implement PID-based discontinuity filtering (tspidfilter-like functionality) #133
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements PID-based discontinuity filtering functionality to address the issue of Transport Stream quality problems caused by discontinuity indicators in auxiliary data streams.
Problem
The issue asked: "Do discontinuities have a different PID in the Transport Stream?" and suggested that tspidfilter could help filter them out. Investigation revealed that while Tardsplaya already detected discontinuities at the HLS level, it lacked the ability to filter Transport Stream packets with discontinuity indicators from specific PIDs, which can cause playback artifacts and stuttering.
Solution
Added a comprehensive
PIDDiscontinuityFilterclass that provides tspidfilter-like functionality:Key Features
Configuration Example
Technical Benefits
Implementation Details
The filter operates at the packet level within the Transport Stream router, checking each packet for discontinuity indicators and filtering based on PID configuration. It maintains thread-safe statistics and can automatically detect PIDs that exceed configurable discontinuity thresholds.
This answers the original question definitively: Yes, discontinuities do have different PIDs in Transport Streams, and now they can be effectively filtered out using this tspidfilter-like functionality.
Fixes #132.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.