vendor/videojs/video.js
function consumeCueSettings(input, cue) {
      var settings = new Settings();

      parseOptions(input, function (k, v) {
        switch (k) {
        case "region":
          // Find the last region we parsed with the same region id.
          for (var i = regionList.length - 1; i >= 0; i--) {
            if (regionList[i].id === v) {
              settings.set(k, regionList[i].region);
              break;
            }
          }
          break;
        case "vertical":
          settings.alt(k, v, ["rl", "lr"]);
          break;
        case "line":
          var vals = v.split(","),
              vals0 = vals[0];
          settings.integer(k, vals0);
          settings.percent(k, vals0) ? settings.set("snapToLines", false) : null;
          settings.alt(k, vals0, ["auto"]);
          if (vals.length === 2) {
            settings.alt("lineAlign", vals[1], ["start", "middle", "end"]);
          }
          break;
        case "position":
          vals = v.split(",");
          settings.percent(k, vals[0]);
          if (vals.length === 2) {
            settings.alt("positionAlign", vals[1], ["start", "middle", "end"]);
          }
          break;
        case "size":
          settings.percent(k, v);
          break;
        case "align":
          settings.alt(k, v, ["start", "middle", "end", "left", "right"]);
          break;
        }
      }, /:/, /\s/);

      // Apply default values for any missing fields.
      cue.region = settings.get("region", null);
      cue.vertical = settings.get("vertical", "");
      cue.line = settings.get("line", "auto");
      cue.lineAlign = settings.get("lineAlign", "start");
      cue.snapToLines = settings.get("snapToLines", true);
      cue.size = settings.get("size", 100);
      cue.align = settings.get("align", "middle");
      cue.position = settings.get("position", {
        start: 0,
        left: 0,
        middle: 50,
        end: 100,
        right: 100
      }, cue.align);
      cue.positionAlign = settings.get("positionAlign", {
        start: "start",
        left: "start",
        middle: "middle",
        end: "end",
        right: "end"
      }, cue.align);
    }
function consumeCueSettings(input, cue) {
      var settings = new Settings();

      parseOptions(input, function (k, v) {
        switch (k) {
        case "region":
          // Find the last region we parsed with the same region id.
          for (var i = regionList.length - 1; i >= 0; i--) {
            if (regionList[i].id === v) {
              settings.set(k, regionList[i].region);
              break;
            }
          }
          break;
        case "vertical":
          settings.alt(k, v, ["rl", "lr"]);
          break;
        case "line":
          var vals = v.split(","),
              vals0 = vals[0];
          settings.integer(k, vals0);
          settings.percent(k, vals0) ? settings.set("snapToLines", false) : null;
          settings.alt(k, vals0, ["auto"]);
          if (vals.length === 2) {
            settings.alt("lineAlign", vals[1], ["start", "middle", "end"]);
          }
          break;
        case "position":
          vals = v.split(",");
          settings.percent(k, vals[0]);
          if (vals.length === 2) {
            settings.alt("positionAlign", vals[1], ["start", "middle", "end"]);
          }
          break;
        case "size":
          settings.percent(k, v);
          break;
        case "align":
          settings.alt(k, v, ["start", "middle", "end", "left", "right"]);
          break;
        }
      }, /:/, /\s/);

      // Apply default values for any missing fields.
      cue.region = settings.get("region", null);
      cue.vertical = settings.get("vertical", "");
      cue.line = settings.get("line", "auto");
      cue.lineAlign = settings.get("lineAlign", "start");
      cue.snapToLines = settings.get("snapToLines", true);
      cue.size = settings.get("size", 100);
      cue.align = settings.get("align", "middle");
      cue.position = settings.get("position", {
        start: 0,
        left: 0,
        middle: 50,
        end: 100,
        right: 100
      }, cue.align);
      cue.positionAlign = settings.get("positionAlign", {
        start: "start",
        left: "start",
        middle: "middle",
        end: "end",
        right: "end"
      }, cue.align);
    }
function consumeCueSettings ( input , cue ) { var settings = new Settings ( ) ; parseOptions ( input , function ( k , v ) { switch ( k ) { case "region" : // Find the last region we parsed with the same region id. for ( var i = regionList . length - 1 ; i >= 0 ; i -- ) { if ( regionList [ i ] . id === v ) { settings . set ( k , regionList [ i ] . region ) ; break ; } } break ; case "vertical" : settings . alt ( k , v , [ "rl" , "lr" ] ) ; break ; case "line" : var vals = v . split ( "," ) , vals0 = vals [ 0 ] ; settings . integer ( k , vals0 ) ; settings . percent ( k , vals0 ) ? settings . set ( "snapToLines" , false ) : null ; settings . alt ( k , vals0 , [ "auto" ] ) ; if ( vals . length === 2 ) { settings . alt ( "lineAlign" , vals [ 1 ] , [ "start" , "middle" , "end" ] ) ; } break ; case "position" : vals = v . split ( "," ) ; settings . percent ( k , vals [ 0 ] ) ; if ( vals . length === 2 ) { settings . alt ( "positionAlign" , vals [ 1 ] , [ "start" , "middle" , "end" ] ) ; } break ; case "size" : settings . percent ( k , v ) ; break ; case "align" : settings . alt ( k , v , [ "start" , "middle" , "end" , "left" , "right" ] ) ; break ; } } , / : / , / \s / ) ; // Apply default values for any missing fields. cue . region = settings . get ( "region" , null ) ; cue . vertical = settings . get ( "vertical" , "" ) ; cue . line = settings . get ( "line" , "auto" ) ; cue . lineAlign = settings . get ( "lineAlign" , "start" ) ; cue . snapToLines = settings . get ( "snapToLines" , true ) ; cue . size = settings . get ( "size" , 100 ) ; cue . align = settings . get ( "align" , "middle" ) ; cue . position = settings . get ( "position" , { start : 0 , left : 0 , middle : 50 , end : 100 , right : 100 } , cue . align ) ; cue . positionAlign = settings . get ( "positionAlign" , { start : "start" , left : "start" , middle : "middle" , end : "end" , right : "end" } , cue . align ) ; }
4.4.2 WebVTT cue settings
4 . 4 . 2 WebVTT cue settings