// instrument by jscoverage, do not modifly this file
(function () {
  var BASE;
  if (typeof global === 'object') {
    BASE = global;
  } else if (typeof window === 'object') {
    BASE = window;
  } else {
    throw new Error('[jscoverage] unknow ENV!');
  }
  if (!BASE._$jscoverage) {
    BASE._$jscoverage = {};
    BASE._$jscoverage_cond = {};
    BASE._$jscoverage_done = function (file, line, express) {
      if (arguments.length === 2) {
        BASE._$jscoverage[file][line] ++;
      } else {
        BASE._$jscoverage_cond[file][line] ++;
        return express;
      }
    };
    BASE._$jscoverage_init = function (base, file, lines) {
      var tmp = [];
      for (var i = 0; i < lines.length; i ++) {
        tmp[lines[i]] = 0;
      }
      base[file] = tmp;
    };
  }
})();
_$jscoverage_init(_$jscoverage, "lib/options/video.js",[4,11,21,23,24,25,27,41,43,44,59,61,63,64,65,72,123,127,128,131,132,135,137,151,163,164,178,181,182]);
_$jscoverage_init(_$jscoverage_cond, "lib/options/video.js",[64,127,131]);
_$jscoverage["lib/options/video.js"].source = ["/*jshint node:true*/","'use strict';","","var utils = require('../utils');","","","/*"," *! Video-related methods"," */","","module.exports = function(proto) {","  /**","   * Disable video in the output","   *","   * @method FfmpegCommand#noVideo","   * @category Video","   * @aliases withNoVideo","   *","   * @return FfmpegCommand","   */","  proto.withNoVideo =","  proto.noVideo = function() {","    this._currentOutput.video.clear();","    this._currentOutput.videoFilters.clear();","    this._currentOutput.video('-vn');","","    return this;","  };","","","  /**","   * Specify video codec","   *","   * @method FfmpegCommand#videoCodec","   * @category Video","   * @aliases withVideoCodec","   *","   * @param {String} codec video codec name","   * @return FfmpegCommand","   */","  proto.withVideoCodec =","  proto.videoCodec = function(codec) {","    this._currentOutput.video('-vcodec', codec);","    return this;","  };","","","  /**","   * Specify video bitrate","   *","   * @method FfmpegCommand#videoBitrate","   * @category Video","   * @aliases withVideoBitrate","   *","   * @param {String|Number} bitrate video bitrate in kbps (with an optional 'k' suffix)","   * @param {Boolean} [constant=false] enforce constant bitrate","   * @return FfmpegCommand","   */","  proto.withVideoBitrate =","  proto.videoBitrate = function(bitrate, constant) {","    bitrate = ('' + bitrate).replace(/k?$/, 'k');","","    this._currentOutput.video('-b:v', bitrate);","    if (constant) {","      this._currentOutput.video(","        '-maxrate', bitrate,","        '-minrate', bitrate,","        '-bufsize', '3M'","      );","    }","","    return this;","  };","","","  /**","   * Specify custom video filter(s)","   *","   * Can be called both with one or many filters, or a filter array.","   *","   * @example","   * command.videoFilters('filter1');","   *","   * @example","   * command.videoFilters('filter1', 'filter2=param1=value1:param2=value2');","   *","   * @example","   * command.videoFilters(['filter1', 'filter2']);","   *","   * @example","   * command.videoFilters([","   *   {","   *     filter: 'filter1'","   *   },","   *   {","   *     filter: 'filter2',","   *     options: 'param=value:param=value'","   *   }","   * ]);","   *","   * @example","   * command.videoFilters(","   *   {","   *     filter: 'filter1',","   *     options: ['value1', 'value2']","   *   },","   *   {","   *     filter: 'filter2',","   *     options: { param1: 'value1', param2: 'value2' }","   *   }","   * );","   *","   * @method FfmpegCommand#videoFilters","   * @category Video","   * @aliases withVideoFilter,withVideoFilters,videoFilter","   *","   * @param {...String|String[]|Object[]} filters video filter strings, string array or","   *   filter specification array, each with the following properties:","   * @param {String} filters.filter filter name","   * @param {String|String[]|Object} [filters.options] filter option string, array, or object","   * @return FfmpegCommand","   */","  proto.withVideoFilter =","  proto.withVideoFilters =","  proto.videoFilter =","  proto.videoFilters = function(filters) {","    if (arguments.length > 1) {","      filters = [].slice.call(arguments);","    }","","    if (!Array.isArray(filters)) {","      filters = [filters];","    }","","    this._currentOutput.videoFilters(utils.makeFilterStrings(filters));","","    return this;","  };","","","  /**","   * Specify output FPS","   *","   * @method FfmpegCommand#fps","   * @category Video","   * @aliases withOutputFps,withOutputFPS,withFpsOutput,withFPSOutput,withFps,withFPS,outputFPS,outputFps,fpsOutput,FPSOutput,FPS","   *","   * @param {Number} fps output FPS","   * @return FfmpegCommand","   */","  proto.withOutputFps =","  proto.withOutputFPS =","  proto.withFpsOutput =","  proto.withFPSOutput =","  proto.withFps =","  proto.withFPS =","  proto.outputFPS =","  proto.outputFps =","  proto.fpsOutput =","  proto.FPSOutput =","  proto.fps =","  proto.FPS = function(fps) {","    this._currentOutput.video('-r', fps);","    return this;","  };","","","  /**","   * Only transcode a certain number of frames","   *","   * @method FfmpegCommand#frames","   * @category Video","   * @aliases takeFrames,withFrames","   *","   * @param {Number} frames frame count","   * @return FfmpegCommand","   */","  proto.takeFrames =","  proto.withFrames =","  proto.frames = function(frames) {","    this._currentOutput.video('-vframes', frames);","    return this;","  };","};",""];
"use strict";

