[Webkit-unassigned] [Bug 44539] API changes for Video Frame sharing between WebKit and Chromium

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 25 11:47:00 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=44539


Darin Fisher (:fishd, Google) <fishd at chromium.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #65439|review?, commit-queue?      |review-
               Flag|                            |




--- Comment #9 from Darin Fisher (:fishd, Google) <fishd at chromium.org>  2010-08-25 11:47:00 PST ---
(From update of attachment 65439)
WebCore/platform/graphics/chromium/VideoFrameChromium.h:38
 +  
nit: extra new line here

WebCore/platform/graphics/chromium/VideoFrameChromium.h:71
 +  public:
nit: no need for the redundant 'public:' section

WebCore/platform/graphics/chromium/VideoFrameProvider.h:39
 +  
nit: extra new line here

WebCore/platform/graphics/chromium/VideoFrameProvider.h:41
 +      virtual VideoFrameChromium* getCurrentFrame() = 0;
please document the ownership model.  who owns the VideoFrameChromium?
how do I free it?  it looks like i have to call putCurrentFrame to
free it, but is that the only way?  it might help if these methods
were more fully documented.

WebKit/chromium/public/WebMediaPlayer.h:133
 +      // FIXME: Will be made pure virtual when API changes are fully landed.
WebKit API interfaces implemented by the embedder are intended to have
non-pure virtual methods.  so this FIXME is backwards.  the other methods
should have empty implementations :)

WebKit/chromium/public/WebVideoFrame.h:40
 +  
nit: kill the extra new line here

WebKit/chromium/public/WebVideoFrame.h:43
 +      enum Format {
nit: our convention for enums at the WebKit API level is to use the following
format:

  enum Foo {
      FooBar,
      FooBaz,
      ...
  };

So, I'd expect to see:

  enum Format {
      FormatInvalid,
      FormatRGB555,
      ...
  };

  enum SurfaceType {
      SurfaceTypeSystemMemory,
      ...
  };

WebKit/chromium/public/WebVideoFrame.h:66
 +      virtual SurfaceType type() const = 0;
nit: type should be surfaceType to match the type name SurfaceType

WebKit/chromium/public/WebVideoFrame.h:71
 +      virtual int stride(unsigned plane) const = 0;
why does stride return signed instead of unsigned?

WebKit/chromium/public/WebVideoFrame.h:72
 +      virtual void* data(unsigned plane) const = 0;
can this pointer be a |const void*| instead?  it should be const
if you only expect the caller to get read access to the buffer.
otherwise, non-const implies mutability.  i think you only want
to provide read access, right?

WebKit/chromium/src/VideoFrameChromiumImpl.cpp:55
 +  VideoFrameChromiumImpl::VideoFrameChromiumImpl(WebVideoFrame* webVideoFrame) :
nit: the colon should be on the next line

WebKit/chromium/src/VideoFrameChromiumImpl.h:42
 +  
nit: no new line here

WebKit/chromium/src/VideoFrameChromiumImpl.cpp:47
 +  WebVideoFrame* VideoFrameChromiumImpl::toWebVideoFrame(WebCore::VideoFrameChromium* videoFrame)
nit: i recommend adding a 'using namespace WebCore' at the top of this file,
and then remove the WebCore:: prefixes in the body of this file.

WebKit/chromium/src/VideoFrameChromiumImpl.cpp:56
 +      m_webVideoFrame(webVideoFrame)
what is the ownership model for m_webVideoFrame?  it looks like VideoFrameChromiumImpl
is not responsible for deleting m_webVideoFrame.  should it?

WebKit/chromium/src/WebMediaPlayerClientImpl.h:119
 +      // This function returns a pointer to a VideoFrameChromium, which is
this looks like documentation that should be in VideoFrameProvider.h instead of here.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list