From 6e63fae2441b52f4d705ec41bae71360415ea8b9 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Thu, 24 Sep 2020 21:05:59 +0200 Subject: [PATCH] Improve mimetype handling for the HlsServlet --- .../ctbrec/recorder/server/HlsServlet.java | 6 ++++- server/src/main/resources/META-INF/mime.types | 27 +++++++++++++++++++ .../src/main/resources/html/static/custom.css | 2 ++ 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 server/src/main/resources/META-INF/mime.types diff --git a/server/src/main/java/ctbrec/recorder/server/HlsServlet.java b/server/src/main/java/ctbrec/recorder/server/HlsServlet.java index 7919cea6..4749715e 100644 --- a/server/src/main/java/ctbrec/recorder/server/HlsServlet.java +++ b/server/src/main/java/ctbrec/recorder/server/HlsServlet.java @@ -12,6 +12,7 @@ import java.util.Enumeration; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.activation.MimetypesFileTypeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -85,7 +86,10 @@ public class HlsServlet extends AbstractCtbrecServlet { } private void serveSegment(HttpServletRequest req, HttpServletResponse resp, File requestedFile) throws IOException { - String mimetype = requestedFile.getName().endsWith(".mp4") ? "video/mp4" : "application/octet-stream"; + MimetypesFileTypeMap map = new MimetypesFileTypeMap(); + //String mimetype = requestedFile.getName().endsWith(".mp4") ? "video/mp4" : "application/octet-stream"; + String mimetype = map.getContentType(requestedFile); + LOG.debug("Serving {} as {}", requestedFile.getName(), mimetype); serveFile(req, resp, requestedFile, mimetype); } diff --git a/server/src/main/resources/META-INF/mime.types b/server/src/main/resources/META-INF/mime.types new file mode 100644 index 00000000..51cd3a07 --- /dev/null +++ b/server/src/main/resources/META-INF/mime.types @@ -0,0 +1,27 @@ +# +# A simple, old format, mime.types file +# +text/html html htm HTML HTM +text/plain txt text TXT TEXT +image/gif gif GIF +image/ief ief +image/jpeg jpeg jpg jpe JPG +image/tiff tiff tif +image/x-xwindowdump xwd +application/postscript ai eps ps +application/rtf rtf +application/x-tex tex +application/x-texinfo texinfo texi +application/x-troff t tr roff +audio/basic au +audio/midi midi mid +audio/x-aifc aifc +audio/x-aiff aif aiff +audio/x-mpeg mpeg mpg +audio/x-wav wav +video/mpeg mpeg mpg mpe +video/mp2t ts +video/mp4 mp4 +video/webm webm mkv +video/quicktime qt mov +video/x-msvideo avi diff --git a/server/src/main/resources/html/static/custom.css b/server/src/main/resources/html/static/custom.css index a1df2311..8cc7ead7 100644 --- a/server/src/main/resources/html/static/custom.css +++ b/server/src/main/resources/html/static/custom.css @@ -1,3 +1,5 @@ +body {overflow-y:scroll;} + /* The Modal (background) */ .modal { display: none; /* Hidden by default */