Repository navigation
Conversation
Cache timestamps from the actual output encoder rather than the DTX decoder context, and retain elapsed time when transcoding resumes after playback or floor blocking. Add repeated-burst coverage for PCMA, Opus and G.722, including timestamp wraparound, and update DTX restart expectations. Validation: 712 repeated-burst checks, 19 null-packet/DTMF checks and 87 playback checks passed. Extended DTX retains the same 56 baseline failures with no additional failures. (cherry picked from commit d0d3b20)
Member
|
This makes the test in line 2454 of |
Contributor
Author
|
@rfuchs Thanks for the hint, as well as help with the previous couple of PRs! I'm also trying to improve the tests in the other remaining fix PRs. Sorry, seems I missed the PR checks... |
Member
|
Still a few more failures |
…t clock continuity
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
RTP timestamps can jump backwards when DTX transcoding resumes after prompt playback or media blocking. In a phone-to-browser trace, the same speech SSRC retained increasing sequence numbers but its Opus timestamps moved backwards by approximately four seconds between talk bursts. This can make receivers discard the beginning of a burst or delay playback.
__dtx_send_later()cachesencoder->next_pts + first_tsfrom the decoder-side context inssrc_out->ts_out. That context may use a different clock from the actual output encoder, and the assignment does not apply the encoder sample-to-RTP clock conversion. After codec handlers are stopped and their timestamp origins reset,packet_decode()reuses this cached value as the next output origin. Time spent with the encoder stopped is also omitted from the resumed RTP clock.Cache the next RTP timestamp when the actual output packet is encoded, using the destination encoder's clock conversion. Store its corresponding wall-clock time and advance the origin by elapsed time when transcoding restarts. This keeps each listener's output clock advancing across playback and silent intervals.
Add a repeated-burst regression for PCMU input transcoded to PCMA, Opus, and G.722, with prompt playback and directional media blocking between bursts. It checks stable speech SSRCs, forward timestamp progression, elapsed-time continuity, timely RTP output, and 32-bit timestamp wraparound. Update the existing codec-reconfiguration and maximum-DTX restart tests to check elapsed output time while retaining payload, sequence, SSRC, and subsequent packet-increment checks.