sling-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Felix Meschberger (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SLING-6046) While Streaming Video to IE 11, StreamRendererServlet do not use Partial Content Response [code 206]
Date Fri, 06 Jan 2017 08:27:58 GMT

    [ https://issues.apache.org/jira/browse/SLING-6046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15803983#comment-15803983
] 

Felix Meschberger commented on SLING-6046:
------------------------------------------

Proposing following patch with a threshold size of 100KB which I think is reasonable to fully
download.

We can also change this threshold but there is not point in making it configurable, at least
not for now, I think.

{code}
### Eclipse Workspace Patch 1.0
#P org.apache.sling.servlets.get
Index: src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
===================================================================
--- src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java	(Revision
1777535)
+++ src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java	(Arbeitskopie)
@@ -73,6 +73,17 @@
      */
     private static final String mimeSeparation = "SLING_MIME_BOUNDARY";
 
+    // size threshold for sending an Accept-Ranges header back in the response (100KB)
+    private static final int ACCEPT_RANGES_THRESHOLD = 100 * 1024 * 1024;
+
+    // Accept-Ranges header name
+    private static final String ACCEPT_RANGES_HEADER = "Accept-Ranges";
+
+    // Accept-Ranges header value
+    private static final String ACCEPT_RANGES_BYTES = "bytes";
+
+
+
     /**
      * Full range marker.
      */
@@ -393,6 +404,11 @@
         if (encoding != null) {
             response.setCharacterEncoding(encoding);
         }
+
+        // announce support for ranges if we know the size to be larger than 100KB
+        if (meta.getContentLength() > ACCEPT_RANGES_THRESHOLD) {
+            response.setHeader(ACCEPT_RANGES_HEADER, ACCEPT_RANGES_BYTES);
+        }
     }
 
     /**
{code}

> While Streaming Video to IE 11, StreamRendererServlet do not use Partial Content Response
[code 206]
> ----------------------------------------------------------------------------------------------------
>
>                 Key: SLING-6046
>                 URL: https://issues.apache.org/jira/browse/SLING-6046
>             Project: Sling
>          Issue Type: Bug
>          Components: Servlets
>    Affects Versions: Servlets Get 2.1.18
>            Reporter: Ashok Kumar
>             Fix For: Servlets Get 2.1.20
>
>         Attachments: Accept-Range Respone Header from S3.png, NetworkDataS3VideoFromIE11.xml,
S3video.html, StreamRendererServlet.java.patch
>
>
> Since IE 11 expects "Accept-Ranges" [0] response header to start making requests with
Range header, so sling lack in streaming of video content for IE end users. We can add Accept-Ranges
= bytes header to response , either selectively only for video/mp4 mimetype ( video tag on
IE looks for mp4 )  or always.
> Without support of partial content response (206) for IE users, all large video files
are being downloaded in single chunk and user need to wait for long to see video content playing.

> [0] http://stackoverflow.com/questions/25654422/http-pseudo-streaming-in-ie11 
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message