_$jscoverage_done("lib/options/video.js", 4);
var utils = require("../utils");

_$jscoverage_done("lib/options/video.js", 11);
module.exports = function(proto) {
    _$jscoverage_done("lib/options/video.js", 21);
    proto.withNoVideo = proto.noVideo = function() {
        _$jscoverage_done("lib/options/video.js", 23);
        this._currentOutput.video.clear();
        _$jscoverage_done("lib/options/video.js", 24);
        this._currentOutput.videoFilters.clear();
        _$jscoverage_done("lib/options/video.js", 25);
        this._currentOutput.video("-vn");
        _$jscoverage_done("lib/options/video.js", 27);
        return this;
    };
    _$jscoverage_done("lib/options/video.js", 41);
    proto.withVideoCodec = proto.videoCodec = function(codec) {
        _$jscoverage_done("lib/options/video.js", 43);
        this._currentOutput.video("-vcodec", codec);
        _$jscoverage_done("lib/options/video.js", 44);
        return this;
    };
    _$jscoverage_done("lib/options/video.js", 59);
    proto.withVideoBitrate = proto.videoBitrate = function(bitrate, constant) {
        _$jscoverage_done("lib/options/video.js", 61);
        bitrate = ("" + bitrate).replace(/k?$/, "k");
        _$jscoverage_done("lib/options/video.js", 63);
        this._currentOutput.video("-b:v", bitrate);
        _$jscoverage_done("lib/options/video.js", 64);
        if (_$jscoverage_done("lib/options/video.js", 64, constant)) {
            _$jscoverage_done("lib/options/video.js", 65);
            this._currentOutput.video("-maxrate", bitrate, "-minrate", bitrate, "-bufsize", "3M");
        }
        _$jscoverage_done("lib/options/video.js", 72);
        return this;
    };
    _$jscoverage_done("lib/options/video.js", 123);
    proto.withVideoFilter = proto.withVideoFilters = proto.videoFilter = proto.videoFilters = function(filters) {
        _$jscoverage_done("lib/options/video.js", 127);
        if (_$jscoverage_done("lib/options/video.js", 127, arguments.length > 1)) {
            _$jscoverage_done("lib/options/video.js", 128);
            filters = [].slice.call(arguments);
        }
        _$jscoverage_done("lib/options/video.js", 131);
        if (_$jscoverage_done("lib/options/video.js", 131, !Array.isArray(filters))) {
            _$jscoverage_done("lib/options/video.js", 132);
            filters = [ filters ];
        }
        _$jscoverage_done("lib/options/video.js", 135);
        this._currentOutput.videoFilters(utils.makeFilterStrings(filters));
        _$jscoverage_done("lib/options/video.js", 137);
        return this;
    };
    _$jscoverage_done("lib/options/video.js", 151);
    proto.withOutputFps = proto.withOutputFPS = proto.withFpsOutput = proto.withFPSOutput = proto.withFps = proto.withFPS = proto.outputFPS = proto.outputFps = proto.fpsOutput = proto.FPSOutput = proto.fps = proto.FPS = function(fps) {
        _$jscoverage_done("lib/options/video.js", 163);
        this._currentOutput.video("-r", fps);
        _$jscoverage_done("lib/options/video.js", 164);
        return this;
    };
    _$jscoverage_done("lib/options/video.js", 178);
    proto.takeFrames = proto.withFrames = proto.frames = function(frames) {
        _$jscoverage_done("lib/options/video.js", 181);
        this._currentOutput.video("-vframes", frames);
        _$jscoverage_done("lib/options/video.js", 182);
        return this;
    };
};