Sha256: 797ee0820b94ff4ad873293278001cae5a25da562020aa000e510f48014e0f77

Contents?: true

Size: 1.48 KB

Versions: 7

Compression:

Stored size: 1.48 KB

Contents

module Bitmovin::Encoding::Manifests
  class HlsManifest < Bitmovin::Resource
    include Bitmovin::ChildCollection
    init("/v1/encoding/manifests/hls")

    attr_accessor :outputs, :manifest_name

    def initialize(hash = {})
      hsh = ActiveSupport::HashWithIndifferentAccess.new(underscore_hash(hash))
      super(hash)
      @outputs = (hsh[:outputs] || []).map { |output| Bitmovin::Encoding::StreamOutput.new(output) }
      @streams = nil
      @audio_media = nil
    end

    child_collection(:streams, "/v1/encoding/manifests/hls/%s/streams", [:id], Bitmovin::Encoding::Manifests::HlsVariantStream)
    child_collection(:audio_media, "/v1/encoding/manifests/hls/%s/media/audio", [:id], Bitmovin::Encoding::Manifests::HlsAudioMedia)

    def start!
      path = File.join("/v1/encoding/manifests/hls/", @id, "start")
      Bitmovin.client.post(path)
    end

    def full_status
      path = File.join("/v1/encoding/manifests/hls/", @id, "status")
      response = Bitmovin.client.get(path)
      hash_to_struct(result(response))
    end

    def status
      full_status.status
    end

    def progress
      full_status.progress
    end

    private

    def collect_attributes
      val = Hash.new
      [:name, :description, :manifest_name].each do |name|
        json_name = ActiveSupport::Inflector.camelize(name.to_s, false)
        val[json_name] = instance_variable_get("@#{name}")
      end
      val["outputs"] = @outputs.map { |o| o.send(:collect_attributes) }
      val
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
bitmovin-ruby-0.9.1 lib/bitmovin/encoding/manifests/hls_manifest.rb
bitmovin-ruby-0.9.0 lib/bitmovin/encoding/manifests/hls_manifest.rb
bitmovin-ruby-0.8.1 lib/bitmovin/encoding/manifests/hls_manifest.rb
bitmovin-ruby-0.8.0 lib/bitmovin/encoding/manifests/hls_manifest.rb
bitmovin-ruby-0.7.0 lib/bitmovin/encoding/manifests/hls_manifest.rb
bitmovin-ruby-0.5.0 lib/bitmovin/encoding/manifests/hls_manifest.rb
bitmovin-ruby-0.4.0 lib/bitmovin/encoding/manifests/hls_manifest.rb