class Bitmovin::Job

Represents a bitmovin Job @see bitmovin.com/encoding-documentation/encoder-api-reference-documentation/#/reference/jobs Bitmovin Job docs

Constants

ATTRIBUTES

Public Class Methods

create(params={}) click to toggle source

@param params [Hash] Job details @option params input_id [Integer] Job input id @option params output_id [Integer] Job output id @option params encoding_profile_id [Integer] Encoding profile id @option params audio_meta_data [Hash] Meta data of the audio streams (Only available when using standard as speed setting)

* :default_stream_id (Integer) - Default stream id of the audio stream
* :language (String) - Language abbreviation [ISO 639-1]
* :label (String) - Label of the language field

@option params manifest_types [Array<String>] Available values: mpd | m3u8 @option params extract_closed_captinos [Boolean] Extract closed captions from the input file @option params deinterlace [Boolean] Create de-interlaced output @option params merge_audio_channel_configs [Hash] Merge multiple mono audio input streams to stereo or 5.1 audio streams (Only available when using standard as speed setting)

* :audio_channels [Array] - Array of mono input streams
# File lib/bitmovin/job.rb, line 71
def self.create(params={})
  new(params).create
end
list(status = :all, page = 1, reload = false) click to toggle source

Get list of available jobs (10 Jobs per page) @param status [String, Symbol] Available values: all | finished | enqueued | inprogress | error @param page [Integer] number of page @param reload [Integer] Force reload from server @return [Array<Bitmovin::Job>] array of encoding jobs

# File lib/bitmovin/job.rb, line 120
def list(status = :all, page = 1, reload = false)
  var_name = :"@#{status}_list#{ page }"

  val = instance_variable_get var_name

  return val if val && !reload

  get = Net::HTTP::Get.new "/api/jobs/#{ page }/#{ status }", initheaders = headers

  response = Bitmovin.http.request get

  json = prepare_response_json(response.body)
  
  value_to_set = json[:jobs].map { |p| Bitmovin::Job.new(p) }

  instance_variable_set var_name, value_to_set
end
new(params={}) click to toggle source

@param params [Hash] Job details @option params input_id [Integer] Job input id @option params output_id [Integer] Job output id @option params encoding_profile_id [Integer] Encoding profile id @option params audio_meta_data [Hash] Meta data of the audio streams (Only available when using standard as speed setting)

* :default_stream_id (Integer) - Default stream id of the audio stream
* :language (String) - Language abbreviation [ISO 639-1]
* :label (String) - Label of the language field

@option params manifest_types [Array<String>] Available values: mpd | m3u8 @option params extract_closed_captinos [Boolean] Extract closed captions from the input file @option params deinterlace [Boolean] Create de-interlaced output @option params merge_audio_channel_configs [Hash] Merge multiple mono audio input streams to stereo or 5.1 audio streams (Only available when using standard as speed setting)

* :audio_channels [Array] - Array of mono input streams
# File lib/bitmovin/job.rb, line 52
def initialize(params={})
  @details = params
end

Public Instance Methods

create() click to toggle source

Creates a new bitmovin encoding job with params given within initialization @return [Bitmovin::Job] Bitmovin Job details

# File lib/bitmovin/job.rb, line 78
def create
  make_create_request
end
details(reload = false) click to toggle source

Get bitmovin encoding job details @param reload Force reload from server @return [Hash] Bitmovin Job details

# File lib/bitmovin/job.rb, line 86
def details(reload = false)
  return @details unless reload

  reload_details
end
manifest(reload = false) click to toggle source

Get bitmovin encoding job status @param reload Force reload from server @return [Hash] Bitmovin Job details

# File lib/bitmovin/job.rb, line 104
def manifest(reload = false)
  return @manifest if !reload && @manifest

  reload_manifest
end
status(reload = false) click to toggle source

Get bitmovin encoding job status @param reload Force reload from server @return [Hash] Bitmovin Job details

# File lib/bitmovin/job.rb, line 95
def status(reload = false)
  return @status if !reload && @status

  reload_status
end

Private Instance Methods

make_create_request() click to toggle source
# File lib/bitmovin/job.rb, line 168
def make_create_request
  payload = prepare_request_json @details

  post = Net::HTTP::Post.new "/api/job/create", initheaders = headers
  post.body = payload

  response = Bitmovin.http.request post

  @details = prepare_response_json response.body
  self
end
reload_details() click to toggle source
# File lib/bitmovin/job.rb, line 159
def reload_details
  get = Net::HTTP::Get.new "/api/job/#{ @details[:job_id] }", initheaders = headers

  response = Bitmovin.http.request get

  @details = prepare_response_json response.body
  @details
end
reload_manifest() click to toggle source
# File lib/bitmovin/job.rb, line 141
def reload_manifest
  get = Net::HTTP::Get.new "/api/job/#{ @details[:job_id] }/manifest-info", initheaders = headers

  response = Bitmovin.http.request get

  @manifest = prepare_response_json response.body
  @manifest
end
reload_status() click to toggle source
# File lib/bitmovin/job.rb, line 150
def reload_status
  get = Net::HTTP::Get.new "/api/job/#{ @details[:job_id] }/status", initheaders = headers

  response = Bitmovin.http.request get

  @status = prepare_response_json response.body
  @status
end