Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: webrtc/video/rtp_stream_receiver.h

Issue 2565173009: Wire up H264 fmtp sprop-parameter-sets with H264SpsPpsTracker. (Closed)
Patch Set: Added comment. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 const VideoReceiveStream::Config* config, 75 const VideoReceiveStream::Config* config,
76 ReceiveStatisticsProxy* receive_stats_proxy, 76 ReceiveStatisticsProxy* receive_stats_proxy,
77 ProcessThread* process_thread, 77 ProcessThread* process_thread,
78 RateLimiter* retransmission_rate_limiter, 78 RateLimiter* retransmission_rate_limiter,
79 NackSender* nack_sender, 79 NackSender* nack_sender,
80 KeyFrameRequestSender* keyframe_request_sender, 80 KeyFrameRequestSender* keyframe_request_sender,
81 video_coding::OnCompleteFrameCallback* complete_frame_callback, 81 video_coding::OnCompleteFrameCallback* complete_frame_callback,
82 VCMTiming* timing); 82 VCMTiming* timing);
83 ~RtpStreamReceiver(); 83 ~RtpStreamReceiver();
84 84
85 bool AddReceiveCodec(const VideoCodec& video_codec,
86 const std::map<std::string, std::string>& codec_params);
87
85 bool AddReceiveCodec(const VideoCodec& video_codec); 88 bool AddReceiveCodec(const VideoCodec& video_codec);
86 89
87 uint32_t GetRemoteSsrc() const; 90 uint32_t GetRemoteSsrc() const;
88 int GetCsrcs(uint32_t* csrcs) const; 91 int GetCsrcs(uint32_t* csrcs) const;
89 92
90 RtpReceiver* GetRtpReceiver() const; 93 RtpReceiver* GetRtpReceiver() const;
91 RtpRtcp* rtp_rtcp() const { return rtp_rtcp_.get(); } 94 RtpRtcp* rtp_rtcp() const { return rtp_rtcp_.get(); }
92 95
93 void StartReceive(); 96 void StartReceive();
94 void StopReceive(); 97 void StopReceive();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 // This function assumes that it's being called from only one thread. 154 // This function assumes that it's being called from only one thread.
152 bool ParseAndHandleEncapsulatingHeader(const uint8_t* packet, 155 bool ParseAndHandleEncapsulatingHeader(const uint8_t* packet,
153 size_t packet_length, 156 size_t packet_length,
154 const RTPHeader& header); 157 const RTPHeader& header);
155 void NotifyReceiverOfFecPacket(const RTPHeader& header); 158 void NotifyReceiverOfFecPacket(const RTPHeader& header);
156 bool IsPacketInOrder(const RTPHeader& header) const; 159 bool IsPacketInOrder(const RTPHeader& header) const;
157 bool IsPacketRetransmitted(const RTPHeader& header, bool in_order) const; 160 bool IsPacketRetransmitted(const RTPHeader& header, bool in_order) const;
158 void UpdateHistograms(); 161 void UpdateHistograms();
159 void EnableReceiveRtpHeaderExtension(const std::string& extension, int id); 162 void EnableReceiveRtpHeaderExtension(const std::string& extension, int id);
160 bool IsRedEnabled() const; 163 bool IsRedEnabled() const;
164 void InsertSpsPpsIntoTracker(uint8_t payload_type);
161 165
162 Clock* const clock_; 166 Clock* const clock_;
163 // Ownership of this object lies with VideoReceiveStream, which owns |this|. 167 // Ownership of this object lies with VideoReceiveStream, which owns |this|.
164 const VideoReceiveStream::Config& config_; 168 const VideoReceiveStream::Config& config_;
165 vcm::VideoReceiver* const video_receiver_; 169 vcm::VideoReceiver* const video_receiver_;
166 RemoteBitrateEstimator* const remote_bitrate_estimator_; 170 RemoteBitrateEstimator* const remote_bitrate_estimator_;
167 PacketRouter* const packet_router_; 171 PacketRouter* const packet_router_;
168 VieRemb* const remb_; 172 VieRemb* const remb_;
169 ProcessThread* const process_thread_; 173 ProcessThread* const process_thread_;
170 174
(...skipping 18 matching lines...) Expand all
189 video_coding::OnCompleteFrameCallback* complete_frame_callback_; 193 video_coding::OnCompleteFrameCallback* complete_frame_callback_;
190 KeyFrameRequestSender* keyframe_request_sender_; 194 KeyFrameRequestSender* keyframe_request_sender_;
191 VCMTiming* timing_; 195 VCMTiming* timing_;
192 std::unique_ptr<NackModule> nack_module_; 196 std::unique_ptr<NackModule> nack_module_;
193 rtc::scoped_refptr<video_coding::PacketBuffer> packet_buffer_; 197 rtc::scoped_refptr<video_coding::PacketBuffer> packet_buffer_;
194 std::unique_ptr<video_coding::RtpFrameReferenceFinder> reference_finder_; 198 std::unique_ptr<video_coding::RtpFrameReferenceFinder> reference_finder_;
195 rtc::CriticalSection last_seq_num_cs_; 199 rtc::CriticalSection last_seq_num_cs_;
196 std::map<uint16_t, uint16_t, DescendingSeqNumComp<uint16_t>> 200 std::map<uint16_t, uint16_t, DescendingSeqNumComp<uint16_t>>
197 last_seq_num_for_pic_id_ GUARDED_BY(last_seq_num_cs_); 201 last_seq_num_for_pic_id_ GUARDED_BY(last_seq_num_cs_);
198 video_coding::H264SpsPpsTracker tracker_; 202 video_coding::H264SpsPpsTracker tracker_;
203 // TODO(johan): Remove pt_codec_params_ once
204 // https://bugs.chromium.org/p/webrtc/issues/detail?id=6883 is resolved.
205 std::map<uint8_t, std::map<std::string, std::string>> pt_codec_params_;
stefan-webrtc 2016/12/19 12:05:23 Clarify what the mapping is with a comment. "Map f
philipel 2016/12/19 12:31:27 Done.
206 bool received_rtp_packet_ = false;
199 }; 207 };
200 208
201 } // namespace webrtc 209 } // namespace webrtc
202 210
203 #endif // WEBRTC_VIDEO_RTP_STREAM_RECEIVER_H_ 211 #endif // WEBRTC_VIDEO_RTP_STREAM_RECEIVER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698