Bug 1288618 - Part 5: Add IPC serialization helpers for some media structs/enums. r=dvander
☠☠ backed out by 975f2a57e36d ☠ ☠
authorMatt Woodrow <mwoodrow@mozilla.com>
Thu, 15 Sep 2016 23:17:59 +1200
changeset 357561 ddaa7f107193bb1c9478c2d1838047936e30a827
parent 357560 5b279f726a5ec159b0b4453940c2af8b89452c8f
child 357562 fdee8d1538b02a69595f2c715cb9b93e9747c008
push id1324
push usermtabara@mozilla.com
push dateMon, 16 Jan 2017 13:07:44 +0000
treeherdermozilla-release@a01c49833940 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdvander
bugs1288618
milestone51.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1288618 - Part 5: Add IPC serialization helpers for some media structs/enums. r=dvander
dom/media/ipc/MediaIPCUtils.h
new file mode 100644
--- /dev/null
+++ b/dom/media/ipc/MediaIPCUtils.h
@@ -0,0 +1,48 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef mozilla_dom_media_MediaIPCUtils_h
+#define mozilla_dom_media_MediaIPCUtils_h
+
+#include "ipc/IPCMessageUtils.h"
+#include "mozilla/GfxMessageUtils.h"
+#include "PlatformDecoderModule.h"
+
+namespace IPC {
+  template<>
+  struct ParamTraits<mozilla::VideoInfo>
+  {
+    typedef mozilla::VideoInfo paramType;
+
+    static void Write(Message* aMsg, const paramType& aParam)
+    {
+      // TrackInfo
+      WriteParam(aMsg, aParam.mMimeType);
+
+      // VideoInfo
+      WriteParam(aMsg, aParam.mDisplay);
+      WriteParam(aMsg, aParam.mStereoMode);
+      WriteParam(aMsg, aParam.mImage);
+      WriteParam(aMsg, aParam.ImageRect());
+    }
+
+    static bool Read(const Message* aMsg, PickleIterator* aIter, paramType* aResult)
+    {
+      nsIntRect imageRect;
+      if (ReadParam(aMsg, aIter, &aResult->mMimeType) &&
+          ReadParam(aMsg, aIter, &aResult->mDisplay) &&
+          ReadParam(aMsg, aIter, &aResult->mStereoMode) &&
+          ReadParam(aMsg, aIter, &aResult->mImage) &&
+          ReadParam(aMsg, aIter, &imageRect)) {
+        aResult->SetImageRect(imageRect);
+        return true;
+      }
+      return false;
+    }
+  };
+} // namespace IPC
+
+#endif // mozilla_dom_media_MediaIPCUtils_h