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

Unified Diff: webrtc/modules/utility/source/file_player.cc

Issue 2038513002: FileRecorderImpl and FilePlayerImpl don't need their own .h and .cc files (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@remove2
Patch Set: rebase Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/utility/BUILD.gn ('k') | webrtc/modules/utility/source/file_player_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/utility/source/file_player.cc
diff --git a/webrtc/modules/utility/source/file_player_impl.cc b/webrtc/modules/utility/source/file_player.cc
similarity index 83%
rename from webrtc/modules/utility/source/file_player_impl.cc
rename to webrtc/modules/utility/source/file_player.cc
index 6608ce90cbdf3bebaf5593b642d11c9ecab24684..8434b7211de9bf0c3c72870d2d7785b6a61e58a2 100644
--- a/webrtc/modules/utility/source/file_player_impl.cc
+++ b/webrtc/modules/utility/source/file_player.cc
@@ -8,30 +8,70 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "webrtc/modules/utility/source/file_player_impl.h"
+#include "webrtc/modules/utility/include/file_player.h"
+
+#include "webrtc/common_audio/resampler/include/resampler.h"
+#include "webrtc/common_types.h"
+#include "webrtc/engine_configurations.h"
+#include "webrtc/modules/media_file/media_file.h"
+#include "webrtc/modules/media_file/media_file_defines.h"
+#include "webrtc/modules/utility/source/coder.h"
+#include "webrtc/system_wrappers/include/critical_section_wrapper.h"
#include "webrtc/system_wrappers/include/logging.h"
+#include "webrtc/typedefs.h"
namespace webrtc {
-FilePlayer* FilePlayer::CreateFilePlayer(uint32_t instanceID,
- FileFormats fileFormat) {
- switch (fileFormat) {
- case kFileFormatWavFile:
- case kFileFormatCompressedFile:
- case kFileFormatPreencodedFile:
- case kFileFormatPcm16kHzFile:
- case kFileFormatPcm8kHzFile:
- case kFileFormatPcm32kHzFile:
- // audio formats
- return new FilePlayerImpl(instanceID, fileFormat);
- default:
- assert(false);
- return NULL;
- }
-}
-void FilePlayer::DestroyFilePlayer(FilePlayer* player) {
- delete player;
-}
+namespace {
+
+class FilePlayerImpl : public FilePlayer {
+ public:
+ FilePlayerImpl(uint32_t instanceID, FileFormats fileFormat);
+ ~FilePlayerImpl();
+
+ virtual int Get10msAudioFromFile(int16_t* outBuffer,
+ size_t& lengthInSamples,
+ int frequencyInHz);
+ virtual int32_t RegisterModuleFileCallback(FileCallback* callback);
+ virtual int32_t StartPlayingFile(const char* fileName,
+ bool loop,
+ uint32_t startPosition,
+ float volumeScaling,
+ uint32_t notification,
+ uint32_t stopPosition = 0,
+ const CodecInst* codecInst = NULL);
+ virtual int32_t StartPlayingFile(InStream& sourceStream,
+ uint32_t startPosition,
+ float volumeScaling,
+ uint32_t notification,
+ uint32_t stopPosition = 0,
+ const CodecInst* codecInst = NULL);
+ virtual int32_t StopPlayingFile();
+ virtual bool IsPlayingFile() const;
+ virtual int32_t GetPlayoutPosition(uint32_t& durationMs);
+ virtual int32_t AudioCodec(CodecInst& audioCodec) const;
+ virtual int32_t Frequency() const;
+ virtual int32_t SetAudioScaling(float scaleFactor);
+
+ protected:
+ int32_t SetUpAudioDecoder();
+
+ uint32_t _instanceID;
+ const FileFormats _fileFormat;
+ MediaFile& _fileModule;
+
+ uint32_t _decodedLengthInMS;
+
+ private:
+ AudioCoder _audioDecoder;
+
+ CodecInst _codec;
+ int32_t _numberOf10MsPerFrame;
+ int32_t _numberOf10MsInDecoder;
+
+ Resampler _resampler;
+ float _scaling;
+};
FilePlayerImpl::FilePlayerImpl(const uint32_t instanceID,
const FileFormats fileFormat)
@@ -330,4 +370,28 @@ int32_t FilePlayerImpl::SetUpAudioDecoder() {
_numberOf10MsInDecoder = 0;
return 0;
}
+
+} // namespace
+
+FilePlayer* FilePlayer::CreateFilePlayer(uint32_t instanceID,
+ FileFormats fileFormat) {
+ switch (fileFormat) {
+ case kFileFormatWavFile:
+ case kFileFormatCompressedFile:
+ case kFileFormatPreencodedFile:
+ case kFileFormatPcm16kHzFile:
+ case kFileFormatPcm8kHzFile:
+ case kFileFormatPcm32kHzFile:
+ // audio formats
+ return new FilePlayerImpl(instanceID, fileFormat);
+ default:
+ assert(false);
+ return NULL;
+ }
+}
+
+void FilePlayer::DestroyFilePlayer(FilePlayer* player) {
+ delete player;
+}
+
} // namespace webrtc
« no previous file with comments | « webrtc/modules/utility/BUILD.gn ('k') | webrtc/modules/utility/source/file_player_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698