Index: media/cast/sender/video_frame_factory.h |
diff --git a/media/cast/sender/video_frame_factory.h b/media/cast/sender/video_frame_factory.h |
index d55deb7cd32d76eae84c8b2ad601fd0b61f50996..f6b5889d3eafccfa96eb62b3eaa1a6b307dc3918 100644 |
--- a/media/cast/sender/video_frame_factory.h |
+++ b/media/cast/sender/video_frame_factory.h |
@@ -27,9 +27,7 @@ namespace cast { |
// Clients are responsible for serialzing access to a |VideoFrameFactory|. |
// Generally speaking, it is expected that a client will be using these objects |
// from a rendering thread or callback (which may execute on different threads |
-// but never concurrently with itself). Forcing every implementation to take a |
-// lock, even with no contention, is an unnecessary cost, especially on mobile |
-// platforms. |
+// but never concurrently with itself). |
class VideoFrameFactory { |
public: |
virtual ~VideoFrameFactory() {} |
@@ -39,7 +37,10 @@ class VideoFrameFactory { |
// with the encoder. The format is guaranteed to be I420 or NV12. |
// |
// This can transiently return null if the encoder is not yet initialized or |
- // is re-initializing. |
+ // is re-initializing. Note however that if an encoder does support optimized |
+ // frames, its |VideoFrameFactory| must eventually return frames. In practice, |
+ // this means that |MaybeCreateFrame| must somehow signal the encoder to |
+ // perform whatever initialization is needed to eventually produce frames. |
virtual scoped_refptr<VideoFrame> MaybeCreateFrame( |
const gfx::Size& frame_size, base::TimeDelta timestamp) = 0; |
}; |