Class: JanusGateway::Plugin::Rtpbroadcast::Mountpoint

Inherits:
Resource
  • Object
show all
Defined in:
lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb

Instance Attribute Summary collapse

Attributes inherited from Resource

#client, #id

Instance Method Summary collapse

Constructor Details

#initialize(client, plugin, id, streams = nil, channel_data = nil) ⇒ Mountpoint

Returns a new instance of Mountpoint.

Parameters:



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb', line 14

def initialize(client, plugin, id, streams = nil, channel_data = nil)
  @plugin = plugin
  @data = nil
  @channel_data = channel_data

  @streams = streams || [
    {
      audio: 'yes',
      video: 'yes',
      audiopt: 111,
      audiortpmap: 'opus/48000/2',
      videopt: 100,
      videortpmap: 'VP8/90000'
    }
  ]

  super(client, id)
end

Instance Attribute Details

#dataHash, NilClass (readonly)

Returns:

  • (Hash, NilClass)


7
8
9
# File 'lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb', line 7

def data
  @data
end

#pluginJanusGateway::Resource::Plugin (readonly)



4
5
6
# File 'lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb', line 4

def plugin
  @plugin
end

Instance Method Details

#createConcurrent::Promise

Returns:

  • (Concurrent::Promise)


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb', line 34

def create
  promise = Concurrent::Promise.new

  client.send_transaction(
    janus: 'message',
    session_id: plugin.session.id,
    handle_id: plugin.id,
    body: {
      request: 'create',
      id: id,
      name: id,
      description: id,
      recorded: true,
      streams: @streams,
      channel_data: @channel_data
    }
  ).then do |data|
    plugindata = data['plugindata']['data']
    if plugindata['error_code'].nil?
      _on_created(data)

      promise.set(self).execute
    else
      error = JanusGateway::Error.new(plugindata['error_code'], plugindata['error'])

      _on_error(error)

      promise.fail(error).execute
    end
  end.rescue do |error|
    promise.fail(error).execute
  end

  promise
end

#destroyConcurrent::Promise

Returns:

  • (Concurrent::Promise)


76
77
78
79
80
81
82
83
# File 'lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb', line 76

def destroy
  promise = Concurrent::Promise.new

  _on_destroyed
  promise.set(self).execute

  promise
end

#sessionJanusGateway::Resource::Session



86
87
88
# File 'lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb', line 86

def session
  plugin.session
end

#streamsArray<Hash>

Returns:

  • (Array<Hash>)


71
72
73
# File 'lib/janus_gateway/plugin/rtpbroadcast/mountpoint.rb', line 71

def streams
  !data.nil? ? data['data']['stream']['streams'] : []
end