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

Unified Diff: webrtc/video_frame.h

Issue 2517173004: Move VideoFrame and related declarations to webrtc/api/video. (Closed)
Patch Set: Make rotation check clearer. Created 3 years, 11 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/video/vie_encoder_unittest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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:
« no previous file with comments | « webrtc/video/vie_encoder_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698