Index: media/remoting/rpc/decoder_buffer_segment.h |
diff --git a/media/remoting/rpc/decoder_buffer_segment.h b/media/remoting/rpc/decoder_buffer_segment.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4236dfd546efe8afe3b0e2623e8998d74a1fd539 |
--- /dev/null |
+++ b/media/remoting/rpc/decoder_buffer_segment.h |
@@ -0,0 +1,51 @@ |
+// 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 MEDIA_REMOTING_RPC_DECODER_BUFFER_SEGMENT_H_ |
+#define MEDIA_REMOTING_RPC_DECODER_BUFFER_SEGMENT_H_ |
+ |
+#include <cstdint> |
+#include <string> |
+#include <vector> |
+ |
+#include "base/macros.h" |
+#include "base/memory/ref_counted.h" |
+#include "media/base/decoder_buffer.h" |
+ |
+namespace media { |
+namespace remoting { |
+ |
+// Utility class to serialize and de-serialize between media::DecoderBuffer and |
+// byte array. The idea is to serialize media::DecoderBuffer except for actual |
+// decoder buffer using proto buffer and append the decoder buffer at the end. |
+// into byte array for data transmission. |
+// |
+// DecoderBufferSegment { |
+// // Payload version. Default value is 0. |
+// u8 payload_version; |
+// |
+// // Length of protobuf-encoded media::DecoderBuffer(except for data). |
+// u16 buffer_segment_size; |
+// // Protobuf-encoded media::DecoderBuffer. |
+// u8[buffer_segment_size] buffer_segment; |
+// |
+// // Length of data in media::DecoderBuffer. |
+// u32 data_buffer_size; |
+// // media::DecoderBuffer data. |
+// u8[data_buffer_size] data_buffer; |
+//}; |
+ |
+// Converts DecoderBufferSegment into byte array. |
+std::vector<uint8_t> DecoderBufferToByteArray( |
+ const scoped_refptr<::media::DecoderBuffer> decoder_buffer); |
miu
2016/09/13 05:40:57
nit: Please pass by const-ref: const ::media::Deco
erickung1
2016/09/15 02:13:33
Done.
|
+ |
+// Converts byte array into DecoderBufferSegment. |
+scoped_refptr<::media::DecoderBuffer> ByteArrayToDecoderBuffer( |
+ const uint8_t* data, |
+ uint32_t size); |
+ |
+} // namespace remoting |
+} // namespace media |
+ |
+#endif // MEDIA_REMOTING_RPC_DECODER_BUFFER_SEGMENT_H_ |