| Update of /cvsroot/sageplugins/MediaStreaming/src/sagex/streaming/httpls/playlist
In directory vz-cvs-3.sog:/tmp/cvs-serv11888/src/sagex/streaming/httpls/playlist
Modified Files:
	SegmentPlaylist.java 
Log Message:
- Refactor HTTP Live Streaming Playlist Code
- Put absolute URLs in HTTP Live Streaming Playlists
Index: SegmentPlaylist.java
===================================================================
RCS file: /cvsroot/sageplugins/MediaStreaming/src/sagex/streaming/httpls/playlist/SegmentPlaylist.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** SegmentPlaylist.java	18 Jan 2011 01:40:10 -0000	1.3
--- SegmentPlaylist.java	9 Apr 2011 00:28:34 -0000	1.4
***************
*** 4,7 ****
--- 4,9 ----
  import java.util.List;
  
+ import javax.servlet.http.HttpServletRequest;
+ 
  import org.mortbay.log.Log;
  
***************
*** 11,15 ****
--- 13,19 ----
  {
      public static final int TARGET_DURATION = 10;
+     private static final String LINE_TERM = "\r\n";
  
+     private HttpServletRequest req;
      private Object mediaFile;
      private int mediaFileId;
***************
*** 19,24 ****
      private boolean isFileCurrentlyRecording;
  
!     public SegmentPlaylist(Object mediaFile, String conversionId, String quality)
      {
          this.mediaFile = mediaFile;
          this.mediaFileId = MediaFileAPI.GetMediaFileID(mediaFile);
--- 23,29 ----
      private boolean isFileCurrentlyRecording;
  
!     public SegmentPlaylist(HttpServletRequest req, Object mediaFile, String conversionId, String quality)
      {
+         this.req = req;
          this.mediaFile = mediaFile;
          this.mediaFileId = MediaFileAPI.GetMediaFileID(mediaFile);
***************
*** 112,119 ****
          Log.debug("Number of playlist segments: " + segmentCount);
          
!         sb.append("#EXTM3U\r\n");
          Log.debug("#EXTM3U");
!         sb.append("#EXT-X-TARGETDURATION:" + TARGET_DURATION + "\r\n");
          Log.debug("#EXT-X-TARGETDURATION:" + SegmentPlaylist.TARGET_DURATION);
  
          for (int i = 0; i < segmentCount; i++)
--- 117,126 ----
          Log.debug("Number of playlist segments: " + segmentCount);
          
!         sb.append("#EXTM3U" + LINE_TERM);
          Log.debug("#EXTM3U");
!         sb.append("#EXT-X-TARGETDURATION:" + TARGET_DURATION + LINE_TERM);
          Log.debug("#EXT-X-TARGETDURATION:" + SegmentPlaylist.TARGET_DURATION);
+ //        sb.append("#EXT-X-MEDIA-SEQUENCE:1" + LINE_TERM);
+ //        Log.debug("#EXT-X-MEDIA-SEQUENCE:1");
  
          for (int i = 0; i < segmentCount; i++)
***************
*** 144,148 ****
          if (!isFileCurrentlyRecording)
          {
!             sb.append("#EXT-X-ENDLIST\r\n");
              Log.debug("#EXT-X-ENDLIST");
          }
--- 151,155 ----
          if (!isFileCurrentlyRecording)
          {
!             sb.append("#EXT-X-ENDLIST" + LINE_TERM);
              Log.debug("#EXT-X-ENDLIST");
          }
***************
*** 169,181 ****
              StringBuilder sb = new StringBuilder();
              
!             sb.append("#EXTINF:" + segmentDuration + "," + showName + "\r\n");
  
!             String url = "/stream/HTTPLiveStreamingSegment?" +
!                          "Sequence=" + segmentSequence +
                           "&MediaFileId=" + mediaFileId +
                           "&ConversionId=" + conversionId +
                           "&Quality=" + quality +
                           "&MediaFileSegment=" + mediaFileSegment;
!             sb.append(url + "\r\n");
  
              return sb.toString();
--- 176,190 ----
              StringBuilder sb = new StringBuilder();
              
!             sb.append("#EXTINF:" + segmentDuration + "," + showName + LINE_TERM);
  
!             String url = req.getRequestURL().toString().replace(req.getRequestURI(), "") +
!                          req.getContextPath() +
!                          "/HTTPLiveStreamingSegment" +
!                          "?Sequence=" + segmentSequence +
                           "&MediaFileId=" + mediaFileId +
                           "&ConversionId=" + conversionId +
                           "&Quality=" + quality +
                           "&MediaFileSegment=" + mediaFileSegment;
!             sb.append(url + LINE_TERM);
  
              return sb.toString();
 |