Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Unified Diff: extensions/renderer/api/display_source/wifi_display/wifi_display_video_encoder.h

Issue 1903773003: [chrome.displaySource] Add a base class for audio and video encoders. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Use DISALLOW_{ASSIGN,COPY} Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698