Index: extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h |
diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h b/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h |
index c612089b1ffb0771fc491d98c9ca47135d33b599..db5b642490f5c9279819cb8054d95a3001acc0a1 100644 |
--- a/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h |
+++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h |
@@ -5,47 +5,27 @@ |
#ifndef EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_VIDEO_ENCODER_H_ |
#define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_VIDEO_ENCODER_H_ |
-#include <string> |
- |
#include "base/memory/shared_memory.h" |
-#include "base/stl_util.h" |
+#include "extensions/renderer/api/display_source/wifi_display/wifi_display_media_encoder.h" |
#include "media/base/video_frame.h" |
#include "media/video/video_encode_accelerator.h" |
#include "third_party/wds/src/libwds/public/video_format.h" |
namespace extensions { |
-// This structure represents an encoded video frame. |
-struct WiFiDisplayEncodedFrame { |
- const uint8_t* bytes() const { |
- return reinterpret_cast<uint8_t*>( |
- string_as_array(const_cast<std::string*>(&data))); |
- } |
- uint8_t* mutable_bytes() { |
- return reinterpret_cast<uint8_t*>(string_as_array(&data)); |
- } |
- |
- base::TimeTicks pts; // Presentation timestamp. |
- base::TimeTicks dts; // Decoder timestamp. |
- std::string data; |
- bool key_frame; |
-}; |
+using WiFiDisplayEncodedFrame = WiFiDisplayEncodedUnit; |
// This interface represents H.264 video encoder used by the |
// Wi-Fi Display media pipeline. |
// Threading: the client code should belong to a single thread. |
-class WiFiDisplayVideoEncoder : |
- public base::RefCountedThreadSafe<WiFiDisplayVideoEncoder> { |
+class WiFiDisplayVideoEncoder : public WiFiDisplayMediaEncoder { |
public: |
- using EncodedFrameCallback = |
- base::Callback<void(const WiFiDisplayEncodedFrame&)>; |
- |
using VideoEncoderCallback = |
base::Callback<void(scoped_refptr<WiFiDisplayVideoEncoder>)>; |
using ReceiveVideoEncodeAcceleratorCallback = |
base::Callback<void(scoped_refptr<base::SingleThreadTaskRunner>, |
- std::unique_ptr<media::VideoEncodeAccelerator>)>; |
+ std::unique_ptr<media::VideoEncodeAccelerator>)>; |
using CreateVideoEncodeAcceleratorCallback = |
base::Callback<void(const ReceiveVideoEncodeAcceleratorCallback&)>; |
@@ -71,9 +51,8 @@ class WiFiDisplayVideoEncoder : |
// A factory method that creates a new encoder instance from the given |
// |params|, the encoder instance is returned as an argument of |
// |result_callback| ('nullptr' argument means encoder creation failure). |
- static void Create( |
- const InitParameters& params, |
- const VideoEncoderCallback& encoder_callback); |
+ static void Create(const InitParameters& params, |
+ const VideoEncoderCallback& encoder_callback); |
// Encodes the given raw frame. The resulting encoded frame is passed |
// as an |encoded_callback|'s argument which is set via 'SetCallbacks' |
@@ -86,19 +65,9 @@ class WiFiDisplayVideoEncoder : |
// (IDR) picture. |
virtual void RequestIDRPicture() = 0; |
- // Sets callbacks for the obtained encoder instance: |
- // |encoded_callback| is invoked to return the next encoded frame |
- // |error_callback| is invoked to report a fatal encoder error |
- void SetCallbacks(const EncodedFrameCallback& encoded_callback, |
- const base::Closure& error_callback); |
- |
protected: |
- friend class base::RefCountedThreadSafe<WiFiDisplayVideoEncoder>; |
WiFiDisplayVideoEncoder(); |
- virtual ~WiFiDisplayVideoEncoder(); |
- |
- EncodedFrameCallback encoded_callback_; |
- base::Closure error_callback_; |
+ ~WiFiDisplayVideoEncoder() override; |
}; |
} // namespace extensions |