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

Issue 2847383002: Add support for multiple pixel formats in VideoFrameBuffer (Closed)

Created:
3 years, 7 months ago by magjed_webrtc
Modified:
3 years, 6 months ago
CC:
webrtc-reviews_webrtc.org, the sun, tterriberry_mozilla.com, sakal
Target Ref:
refs/heads/master
Project:
webrtc
Visibility:
Public.

Description

Add support for I444 in VideoFrameBuffer VideoFrameBuffer is currently hard coded to be either I420 or Native. This CL makes VideoFrameBuffer more generic by moving the I420 specific functions into their own class, and adds an enum tag that represents the format and storage type of the buffer. Each buffer type is then represented as a subclass. See webrtc/api/video/video_frame_buffer.h for more info. This CL also adds support for representing I444 in VideoFrameBuffer using the new interface. Possible future buffer type candidates are RGB and NV12. BUG=webrtc:7632 TBR=stefan@webrtc.org Review-Url: https://codereview.webrtc.org/2847383002 Cr-Commit-Position: refs/heads/master@{#18098} Committed: https://chromium.googlesource.com/external/webrtc/+/712338eed24a8d68699b331acad12edf340ac929

Patch Set 1 #

Total comments: 2

Patch Set 2 : Add common interface for I420 and I444 #

Total comments: 26

Patch Set 3 : Address comments #

Patch Set 4 : Add more comments for PlanarYuvBufferAdapter #

Patch Set 5 : Make Get functions non-virtual #

Patch Set 6 : Add ChromaWidth/ChromaHeight impl #

Patch Set 7 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+247 lines, -39 lines) Patch
M webrtc/api/BUILD.gn View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M webrtc/api/video/i420_buffer.h View 1 2 3 4 5 6 3 chunks +2 lines, -4 lines 0 comments Download
M webrtc/api/video/i420_buffer.cc View 1 2 3 4 5 6 2 chunks +4 lines, -8 lines 0 comments Download
M webrtc/api/video/video_frame_buffer.h View 1 2 3 4 5 1 chunk +75 lines, -13 lines 0 comments Download
A webrtc/api/video/video_frame_buffer.cc View 1 2 3 4 5 1 chunk +153 lines, -0 lines 0 comments Download
M webrtc/common_video/include/video_frame_buffer.h View 1 2 3 4 5 6 4 chunks +4 lines, -5 lines 0 comments Download
M webrtc/common_video/video_frame_buffer.cc View 1 2 3 chunks +8 lines, -9 lines 0 comments Download

Messages

