Skip to content

V1#19

Merged
MerlinVR merged 16 commits into
masterfrom
v1-dev
Jun 12, 2021
Merged

V1#19
MerlinVR merged 16 commits into
masterfrom
v1-dev

Conversation

@MerlinVR
Copy link
Copy Markdown
Owner

@MerlinVR MerlinVR commented Jun 12, 2021

V1 update of USharpVideo using manual sync

Unity_ctHSzNkB5b

Resolves #6 #16 #15 #10 #4
Resolves PR #8, #7 and #2

  • Switch to using manual sync which is much more robust for this use case and more efficient on bandwidth use. This also allows much longer URLs to sync properly.
  • General updates for stability and consistency in various circumstances
  • Update retry logic to be much more robust at handling failed videos automatically
  • Improve pause functionality to work more seamlessly
  • Change video sync to be more accurate and robust
  • Add reload button to default player
  • Add support for looping current video to player
  • Add support for looping and shuffling default video playlist
  • Update UI to use the Feather icon library
  • Generally more robust handling for having multiple video players in the same world (though it is not particularly recommended for performance and bandwidth reasons)
  • Separate video sync from video backend (Unity vs AVPro) so the stream player can now sync video times if it is playing a video
  • Separate UI from video player logic and handle multiple copies of the same UI that all sync with the main video player they are attached to
  • Clean up video player API for use with scripting
  • Reduce amount of work that is happening in Update to reduce the video player overhead in worlds (video player is at around 0.1ms and UI is also around 0.1ms at the moment)
  • Integrate volume handling into the main video player
  • Handle video aspect ratio correction in shader, so AVPro streams will now have the correct aspect ratio like normal videos
  • Add UI styling utilities to make recoloring the default UI easier and less tedious
  • Workaround bugs with Udon callbacks involving RTSP streams so late sync works
  • Allow people to choose to only use AVPro player
  • Move Unity and AVPro video player components off of the main game object to avoid confusion from people, and provide a warning telling them to not modify the components since that was a common source of issues
  • Provide RenderTextureOutput component for use cases where people want one render texture that does not need special handling from shaders to work properly.
  • Add a couple examples for common extra use cases that people have had such as seperating out a reload button or a resync button from the video player UI, or using a button to play a specified URL
  • Add editor shim that handles resolving URLs using YouTubeDL to allow testing in editor and to avoid bug in Unity video player that can prevent the editor from closing properly

MerlinVR added 15 commits June 3, 2021 03:04
- U# Video 1.0 initial commit
- Fix init order bug with registering callback handlers as well
- I ran into a time where Build & Test hadn't initialized the server time at all so...
- Move UI update to Update from LateUpdate to avoid behaviour crashing when you leave the world because Udon doesn't shut down properly.
- Silence warning on a field on USharpVideoPlayer
- Make the video player inspector change the default slider value on video players and record prefab modifications correctly
- Fix SetLocked API to not toggle locked and actually respect the input locked state
- Make SetLocked consistent with SetLooping for how it handles ownership and unify the handling for SetLocked in OnDeserialization
- Increase the time between syncs and the sync threshold
- Remove default URL and text on URL prefab, change example scene video
- Make ForceSyncVideo seek the video back a bit before syncing to the correct time since the video players can have trouble seeking to exactly the right time if you're already very close to the target time
- I was going to add the japanese for the song (心海), but learned that the sea kanji is bugged due to https://en.wikipedia.org/wiki/Han_unification#Examples_of_language-dependent_glyphs and shows the Chinese version of 海
- Make sure only the 'privileged' users can lock the video player (aka at the moment the current master and the instance creator). I wasn't sure if I wanted to allow people to take exclusive control over the video player without being master or instance owner, but ended up deciding that it could be too confusing and annoying for others.
@MerlinVR MerlinVR merged commit 5722263 into master Jun 12, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant