diff options
Diffstat (limited to 'webrtc/modules/video_coding/test/video_source.h')
-rw-r--r-- | webrtc/modules/video_coding/test/video_source.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/webrtc/modules/video_coding/test/video_source.h b/webrtc/modules/video_coding/test/video_source.h new file mode 100644 index 0000000000..19d7f50b26 --- /dev/null +++ b/webrtc/modules/video_coding/test/video_source.h @@ -0,0 +1,85 @@ +/* + * 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. + */ + +#ifndef WEBRTC_MODULES_VIDEO_CODING_TEST_VIDEO_SOURCE_H_ +#define WEBRTC_MODULES_VIDEO_CODING_TEST_VIDEO_SOURCE_H_ + +#include <string> + +#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" +#include "webrtc/typedefs.h" + +enum VideoSize { + kUndefined, + kSQCIF, // 128*96 = 12 288 + kQQVGA, // 160*120 = 19 200 + kQCIF, // 176*144 = 25 344 + kCGA, // 320*200 = 64 000 + kQVGA, // 320*240 = 76 800 + kSIF, // 352*240 = 84 480 + kWQVGA, // 400*240 = 96 000 + kCIF, // 352*288 = 101 376 + kW288p, // 512*288 = 147 456 (WCIF) + k448p, // 576*448 = 281 088 + kVGA, // 640*480 = 307 200 + k432p, // 720*432 = 311 040 + kW432p, // 768*432 = 331 776 + k4SIF, // 704*480 = 337 920 + kW448p, // 768*448 = 344 064 + kNTSC, // 720*480 = 345 600 + kFW448p, // 800*448 = 358 400 + kWVGA, // 800*480 = 384 000 + k4CIF, // 704*576 = 405 504 + kSVGA, // 800*600 = 480 000 + kW544p, // 960*544 = 522 240 + kW576p, // 1024*576 = 589 824 (W4CIF) + kHD, // 960*720 = 691 200 + kXGA, // 1024*768 = 786 432 + kWHD, // 1280*720 = 921 600 + kFullHD, // 1440*1080 = 1 555 200 + kWFullHD, // 1920*1080 = 2 073 600 + + kNumberOfVideoSizes +}; + +class VideoSource { + public: + VideoSource(); + VideoSource(std::string fileName, + VideoSize size, + float frameRate, + webrtc::VideoType type = webrtc::kI420); + VideoSource(std::string fileName, + uint16_t width, + uint16_t height, + float frameRate = 30, + webrtc::VideoType type = webrtc::kI420); + + std::string GetFileName() const { return _fileName; } + uint16_t GetWidth() const { return _width; } + uint16_t GetHeight() const { return _height; } + webrtc::VideoType GetType() const { return _type; } + float GetFrameRate() const { return _frameRate; } + int GetWidthHeight(VideoSize size); + + // Returns the filename with the path (including the leading slash) removed. + std::string GetName() const; + + size_t GetFrameLength() const; + + private: + std::string _fileName; + uint16_t _width; + uint16_t _height; + webrtc::VideoType _type; + float _frameRate; +}; + +#endif // WEBRTC_MODULES_VIDEO_CODING_TEST_VIDEO_SOURCE_H_ |