Index: webrtc/media/base/videoframe.h |
diff --git a/webrtc/media/base/videoframe.h b/webrtc/media/base/videoframe.h |
index d1ae3fef0de755ddd04805f62502ce32e09508eb..6aa434d79d6fc681e11943edd0e1719f6a2f7ef9 100644 |
--- a/webrtc/media/base/videoframe.h |
+++ b/webrtc/media/base/videoframe.h |
@@ -8,24 +8,57 @@ |
* be found in the AUTHORS file in the root of the source tree. |
*/ |
-// TODO(nisse): Deprecated, replace cricket::VideoFrame with |
-// webrtc::VideoFrame everywhere, then delete this file. See |
-// https://bugs.chromium.org/p/webrtc/issues/detail?id=5682. |
- |
#ifndef WEBRTC_MEDIA_BASE_VIDEOFRAME_H_ |
#define WEBRTC_MEDIA_BASE_VIDEOFRAME_H_ |
-#include "webrtc/video_frame.h" |
+#include "webrtc/base/basictypes.h" |
+#include "webrtc/base/stream.h" |
+#include "webrtc/common_video/include/video_frame_buffer.h" |
+#include "webrtc/common_video/rotation.h" |
namespace cricket { |
-class VideoFrame : public webrtc::VideoFrame { |
- protected: |
- VideoFrame() : webrtc::VideoFrame() {} |
- VideoFrame(const rtc::scoped_refptr<webrtc::VideoFrameBuffer>& buffer, |
- webrtc::VideoRotation rotation, |
- int64_t timestamp_us) |
- : webrtc::VideoFrame(buffer, rotation, timestamp_us) {} |
+// Represents a YUV420 (a.k.a. I420) video frame. |
+ |
+// TODO(nisse): This class duplicates webrtc::VideoFrame. There's |
+// ongoing work to merge the classes. See |
+// https://bugs.chromium.org/p/webrtc/issues/detail?id=5682. |
+class VideoFrame { |
+ public: |
+ VideoFrame() {} |
+ virtual ~VideoFrame() {} |
+ |
+ // Basic accessors. |
+ // Note this is the width and height without rotation applied. |
+ virtual int width() const = 0; |
+ virtual int height() const = 0; |
+ |
+ // Returns the underlying video frame buffer. This function is ok to call |
+ // multiple times, but the returned object will refer to the same memory. |
+ virtual const rtc::scoped_refptr<webrtc::VideoFrameBuffer>& |
+ video_frame_buffer() const = 0; |
+ |
+ // Frame ID. Normally RTP timestamp when the frame was received using RTP. |
+ virtual uint32_t transport_frame_id() const = 0; |
+ |
+ // System monotonic clock, same timebase as rtc::TimeMicros(). |
+ virtual int64_t timestamp_us() const = 0; |
+ virtual void set_timestamp_us(int64_t time_us) = 0; |
+ |
+ // Indicates the rotation angle in degrees. |
+ virtual webrtc::VideoRotation rotation() const = 0; |
+ |
+ // Tests if sample is valid. Returns true if valid. |
+ |
+ // TODO(nisse): Deprecated. Should be deleted in the cricket::VideoFrame and |
+ // webrtc::VideoFrame merge. Validation of sample_size possibly moved to |
+ // libyuv::ConvertToI420. As an initial step, demote this method to protected |
+ // status. Used only by WebRtcVideoFrame::Reset. |
+ static bool Validate(uint32_t fourcc, |
+ int w, |
+ int h, |
+ const uint8_t* sample, |
+ size_t sample_size); |
}; |
} // namespace cricket |