class Bitmovin::Encoding::Encodings::Stream

Attributes

conditions[RW]
create_quality_meta_data[RW]
created_at[RW]
description[RW]
encoding_id[RW]
id[RW]
mode[RW]
modified_at[RW]
name[RW]

Public Class Methods

new(encoding_id, hash = {}) click to toggle source
Calls superclass method Bitmovin::Resource::new
# File lib/bitmovin/encoding/encodings/stream.rb, line 8
def initialize(encoding_id, hash = {})
  set_defaults
  hsh = ActiveSupport::HashWithIndifferentAccess.new(underscore_hash(hash))
  @encoding_id = encoding_id
  init_instance(File.join("/v1/encoding/encodings/", encoding_id, "streams"))
  super(hash)
  @outputs = (hsh[:outputs] || []).map { |output| Bitmovin::Encoding::StreamOutput.new(output) }
  @input_streams = (hsh[:input_streams] || []).map { |input| StreamInput.new(@encoding_id, @id, input) }

  @errors = []
  @conditions = nil
  @mode = "STANDARD"
end

Public Instance Methods

build_input_stream(opts = {}) click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 28
def build_input_stream(opts = {})
  input = StreamInput.new(@encoding_id, @id, opts)
  @input_streams << input
  input
end
build_output(opts = {}) click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 38
def build_output(opts = {})
  output = Bitmovin::Encoding::StreamOutput.new(opts)
  @outputs << output
  output
end
codec_configuration() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 51
def codec_configuration
  @codec_config_id
end
codec_configuration=(configuration) click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 44
def codec_configuration=(configuration)
  if configuration.instance_of?(String)
    @codec_config_id = configuration
  else
    @codec_config_id = configuration.id
  end
end
errors() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 70
def errors
  @errors
end
input_analysis() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 80
def input_analysis
  path = File.join("/v1/encoding/encodings/", @encoding_id, "streams", @id, "inputs")
  response = Bitmovin.client.get(path)
  hash_to_struct(result(response))
end
input_details() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 74
def input_details
  path = File.join("/v1/encoding/encodings/", @encoding_id, "streams", @id, "input")
  response = Bitmovin.client.get(path)
  hash_to_struct(result(response))
end
input_streams() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 24
def input_streams
  @input_streams
end
invalid?() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 66
def invalid?
  !valid?
end
outputs() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 34
def outputs
  @outputs
end
save!() click to toggle source
Calls superclass method Bitmovin::Resource#save!
# File lib/bitmovin/encoding/encodings/stream.rb, line 55
def save!
  if valid?
    super
  end
end
valid?() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 61
def valid?
  validate!
  @errors.empty?
end

Private Instance Methods

collect_attributes() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 87
def collect_attributes
  val = Hash.new
  [:name, :description, :create_quality_meta_data,
  :input_streams, :outputs, :codec_config_id, :conditions, :mode].each do |name|
    json_name = ActiveSupport::Inflector.camelize(name.to_s, false)
    val[json_name] = instance_variable_get("@#{name}")
  end
  if @conditions.nil?
    val.delete("conditions")
  end
  val
end
set_defaults() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 117
def set_defaults
  @create_quality_meta_data = false
end
validate!() click to toggle source
# File lib/bitmovin/encoding/encodings/stream.rb, line 99
def validate!
  @errors = []
  if @input_streams.empty?
    @errors << "Stream needs at least one input_stream"
  end
  @input_streams.each do |stream|
    @errors << stream.errors if !stream.valid?
  end

  @outputs.each do |output|
    @errors << output.errors if !output.valid?
  end

  @errors << "codec_configuration must be set" if @codec_config_id.blank?

  @errors.flatten!
end