OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "media/cast/transport/rtp_sender/rtp_sender.h" | 5 #include "media/cast/transport/rtp_sender/rtp_sender.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/rand_util.h" | 8 #include "base/rand_util.h" |
9 #include "media/cast/transport/cast_transport_defines.h" | 9 #include "media/cast/transport/cast_transport_defines.h" |
10 #include "media/cast/transport/pacing/paced_sender.h" | 10 #include "media/cast/transport/pacing/paced_sender.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 } | 48 } |
49 config_.audio = false; | 49 config_.audio = false; |
50 config_.ssrc = config.rtp.config.ssrc; | 50 config_.ssrc = config.rtp.config.ssrc; |
51 config_.payload_type = config.rtp.config.payload_type; | 51 config_.payload_type = config.rtp.config.payload_type; |
52 config_.frequency = kVideoFrequency; | 52 config_.frequency = kVideoFrequency; |
53 config_.video_codec = config.codec; | 53 config_.video_codec = config.codec; |
54 packetizer_.reset(new RtpPacketizer(transport_, storage_.get(), config_)); | 54 packetizer_.reset(new RtpPacketizer(transport_, storage_.get(), config_)); |
55 return true; | 55 return true; |
56 } | 56 } |
57 | 57 |
58 void RtpSender::IncomingEncodedVideoFrame(const EncodedVideoFrame* video_frame, | 58 void RtpSender::SendFrame(const EncodedFrame& frame) { |
59 const base::TimeTicks& capture_time) { | |
60 DCHECK(packetizer_); | 59 DCHECK(packetizer_); |
61 packetizer_->IncomingEncodedVideoFrame(video_frame, capture_time); | 60 packetizer_->SendFrameAsPackets(frame); |
62 } | |
63 | |
64 void RtpSender::IncomingEncodedAudioFrame( | |
65 const EncodedAudioFrame* audio_frame, | |
66 const base::TimeTicks& recorded_time) { | |
67 DCHECK(packetizer_); | |
68 packetizer_->IncomingEncodedAudioFrame(audio_frame, recorded_time); | |
69 } | 61 } |
70 | 62 |
71 void RtpSender::ResendPackets( | 63 void RtpSender::ResendPackets( |
72 const MissingFramesAndPacketsMap& missing_frames_and_packets) { | 64 const MissingFramesAndPacketsMap& missing_frames_and_packets) { |
73 DCHECK(storage_); | 65 DCHECK(storage_); |
74 // Iterate over all frames in the list. | 66 // Iterate over all frames in the list. |
75 for (MissingFramesAndPacketsMap::const_iterator it = | 67 for (MissingFramesAndPacketsMap::const_iterator it = |
76 missing_frames_and_packets.begin(); | 68 missing_frames_and_packets.begin(); |
77 it != missing_frames_and_packets.end(); | 69 it != missing_frames_and_packets.end(); |
78 ++it) { | 70 ++it) { |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 void RtpSender::UpdateSequenceNumber(Packet* packet) { | 124 void RtpSender::UpdateSequenceNumber(Packet* packet) { |
133 uint16 new_sequence_number = packetizer_->NextSequenceNumber(); | 125 uint16 new_sequence_number = packetizer_->NextSequenceNumber(); |
134 int index = 2; | 126 int index = 2; |
135 (*packet)[index] = (static_cast<uint8>(new_sequence_number)); | 127 (*packet)[index] = (static_cast<uint8>(new_sequence_number)); |
136 (*packet)[index + 1] = (static_cast<uint8>(new_sequence_number >> 8)); | 128 (*packet)[index + 1] = (static_cast<uint8>(new_sequence_number >> 8)); |
137 } | 129 } |
138 | 130 |
139 } // namespace transport | 131 } // namespace transport |
140 } // namespace cast | 132 } // namespace cast |
141 } // namespace media | 133 } // namespace media |
OLD | NEW |