Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

fix quicktime video thumbnailing #8108

Merged
merged 4 commits into from
Mar 22, 2022
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion src/ContentMessages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,14 @@ function loadVideoElement(videoFile): Promise<HTMLVideoElement> {
reject(e);
};

video.src = ev.target.result as string;
let dataUrl = ev.target.result as string;
// Chrome chokes on quicktime but likes mp4, and `file.type` is
// read only, so do this horrible hack to unbreak quicktime
if (dataUrl.startsWith("data:video/quicktime;")) {
dataUrl = dataUrl.replace("data:video/quicktime;", "data:video/mp4;");
}

video.src = dataUrl;
video.load();
video.play();
};
Expand Down Expand Up @@ -588,6 +595,12 @@ export default class ContentMessages {
// if we have a mime type for the file, add it to the message metadata
if (file.type) {
content.info.mimetype = file.type;

// clobber quicktime muxed files to be considered MP4 so browsers
// are willing to play them
if (content.info.mimetype == "video/quicktime") {
content.info.mimetype = "video/mp4";
}
ara4n marked this conversation as resolved.
Show resolved Hide resolved
}

const prom = new Promise<void>((resolve) => {
Expand Down