Total messages: 92 (73 generated)
magjed_webrtc
Nisse - please take a look.
3 years, 7 months ago (2017-05-02 09:21:47 UTC) #27
nisse-webrtc
https://codereview.webrtc.org/2847383002/diff/80001/webrtc/api/video/video_frame_buffer.h File webrtc/api/video/video_frame_buffer.h (right): https://codereview.webrtc.org/2847383002/diff/80001/webrtc/api/video/video_frame_buffer.h#newcode90 webrtc/api/video/video_frame_buffer.h:90: int ChromaWidth() const { return (width() + 1) / ...
3 years, 7 months ago (2017-05-02 09:52:37 UTC) #28
magjed_webrtc
https://codereview.webrtc.org/2847383002/diff/80001/webrtc/api/video/video_frame_buffer.h File webrtc/api/video/video_frame_buffer.h (right): https://codereview.webrtc.org/2847383002/diff/80001/webrtc/api/video/video_frame_buffer.h#newcode90 webrtc/api/video/video_frame_buffer.h:90: int ChromaWidth() const { return (width() + 1) / ...
3 years, 7 months ago (2017-05-03 13:36:55 UTC) #48
nisse-webrtc
This looks pretty good! I think the docs needs a little more work, and I ...
3 years, 7 months ago (2017-05-04 08:15:30 UTC) #49
magjed_webrtc
https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/i420_buffer.h File webrtc/api/video/i420_buffer.h (left): https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/i420_buffer.h#oldcode56 webrtc/api/video/i420_buffer.h:56: // TODO(nisse): Deprecated, use static method instead. On 2017/05/04 ...
3 years, 7 months ago (2017-05-04 12:25:13 UTC) #61
nisse-webrtc
https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc File webrtc/api/video/video_frame_buffer.cc (right): https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc#newcode22 webrtc/api/video/video_frame_buffer.cc:22: // adapting them into the new ToI420() function. On ...
3 years, 7 months ago (2017-05-05 11:33:05 UTC) #62
magjed_webrtc
https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc File webrtc/api/video/video_frame_buffer.cc (right): https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc#newcode22 webrtc/api/video/video_frame_buffer.cc:22: // adapting them into the new ToI420() function. On ...
3 years, 7 months ago (2017-05-05 12:25:24 UTC) #63
nisse-webrtc
https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc File webrtc/api/video/video_frame_buffer.cc (right): https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc#newcode22 webrtc/api/video/video_frame_buffer.cc:22: // adapting them into the new ToI420() function. On ...
3 years, 7 months ago (2017-05-05 12:45:29 UTC) #64
magjed_webrtc
https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc File webrtc/api/video/video_frame_buffer.cc (right): https://codereview.webrtc.org/2847383002/diff/160001/webrtc/api/video/video_frame_buffer.cc#newcode93 webrtc/api/video/video_frame_buffer.cc:93: RTC_NOTREACHED(); On 2017/05/05 12:45:28, nisse-webrtc wrote: > Wouldn't we ...
3 years, 7 months ago (2017-05-06 19:01:45 UTC) #65
nisse-webrtc
lgtm! Plase update cl title and description now that the code no longer uses the ...
3 years, 7 months ago (2017-05-08 06:43:11 UTC) #66
magjed_webrtc
Stefan - please take a look.
3 years, 7 months ago (2017-05-08 10:27:23 UTC) #73
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2847383002/320001
3 years, 7 months ago (2017-05-11 12:09:46 UTC) #83
commit-bot: I haz the power
Committed patchset #7 (id:320001) as https://chromium.googlesource.com/external/webrtc/+/712338eed24a8d68699b331acad12edf340ac929
3 years, 7 months ago (2017-05-11 12:12:05 UTC) #86
Yuwei
On 2017/05/11 12:12:05, commit-bot: I haz the power wrote: > Committed patchset #7 (id:320001) as ...
3 years, 7 months ago (2017-05-11 21:46:59 UTC) #87
nisse-webrtc
On 2017/05/11 21:46:59, Yuwei wrote: > On 2017/05/11 12:12:05, commit-bot: I haz the power wrote: ...
3 years, 7 months ago (2017-05-12 08:49:28 UTC) #88
magjed_webrtc
On 2017/05/12 08:49:28, nisse-webrtc wrote: > On 2017/05/11 21:46:59, Yuwei wrote: > > On 2017/05/11 ...
3 years, 7 months ago (2017-05-25 14:23:30 UTC) #89
guidou
A revert of this CL (patchset #7 id:320001) has been created in https://codereview.webrtc.org/2924263002/ by guidou@webrtc.org. ...
3 years, 6 months ago (2017-06-08 08:28:30 UTC) #90
guidou
On 2017/06/08 08:28:30, guidou wrote: > A revert of this CL (patchset #7 id:320001) has ...
3 years, 6 months ago (2017-06-08 08:31:14 UTC) #91
Yuwei
3 years, 6 months ago (2017-06-08 20:37:48 UTC) #92
Message was sent while issue was closed.
On 2017/05/25 14:23:30, magjed_webrtc wrote:
> On 2017/05/12 08:49:28, nisse-webrtc wrote:
> > On 2017/05/11 21:46:59, Yuwei wrote:
> > > On 2017/05/11 12:12:05, commit-bot: I haz the power wrote:
> > > > Committed patchset #7 (id:320001) as
> > > >
> > >
> >
>
https://chromium.googlesource.com/external/webrtc/+/712338eed24a8d68699b331ac...
> > > 
> > > Thanks for fixing this! Should I just go to hook this up in
> > > VP9DecoderImpl::ReturnFrame or are you guys going to do this?
> > 
> > Not sure how to do this with minimal breakage. I'm afraid the safest way
> > is still to have VP9DecoderImpl convert to I420 by default, with some option
> to
> > enable
> > generation of I444 frames.
> > 
> > Magnus, what's your plan? How much code needs to be updated with calls to
> > ToI420?
> 
> Sorry for late reply, I had missed this.
> 
> Yuwei - please go ahead and make a CL for hooking this up in
> VP9DecoderImpl::ReturnFrame, but I need to clean up some places in WebRTC
before
> you can land it.

Looks like I also missed the comment :)
I've put uploaded a CL for VP9Impl here:
https://codereview.chromium.org/2927943003/

I probably need to wait for CL 2876363003 to land it though.

Powered by Google App Engine
This is Rietveld 408576698