VideoViewer: rotated (portrait phone) videos shown sideways when system decimal separator is a comma
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
El valor de rotación se analiza con la cultura actual en QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs y de nuevo en QuickLook.Plugin.VideoViewer/Plugin.cs para el tamaño de la ventana. Empieza por esas dos llamadas a double.TryParse sobre el campo "Rotation" de MediaInfo. Está terminado cuando ambas analizan con CultureInfo.InvariantCulture y NumberStyles.Float, y una configuración regional ru-RU muestra un video vertical en posición correcta. Comprueba si la solución provisional rotation /= 1e3 sigue siendo válida.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug Portrait videos recorded on iPhone (stored as 1920x1080 with a rotation flag) are previewed sideways. This is likely the root cause of #762, which was closed without being reproduced.
Cause MediaInfo returns the rotation as "90.000". The VideoViewer parses it with the current culture:
QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs — double.TryParse(info?.Get(StreamKind.Video, 0, "Rotation"), out var rotation);
QuickLook.Plugin.VideoViewer/Plugin.cs — same call for the window size
When the decimal separator is a comma (ru-RU, uk-UA, many other locales), "90.000" fails to parse, so rotation stays 0 and no rotation is applied. With a dot as the group separator (de-DE etc.), it parses as 90000. The existing if (rotation > 360) rotation /= 1e3; workaround covers that case, but not the comma-separator case.
Proposed fix Parse the value with the invariant culture in both places:
double.TryParse(info?.Get(StreamKind.Video, 0, "Rotation"),
NumberStyles.Float, CultureInfo.InvariantCulture, out var rotation);
After this change, the /= 1e3 workaround is probably no longer needed.
To Reproduce
Windows region format ru-RU (decimal separator ,).
Take a portrait iPhone video (HEVC .MOV, rotation=-90 in ffprobe, MediaInfo Rotation = 90.000).
Preview it in QuickLook. It is shown sideways.
Change the decimal separator to . and restart QuickLook. It is shown correctly.
Environment
Windows 11 Home 24H2 (10.0.26100)
QuickLook 4.5.0.0 (Microsoft Store)
- Lenguaje dominante
- C#
- Estrellas
- 25.2k
- Forks
- 1.3k
- Merge medio
- 10 d 4 h
- PR fusionados (30 d)
- 2
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de QL-Win/QuickLook
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 56/100
-
good for a plugin upstream
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
-
iOS IPA displays incorrectly.Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Todos los issues de QL-Win/QuickLook
Issues similares
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
area:re1 bounty help wanted needs-game
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
StackExchange/StackExchange.Redis#3274 ·
Los mantenedores suelen responder en 1 día
-
affected/v17 affected/v18 area/frontend type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
umbraco/Umbraco-CMS#24186 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 3 días