class Bitmovin::Encoding::Inputs::AnalysisTask

Attributes

id[R]
input_id[R]

Public Class Methods

new(input, analysis_id) click to toggle source

Creates a new Analysis object

Parameters:

input

Either an input-id (string) or a InputResource

analysis_id

Id of the analysis task

# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 9
def initialize(input, analysis_id)
  if (input.instance_of?(String))
    @input_id = input
  else
    @input_id = input.id
    @input = input
  end
  @id = analysis_id
end

Public Instance Methods

created?() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 36
def created?
  status.status == "CREATED"
end
error?() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 52
def error?
  status.status == "ERROR"
end
eta?() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 56
def eta?
  status.eta
end
finished?() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 48
def finished?
  status.status == "FINISHED"
end
input() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 21
def input
  @input
end
progress?() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 60
def progress?
  status.progress
end
queued?() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 40
def queued?
  status.status == "QUEUED"
end
result() click to toggle source

Returns the analysis result Will raise and error if analysis is not yet finished

# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 66
def result
  if !finished?
    raise BitmovinError.new(self), "analysis is not finished yet"
  end
  Analysis.new(@input_id).find(@id)
end
running?() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 44
def running?
  status.status == "RUNNING"
end
status() click to toggle source
# File lib/bitmovin/encoding/inputs/analysis_task.rb, line 25
def status
  five_seconds_ago = (Time.now - 5)
  puts @last_status_call
  if @last_status_call.nil? || @last_status_call <= five_seconds_ago
    response = Bitmovin.client.get File.join("/v1/encoding/inputs/", @input_id, "analysis", @id, "status")
    @status_result = OpenStruct.new(JSON.parse(response.body)['data']['result']['analysis'])
    @last_status_call = Time.now
  end
  @status_result
end