| Index: webrtc/modules/media_file/source/media_file_utility.h
|
| diff --git a/webrtc/modules/media_file/source/media_file_utility.h b/webrtc/modules/media_file/source/media_file_utility.h
|
| deleted file mode 100644
|
| index 65921bd9638b3380328077126a3357b7edd3cca8..0000000000000000000000000000000000000000
|
| --- a/webrtc/modules/media_file/source/media_file_utility.h
|
| +++ /dev/null
|
| @@ -1,284 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -// Note: the class cannot be used for reading and writing at the same time.
|
| -#ifndef WEBRTC_MODULES_MEDIA_FILE_SOURCE_MEDIA_FILE_UTILITY_H_
|
| -#define WEBRTC_MODULES_MEDIA_FILE_SOURCE_MEDIA_FILE_UTILITY_H_
|
| -
|
| -#include <stdio.h>
|
| -
|
| -#include "webrtc/common_types.h"
|
| -#include "webrtc/modules/media_file/include/media_file_defines.h"
|
| -
|
| -namespace webrtc {
|
| -class InStream;
|
| -class OutStream;
|
| -
|
| -class ModuleFileUtility
|
| -{
|
| -public:
|
| -
|
| - ModuleFileUtility(const int32_t id);
|
| - ~ModuleFileUtility();
|
| -
|
| - // Prepare for playing audio from stream.
|
| - // startPointMs and stopPointMs, unless zero, specify what part of the file
|
| - // should be read. From startPointMs ms to stopPointMs ms.
|
| - int32_t InitWavReading(InStream& stream,
|
| - const uint32_t startPointMs = 0,
|
| - const uint32_t stopPointMs = 0);
|
| -
|
| - // Put 10-60ms of audio data from stream into the audioBuffer depending on
|
| - // codec frame size. dataLengthInBytes indicates the size of audioBuffer.
|
| - // The return value is the number of bytes written to audioBuffer.
|
| - // Note: This API only play mono audio but can be used on file containing
|
| - // audio with more channels (in which case the audio will be converted to
|
| - // mono).
|
| - int32_t ReadWavDataAsMono(InStream& stream, int8_t* audioBuffer,
|
| - const size_t dataLengthInBytes);
|
| -
|
| - // Put 10-60ms, depending on codec frame size, of audio data from file into
|
| - // audioBufferLeft and audioBufferRight. The buffers contain the left and
|
| - // right channel of played out stereo audio.
|
| - // dataLengthInBytes indicates the size of both audioBufferLeft and
|
| - // audioBufferRight.
|
| - // The return value is the number of bytes read for each buffer.
|
| - // Note: This API can only be successfully called for WAV files with stereo
|
| - // audio.
|
| - int32_t ReadWavDataAsStereo(InStream& wav,
|
| - int8_t* audioBufferLeft,
|
| - int8_t* audioBufferRight,
|
| - const size_t bufferLength);
|
| -
|
| - // Prepare for recording audio to stream.
|
| - // codecInst specifies the encoding of the audio data.
|
| - // Note: codecInst.channels should be set to 2 for stereo (and 1 for
|
| - // mono). Stereo is only supported for WAV files.
|
| - int32_t InitWavWriting(OutStream& stream, const CodecInst& codecInst);
|
| -
|
| - // Write one audio frame, i.e. the bufferLength first bytes of audioBuffer,
|
| - // to file. The audio frame size is determined by the codecInst.pacsize
|
| - // parameter of the last sucessfull StartRecordingAudioFile(..) call.
|
| - // The return value is the number of bytes written to audioBuffer.
|
| - int32_t WriteWavData(OutStream& stream,
|
| - const int8_t* audioBuffer,
|
| - const size_t bufferLength);
|
| -
|
| - // Finalizes the WAV header so that it is correct if nothing more will be
|
| - // written to stream.
|
| - // Note: this API must be called before closing stream to ensure that the
|
| - // WAVE header is updated with the file size. Don't call this API
|
| - // if more samples are to be written to stream.
|
| - int32_t UpdateWavHeader(OutStream& stream);
|
| -
|
| - // Prepare for playing audio from stream.
|
| - // startPointMs and stopPointMs, unless zero, specify what part of the file
|
| - // should be read. From startPointMs ms to stopPointMs ms.
|
| - // freqInHz is the PCM sampling frequency.
|
| - // NOTE, allowed frequencies are 8000, 16000 and 32000 (Hz)
|
| - int32_t InitPCMReading(InStream& stream,
|
| - const uint32_t startPointMs = 0,
|
| - const uint32_t stopPointMs = 0,
|
| - const uint32_t freqInHz = 16000);
|
| -
|
| - // Put 10-60ms of audio data from stream into the audioBuffer depending on
|
| - // codec frame size. dataLengthInBytes indicates the size of audioBuffer.
|
| - // The return value is the number of bytes written to audioBuffer.
|
| - int32_t ReadPCMData(InStream& stream, int8_t* audioBuffer,
|
| - const size_t dataLengthInBytes);
|
| -
|
| - // Prepare for recording audio to stream.
|
| - // freqInHz is the PCM sampling frequency.
|
| - // NOTE, allowed frequencies are 8000, 16000 and 32000 (Hz)
|
| - int32_t InitPCMWriting(OutStream& stream, const uint32_t freqInHz = 16000);
|
| -
|
| - // Write one 10ms audio frame, i.e. the bufferLength first bytes of
|
| - // audioBuffer, to file. The audio frame size is determined by the freqInHz
|
| - // parameter of the last sucessfull InitPCMWriting(..) call.
|
| - // The return value is the number of bytes written to audioBuffer.
|
| - int32_t WritePCMData(OutStream& stream,
|
| - const int8_t* audioBuffer,
|
| - size_t bufferLength);
|
| -
|
| - // Prepare for playing audio from stream.
|
| - // startPointMs and stopPointMs, unless zero, specify what part of the file
|
| - // should be read. From startPointMs ms to stopPointMs ms.
|
| - int32_t InitCompressedReading(InStream& stream,
|
| - const uint32_t startPointMs = 0,
|
| - const uint32_t stopPointMs = 0);
|
| -
|
| - // Put 10-60ms of audio data from stream into the audioBuffer depending on
|
| - // codec frame size. dataLengthInBytes indicates the size of audioBuffer.
|
| - // The return value is the number of bytes written to audioBuffer.
|
| - int32_t ReadCompressedData(InStream& stream,
|
| - int8_t* audioBuffer,
|
| - const size_t dataLengthInBytes);
|
| -
|
| - // Prepare for recording audio to stream.
|
| - // codecInst specifies the encoding of the audio data.
|
| - int32_t InitCompressedWriting(OutStream& stream,
|
| - const CodecInst& codecInst);
|
| -
|
| - // Write one audio frame, i.e. the bufferLength first bytes of audioBuffer,
|
| - // to file. The audio frame size is determined by the codecInst.pacsize
|
| - // parameter of the last sucessfull InitCompressedWriting(..) call.
|
| - // The return value is the number of bytes written to stream.
|
| - // Note: bufferLength must be exactly one frame.
|
| - int32_t WriteCompressedData(OutStream& stream,
|
| - const int8_t* audioBuffer,
|
| - const size_t bufferLength);
|
| -
|
| - // Prepare for playing audio from stream.
|
| - // codecInst specifies the encoding of the audio data.
|
| - int32_t InitPreEncodedReading(InStream& stream,
|
| - const CodecInst& codecInst);
|
| -
|
| - // Put 10-60ms of audio data from stream into the audioBuffer depending on
|
| - // codec frame size. dataLengthInBytes indicates the size of audioBuffer.
|
| - // The return value is the number of bytes written to audioBuffer.
|
| - int32_t ReadPreEncodedData(InStream& stream,
|
| - int8_t* audioBuffer,
|
| - const size_t dataLengthInBytes);
|
| -
|
| - // Prepare for recording audio to stream.
|
| - // codecInst specifies the encoding of the audio data.
|
| - int32_t InitPreEncodedWriting(OutStream& stream,
|
| - const CodecInst& codecInst);
|
| -
|
| - // Write one audio frame, i.e. the bufferLength first bytes of audioBuffer,
|
| - // to stream. The audio frame size is determined by the codecInst.pacsize
|
| - // parameter of the last sucessfull InitPreEncodedWriting(..) call.
|
| - // The return value is the number of bytes written to stream.
|
| - // Note: bufferLength must be exactly one frame.
|
| - int32_t WritePreEncodedData(OutStream& stream,
|
| - const int8_t* inData,
|
| - const size_t dataLengthInBytes);
|
| -
|
| - // Set durationMs to the size of the file (in ms) specified by fileName.
|
| - // freqInHz specifies the sampling frequency of the file.
|
| - int32_t FileDurationMs(const char* fileName,
|
| - const FileFormats fileFormat,
|
| - const uint32_t freqInHz = 16000);
|
| -
|
| - // Return the number of ms that have been played so far.
|
| - uint32_t PlayoutPositionMs();
|
| -
|
| - // Update codecInst according to the current audio codec being used for
|
| - // reading or writing.
|
| - int32_t codec_info(CodecInst& codecInst);
|
| -
|
| -private:
|
| - // Biggest WAV frame supported is 10 ms at 48kHz of 2 channel, 16 bit audio.
|
| - enum{WAV_MAX_BUFFER_SIZE = 480*2*2};
|
| -
|
| -
|
| - int32_t InitWavCodec(uint32_t samplesPerSec,
|
| - uint32_t channels,
|
| - uint32_t bitsPerSample,
|
| - uint32_t formatTag);
|
| -
|
| - // Parse the WAV header in stream.
|
| - int32_t ReadWavHeader(InStream& stream);
|
| -
|
| - // Update the WAV header. freqInHz, bytesPerSample, channels, format,
|
| - // lengthInBytes specify characterists of the audio data.
|
| - // freqInHz is the sampling frequency. bytesPerSample is the sample size in
|
| - // bytes. channels is the number of channels, e.g. 1 is mono and 2 is
|
| - // stereo. format is the encode format (e.g. PCMU, PCMA, PCM etc).
|
| - // lengthInBytes is the number of bytes the audio samples are using up.
|
| - int32_t WriteWavHeader(OutStream& stream,
|
| - const uint32_t freqInHz,
|
| - const uint32_t bytesPerSample,
|
| - const uint32_t channels,
|
| - const uint32_t format,
|
| - const uint32_t lengthInBytes);
|
| -
|
| - // Put dataLengthInBytes of audio data from stream into the audioBuffer.
|
| - // The return value is the number of bytes written to audioBuffer.
|
| - int32_t ReadWavData(InStream& stream, uint8_t* audioBuffer,
|
| - const uint32_t dataLengthInBytes);
|
| -
|
| - // Update the current audio codec being used for reading or writing
|
| - // according to codecInst.
|
| - int32_t set_codec_info(const CodecInst& codecInst);
|
| -
|
| - struct WAVE_FMTINFO_header
|
| - {
|
| - int16_t formatTag;
|
| - int16_t nChannels;
|
| - int32_t nSamplesPerSec;
|
| - int32_t nAvgBytesPerSec;
|
| - int16_t nBlockAlign;
|
| - int16_t nBitsPerSample;
|
| - };
|
| - // Identifiers for preencoded files.
|
| - enum MediaFileUtility_CodecType
|
| - {
|
| - kCodecNoCodec = 0,
|
| - kCodecIsac,
|
| - kCodecIsacSwb,
|
| - kCodecIsacLc,
|
| - kCodecL16_8Khz,
|
| - kCodecL16_16kHz,
|
| - kCodecL16_32Khz,
|
| - kCodecPcmu,
|
| - kCodecPcma,
|
| - kCodecIlbc20Ms,
|
| - kCodecIlbc30Ms,
|
| - kCodecG722,
|
| - kCodecG722_1_32Kbps,
|
| - kCodecG722_1_24Kbps,
|
| - kCodecG722_1_16Kbps,
|
| - kCodecG722_1c_48,
|
| - kCodecG722_1c_32,
|
| - kCodecG722_1c_24,
|
| - kCodecAmr,
|
| - kCodecAmrWb,
|
| - kCodecG729,
|
| - kCodecG729_1,
|
| - kCodecG726_40,
|
| - kCodecG726_32,
|
| - kCodecG726_24,
|
| - kCodecG726_16,
|
| - kCodecSpeex8Khz,
|
| - kCodecSpeex16Khz
|
| - };
|
| -
|
| - // TODO (hellner): why store multiple formats. Just store either codec_info_
|
| - // or _wavFormatObj and supply conversion functions.
|
| - WAVE_FMTINFO_header _wavFormatObj;
|
| - int32_t _dataSize; // Chunk size if reading a WAV file
|
| - // Number of bytes to read. I.e. frame size in bytes. May be multiple
|
| - // chunks if reading WAV.
|
| - int32_t _readSizeBytes;
|
| -
|
| - int32_t _id;
|
| -
|
| - uint32_t _stopPointInMs;
|
| - uint32_t _startPointInMs;
|
| - uint32_t _playoutPositionMs;
|
| - size_t _bytesWritten;
|
| -
|
| - CodecInst codec_info_;
|
| - MediaFileUtility_CodecType _codecId;
|
| -
|
| - // The amount of bytes, on average, used for one audio sample.
|
| - int32_t _bytesPerSample;
|
| - int32_t _readPos;
|
| -
|
| - // Only reading or writing can be enabled, not both.
|
| - bool _reading;
|
| - bool _writing;
|
| -
|
| - // Scratch buffer used for turning stereo audio to mono.
|
| - uint8_t _tempData[WAV_MAX_BUFFER_SIZE];
|
| -};
|
| -} // namespace webrtc
|
| -#endif // WEBRTC_MODULES_MEDIA_FILE_SOURCE_MEDIA_FILE_UTILITY_H_
|
|
|