Is your enhancement request related to a problem? Please describe.
In order to render a VR video correctly, we need a projection type. Invidious currently attempts to detect this via the projectionType attribute in the adaptiveFormats.
EQUIRECTANGULAR always maps to a plain 360 projection
But MESH can refer to both the EAC projection and it's side-by-side variant: EAC_LR
Possibly more projection types?
Describe the solution you'd like
Find some full proof method to detect the exact projection type.
Describe alternatives you've considered
Since MESH can either be EAC or EAC_LR we can add a button to let the end-user quickly swap projection types so they can attempt to fix the video themselves.
Is your enhancement request related to a problem? Please describe.
In order to render a VR video correctly, we need a projection type. Invidious currently attempts to detect this via the
projectionType
attribute in theadaptiveFormats
.https://github.com/iv-org/invidious/blob/50c8afb525429dcdb5a9b9bb4cf798ee9f62da2a/src/invidious/videos.cr#L764-L767
However, this method isn't ideal:
EQUIRECTANGULAR
always maps to a plain 360 projectionMESH
can refer to both theEAC
projection and it's side-by-side variant:EAC_LR
Describe the solution you'd like
Find some full proof method to detect the exact projection type.
Describe alternatives you've considered
Since
MESH
can either beEAC
orEAC_LR
we can add a button to let the end-user quickly swap projection types so they can attempt to fix the video themselves.Additional context