Class: WebRTC::RTCRtpSender
- Inherits:
-
Object
- Object
- WebRTC::RTCRtpSender
- Defined in:
- lib/webrtc/rtp_sender.rb
Instance Attribute Summary collapse
-
#dtmf ⇒ Object
readonly
Returns the value of attribute dtmf.
-
#native_track_id ⇒ Object
readonly
Returns the value of attribute native_track_id.
-
#track ⇒ Object
readonly
Returns the value of attribute track.
-
#transport ⇒ Object
readonly
Returns the value of attribute transport.
Class Method Summary collapse
- .default_codecs(kind) ⇒ Object
- .get_capabilities(kind) ⇒ Object
- .get_typed_capabilities(kind) ⇒ Object
Instance Method Summary collapse
- #get_parameters ⇒ Object
- #get_stats ⇒ Object
- #get_typed_parameters ⇒ Object
-
#initialize(options = {}) ⇒ RTCRtpSender
constructor
A new instance of RTCRtpSender.
- #replace_track(new_track) ⇒ Object
- #set_parameters(parameters) ⇒ Object
- #set_streams(*streams) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ RTCRtpSender
Returns a new instance of RTCRtpSender.
7 8 9 10 11 12 13 14 |
# File 'lib/webrtc/rtp_sender.rb', line 7 def initialize( = {}) @track = [:track] @transport = [:transport] @ptr = [:ptr] @native_track_id = [:native_track_id] @parameters = default_parameters @dtmf = create_dtmf_sender end |
Instance Attribute Details
#dtmf ⇒ Object (readonly)
Returns the value of attribute dtmf.
5 6 7 |
# File 'lib/webrtc/rtp_sender.rb', line 5 def dtmf @dtmf end |
#native_track_id ⇒ Object (readonly)
Returns the value of attribute native_track_id.
5 6 7 |
# File 'lib/webrtc/rtp_sender.rb', line 5 def native_track_id @native_track_id end |
#track ⇒ Object (readonly)
Returns the value of attribute track.
5 6 7 |
# File 'lib/webrtc/rtp_sender.rb', line 5 def track @track end |
#transport ⇒ Object (readonly)
Returns the value of attribute transport.
5 6 7 |
# File 'lib/webrtc/rtp_sender.rb', line 5 def transport @transport end |
Class Method Details
.default_codecs(kind) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/webrtc/rtp_sender.rb', line 96 def self.default_codecs(kind) case kind.to_sym when :audio [ { mime_type: 'audio/opus', clock_rate: 48_000, channels: 2 }, { mime_type: 'audio/PCMU', clock_rate: 8000, channels: 1 }, { mime_type: 'audio/PCMA', clock_rate: 8000, channels: 1 } ] when :video [ { mime_type: 'video/VP8', clock_rate: 90_000 }, { mime_type: 'video/VP9', clock_rate: 90_000 }, { mime_type: 'video/H264', clock_rate: 90_000 } ] else [] end end |
.get_capabilities(kind) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/webrtc/rtp_sender.rb', line 24 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
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/webrtc/rtp_sender.rb', line 34 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_parameters ⇒ Object
47 48 49 |
# File 'lib/webrtc/rtp_sender.rb', line 47 def get_parameters @parameters.dup end |
#get_stats ⇒ Object
80 81 82 |
# File 'lib/webrtc/rtp_sender.rb', line 80 def get_stats Promise.resolve({}) end |
#get_typed_parameters ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/webrtc/rtp_sender.rb', line 51 def get_typed_parameters RTCRtpSendParameters.new( transaction_id: @parameters[:transaction_id], encodings: @parameters[:encodings], 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 |
#replace_track(new_track) ⇒ Object
69 70 71 72 73 74 |
# File 'lib/webrtc/rtp_sender.rb', line 69 def replace_track(new_track) Promise.new do @track = new_track nil end end |
#set_parameters(parameters) ⇒ Object
64 65 66 67 |
# File 'lib/webrtc/rtp_sender.rb', line 64 def set_parameters(parameters) @parameters = parameters.respond_to?(:to_h) ? parameters.to_h : parameters Promise.resolve(nil) end |
#set_streams(*streams) ⇒ Object
76 77 78 |
# File 'lib/webrtc/rtp_sender.rb', line 76 def set_streams(*streams) @streams = streams end |