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

Side by Side Diff: webrtc/modules/media_file/media_file_utility.cc

Issue 1316523002: Convert channel counts to size_t. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Fix compile Created 4 years, 11 months 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 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 size_t samples_per_10ms = 246 size_t samples_per_10ms =
247 ((_wavFormatObj.formatTag == kWavFormatPcm) && 247 ((_wavFormatObj.formatTag == kWavFormatPcm) &&
248 (_wavFormatObj.nSamplesPerSec == 44100)) ? 248 (_wavFormatObj.nSamplesPerSec == 44100)) ?
249 440 : static_cast<size_t>(_wavFormatObj.nSamplesPerSec / 100); 249 440 : static_cast<size_t>(_wavFormatObj.nSamplesPerSec / 100);
250 _readSizeBytes = samples_per_10ms * _wavFormatObj.nChannels * 250 _readSizeBytes = samples_per_10ms * _wavFormatObj.nChannels *
251 (_wavFormatObj.nBitsPerSample / 8); 251 (_wavFormatObj.nBitsPerSample / 8);
252 return 0; 252 return 0;
253 } 253 }
254 254
255 int32_t ModuleFileUtility::InitWavCodec(uint32_t samplesPerSec, 255 int32_t ModuleFileUtility::InitWavCodec(uint32_t samplesPerSec,
256 uint32_t channels, 256 size_t channels,
257 uint32_t bitsPerSample, 257 uint32_t bitsPerSample,
258 uint32_t formatTag) 258 uint32_t formatTag)
259 { 259 {
260 codec_info_.pltype = -1; 260 codec_info_.pltype = -1;
261 codec_info_.plfreq = samplesPerSec; 261 codec_info_.plfreq = samplesPerSec;
262 codec_info_.channels = channels; 262 codec_info_.channels = channels;
263 codec_info_.rate = bitsPerSample * samplesPerSec; 263 codec_info_.rate = bitsPerSample * samplesPerSec;
264 264
265 // Calculate the packet size for 10ms frames 265 // Calculate the packet size for 10ms frames
266 switch(formatTag) 266 switch(formatTag)
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
656 const CodecInst& codecInst) 656 const CodecInst& codecInst)
657 { 657 {
658 658
659 if(set_codec_info(codecInst) != 0) 659 if(set_codec_info(codecInst) != 0)
660 { 660 {
661 WEBRTC_TRACE(kTraceError, kTraceFile, _id, 661 WEBRTC_TRACE(kTraceError, kTraceFile, _id,
662 "codecInst identifies unsupported codec!"); 662 "codecInst identifies unsupported codec!");
663 return -1; 663 return -1;
664 } 664 }
665 _writing = false; 665 _writing = false;
666 uint32_t channels = (codecInst.channels == 0) ? 666 size_t channels = (codecInst.channels == 0) ? 1 : codecInst.channels;
667 1 : codecInst.channels;
668 667
669 if(STR_CASE_CMP(codecInst.plname, "PCMU") == 0) 668 if(STR_CASE_CMP(codecInst.plname, "PCMU") == 0)
670 { 669 {
671 _bytesPerSample = 1; 670 _bytesPerSample = 1;
672 if(WriteWavHeader(wav, 8000, _bytesPerSample, channels, 671 if(WriteWavHeader(wav, 8000, _bytesPerSample, channels,
673 kWavFormatMuLaw, 0) == -1) 672 kWavFormatMuLaw, 0) == -1)
674 { 673 {
675 return -1; 674 return -1;
676 } 675 }
677 } 676 }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 } 724 }
726 _bytesWritten += dataLength; 725 _bytesWritten += dataLength;
727 return static_cast<int32_t>(dataLength); 726 return static_cast<int32_t>(dataLength);
728 } 727 }
729 728
730 729
731 int32_t ModuleFileUtility::WriteWavHeader( 730 int32_t ModuleFileUtility::WriteWavHeader(
732 OutStream& wav, 731 OutStream& wav,
733 uint32_t freq, 732 uint32_t freq,
734 size_t bytesPerSample, 733 size_t bytesPerSample,
735 uint32_t channels, 734 size_t channels,
736 uint32_t format, 735 uint32_t format,
737 size_t lengthInBytes) 736 size_t lengthInBytes)
738 { 737 {
739 // Frame size in bytes for 10 ms of audio. 738 // Frame size in bytes for 10 ms of audio.
740 // TODO (hellner): 44.1 kHz has 440 samples frame size. Doesn't seem to 739 // TODO (hellner): 44.1 kHz has 440 samples frame size. Doesn't seem to
741 // be taken into consideration here! 740 // be taken into consideration here!
742 const size_t frameSize = (freq / 100) * channels; 741 const size_t frameSize = (freq / 100) * channels;
743 742
744 // Calculate the number of full frames that the wave file contain. 743 // Calculate the number of full frames that the wave file contain.
745 const size_t dataLengthInBytes = frameSize * (lengthInBytes / frameSize); 744 const size_t dataLengthInBytes = frameSize * (lengthInBytes / frameSize);
746 745
747 uint8_t buf[kWavHeaderSize]; 746 uint8_t buf[kWavHeaderSize];
748 webrtc::WriteWavHeader(buf, channels, freq, static_cast<WavFormat>(format), 747 webrtc::WriteWavHeader(buf, channels, freq, static_cast<WavFormat>(format),
749 bytesPerSample, dataLengthInBytes / bytesPerSample); 748 bytesPerSample, dataLengthInBytes / bytesPerSample);
750 wav.Write(buf, kWavHeaderSize); 749 wav.Write(buf, kWavHeaderSize);
751 return 0; 750 return 0;
752 } 751 }
753 752
754 int32_t ModuleFileUtility::UpdateWavHeader(OutStream& wav) 753 int32_t ModuleFileUtility::UpdateWavHeader(OutStream& wav)
755 { 754 {
756 int32_t res = -1; 755 int32_t res = -1;
757 if(wav.Rewind() == -1) 756 if(wav.Rewind() == -1)
758 { 757 {
759 return -1; 758 return -1;
760 } 759 }
761 uint32_t channels = (codec_info_.channels == 0) ? 1 : codec_info_.channels; 760 size_t channels = (codec_info_.channels == 0) ? 1 : codec_info_.channels;
762 761
763 if(STR_CASE_CMP(codec_info_.plname, "L16") == 0) 762 if(STR_CASE_CMP(codec_info_.plname, "L16") == 0)
764 { 763 {
765 res = WriteWavHeader(wav, codec_info_.plfreq, 2, channels, 764 res = WriteWavHeader(wav, codec_info_.plfreq, 2, channels,
766 kWavFormatPcm, _bytesWritten); 765 kWavFormatPcm, _bytesWritten);
767 } else if(STR_CASE_CMP(codec_info_.plname, "PCMU") == 0) { 766 } else if(STR_CASE_CMP(codec_info_.plname, "PCMU") == 0) {
768 res = WriteWavHeader(wav, 8000, 1, channels, kWavFormatMuLaw, 767 res = WriteWavHeader(wav, 8000, 1, channels, kWavFormatMuLaw,
769 _bytesWritten); 768 _bytesWritten);
770 } else if(STR_CASE_CMP(codec_info_.plname, "PCMA") == 0) { 769 } else if(STR_CASE_CMP(codec_info_.plname, "PCMA") == 0) {
771 res = WriteWavHeader(wav, 8000, 1, channels, kWavFormatALaw, 770 res = WriteWavHeader(wav, 8000, 1, channels, kWavFormatALaw,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 const CodecInst& codecInst) 853 const CodecInst& codecInst)
855 { 854 {
856 855
857 if(set_codec_info(codecInst) != 0) 856 if(set_codec_info(codecInst) != 0)
858 { 857 {
859 WEBRTC_TRACE(kTraceError, kTraceFile, _id, "CodecInst not recognized!"); 858 WEBRTC_TRACE(kTraceError, kTraceFile, _id, "CodecInst not recognized!");
860 return -1; 859 return -1;
861 } 860 }
862 _writing = true; 861 _writing = true;
863 _bytesWritten = 1; 862 _bytesWritten = 1;
864 out.Write(&_codecId, 1); 863 out.Write(&_codecId, 1);
865 return 0; 864 return 0;
866 } 865 }
867 866
868 int32_t ModuleFileUtility::WritePreEncodedData( 867 int32_t ModuleFileUtility::WritePreEncodedData(
869 OutStream& out, 868 OutStream& out,
870 const int8_t* buffer, 869 const int8_t* buffer,
871 const size_t dataLength) 870 const size_t dataLength)
872 { 871 {
873 WEBRTC_TRACE(kTraceStream, kTraceFile, _id, 872 WEBRTC_TRACE(kTraceStream, kTraceFile, _id,
874 "ModuleFileUtility::WritePreEncodedData(out= 0x%x, " 873 "ModuleFileUtility::WritePreEncodedData(out= 0x%x, "
875 "inData= 0x%x, dataLen= %" PRIuS ")", &out, buffer, 874 "inData= 0x%x, dataLen= %" PRIuS ")", &out, buffer,
876 dataLength); 875 dataLength);
877 876
878 if(buffer == NULL) 877 if(buffer == NULL)
879 { 878 {
880 WEBRTC_TRACE(kTraceError, kTraceFile, _id,"buffer NULL"); 879 WEBRTC_TRACE(kTraceError, kTraceFile, _id,"buffer NULL");
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 { 1002 {
1004 WEBRTC_TRACE(kTraceError, kTraceFile, _id, "not currently reading!"); 1003 WEBRTC_TRACE(kTraceError, kTraceFile, _id, "not currently reading!");
1005 return -1; 1004 return -1;
1006 } 1005 }
1007 1006
1008 #ifdef WEBRTC_CODEC_ILBC 1007 #ifdef WEBRTC_CODEC_ILBC
1009 if((_codecId == kCodecIlbc20Ms) || 1008 if((_codecId == kCodecIlbc20Ms) ||
1010 (_codecId == kCodecIlbc30Ms)) 1009 (_codecId == kCodecIlbc30Ms))
1011 { 1010 {
1012 size_t byteSize = 0; 1011 size_t byteSize = 0;
1013 if(_codecId == kCodecIlbc30Ms) 1012 if(_codecId == kCodecIlbc30Ms)
1014 { 1013 {
1015 byteSize = 50; 1014 byteSize = 50;
1016 } 1015 }
1017 if(_codecId == kCodecIlbc20Ms) 1016 if(_codecId == kCodecIlbc20Ms)
1018 { 1017 {
1019 byteSize = 38; 1018 byteSize = 38;
1020 } 1019 }
1021 if(bufferSize < byteSize) 1020 if(bufferSize < byteSize)
1022 { 1021 {
1023 WEBRTC_TRACE(kTraceError, kTraceFile, _id, 1022 WEBRTC_TRACE(kTraceError, kTraceFile, _id,
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
1551 } 1550 }
1552 1551
1553 uint32_t ModuleFileUtility::PlayoutPositionMs() 1552 uint32_t ModuleFileUtility::PlayoutPositionMs()
1554 { 1553 {
1555 WEBRTC_TRACE(kTraceStream, kTraceFile, _id, 1554 WEBRTC_TRACE(kTraceStream, kTraceFile, _id,
1556 "ModuleFileUtility::PlayoutPosition()"); 1555 "ModuleFileUtility::PlayoutPosition()");
1557 1556
1558 return _reading ? _playoutPositionMs : 0; 1557 return _reading ? _playoutPositionMs : 0;
1559 } 1558 }
1560 } // namespace webrtc 1559 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/media_file/media_file_utility.h ('k') | webrtc/modules/rtp_rtcp/include/rtp_payload_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698