17d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org/* 27d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 37d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org * 47d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org * Use of this source code is governed by a BSD-style license 57d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org * that can be found in the LICENSE file in the root of the source 67d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org * tree. An additional intellectual property rights grant can be found 77d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org * in the file PATENTS. All contributing project authors may 87d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org * be found in the AUTHORS file in the root of the source tree. 97d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org */ 107d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org 117d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org#include "webrtc/modules/rtp_rtcp/source/rtp_receiver_strategy.h" 127d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org 133f45c2e0ac4cb280f941efa3a3476895795e3dd6pbos@webrtc.org#include <stdlib.h> 147d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org 157fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org#include "webrtc/system_wrappers/interface/critical_section_wrapper.h" 167fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org 177d91c10c601030978979529a17edbc51784866cephoglund@webrtc.orgnamespace webrtc { 187d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org 19cd29867e6b49df11e565dcb1d64dbe92751b509cphoglund@webrtc.orgRTPReceiverStrategy::RTPReceiverStrategy(RtpData* data_callback) 207fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org : crit_sect_(CriticalSectionWrapper::CreateCriticalSection()), 217fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org data_callback_(data_callback) { 227d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org memset(&last_payload_, 0, sizeof(last_payload_)); 237d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org} 247d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org 257d91c10c601030978979529a17edbc51784866cephoglund@webrtc.orgvoid RTPReceiverStrategy::GetLastMediaSpecificPayload( 267fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org PayloadUnion* payload) const { 277fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org CriticalSectionScoped cs(crit_sect_.get()); 287d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org memcpy(payload, &last_payload_, sizeof(*payload)); 297d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org} 307d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org 317d91c10c601030978979529a17edbc51784866cephoglund@webrtc.orgvoid RTPReceiverStrategy::SetLastMediaSpecificPayload( 327fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org const PayloadUnion& payload) { 337fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org CriticalSectionScoped cs(crit_sect_.get()); 347d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org memcpy(&last_payload_, &payload, sizeof(last_payload_)); 357d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org} 367d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org 377fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.orgvoid RTPReceiverStrategy::CheckPayloadChanged(int8_t payload_type, 387fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org PayloadUnion* specific_payload, 397fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org bool* should_reset_statistics, 407fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org bool* should_discard_changes) { 419d71e286a6c8fa79d30fc6f55e0e6071de5d37e3pbos@webrtc.org // Default: Keep changes and don't reset statistics. 429d71e286a6c8fa79d30fc6f55e0e6071de5d37e3pbos@webrtc.org *should_discard_changes = false; 439d71e286a6c8fa79d30fc6f55e0e6071de5d37e3pbos@webrtc.org *should_reset_statistics = false; 449d71e286a6c8fa79d30fc6f55e0e6071de5d37e3pbos@webrtc.org} 457fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org 467fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.orgint RTPReceiverStrategy::Energy(uint8_t array_of_energy[kRtpCsrcSize]) const { 477fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org return -1; 487fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org} 497fc75bbb65cc1cd99fdf45d9fce44bcce1396dfawu@webrtc.org 507d91c10c601030978979529a17edbc51784866cephoglund@webrtc.org} // namespace webrtc 51