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

DRAFT: Json, WebSocket, Http and Media Output Submodules #87

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

cpritchard-disney
Copy link

This is a draft work in process of code written by Charles Pritchard at The Walt Disney Company which has been approved for contribution to the VictoryPlugin under its current license as well as for contribution to Epic's Unreal repository.

It is not yet ready to merge, as it does not follow the code guidelines of either repository.

@cpritchard-disney
Copy link
Author

@EverNewJoy Attached is round two for the JSON plugin, revised for 4.25+. It is not yet ready to merge. Blueprint tests are really helpful in this plugin - I think that a separate VictoryPluginTests (or examples) repository may be helpful to users as well as developers.

Known issues:

While this software has been in use for several years, starting from UE 4.22, there are some known issues.

Json: soft references (paths) are not perfectly handled, additional tests for serialization / deserialization of soft paths should be written to fix that item.

Websockets: There is a potential issue in UE5 on setting the protocol flag, a warning comes up with the program websocat, and there appears to be a connection issue with at least one of the popular websockets libraries for node. This issue does not appear in UE4.

Media Socket: The stop capture method of unreal signals the Stop Capture change event before calling the stop capture implementation. We close our pipe during stop capture implementation, and so the event is sent one frame too quickly. This may be fixed by listening for the event first, so that the pipe can block appropriately and not send a stop capture event until it has closed.

Http: As noted in the unreal source code, the http get buffer can not reasonably be reset during the request, which creates an unnecessary strain on memory. Thus, for large files, HTTP range requests are appropriate to use.

Several of these issues could be remediated upstream in the Epic code base. Victory has had many wins in improving Unreal through demonstrating new methods, and it is my hope that these modules will continue to push things forward in the community.

-Charles

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant