Chromium Code Reviews| 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 |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c17214bd272c77dec9beb0b2babea6c3278884fd |
| --- /dev/null |
| +++ b/media/cast/sender/video_frame_factory.h |
| @@ -0,0 +1,37 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef MEDIA_CAST_SENDER_VIDEO_FRAME_FACTORY_H_ |
| +#define MEDIA_CAST_SENDER_VIDEO_FRAME_FACTORY_H_ |
| + |
| +#include "base/memory/ref_counted.h" |
| + |
| +namespace media { |
| + |
| +class VideoFrame; |
| + |
| +namespace cast { |
| + |
| +// Interface for an object capable of vending video frames. Not thread safe, but |
| +// must be usable from any thread. Implementations do not have to protect |
| +// themselves from concurrent access for performance reasons. Clients should |
| +// instead synchronize access themselves by design. |
| +class VideoFrameFactory : public base::RefCountedThreadSafe<VideoFrameFactory> { |
|
Alpha Left Google
2014/11/17 20:23:14
I think it's unrealistic that this class is not th
jfroy
2014/11/17 21:23:06
Not at all. The default implementation I wrote as
Alpha Left Google
2014/11/18 02:57:58
This default implementation and the one you mentio
jfroy
2014/11/18 18:03:59
Sounds good!
|
| + public: |
| + // Creates a |VideoFrame| suitable for input via |InsertRawVideoFrame|. Frames |
| + // obtained in this manner may provide benefits such memory reuse and affinity |
| + // with the encoder. The format is guaranteed to be I420 or NV12. |
| + virtual scoped_refptr<VideoFrame> CreateFrame(base::TimeDelta timestamp) = 0; |
| + |
| + protected: |
| + virtual ~VideoFrameFactory() {} |
| + |
| + private: |
| + friend class base::RefCountedThreadSafe<VideoFrameFactory>; |
| +}; |
| + |
| +} // namespace cast |
| +} // namespace media |
| + |
| +#endif // MEDIA_CAST_SENDER_VIDEO_FRAME_FACTORY_H_ |