Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fec::Reader may illegally drop delayed packets #210

Closed
gavv opened this issue Jun 6, 2019 · 1 comment
Closed

fec::Reader may illegally drop delayed packets #210

gavv opened this issue Jun 6, 2019 · 1 comment
Assignees
Labels
defect Something isn't working
Milestone

Comments

@gavv
Copy link
Member

gavv commented Jun 6, 2019

This issues is similar to #54 but involves packet recovery.

Consider the following situation:

  • source packets 1-10 were delivered
  • source packets 1-10 were played
  • source packets 11 and 12 were delayed
  • some repair packets were delivered
  • it is time to play packet 11
  • fec reader detects the loss of packet 11 and starts recovery
  • fec reader successfully recovers packet 13, but fails to recover packets 11 and 12
  • fec reader advances current position to packet 13
  • depacketizer plays silence instead of packet 11
  • packets 11 and 12 are delivered
  • it's time to play packet 12
  • fec reader drops packet 12 because it's position is packet 13
  • depacketizer plays silence instead of packet 12

Thus, here we have packet 12 and we can play it, but we drop it and play silence instead.

The probability of this situation is quite low (the latency should be very low and the network should deliver repair packets before fully delivering source packets), but theoretically it's possible.

The problem is that fec::Reader advances it's current position by itself without a knowledge about the current playback position.

@gavv gavv added the defect Something isn't working label Jun 6, 2019
@gavv gavv mentioned this issue Dec 19, 2019
18 tasks
@gavv gavv self-assigned this Jun 25, 2024
@gavv gavv added this to the next milestone Jun 25, 2024
@gavv gavv mentioned this issue Jun 25, 2024
33 tasks
@gavv
Copy link
Member Author

gavv commented Jun 27, 2024

Fixed in #731.

@gavv gavv closed this as completed Jun 27, 2024
@gavv gavv added this to Roc Toolkit Jul 6, 2024
@gavv gavv moved this to Done in Roc Toolkit Jul 6, 2024
gavv added a commit to gavv/roc-toolkit that referenced this issue Jul 17, 2024
- forward status codes from packet reader
- support soft reads
- generate partial reads to separate signal and losses into
  different frames
- use ModePeek to avoid advancing pipeline when next available
  packet is too far, and in soft read
- remove beeping support

These changes also fix issues roc-streaminggh-54 and roc-streaminggh-210

Sponsored-by: waspd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
defect Something isn't working
Projects
Status: Done
Development

No branches or pull requests

1 participant