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

Side by Side Diff: talk/media/base/videoframe.h

Issue 1586613002: Delete remnants of non-square pixel support from cricket::VideoFrame. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Keep old InitToBlack and InitToEmptyBuffer methods. Created 4 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 unified diff | Download patch
« no previous file with comments | « talk/app/webrtc/videotrack_unittest.cc ('k') | talk/media/base/videoframe.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 23 matching lines...) Expand all
34 #include "webrtc/common_video/rotation.h" 34 #include "webrtc/common_video/rotation.h"
35 35
36 namespace cricket { 36 namespace cricket {
37 37
38 // Represents a YUV420 (a.k.a. I420) video frame. 38 // Represents a YUV420 (a.k.a. I420) video frame.
39 class VideoFrame { 39 class VideoFrame {
40 public: 40 public:
41 VideoFrame() {} 41 VideoFrame() {}
42 virtual ~VideoFrame() {} 42 virtual ~VideoFrame() {}
43 43
44 virtual bool InitToBlack(int w, int h, int64_t time_stamp) = 0;
45
46 // TODO(nisse): Old signature. Delete after chrome is updated.
44 virtual bool InitToBlack(int w, int h, size_t pixel_width, 47 virtual bool InitToBlack(int w, int h, size_t pixel_width,
45 size_t pixel_height, int64_t time_stamp) = 0; 48 size_t pixel_height, int64_t time_stamp) {
49 return InitToBlack(w, h, time_stamp);
50 }
46 // Creates a frame from a raw sample with FourCC |format| and size |w| x |h|. 51 // Creates a frame from a raw sample with FourCC |format| and size |w| x |h|.
47 // |h| can be negative indicating a vertically flipped image. 52 // |h| can be negative indicating a vertically flipped image.
48 // |dw| is destination width; can be less than |w| if cropping is desired. 53 // |dw| is destination width; can be less than |w| if cropping is desired.
49 // |dh| is destination height, like |dw|, but must be a positive number. 54 // |dh| is destination height, like |dw|, but must be a positive number.
50 // Returns whether the function succeeded or failed. 55 // Returns whether the function succeeded or failed.
51 56
52 virtual bool Reset(uint32_t fourcc, 57 virtual bool Reset(uint32_t fourcc,
53 int w, 58 int w,
54 int h, 59 int h,
55 int dw, 60 int dw,
56 int dh, 61 int dh,
57 uint8_t* sample, 62 uint8_t* sample,
58 size_t sample_size, 63 size_t sample_size,
59 size_t pixel_width,
60 size_t pixel_height,
61 int64_t time_stamp, 64 int64_t time_stamp,
62 webrtc::VideoRotation rotation, 65 webrtc::VideoRotation rotation,
63 bool apply_rotation) = 0; 66 bool apply_rotation) = 0;
64 67
65 // Basic accessors. 68 // Basic accessors.
66 // Note this is the width and height without rotation applied. 69 // Note this is the width and height without rotation applied.
67 virtual size_t GetWidth() const = 0; 70 virtual size_t GetWidth() const = 0;
68 virtual size_t GetHeight() const = 0; 71 virtual size_t GetHeight() const = 0;
69 72
70 size_t GetChromaWidth() const { return (GetWidth() + 1) / 2; } 73 size_t GetChromaWidth() const { return (GetWidth() + 1) / 2; }
(...skipping 14 matching lines...) Expand all
85 // Returns the handle of the underlying video frame. This is used when the 88 // Returns the handle of the underlying video frame. This is used when the
86 // frame is backed by a texture. The object should be destroyed when it is no 89 // frame is backed by a texture. The object should be destroyed when it is no
87 // longer in use, so the underlying resource can be freed. 90 // longer in use, so the underlying resource can be freed.
88 virtual void* GetNativeHandle() const = 0; 91 virtual void* GetNativeHandle() const = 0;
89 92
90 // Returns the underlying video frame buffer. This function is ok to call 93 // Returns the underlying video frame buffer. This function is ok to call
91 // multiple times, but the returned object will refer to the same memory. 94 // multiple times, but the returned object will refer to the same memory.
92 virtual rtc::scoped_refptr<webrtc::VideoFrameBuffer> GetVideoFrameBuffer() 95 virtual rtc::scoped_refptr<webrtc::VideoFrameBuffer> GetVideoFrameBuffer()
93 const = 0; 96 const = 0;
94 97
95 // For retrieving the aspect ratio of each pixel. Usually this is 1x1, but
96 // the aspect_ratio_idc parameter of H.264 can specify non-square pixels.
97 virtual size_t GetPixelWidth() const = 0;
98 virtual size_t GetPixelHeight() const = 0;
99
100 virtual int64_t GetTimeStamp() const = 0; 98 virtual int64_t GetTimeStamp() const = 0;
101 virtual void SetTimeStamp(int64_t time_stamp) = 0; 99 virtual void SetTimeStamp(int64_t time_stamp) = 0;
102 100
103 // Indicates the rotation angle in degrees. 101 // Indicates the rotation angle in degrees.
104 // TODO(guoweis): Remove this function, rename GetVideoRotation and remove the 102 // TODO(guoweis): Remove this function, rename GetVideoRotation and remove the
105 // skeleton implementation of GetRotation once chrome is updated. 103 // skeleton implementation of GetRotation once chrome is updated.
106 virtual int GetRotation() const { return GetVideoRotation(); } 104 virtual int GetRotation() const { return GetVideoRotation(); }
107 virtual webrtc::VideoRotation GetVideoRotation() const { 105 virtual webrtc::VideoRotation GetVideoRotation() const {
108 return webrtc::kVideoRotation_0; 106 return webrtc::kVideoRotation_0;
109 } 107 }
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 const uint8_t* sample, 200 const uint8_t* sample,
203 size_t sample_size); 201 size_t sample_size);
204 202
205 // Size of an I420 image of given dimensions when stored as a frame buffer. 203 // Size of an I420 image of given dimensions when stored as a frame buffer.
206 static size_t SizeOf(size_t w, size_t h) { 204 static size_t SizeOf(size_t w, size_t h) {
207 return w * h + ((w + 1) / 2) * ((h + 1) / 2) * 2; 205 return w * h + ((w + 1) / 2) * ((h + 1) / 2) * 2;
208 } 206 }
209 207
210 protected: 208 protected:
211 // Creates an empty frame. 209 // Creates an empty frame.
212 virtual VideoFrame *CreateEmptyFrame(int w, int h, size_t pixel_width, 210 virtual VideoFrame *CreateEmptyFrame(int w, int h,
213 size_t pixel_height,
214 int64_t time_stamp) const = 0; 211 int64_t time_stamp) const = 0;
215 virtual void SetRotation(webrtc::VideoRotation rotation) = 0; 212 virtual void SetRotation(webrtc::VideoRotation rotation) = 0;
216 }; 213 };
217 214
218 } // namespace cricket 215 } // namespace cricket
219 216
220 #endif // TALK_MEDIA_BASE_VIDEOFRAME_H_ 217 #endif // TALK_MEDIA_BASE_VIDEOFRAME_H_
OLDNEW
« no previous file with comments | « talk/app/webrtc/videotrack_unittest.cc ('k') | talk/media/base/videoframe.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698