Index: chrome/common/gpu_video_common.h |
diff --git a/chrome/common/gpu_video_common.h b/chrome/common/gpu_video_common.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..34974a60255a1cbf62e5f99df4259542d4741e7d |
--- /dev/null |
+++ b/chrome/common/gpu_video_common.h |
@@ -0,0 +1,172 @@ |
+// Copyright (c) 2010 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 CHROME_COMMON_GPU_VIDEO_COMMON_H_ |
+#define CHROME_COMMON_GPU_VIDEO_COMMON_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/shared_memory.h" |
+#include "chrome/common/common_param_traits.h" |
+ |
+class GpuVideoServiceInfoParam { |
+ public: |
+ // route id for GpuVideoService on GPU process side for this channel. |
+ int32 video_service_route_id_; |
+ // route id for GpuVideoServiceHost on Render process side for this channel. |
+ int32 video_service_host_route_id_; |
+ // TODO(jiesun): define capabilities of video service. |
+ int32 service_available_; |
+}; |
+ |
+class GpuVideoDecoderInfoParam { |
+ public: |
+ // global decoder id. |
+ int32 decoder_id_; |
+ // route id for GpuVideoDecoder on GPU process side for this channel. |
+ int32 decoder_route_id_; |
+ // route id for GpuVideoServiceHost on Render process side for this channel. |
+ int32 decoder_host_route_id_; |
+}; |
+ |
+class GpuVideoDecoderInitParam { |
+ public: |
+ int32 codec_id_; |
+ int32 width_; |
+ int32 height_; |
+ int32 profile_; |
+ int32 level_; |
+ int32 frame_rate_den_; |
+ int32 frame_rate_num_; |
+ int32 aspect_ratio_den_; |
+ int32 aspect_ratio_num_; |
+}; |
+ |
+class GpuVideoDecoderInitDoneParam { |
+ public: |
+ enum SurfaceType { |
+ SurfaceTypeSystemMemory, |
+ SurfaceTypeD3D, |
+ SurfaceTypeEGLImage, |
+ }; |
+ enum SurfaceFormat { |
+ SurfaceFormat_YV12, |
+ SurfaceFormat_NV12, |
+ SurfaceFormat_XRGB, |
+ }; |
+ int32 success_; // other parameter is only meaningful when this is true. |
+ int32 provides_buffer; |
+ int32 format_; |
+ int32 surface_type_; |
+ int32 stride_; |
+ int32 input_buffer_size_; |
+ int32 output_buffer_size_; |
+ base::SharedMemoryHandle input_buffer_handle_; |
+ // we do not need this if hardware composition is ready. |
+ base::SharedMemoryHandle output_buffer_handle_; |
+}; |
+ |
+class GpuVideoDecoderInputBufferParam { |
+ public: |
+ int64 timestamp_; // In unit of microseconds. |
+ int32 offset_; |
+ int32 size_; |
+ int32 flags_; // miscellaneous flag bit mask |
+}; |
+ |
+class GpuVideoDecoderOutputBufferParam { |
+ public: |
+ int64 timestamp_; // In unit of microseconds. |
+ int64 duration_; // In unit of microseconds. |
+ int32 flags_; // miscellaneous flag bit mask |
+ |
+ enum { |
+ kFlagsEndOfStream = 0x00000001, |
+ kFlagsDiscontinuous = 0x00000002, |
+ }; |
+}; |
+ |
+class GpuVideoDecoderErrorInfoParam { |
+ public: |
+ int32 error_id; // TODO(jiesun): define enum. |
+}; |
+ |
+// TODO(jiesun): define this. |
+class GpuVideoDecoderFormatChangeParam { |
+ public: |
+ int32 stride_; |
+ int32 input_buffer_size_; |
+ int32 output_buffer_size_; |
+ base::SharedMemoryHandle input_buffer_handle_; |
+ base::SharedMemoryHandle output_buffer_handle_; |
+}; |
+ |
+namespace IPC { |
+ |
+template <> |
+struct ParamTraits<GpuVideoServiceInfoParam> { |
+ typedef GpuVideoServiceInfoParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+ |
+template <> |
+struct ParamTraits<GpuVideoDecoderInfoParam> { |
+ typedef GpuVideoDecoderInfoParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+ |
+template <> |
+struct ParamTraits<GpuVideoDecoderInitParam> { |
+ typedef GpuVideoDecoderInitParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+ |
+template <> |
+struct ParamTraits<GpuVideoDecoderInitDoneParam> { |
+ typedef GpuVideoDecoderInitDoneParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+ |
+template <> |
+struct ParamTraits<GpuVideoDecoderInputBufferParam> { |
+ typedef GpuVideoDecoderInputBufferParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+ |
+template <> |
+struct ParamTraits<GpuVideoDecoderOutputBufferParam> { |
+ typedef GpuVideoDecoderOutputBufferParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+ |
+template <> |
+struct ParamTraits<GpuVideoDecoderErrorInfoParam> { |
+ typedef GpuVideoDecoderErrorInfoParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+ |
+template <> |
+struct ParamTraits<GpuVideoDecoderFormatChangeParam> { |
+ typedef GpuVideoDecoderFormatChangeParam param_type; |
+ static void Write(Message* m, const param_type& p); |
+ static bool Read(const Message* m, void** iter, param_type* r); |
+ static void Log(const param_type& p, std::wstring* l); |
+}; |
+}; |
+ |
+#endif // CHROME_COMMON_GPU_VIDEO_COMMON_H_ |
+ |