Handle equirectangular projections for VR (#2379)

This commit is contained in:
syeopite 2021-09-10 07:42:39 +00:00 committed by GitHub
parent a539de4f97
commit 50c8afb525
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 3 deletions

View File

@ -151,7 +151,12 @@ player.on('error', function (event) {
// Enable VR video support
if (video_data.vr && video_data.params.vr_mode) {
player.crossOrigin("anonymous")
player.vr({projection: "EAC"});
switch (video_data.projection_type) {
case "EQUIRECTANGULAR":
player.vr({projection: "equirectangular"});
default: // Should only be "MESH" but we'll use this as a fallback.
player.vr({projection: "EAC"});
}
}
// Add markers

View File

@ -762,7 +762,12 @@ struct Video
end
def is_vr : Bool?
info.dig?("streamingData", "adaptiveFormats", 0, "projectionType").try &.as_s == "MESH"
projection_type = info.dig?("streamingData", "adaptiveFormats", 0, "projectionType").try &.as_s
return {"EQUIRECTANGULAR", "MESH"}.includes? projection_type
end
def projection_type : String?
return info.dig?("streamingData", "adaptiveFormats", 0, "projectionType").try &.as_s
end
def wilson_score : Float64

View File

@ -63,7 +63,8 @@ we're going to need to do it here in order to allow for translations.
"params" => params,
"preferences" => preferences,
"premiere_timestamp" => video.premiere_timestamp.try &.to_unix,
"vr" => video.is_vr
"vr" => video.is_vr,
"projection_type" => video.projection_type
}.to_pretty_json
%>
</script>