OLD | NEW |
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 10 matching lines...) Expand all Loading... |
21 namespace webrtc { | 21 namespace webrtc { |
22 | 22 |
23 class TelephoneEventHandler; | 23 class TelephoneEventHandler; |
24 | 24 |
25 // This strategy deals with media-specific RTP packet processing. | 25 // This strategy deals with media-specific RTP packet processing. |
26 // This class is not thread-safe and must be protected by its caller. | 26 // This class is not thread-safe and must be protected by its caller. |
27 class RTPReceiverStrategy { | 27 class RTPReceiverStrategy { |
28 public: | 28 public: |
29 static RTPReceiverStrategy* CreateVideoStrategy(RtpData* data_callback); | 29 static RTPReceiverStrategy* CreateVideoStrategy(RtpData* data_callback); |
30 static RTPReceiverStrategy* CreateAudioStrategy( | 30 static RTPReceiverStrategy* CreateAudioStrategy( |
31 int32_t id, RtpData* data_callback, | 31 RtpData* data_callback, |
32 RtpAudioFeedback* incoming_messages_callback); | 32 RtpAudioFeedback* incoming_messages_callback); |
33 | 33 |
34 virtual ~RTPReceiverStrategy() {} | 34 virtual ~RTPReceiverStrategy() {} |
35 | 35 |
36 // Parses the RTP packet and calls the data callback with the payload data. | 36 // Parses the RTP packet and calls the data callback with the payload data. |
37 // Implementations are encouraged to use the provided packet buffer and RTP | 37 // Implementations are encouraged to use the provided packet buffer and RTP |
38 // header as arguments to the callback; implementations are also allowed to | 38 // header as arguments to the callback; implementations are also allowed to |
39 // make changes in the data as necessary. The specific_payload argument | 39 // make changes in the data as necessary. The specific_payload argument |
40 // provides audio or video-specific data. The is_first_packet argument is true | 40 // provides audio or video-specific data. The is_first_packet argument is true |
41 // if this packet is either the first packet ever or the first in its frame. | 41 // if this packet is either the first packet ever or the first in its frame. |
(...skipping 21 matching lines...) Expand all Loading... |
63 // Notifies the strategy that we have created a new non-RED payload type in | 63 // Notifies the strategy that we have created a new non-RED payload type in |
64 // the payload registry. | 64 // the payload registry. |
65 virtual int32_t OnNewPayloadTypeCreated( | 65 virtual int32_t OnNewPayloadTypeCreated( |
66 const char payloadName[RTP_PAYLOAD_NAME_SIZE], | 66 const char payloadName[RTP_PAYLOAD_NAME_SIZE], |
67 int8_t payloadType, | 67 int8_t payloadType, |
68 uint32_t frequency) = 0; | 68 uint32_t frequency) = 0; |
69 | 69 |
70 // Invokes the OnInitializeDecoder callback in a media-specific way. | 70 // Invokes the OnInitializeDecoder callback in a media-specific way. |
71 virtual int32_t InvokeOnInitializeDecoder( | 71 virtual int32_t InvokeOnInitializeDecoder( |
72 RtpFeedback* callback, | 72 RtpFeedback* callback, |
73 int32_t id, | |
74 int8_t payload_type, | 73 int8_t payload_type, |
75 const char payload_name[RTP_PAYLOAD_NAME_SIZE], | 74 const char payload_name[RTP_PAYLOAD_NAME_SIZE], |
76 const PayloadUnion& specific_payload) const = 0; | 75 const PayloadUnion& specific_payload) const = 0; |
77 | 76 |
78 // Checks if the payload type has changed, and returns whether we should | 77 // Checks if the payload type has changed, and returns whether we should |
79 // reset statistics and/or discard this packet. | 78 // reset statistics and/or discard this packet. |
80 virtual void CheckPayloadChanged(int8_t payload_type, | 79 virtual void CheckPayloadChanged(int8_t payload_type, |
81 PayloadUnion* specific_payload, | 80 PayloadUnion* specific_payload, |
82 bool* should_discard_changes); | 81 bool* should_discard_changes); |
83 | 82 |
(...skipping 14 matching lines...) Expand all Loading... |
98 // packet. | 97 // packet. |
99 RTPReceiverStrategy(RtpData* data_callback); | 98 RTPReceiverStrategy(RtpData* data_callback); |
100 | 99 |
101 rtc::scoped_ptr<CriticalSectionWrapper> crit_sect_; | 100 rtc::scoped_ptr<CriticalSectionWrapper> crit_sect_; |
102 PayloadUnion last_payload_; | 101 PayloadUnion last_payload_; |
103 RtpData* data_callback_; | 102 RtpData* data_callback_; |
104 }; | 103 }; |
105 } // namespace webrtc | 104 } // namespace webrtc |
106 | 105 |
107 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_STRATEGY_H_ | 106 #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_RECEIVER_STRATEGY_H_ |
OLD | NEW |