Index: webrtc/video_frame.h |
diff --git a/webrtc/video_frame.h b/webrtc/video_frame.h |
index bec43f80cca93033382f7ef173f408d6ed75f0f5..3b0c16c12e8c2681547db0c4815773e54a08ea7a 100644 |
--- a/webrtc/video_frame.h |
+++ b/webrtc/video_frame.h |
@@ -11,117 +11,19 @@ |
#ifndef WEBRTC_VIDEO_FRAME_H_ |
#define WEBRTC_VIDEO_FRAME_H_ |
-#include "webrtc/base/scoped_ref_ptr.h" |
-#include "webrtc/base/timeutils.h" |
+// TODO(nisse): This header file should eventually be deleted. For |
+// declarations of classes related to unencoded video frame, use the |
+// headers under api/video instead. The EncodedImage class stays in |
+// this file until we have figured out how to refactor and clean up |
+// related interfaces. |
+ |
+#include "webrtc/api/video/video_frame.h" |
+#include "webrtc/api/video/i420_buffer.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" |
namespace webrtc { |
-class VideoFrame { |
- public: |
- // TODO(nisse): This constructor is consistent with |
- // cricket::WebRtcVideoFrame. After the class |
- // cricket::WebRtcVideoFrame and its baseclass cricket::VideoFrame |
- // are deleted, we should consider whether or not we want to stick |
- // to this style and deprecate the other constructors. |
- VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer, |
- webrtc::VideoRotation rotation, |
- int64_t timestamp_us); |
- |
- // Preferred constructor. |
- VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer, |
- uint32_t timestamp, |
- int64_t render_time_ms, |
- VideoRotation rotation); |
- |
- // Support move and copy. |
- VideoFrame(const VideoFrame&) = default; |
- VideoFrame(VideoFrame&&) = default; |
- VideoFrame& operator=(const VideoFrame&) = default; |
- VideoFrame& operator=(VideoFrame&&) = default; |
- |
- // Get frame width. |
- int width() const; |
- |
- // Get frame height. |
- int height() const; |
- |
- // 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; |
- } |
- |
- // TODO(nisse): After the cricket::VideoFrame and webrtc::VideoFrame |
- // merge, timestamps other than timestamp_us will likely be |
- // deprecated. |
- |
- // Set frame timestamp (90kHz). |
- void set_timestamp(uint32_t timestamp) { timestamp_rtp_ = timestamp; } |
- |
- // Get frame timestamp (90kHz). |
- uint32_t timestamp() const { return timestamp_rtp_; } |
- |
- // For now, transport_frame_id and rtp timestamp are the same. |
- // TODO(nisse): Must be handled differently for QUIC. |
- 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; |
- } |
- |
- // Get capture ntp time in milliseconds. |
- int64_t ntp_time_ms() const { return ntp_time_ms_; } |
- |
- // Naming convention for Coordination of Video Orientation. Please see |
- // http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ts_126114v120700p.pdf |
- // |
- // "pending rotation" or "pending" = a frame that has a VideoRotation > 0. |
- // |
- // "not pending" = a frame that has a VideoRotation == 0. |
- // |
- // "apply rotation" = modify a frame from being "pending" to being "not |
- // pending" rotation (a no-op for "unrotated"). |
- // |
- VideoRotation rotation() const { return 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);; |
- } |
- |
- // Get render time in milliseconds. |
- int64_t render_time_ms() const { |
- return timestamp_us() / rtc::kNumMicrosecsPerMillisec; |
- } |
- |
- // Return the underlying buffer. Never nullptr for a properly |
- // initialized VideoFrame. |
- rtc::scoped_refptr<webrtc::VideoFrameBuffer> video_frame_buffer() const; |
- |
- // Return true if the frame is stored in a texture. |
- bool is_texture() const { |
- return video_frame_buffer() && |
- video_frame_buffer()->native_handle() != nullptr; |
- } |
- |
- private: |
- // An opaque reference counted handle that stores the pixel data. |
- rtc::scoped_refptr<webrtc::VideoFrameBuffer> video_frame_buffer_; |
- uint32_t timestamp_rtp_; |
- int64_t ntp_time_ms_; |
- int64_t timestamp_us_; |
- VideoRotation rotation_; |
-}; |
- |
- |
// TODO(pbos): Rename EncodedFrame and reformat this class' members. |
class EncodedImage { |
public: |