Class: WebRTC::RTCRtpReceiver

Inherits:
Object
  • Object
show all
Defined in:
lib/webrtc/rtp_receiver.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ RTCRtpReceiver

Returns a new instance of RTCRtpReceiver.



7
8
9
10
11
12
13
# File 'lib/webrtc/rtp_receiver.rb', line 7

def initialize(options = {})
  @track = options[:track]
  @transport = options[:transport]
  @ptr = options[:ptr]
  @native_track_id = options[:native_track_id]
  @parameters = default_parameters
end

Instance Attribute Details

#native_track_idObject (readonly)

Returns the value of attribute native_track_id.



5
6
7
# File 'lib/webrtc/rtp_receiver.rb', line 5

def native_track_id
  @native_track_id
end

#trackObject (readonly)

Returns the value of attribute track.



5
6
7
# File 'lib/webrtc/rtp_receiver.rb', line 5

def track
  @track
end

#transportObject (readonly)

Returns the value of attribute transport.



5
6
7
# File 'lib/webrtc/rtp_receiver.rb', line 5

def transport
  @transport
end

Class Method Details

.default_codecs(kind) ⇒ Object



38
39
40
# File 'lib/webrtc/rtp_receiver.rb', line 38

def self.default_codecs(kind)
  RTCRtpSender.default_codecs(kind)
end

.get_capabilities(kind) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/webrtc/rtp_receiver.rb', line 15

def self.get_capabilities(kind)
  typed = get_typed_capabilities(kind)
  {
    codecs: typed.codecs.map do |codec|
      { mime_type: codec.mime_type, clock_rate: codec.clock_rate, channels: codec.channels }
    end,
    header_extensions: typed.header_extensions.map(&:uri)
  }
end

.get_typed_capabilities(kind) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/webrtc/rtp_receiver.rb', line 25

def self.get_typed_capabilities(kind)
  RTCRtpCapabilities.new(
    codecs: default_codecs(kind).map do |codec|
      RTCRtpCodecCapability.new(
        mime_type: codec[:mime_type],
        clock_rate: codec[:clock_rate],
        channels: codec[:channels]
      )
    end,
    header_extensions: []
  )
end

Instance Method Details

#get_contributing_sourcesObject



57
58
59
# File 'lib/webrtc/rtp_receiver.rb', line 57

def get_contributing_sources
  []
end

#get_parametersObject



42
43
44
# File 'lib/webrtc/rtp_receiver.rb', line 42

def get_parameters
  @parameters.dup
end

#get_statsObject



65
66
67
# File 'lib/webrtc/rtp_receiver.rb', line 65

def get_stats
  Promise.resolve({})
end

#get_synchronization_sourcesObject



61
62
63
# File 'lib/webrtc/rtp_receiver.rb', line 61

def get_synchronization_sources
  []
end

#get_typed_parametersObject



46
47
48
49
50
51
52
53
54
55
# File 'lib/webrtc/rtp_receiver.rb', line 46

def get_typed_parameters
  RTCRtpReceiveParameters.new(
    header_extensions: @parameters[:header_extensions],
    rtcp: RTCRtcpParameters.new(
      cname: @parameters.dig(:rtcp, :cname).to_s,
      reduced_size: !!@parameters.dig(:rtcp, :reduced_size)
    ),
    codecs: @parameters[:codecs]
  )
end