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 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 } else { | 636 } else { |
637 // tone has ended | 637 // tone has ended |
638 makeRTPheader(rtp_data, NETEQ_CODEC_AVT_PT, seqNo, DTMFtimestamp, ssrc); | 638 makeRTPheader(rtp_data, NETEQ_CODEC_AVT_PT, seqNo, DTMFtimestamp, ssrc); |
639 enc_len = makeDTMFpayload(&rtp_data[12], NTone % 12, 1, 4, | 639 enc_len = makeDTMFpayload(&rtp_data[12], NTone % 12, 1, 4, |
640 DTMF_DURATION * (fs / 1000)); | 640 DTMF_DURATION * (fs / 1000)); |
641 NTone++; | 641 NTone++; |
642 DTMFfirst = 1; | 642 DTMFfirst = 1; |
643 } | 643 } |
644 | 644 |
645 /* write RTP packet to file */ | 645 /* write RTP packet to file */ |
646 length = htons(12 + enc_len + 8); | 646 length = htons(static_cast<unsigned short>(12 + enc_len + 8)); |
647 plen = htons(12 + enc_len); | 647 plen = htons(static_cast<unsigned short>(12 + enc_len)); |
648 offset = (uint32_t)sendtime; //(timestamp/(fs/1000)); | 648 offset = (uint32_t)sendtime; //(timestamp/(fs/1000)); |
649 offset = htonl(offset); | 649 offset = htonl(offset); |
650 if (fwrite(&length, 2, 1, out_file) != 1) { | 650 if (fwrite(&length, 2, 1, out_file) != 1) { |
651 return -1; | 651 return -1; |
652 } | 652 } |
653 if (fwrite(&plen, 2, 1, out_file) != 1) { | 653 if (fwrite(&plen, 2, 1, out_file) != 1) { |
654 return -1; | 654 return -1; |
655 } | 655 } |
656 if (fwrite(&offset, 4, 1, out_file) != 1) { | 656 if (fwrite(&offset, 4, 1, out_file) != 1) { |
657 return -1; | 657 return -1; |
(...skipping 30 matching lines...) Expand all Loading... |
688 } | 688 } |
689 #endif | 689 #endif |
690 | 690 |
691 if (enc_len > 0 && | 691 if (enc_len > 0 && |
692 (sendtime <= STOPSENDTIME || sendtime > RESTARTSENDTIME)) { | 692 (sendtime <= STOPSENDTIME || sendtime > RESTARTSENDTIME)) { |
693 if (useRed) { | 693 if (useRed) { |
694 if (red_len[0] > 0) { | 694 if (red_len[0] > 0) { |
695 memmove(&rtp_data[RTPheaderLen + red_len[0]], &rtp_data[12], enc_len); | 695 memmove(&rtp_data[RTPheaderLen + red_len[0]], &rtp_data[12], enc_len); |
696 memcpy(&rtp_data[RTPheaderLen], red_data, red_len[0]); | 696 memcpy(&rtp_data[RTPheaderLen], red_data, red_len[0]); |
697 | 697 |
698 red_len[1] = enc_len; | 698 red_len[1] = static_cast<uint16_t>(enc_len); |
699 red_TS[1] = timestamp; | 699 red_TS[1] = timestamp; |
700 if (vad) | 700 if (vad) |
701 red_PT[1] = payloadType; | 701 red_PT[1] = payloadType; |
702 else | 702 else |
703 red_PT[1] = NETEQ_CODEC_CN_PT; | 703 red_PT[1] = NETEQ_CODEC_CN_PT; |
704 | 704 |
705 makeRedundantHeader(rtp_data, red_PT, 2, red_TS, red_len, seqNo++, | 705 makeRedundantHeader(rtp_data, red_PT, 2, red_TS, red_len, seqNo++, |
706 ssrc); | 706 ssrc); |
707 | 707 |
708 enc_len += red_len[0] + RTPheaderLen - 12; | 708 enc_len += red_len[0] + RTPheaderLen - 12; |
709 } else { // do not use redundancy payload for this packet, i.e., only | 709 } else { // do not use redundancy payload for this packet, i.e., only |
710 // last payload | 710 // last payload |
711 memmove(&rtp_data[RTPheaderLen - 4], &rtp_data[12], enc_len); | 711 memmove(&rtp_data[RTPheaderLen - 4], &rtp_data[12], enc_len); |
712 // memcpy(&rtp_data[RTPheaderLen], red_data, red_len[0]); | 712 // memcpy(&rtp_data[RTPheaderLen], red_data, red_len[0]); |
713 | 713 |
714 red_len[1] = enc_len; | 714 red_len[1] = static_cast<uint16_t>(enc_len); |
715 red_TS[1] = timestamp; | 715 red_TS[1] = timestamp; |
716 if (vad) | 716 if (vad) |
717 red_PT[1] = payloadType; | 717 red_PT[1] = payloadType; |
718 else | 718 else |
719 red_PT[1] = NETEQ_CODEC_CN_PT; | 719 red_PT[1] = NETEQ_CODEC_CN_PT; |
720 | 720 |
721 makeRedundantHeader(rtp_data, red_PT, 2, red_TS, red_len, seqNo++, | 721 makeRedundantHeader(rtp_data, red_PT, 2, red_TS, red_len, seqNo++, |
722 ssrc); | 722 ssrc); |
723 | 723 |
724 enc_len += red_len[0] + RTPheaderLen - 4 - | 724 enc_len += red_len[0] + RTPheaderLen - 4 - |
725 12; // 4 is length of redundancy header (not used) | 725 12; // 4 is length of redundancy header (not used) |
726 } | 726 } |
727 } else { | 727 } else { |
728 /* make RTP header */ | 728 /* make RTP header */ |
729 if (vad) // regular speech data | 729 if (vad) // regular speech data |
730 makeRTPheader(rtp_data, payloadType, seqNo++, timestamp, ssrc); | 730 makeRTPheader(rtp_data, payloadType, seqNo++, timestamp, ssrc); |
731 else // CNG data | 731 else // CNG data |
732 makeRTPheader(rtp_data, NETEQ_CODEC_CN_PT, seqNo++, timestamp, ssrc); | 732 makeRTPheader(rtp_data, NETEQ_CODEC_CN_PT, seqNo++, timestamp, ssrc); |
733 } | 733 } |
734 #ifdef MULTIPLE_SAME_TIMESTAMP | 734 #ifdef MULTIPLE_SAME_TIMESTAMP |
735 int mult_pack = 0; | 735 int mult_pack = 0; |
736 do { | 736 do { |
737 #endif // MULTIPLE_SAME_TIMESTAMP | 737 #endif // MULTIPLE_SAME_TIMESTAMP |
738 /* write RTP packet to file */ | 738 /* write RTP packet to file */ |
739 length = htons(12 + enc_len + 8); | 739 length = htons(static_cast<unsigned short>(12 + enc_len + 8)); |
740 plen = htons(12 + enc_len); | 740 plen = htons(static_cast<unsigned short>(12 + enc_len)); |
741 offset = (uint32_t)sendtime; | 741 offset = (uint32_t)sendtime; |
742 //(timestamp/(fs/1000)); | 742 //(timestamp/(fs/1000)); |
743 offset = htonl(offset); | 743 offset = htonl(offset); |
744 if (fwrite(&length, 2, 1, out_file) != 1) { | 744 if (fwrite(&length, 2, 1, out_file) != 1) { |
745 return -1; | 745 return -1; |
746 } | 746 } |
747 if (fwrite(&plen, 2, 1, out_file) != 1) { | 747 if (fwrite(&plen, 2, 1, out_file) != 1) { |
748 return -1; | 748 return -1; |
749 } | 749 } |
750 if (fwrite(&offset, 4, 1, out_file) != 1) { | 750 if (fwrite(&offset, 4, 1, out_file) != 1) { |
(...skipping 1125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1876 memmove(ptrL + stride, ptrL, ptrR - ptrL); | 1876 memmove(ptrL + stride, ptrL, ptrR - ptrL); |
1877 | 1877 |
1878 // copy from temp to left pointer | 1878 // copy from temp to left pointer |
1879 memcpy(ptrL, temp, stride); | 1879 memcpy(ptrL, temp, stride); |
1880 | 1880 |
1881 // advance pointers | 1881 // advance pointers |
1882 ptrL += stride * 2; | 1882 ptrL += stride * 2; |
1883 ptrR += stride; | 1883 ptrR += stride; |
1884 } | 1884 } |
1885 } | 1885 } |
OLD | NEW |