Index: media/cast/sender/video_sender.h |
diff --git a/media/cast/sender/video_sender.h b/media/cast/sender/video_sender.h |
index 826099ecf4dc728f31f57e954fc057fc196aa277..ae944b6203dc08dc6e5faa5f3842f27c52648504 100644 |
--- a/media/cast/sender/video_sender.h |
+++ b/media/cast/sender/video_sender.h |
@@ -15,6 +15,7 @@ |
#include "media/cast/cast_config.h" |
#include "media/cast/sender/congestion_control.h" |
#include "media/cast/sender/frame_sender.h" |
+#include "media/cast/sender/video_frame_factory.h" |
namespace media { |
@@ -56,6 +57,13 @@ class VideoSender : public FrameSender, |
void InsertRawVideoFrame(const scoped_refptr<media::VideoFrame>& video_frame, |
const base::TimeTicks& reference_time); |
+ // Returns a |VideoFrameFactory| that can be used to create |
+ // |media::VideoFrame| objects with potentially better affinity with the |
+ // encoder. |
+ scoped_refptr<VideoFrameFactory> video_frame_factory() { |
+ return video_frame_factory_; |
+ } |
+ |
protected: |
int GetNumberOfFramesInEncoder() const override; |
base::TimeDelta GetInFlightMediaDuration() const override; |
@@ -76,6 +84,10 @@ class VideoSender : public FrameSender, |
// a hardware-based encoder. |
scoped_ptr<VideoEncoder> video_encoder_; |
+ // Provides |media::VideoFrame| objects suitable for encoding. The encoder may |
+ // provide a specialized instance, otherwise a default implementation is used. |
+ scoped_refptr<VideoFrameFactory> video_frame_factory_; |
+ |
// The number of frames queued for encoding, but not yet sent. |
int frames_in_encoder_; |