Index: webrtc/video_frame.h |
diff --git a/webrtc/video_frame.h b/webrtc/video_frame.h |
index a834f83ddf1333c74e3f3f70779e905248aceec2..f0b40d8a3a00a2fd830a7464f944f4779b7ee5ff 100644 |
--- a/webrtc/video_frame.h |
+++ b/webrtc/video_frame.h |
@@ -11,130 +11,13 @@ |
#ifndef WEBRTC_VIDEO_FRAME_H_ |
#define WEBRTC_VIDEO_FRAME_H_ |
-#include "webrtc/base/scoped_ref_ptr.h" |
-#include "webrtc/base/timeutils.h" |
+#include "webrtc/api/video/video_frame.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): Deprecated. Using the default constructor violates the |
- // reasonable assumption that video_frame_buffer() returns a valid buffer. |
- VideoFrame(); |
- |
- // 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 true if and only if video_frame_buffer() is null. Which is possible |
- // only if the object was default-constructed. |
- // TODO(nisse): Deprecated. Should be deleted in the cricket::VideoFrame and |
- // webrtc::VideoFrame merge. The intention is that video_frame_buffer() never |
- // should return nullptr. To handle potentially uninitialized or non-existent |
- // frames, consider using rtc::Optional. Otherwise, IsZeroSize() can be |
- // replaced by video_frame_buffer() == nullptr. |
- bool IsZeroSize() const; |
- |
- // 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 { |
the sun
2016/11/24 10:36:59
This also need to be in api/? Did you intend to mo
nisse-webrtc
2016/11/25 08:58:03
For now, I intend to move only interfaces related
|
public: |