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

Unified Diff: webrtc/api/video/video_frame.h

Issue 2517173004: Move VideoFrame and related declarations to webrtc/api/video. (Closed)
Patch Set: Address include and comment nits. Created 4 years, 1 month 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
Index: webrtc/api/video/video_frame.h
diff --git a/webrtc/video_frame.h b/webrtc/api/video/video_frame.h
similarity index 58%
copy from webrtc/video_frame.h
copy to webrtc/api/video/video_frame.h
index a834f83ddf1333c74e3f3f70779e905248aceec2..1c7fd8f0f90e5c8e78e75c387be287f7840d615c 100644
--- a/webrtc/video_frame.h
+++ b/webrtc/api/video/video_frame.h
@@ -8,15 +8,13 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#ifndef WEBRTC_VIDEO_FRAME_H_
-#define WEBRTC_VIDEO_FRAME_H_
+#ifndef WEBRTC_API_VIDEO_VIDEO_FRAME_H_
+#define WEBRTC_API_VIDEO_VIDEO_FRAME_H_
-#include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/base/timeutils.h"
-#include "webrtc/common_types.h"
-#include "webrtc/common_video/include/video_frame_buffer.h"
-#include "webrtc/common_video/rotation.h"
-#include "webrtc/typedefs.h"
+#include <stdint.h>
+
+#include "webrtc/api/video/rotation.h"
+#include "webrtc/api/video/video_frame_buffer.h"
namespace webrtc {
@@ -41,11 +39,13 @@ class VideoFrame {
int64_t render_time_ms,
VideoRotation rotation);
+ ~VideoFrame();
+
// Support move and copy.
- VideoFrame(const VideoFrame&) = default;
- VideoFrame(VideoFrame&&) = default;
- VideoFrame& operator=(const VideoFrame&) = default;
- VideoFrame& operator=(VideoFrame&&) = default;
+ VideoFrame(const VideoFrame&);
+ VideoFrame(VideoFrame&&);
+ VideoFrame& operator=(const VideoFrame&);
+ VideoFrame& operator=(VideoFrame&&);
// Get frame width.
int width() const;
@@ -55,9 +55,7 @@ class VideoFrame {
// System monotonic clock, same timebase as rtc::TimeMicros().
int64_t timestamp_us() const { return timestamp_us_; }
- void set_timestamp_us(int64_t timestamp_us) {
- timestamp_us_ = timestamp_us;
- }
+ void set_timestamp_us(int64_t timestamp_us) { timestamp_us_ = timestamp_us; }
// TODO(nisse): After the cricket::VideoFrame and webrtc::VideoFrame
// merge, timestamps other than timestamp_us will likely be
@@ -74,9 +72,7 @@ class VideoFrame {
uint32_t transport_frame_id() const { return timestamp(); }
// Set capture ntp time in milliseconds.
- void set_ntp_time_ms(int64_t ntp_time_ms) {
- ntp_time_ms_ = ntp_time_ms;
- }
+ void set_ntp_time_ms(int64_t ntp_time_ms) { ntp_time_ms_ = ntp_time_ms; }
// Get capture ntp time in milliseconds.
int64_t ntp_time_ms() const { return ntp_time_ms_; }
@@ -92,19 +88,13 @@ class VideoFrame {
// pending" rotation (a no-op for "unrotated").
//
VideoRotation rotation() const { return rotation_; }
- void set_rotation(VideoRotation rotation) {
- rotation_ = rotation;
- }
+ void set_rotation(VideoRotation rotation) { rotation_ = rotation; }
// Set render time in milliseconds.
- void set_render_time_ms(int64_t render_time_ms) {
- set_timestamp_us(render_time_ms * rtc::kNumMicrosecsPerMillisec);;
- }
+ void set_render_time_ms(int64_t render_time_ms);
// Get render time in milliseconds.
- int64_t render_time_ms() const {
- return timestamp_us() / rtc::kNumMicrosecsPerMillisec;
magjed_webrtc 2016/11/29 15:43:49 Why are some implementations (but not all) moved t
nisse-webrtc 2016/11/29 15:56:15 I moved this one, because I wanted to avoid having
magjed_webrtc 2016/11/29 16:40:26 Ok, then I understand. No you can leave the other
- }
+ int64_t render_time_ms() const;
// Return true if and only if video_frame_buffer() is null. Which is possible
// only if the object was default-constructed.
@@ -134,53 +124,6 @@ class VideoFrame {
VideoRotation rotation_;
};
-
-// TODO(pbos): Rename EncodedFrame and reformat this class' members.
-class EncodedImage {
- public:
- static const size_t kBufferPaddingBytesH264;
-
- // Some decoders require encoded image buffers to be padded with a small
- // number of additional bytes (due to over-reading byte readers).
- static size_t GetBufferPaddingBytes(VideoCodecType codec_type);
-
- EncodedImage() : EncodedImage(nullptr, 0, 0) {}
-
- EncodedImage(uint8_t* buffer, size_t length, size_t size)
- : _buffer(buffer), _length(length), _size(size) {}
-
- struct AdaptReason {
- AdaptReason()
- : quality_resolution_downscales(-1),
- bw_resolutions_disabled(-1) {}
-
- int quality_resolution_downscales; // Number of times this frame is down
- // scaled in resolution due to quality.
- // Or -1 if information is not provided.
- int bw_resolutions_disabled; // Number of resolutions that are not sent
- // due to bandwidth for this frame.
- // Or -1 if information is not provided.
- };
- uint32_t _encodedWidth = 0;
- uint32_t _encodedHeight = 0;
- uint32_t _timeStamp = 0;
- // NTP time of the capture time in local timebase in milliseconds.
- int64_t ntp_time_ms_ = 0;
- int64_t capture_time_ms_ = 0;
- FrameType _frameType = kVideoFrameDelta;
- uint8_t* _buffer;
- size_t _length;
- size_t _size;
- VideoRotation rotation_ = kVideoRotation_0;
- bool _completeFrame = false;
- AdaptReason adapt_reason_;
- int qp_ = -1; // Quantizer value.
-
- // When an application indicates non-zero values here, it is taken as an
- // indication that all future frames will be constrained with those limits
- // until the application indicates a change again.
- PlayoutDelay playout_delay_ = {-1, -1};
-};
-
} // namespace webrtc
-#endif // WEBRTC_VIDEO_FRAME_H_
+
+#endif // WEBRTC_API_VIDEO_VIDEO_FRAME_H_

Powered by Google App Engine
This is Rietveld 408576698