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

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

Issue 2517173004: Move VideoFrame and related declarations to webrtc/api/video. (Closed)
Patch Set: Fix gn dependencies. Created 4 years 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 52%
copy from webrtc/video_frame.h
copy to webrtc/api/video/video_frame.h
index 5fd62a6bbb08e30f41d229468adfaf5e0e3cd97b..62e5551c808dde4396b7230e7107e221dd7a5720 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/video_rotation.h"
+#include "webrtc/api/video/video_frame_buffer.h"
namespace webrtc {
@@ -37,11 +35,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;
@@ -51,9 +51,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
@@ -70,9 +68,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_; }
@@ -88,28 +84,22 @@ 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;
- }
+ int64_t render_time_ms() const;
// Return the underlying buffer. Never nullptr for a properly
// initialized VideoFrame.
rtc::scoped_refptr<webrtc::VideoFrameBuffer> video_frame_buffer() const;
+ // TODO(nisse): Deprecated.
// Return true if the frame is stored in a texture.
bool is_texture() const {
- return video_frame_buffer() &&
- video_frame_buffer()->native_handle() != nullptr;
+ return video_frame_buffer()->native_handle() != nullptr;
}
private:
@@ -121,53 +111,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