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

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

Issue 1796123002: Implement WiFi Display elementary stream packetizer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: clang-format Created 4 years, 9 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_elementary_stream_packetizer.h
diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_elementary_stream_packetizer.h b/extensions/renderer/api/display_source/wifi_display/wifi_display_elementary_stream_packetizer.h
new file mode 100644
index 0000000000000000000000000000000000000000..da647d1f4bc50906461801644d7f6b74e69b9fae
--- /dev/null
+++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_elementary_stream_packetizer.h
@@ -0,0 +1,63 @@
+// Copyright 2016 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 EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_ELEMENTARY_STREAM_PACKETIZER_H_
+#define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_ELEMENTARY_STREAM_PACKETIZER_H_
+
+#include "base/time/time.h"
+#include "extensions/renderer/api/display_source/wifi_display/wifi_display_stream_packet_part.h"
+
+namespace extensions {
+
+// WiFi Display elementary stream packet represents a Packetized Elementary
+// Stream (PES) packet containing WiFi Display elementary stream unit data.
+class WiFiDisplayElementaryStreamPacket {
+ public:
+ using HeaderBuffer = uint8_t[19];
+ using Part = WiFiDisplayStreamPacketPart;
asargent_no_longer_on_chrome 2016/03/16 22:47:57 nit: I'm not sure that the "Part" alias really aid
e_hakkinen 2016/03/17 15:29:26 Done.
+
+ WiFiDisplayElementaryStreamPacket(const HeaderBuffer& header_data,
+ size_t header_size,
+ const uint8_t* unit_header_data,
+ size_t unit_header_size,
+ const uint8_t* unit_data,
+ size_t unit_size);
+
+ const Part& header() const { return header_; }
+ const Part& unit_header() const { return unit_header_; }
+ const Part& unit() const { return unit_; }
+
+ private:
+ HeaderBuffer header_buffer_;
+ Part header_;
+ Part unit_header_;
+ Part unit_;
+};
asargent_no_longer_on_chrome 2016/03/16 22:47:58 nit: add DISALLOW_COPY_AND_ASSIGN (also make sure
e_hakkinen 2016/03/17 15:29:26 Done.
+
+// The WiFi Display elementary stream packetizer packetizes unit buffers to
+// Packetized Elementary Stream (PES) packets.
+// It is used internally by a WiFi Display transport stream packetizer.
+class WiFiDisplayElementaryStreamPacketizer {
+ public:
+ enum : uint8_t {
+ kPrivateStream1Id = 0xBDu,
+ kFirstAudioStreamId = 0xC0u,
+ kLastAudioStreamId = 0xDFu,
+ kFirstVideoStreamId = 0xE0u,
+ kLastVideoStreamId = 0xEFu,
+ };
+
+ WiFiDisplayElementaryStreamPacket EncodeElementaryStreamUnit(
+ uint8_t stream_id,
+ const uint8_t* unit_header_data,
+ size_t unit_header_size,
+ const uint8_t* unit_data,
+ size_t unit_size,
+ const base::TimeTicks& pts,
+ const base::TimeTicks& dts);
asargent_no_longer_on_chrome 2016/03/16 22:47:58 Is there a reason this isn't a static method? Ther
e_hakkinen 2016/03/17 15:29:26 Not really. Done.
+};
+
+} // namespace extensions
+
+#endif // EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_ELEMENTARY_STREAM_PACKETIZER_H_

Powered by Google App Engine
This is Rietveld 408576698