Handle equirectangular projections for VR (#2379)
This commit is contained in:
parent
a539de4f97
commit
50c8afb525
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue