Updated for the changes to Reed Solomon FEC and Lossless mode in J2K#4
Open
aw-sohonet wants to merge 6 commits intomasterfrom
Open
Updated for the changes to Reed Solomon FEC and Lossless mode in J2K#4aw-sohonet wants to merge 6 commits intomasterfrom
aw-sohonet wants to merge 6 commits intomasterfrom
Conversation
* Updated UltraGrids video pipeline to use threading in two key areas:
- Sending packets
- This causes the sending of packets using the RTP stack to be threaded amongst all available CPU threads.
- This was implemented because sending uncompressed / lossless frames at 24 FPS was often taking longer to send the frame than than the duration of the frame. As the frames are collected in the same thread that they are sent in, this can cause a slowing in the collection of frames. Currently this option is forced. Future work will make this optional.
- A huge increase in performance has been measured, such that lossless / uncompressed frames are able to be processed quickly enough on consumer hardware (that has enough thread capability).
- A parameter has been introduced to control the amount of avaialble threads to be used for encoding ("encode-thread-count").
- Receiving packets
- Due to the nature of the way packets are received in UltraGrid there has been two threading implementations placed into the decode pipeline.
- The first of which is that decoding the packets into the initial package is now run in a thread independently of the build-up of packets. This helps avoid queues in the kernel for incoming UDP packets.
- The second of which is a series of threads that are used to decrypt the contents of the packets and place them into the frame. These threads do not lock when writing into the frame (as each packet should represent an independent region of the memory).
- A parameter has been introduced to control the amount of available thread to be used for decoding and decrypting packets ("decode-thread-count").
Some fixes for the Reed Solomon implementation for audio have also been introduced (mostly focused on a memory leak that existed in the implementation). A fix has also been implemented to remove the packet shaping from the audio FEC RTP send function that was causing a crash.
* Fixed spelling mistake in the SSRC statistics.
* Fixed some indentation issues, and removed some commented out code that was used in debugging
* Updated UltraGrids video pipeline to use threading in two key areas:
- Sending packets
- This causes the sending of packets using the RTP stack to be threaded amongst all available CPU threads.
- This was implemented because sending uncompressed / lossless frames at 24 FPS was often taking longer to send the frame than than the duration of the frame. As the frames are collected in the same thread that they are sent in, this can cause a slowing in the collection of frames. Currently this option is forced. Future work will make this optional.
- A huge increase in performance has been measured, such that lossless / uncompressed frames are able to be processed quickly enough on consumer hardware (that has enough thread capability).
- A parameter has been introduced to control the amount of avaialble threads to be used for encoding ("encode-thread-count").
- Receiving packets
- Due to the nature of the way packets are received in UltraGrid there has been two threading implementations placed into the decode pipeline.
- The first of which is that decoding the packets into the initial package is now run in a thread independently of the build-up of packets. This helps avoid queues in the kernel for incoming UDP packets.
- The second of which is a series of threads that are used to decrypt the contents of the packets and place them into the frame. These threads do not lock when writing into the frame (as each packet should represent an independent region of the memory).
- A parameter has been introduced to control the amount of available thread to be used for decoding and decrypting packets ("decode-thread-count").
Some fixes for the Reed Solomon implementation for audio have also been introduced (mostly focused on a memory leak that existed in the implementation). A fix has also been implemented to remove the packet shaping from the audio FEC RTP send function that was causing a crash.
* Fixed spelling mistake in the SSRC statistics.
* Fixed some indentation issues, and removed some commented out code that was used in debugging
* Updated so the drift fix is always enabled - Added some additional log lines to represent this
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.
No description provided.