Commit 3b7556d5b5e67811c35823996b294d8a52ecb176

Authored by Imanol-Mikel Barba Sabariego
1 parent 08b0801c

Added Playlist and Parses classes

src/com/upc/pbe/upcnews/Parser.java 0 → 100644
  1 +package com.upc.pbe.upcnews;
  2 +
  3 +import android.annotation.TargetApi;
  4 +
  5 +public class Parser
  6 +{
  7 + private Playlist playlist;
  8 +
  9 + private static final String STARTWORD = "#EXTM3U";
  10 +
  11 + public Parser()
  12 + {
  13 +
  14 + }
  15 +
  16 + public void setPlaylist(Playlist m3u8)
  17 + {
  18 + playlist = m3u8;
  19 + }
  20 +
  21 + public Playlist getPlaylist()
  22 + {
  23 + return playlist;
  24 + }
  25 +
  26 + public void parseLine(String line)
  27 + {
  28 + int currentLine = 0;
  29 + boolean m3u8Validated = false;
  30 + if(line.isEmpty())
  31 + {
  32 + currentLine++;
  33 + return;
  34 + }
  35 + else
  36 + {
  37 + if(!m3u8Validated)
  38 + {
  39 + if(line.equals(STARTWORD))
  40 + {
  41 + m3u8Validated = true;
  42 + }
  43 + }
  44 + }
  45 +
  46 +
  47 + /*else
  48 + if [[ $M3U8_VALIDATED -eq 0 ]]; then
  49 + if [[ $line == "#EXTM3U" ]]; then
  50 + M3U8_VALIDATED=1
  51 + else
  52 + echo "ERROR: This is not an m3u8 file!!"
  53 + exit 1
  54 + fi
  55 + else
  56 + if [[ `echo $line | head -c1` == "#" ]]; then
  57 + if [[ `echo $line | head -c4` == "#EXT" ]]; then
  58 + case `echo $line | cut -d':' -f 1` in
  59 + "#EXT-X-MEDIA-SEQUENCE")
  60 + SEQUENCE_FIRST=`echo $line | cut -d':' -f 2`;
  61 + echo "INFO: First element to be played is: $SEQUENCE_FIRST";;
  62 + "#EXT-X-TARGETDURATION")
  63 + MAX_DURATION=`echo $line | cut -d':' -f 2`;
  64 + echo "INFO: Maximum segment duration is: $MAX_DURATION";;
  65 + "#EXTINF")
  66 + DURATION=`echo $line | cut -d':' -f 2 | cut -d',' -f 1`
  67 + if [[ $DURATION > $MAX_DURATION ]]; then
  68 + echo "ERROR: Segment $CURRENT_SEGMENT on line $CURRENT_LINE is larger than EXT-X-TARGETDURATION"
  69 + exit 1
  70 + else
  71 + NAME=`echo $line | cut -d':' -f 2 | cut -d',' -f 2`
  72 + EXTINF=1
  73 + fi;;
  74 + "#EXT-X-STREAM-INF")
  75 + EXTXSTREAM=1
  76 + PROGRAMID=""
  77 + CODECS=""
  78 + RESOLUTION=""
  79 + ARGUMENTS=`echo $line | cut -d':' -f 2`
  80 + i=1
  81 + while [[ `echo $ARGUMENTS | cut -d',' -f $i` != "" ]]; do
  82 + PARAMETER=`echo $ARGUMENTS | cut -d',' -f $i | cut -d'=' -f 2`
  83 + case `echo $ARGUMENTS | cut -d',' -f $i | cut -d'=' -f 1` in
  84 + "PROGRAM-ID")
  85 + PROGRAMID=$PARAMETER;;
  86 + "BANDWIDTH")
  87 + BANDWIDTH=$PARAMETER;;
  88 + "RESOLUTION")
  89 + RESOLUTION=$PARAMETER;;
  90 + "CODECS")
  91 + CODECS=$PARAMETER;;
  92 + esac
  93 + ((i++))
  94 + done;;
  95 + "#EXT-X-ENDLIST")
  96 + echo "INFO: Playlist end reached";;
  97 + esac
  98 + else
  99 + echo "INFO: Comment found on line $CURRENT_LINE: \"`echo $line | cut -d'#' -f 2`\""
  100 + fi;
  101 + else
  102 + if [[ $EXTINF -eq 1 ]]; then
  103 + echo -n "SEGMENT $CURRENT_SEGMENT: \"$NAME\" - $DURATION seconds ($line)"
  104 + EXTINF=0
  105 + if [[ $CURRENT_SEGMENT -eq $SEQUENCE_FIRST ]]; then
  106 + echo " (first element)"
  107 + else
  108 + echo ""
  109 + fi;
  110 + ((CURRENT_SEGMENT++))
  111 + elif [[ $EXTXSTREAM -eq 1 ]]; then
  112 + echo "PLAYLIST: $line [PROGRAM-ID=$PROGRAMID,BANDWIDTH=$BANDWIDTH,RESOLUTION=$RESOLUTION,CODECS=$CODECS]"
  113 + EXTXSTREAM=0
  114 + else
  115 + echo "ERROR: Unexpected string \"$line\""
  116 + exit 1
  117 + fi
  118 + fi
  119 + fi
  120 + fi
  121 + ((CURRENT_LINE++))
  122 +}
  123 +
  124 + */
  125 +
  126 + }
  127 +
  128 +}
src/com/upc/pbe/upcnews/Playlist.java 0 → 100644
  1 +package com.upc.pbe.upcnews;
  2 +
  3 +public class Playlist
  4 +{
  5 +
  6 +}