Index: trunk/src/VBox/Main/src-client/EbmlIDs.h
===================================================================
--- trunk/src/VBox/Main/src-client/EbmlIDs.h	(revision 63160)
+++ trunk/src/VBox/Main/src-client/EbmlIDs.h	(revision 63160)
@@ -0,0 +1,246 @@
+/* $Id$ */
+/** @file
+ * EbmlIDs.h - Matroska EBML Class IDs.
+ */
+
+/*
+ * Copyright (C) 2013-2016 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ *
+ * This code is based on:
+ *
+ * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
+ *
+ * Use of this source code is governed by a BSD-style license
+ * that can be found in the LICENSE file in the root of the source
+ * tree. An additional intellectual property rights grant can be found
+ * in the file PATENTS.  All contributing project authors may
+ * be found in the AUTHORS file in the root of the source tree.
+ */
+
+
+/** Matroska EBML Class IDs supported by WebM */
+enum Mkv
+{
+    EBML = 0x1A45DFA3,
+    EBMLVersion = 0x4286,
+    EBMLReadVersion = 0x42F7,
+    EBMLMaxIDLength = 0x42F2,
+    EBMLMaxSizeLength = 0x42F3,
+    DocType = 0x4282,
+    DocTypeVersion = 0x4287,
+    DocTypeReadVersion = 0x4285,
+//  CRC_32 = 0xBF,
+    Void = 0xEC,
+    SignatureSlot = 0x1B538667,
+    SignatureAlgo = 0x7E8A,
+    SignatureHash = 0x7E9A,
+    SignaturePublicKey = 0x7EA5,
+    Signature = 0x7EB5,
+    SignatureElements = 0x7E5B,
+    SignatureElementList = 0x7E7B,
+    SignedElement = 0x6532,
+    //segment
+    Segment = 0x18538067,
+    //Meta Seek Information
+    SeekHead = 0x114D9B74,
+    Seek = 0x4DBB,
+    SeekID = 0x53AB,
+    SeekPosition = 0x53AC,
+    //Segment Information
+    Info = 0x1549A966,
+//  SegmentUID = 0x73A4,
+//  SegmentFilename = 0x7384,
+//  PrevUID = 0x3CB923,
+//  PrevFilename = 0x3C83AB,
+//  NextUID = 0x3EB923,
+//  NextFilename = 0x3E83BB,
+//  SegmentFamily = 0x4444,
+//  ChapterTranslate = 0x6924,
+//  ChapterTranslateEditionUID = 0x69FC,
+//  ChapterTranslateCodec = 0x69BF,
+//  ChapterTranslateID = 0x69A5,
+    TimecodeScale = 0x2AD7B1,
+    Segment_Duration = 0x4489,
+    DateUTC = 0x4461,
+//  Title = 0x7BA9,
+    MuxingApp = 0x4D80,
+    WritingApp = 0x5741,
+    //Cluster
+    Cluster = 0x1F43B675,
+    Timecode = 0xE7,
+//  SilentTracks = 0x5854,
+//  SilentTrackNumber = 0x58D7,
+//  Position = 0xA7,
+    PrevSize = 0xAB,
+    BlockGroup = 0xA0,
+    Block = 0xA1,
+//  BlockVirtual = 0xA2,
+//  BlockAdditions = 0x75A1,
+//  BlockMore = 0xA6,
+//  BlockAddID = 0xEE,
+//  BlockAdditional = 0xA5,
+    BlockDuration = 0x9B,
+//  ReferencePriority = 0xFA,
+    ReferenceBlock = 0xFB,
+//  ReferenceVirtual = 0xFD,
+//  CodecState = 0xA4,
+//  Slices = 0x8E,
+//  TimeSlice = 0xE8,
+    LaceNumber = 0xCC,
+//  FrameNumber = 0xCD,
+//  BlockAdditionID = 0xCB,
+//  MkvDelay = 0xCE,
+//  Cluster_Duration = 0xCF,
+    SimpleBlock = 0xA3,
+//  EncryptedBlock = 0xAF,
+    //Track
+    Tracks = 0x1654AE6B,
+    TrackEntry = 0xAE,
+    TrackNumber = 0xD7,
+    TrackUID = 0x73C5,
+    TrackType = 0x83,
+    FlagEnabled = 0xB9,
+    FlagDefault = 0x88,
+    FlagForced = 0x55AA,
+    FlagLacing = 0x9C,
+//  MinCache = 0x6DE7,
+//  MaxCache = 0x6DF8,
+    DefaultDuration = 0x23E383,
+//  TrackTimecodeScale = 0x23314F,
+//  TrackOffset = 0x537F,
+//  MaxBlockAdditionID = 0x55EE,
+    Name = 0x536E,
+    Language = 0x22B59C,
+    CodecID = 0x86,
+    CodecPrivate = 0x63A2,
+    CodecName = 0x258688,
+//  AttachmentLink = 0x7446,
+//  CodecSettings = 0x3A9697,
+//  CodecInfoURL = 0x3B4040,
+//  CodecDownloadURL = 0x26B240,
+//  CodecDecodeAll = 0xAA,
+//  TrackOverlay = 0x6FAB,
+//  TrackTranslate = 0x6624,
+//  TrackTranslateEditionUID = 0x66FC,
+//  TrackTranslateCodec = 0x66BF,
+//  TrackTranslateTrackID = 0x66A5,
+    //video
+    Video = 0xE0,
+    FlagInterlaced = 0x9A,
+//  StereoMode = 0x53B8,
+    PixelWidth = 0xB0,
+    PixelHeight = 0xBA,
+    PixelCropBottom = 0x54AA,
+    PixelCropTop = 0x54BB,
+    PixelCropLeft = 0x54CC,
+    PixelCropRight = 0x54DD,
+    DisplayWidth = 0x54B0,
+    DisplayHeight = 0x54BA,
+    DisplayUnit = 0x54B2,
+    AspectRatioType = 0x54B3,
+//  ColourSpace = 0x2EB524,
+//  GammaValue = 0x2FB523,
+    FrameRate = 0x2383E3,
+    //end video
+    //audio
+    Audio = 0xE1,
+    SamplingFrequency = 0xB5,
+    OutputSamplingFrequency = 0x78B5,
+    Channels = 0x9F,
+//  ChannelPositions = 0x7D7B,
+    BitDepth = 0x6264,
+    //end audio
+    //content encoding
+//  ContentEncodings = 0x6d80,
+//  ContentEncoding = 0x6240,
+//  ContentEncodingOrder = 0x5031,
+//  ContentEncodingScope = 0x5032,
+//  ContentEncodingType = 0x5033,
+//  ContentCompression = 0x5034,
+//  ContentCompAlgo = 0x4254,
+//  ContentCompSettings = 0x4255,
+//  ContentEncryption = 0x5035,
+//  ContentEncAlgo = 0x47e1,
+//  ContentEncKeyID = 0x47e2,
+//  ContentSignature = 0x47e3,
+//  ContentSigKeyID = 0x47e4,
+//  ContentSigAlgo = 0x47e5,
+//  ContentSigHashAlgo = 0x47e6,
+    //end content encoding
+    //Cueing Data
+    Cues = 0x1C53BB6B,
+    CuePoint = 0xBB,
+    CueTime = 0xB3,
+    CueTrackPositions = 0xB7,
+    CueTrack = 0xF7,
+    CueClusterPosition = 0xF1,
+    CueBlockNumber = 0x5378
+//  CueCodecState = 0xEA,
+//  CueReference = 0xDB,
+//  CueRefTime = 0x96,
+//  CueRefCluster = 0x97,
+//  CueRefNumber = 0x535F,
+//  CueRefCodecState = 0xEB,
+    //Attachment
+//  Attachments = 0x1941A469,
+//  AttachedFile = 0x61A7,
+//  FileDescription = 0x467E,
+//  FileName = 0x466E,
+//  FileMimeType = 0x4660,
+//  FileData = 0x465C,
+//  FileUID = 0x46AE,
+//  FileReferral = 0x4675,
+    //Chapters
+//  Chapters = 0x1043A770,
+//  EditionEntry = 0x45B9,
+//  EditionUID = 0x45BC,
+//  EditionFlagHidden = 0x45BD,
+//  EditionFlagDefault = 0x45DB,
+//  EditionFlagOrdered = 0x45DD,
+//  ChapterAtom = 0xB6,
+//  ChapterUID = 0x73C4,
+//  ChapterTimeStart = 0x91,
+//  ChapterTimeEnd = 0x92,
+//  ChapterFlagHidden = 0x98,
+//  ChapterFlagEnabled = 0x4598,
+//  ChapterSegmentUID = 0x6E67,
+//  ChapterSegmentEditionUID = 0x6EBC,
+//  ChapterPhysicalEquiv = 0x63C3,
+//  ChapterTrack = 0x8F,
+//  ChapterTrackNumber = 0x89,
+//  ChapterDisplay = 0x80,
+//  ChapString = 0x85,
+//  ChapLanguage = 0x437C,
+//  ChapCountry = 0x437E,
+//  ChapProcess = 0x6944,
+//  ChapProcessCodecID = 0x6955,
+//  ChapProcessPrivate = 0x450D,
+//  ChapProcessCommand = 0x6911,
+//  ChapProcessTime = 0x6922,
+//  ChapProcessData = 0x6933,
+    //Tagging
+//  Tags = 0x1254C367,
+//  Tag = 0x7373,
+//  Targets = 0x63C0,
+//  TargetTypeValue = 0x68CA,
+//  TargetType = 0x63CA,
+//  Tagging_TrackUID = 0x63C5,
+//  Tagging_EditionUID = 0x63C9,
+//  Tagging_ChapterUID = 0x63C4,
+//  AttachmentUID = 0x63C6,
+//  SimpleTag = 0x67C8,
+//  TagName = 0x45A3,
+//  TagLanguage = 0x447A,
+//  TagDefault = 0x4484,
+//  TagString = 0x4487,
+//  TagBinary = 0x4485,
+};
Index: trunk/src/VBox/Main/src-client/EbmlWriter.cpp
===================================================================
--- trunk/src/VBox/Main/src-client/EbmlWriter.cpp	(revision 63159)
+++ trunk/src/VBox/Main/src-client/EbmlWriter.cpp	(revision 63160)
@@ -16,15 +16,4 @@
  */
 
-/*
- * This code is based on:
- *
- * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS.  All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
 
 #include <list>
@@ -37,222 +26,6 @@
 #include <VBox/log.h>
 #include "EbmlWriter.h"
-
-/* Matroska EBML Class IDs supported by WebM */
- enum Mkv
- {
-     EBML = 0x1A45DFA3,
-     EBMLVersion = 0x4286,
-     EBMLReadVersion = 0x42F7,
-     EBMLMaxIDLength = 0x42F2,
-     EBMLMaxSizeLength = 0x42F3,
-     DocType = 0x4282,
-     DocTypeVersion = 0x4287,
-     DocTypeReadVersion = 0x4285,
- //  CRC_32 = 0xBF,
-     Void = 0xEC,
-     SignatureSlot = 0x1B538667,
-     SignatureAlgo = 0x7E8A,
-     SignatureHash = 0x7E9A,
-     SignaturePublicKey = 0x7EA5,
-     Signature = 0x7EB5,
-     SignatureElements = 0x7E5B,
-     SignatureElementList = 0x7E7B,
-     SignedElement = 0x6532,
-     //segment
-     Segment = 0x18538067,
-     //Meta Seek Information
-     SeekHead = 0x114D9B74,
-     Seek = 0x4DBB,
-     SeekID = 0x53AB,
-     SeekPosition = 0x53AC,
-     //Segment Information
-     Info = 0x1549A966,
- //  SegmentUID = 0x73A4,
- //  SegmentFilename = 0x7384,
- //  PrevUID = 0x3CB923,
- //  PrevFilename = 0x3C83AB,
- //  NextUID = 0x3EB923,
- //  NextFilename = 0x3E83BB,
- //  SegmentFamily = 0x4444,
- //  ChapterTranslate = 0x6924,
- //  ChapterTranslateEditionUID = 0x69FC,
- //  ChapterTranslateCodec = 0x69BF,
- //  ChapterTranslateID = 0x69A5,
-     TimecodeScale = 0x2AD7B1,
-     Segment_Duration = 0x4489,
-     DateUTC = 0x4461,
- //  Title = 0x7BA9,
-     MuxingApp = 0x4D80,
-     WritingApp = 0x5741,
-     //Cluster
-     Cluster = 0x1F43B675,
-     Timecode = 0xE7,
- //  SilentTracks = 0x5854,
- //  SilentTrackNumber = 0x58D7,
- //  Position = 0xA7,
-     PrevSize = 0xAB,
-     BlockGroup = 0xA0,
-     Block = 0xA1,
- //  BlockVirtual = 0xA2,
- //  BlockAdditions = 0x75A1,
- //  BlockMore = 0xA6,
- //  BlockAddID = 0xEE,
- //  BlockAdditional = 0xA5,
-     BlockDuration = 0x9B,
- //  ReferencePriority = 0xFA,
-     ReferenceBlock = 0xFB,
- //  ReferenceVirtual = 0xFD,
- //  CodecState = 0xA4,
- //  Slices = 0x8E,
- //  TimeSlice = 0xE8,
-     LaceNumber = 0xCC,
- //  FrameNumber = 0xCD,
- //  BlockAdditionID = 0xCB,
- //  MkvDelay = 0xCE,
- //  Cluster_Duration = 0xCF,
-     SimpleBlock = 0xA3,
- //  EncryptedBlock = 0xAF,
-     //Track
-     Tracks = 0x1654AE6B,
-     TrackEntry = 0xAE,
-     TrackNumber = 0xD7,
-     TrackUID = 0x73C5,
-     TrackType = 0x83,
-     FlagEnabled = 0xB9,
-     FlagDefault = 0x88,
-     FlagForced = 0x55AA,
-     FlagLacing = 0x9C,
- //  MinCache = 0x6DE7,
- //  MaxCache = 0x6DF8,
-     DefaultDuration = 0x23E383,
- //  TrackTimecodeScale = 0x23314F,
- //  TrackOffset = 0x537F,
- //  MaxBlockAdditionID = 0x55EE,
-     Name = 0x536E,
-     Language = 0x22B59C,
-     CodecID = 0x86,
-     CodecPrivate = 0x63A2,
-     CodecName = 0x258688,
- //  AttachmentLink = 0x7446,
- //  CodecSettings = 0x3A9697,
- //  CodecInfoURL = 0x3B4040,
- //  CodecDownloadURL = 0x26B240,
- //  CodecDecodeAll = 0xAA,
- //  TrackOverlay = 0x6FAB,
- //  TrackTranslate = 0x6624,
- //  TrackTranslateEditionUID = 0x66FC,
- //  TrackTranslateCodec = 0x66BF,
- //  TrackTranslateTrackID = 0x66A5,
-     //video
-     Video = 0xE0,
-     FlagInterlaced = 0x9A,
- //  StereoMode = 0x53B8,
-     PixelWidth = 0xB0,
-     PixelHeight = 0xBA,
-     PixelCropBottom = 0x54AA,
-     PixelCropTop = 0x54BB,
-     PixelCropLeft = 0x54CC,
-     PixelCropRight = 0x54DD,
-     DisplayWidth = 0x54B0,
-     DisplayHeight = 0x54BA,
-     DisplayUnit = 0x54B2,
-     AspectRatioType = 0x54B3,
- //  ColourSpace = 0x2EB524,
- //  GammaValue = 0x2FB523,
-     FrameRate = 0x2383E3,
-     //end video
-     //audio
-     Audio = 0xE1,
-     SamplingFrequency = 0xB5,
-     OutputSamplingFrequency = 0x78B5,
-     Channels = 0x9F,
- //  ChannelPositions = 0x7D7B,
-     BitDepth = 0x6264,
-     //end audio
-     //content encoding
- //  ContentEncodings = 0x6d80,
- //  ContentEncoding = 0x6240,
- //  ContentEncodingOrder = 0x5031,
- //  ContentEncodingScope = 0x5032,
- //  ContentEncodingType = 0x5033,
- //  ContentCompression = 0x5034,
- //  ContentCompAlgo = 0x4254,
- //  ContentCompSettings = 0x4255,
- //  ContentEncryption = 0x5035,
- //  ContentEncAlgo = 0x47e1,
- //  ContentEncKeyID = 0x47e2,
- //  ContentSignature = 0x47e3,
- //  ContentSigKeyID = 0x47e4,
- //  ContentSigAlgo = 0x47e5,
- //  ContentSigHashAlgo = 0x47e6,
-     //end content encoding
-     //Cueing Data
-     Cues = 0x1C53BB6B,
-     CuePoint = 0xBB,
-     CueTime = 0xB3,
-     CueTrackPositions = 0xB7,
-     CueTrack = 0xF7,
-     CueClusterPosition = 0xF1,
-     CueBlockNumber = 0x5378
- //  CueCodecState = 0xEA,
- //  CueReference = 0xDB,
- //  CueRefTime = 0x96,
- //  CueRefCluster = 0x97,
- //  CueRefNumber = 0x535F,
- //  CueRefCodecState = 0xEB,
-     //Attachment
- //  Attachments = 0x1941A469,
- //  AttachedFile = 0x61A7,
- //  FileDescription = 0x467E,
- //  FileName = 0x466E,
- //  FileMimeType = 0x4660,
- //  FileData = 0x465C,
- //  FileUID = 0x46AE,
- //  FileReferral = 0x4675,
-     //Chapters
- //  Chapters = 0x1043A770,
- //  EditionEntry = 0x45B9,
- //  EditionUID = 0x45BC,
- //  EditionFlagHidden = 0x45BD,
- //  EditionFlagDefault = 0x45DB,
- //  EditionFlagOrdered = 0x45DD,
- //  ChapterAtom = 0xB6,
- //  ChapterUID = 0x73C4,
- //  ChapterTimeStart = 0x91,
- //  ChapterTimeEnd = 0x92,
- //  ChapterFlagHidden = 0x98,
- //  ChapterFlagEnabled = 0x4598,
- //  ChapterSegmentUID = 0x6E67,
- //  ChapterSegmentEditionUID = 0x6EBC,
- //  ChapterPhysicalEquiv = 0x63C3,
- //  ChapterTrack = 0x8F,
- //  ChapterTrackNumber = 0x89,
- //  ChapterDisplay = 0x80,
- //  ChapString = 0x85,
- //  ChapLanguage = 0x437C,
- //  ChapCountry = 0x437E,
- //  ChapProcess = 0x6944,
- //  ChapProcessCodecID = 0x6955,
- //  ChapProcessPrivate = 0x450D,
- //  ChapProcessCommand = 0x6911,
- //  ChapProcessTime = 0x6922,
- //  ChapProcessData = 0x6933,
-     //Tagging
- //  Tags = 0x1254C367,
- //  Tag = 0x7373,
- //  Targets = 0x63C0,
- //  TargetTypeValue = 0x68CA,
- //  TargetType = 0x63CA,
- //  Tagging_TrackUID = 0x63C5,
- //  Tagging_EditionUID = 0x63C9,
- //  Tagging_ChapterUID = 0x63C4,
- //  AttachmentUID = 0x63C6,
- //  SimpleTag = 0x67C8,
- //  TagName = 0x45A3,
- //  TagLanguage = 0x447A,
- //  TagDefault = 0x4484,
- //  TagString = 0x4487,
- //  TagBinary = 0x4485,
- };
+#include "EbmlIDs.h"
+
 
 class Ebml
@@ -275,5 +48,5 @@
 public:
 
-    /* Creates EBML output file. */
+    /** Creates EBML output file. */
     inline int create(const char *a_pszFilename)
     {
@@ -281,5 +54,5 @@
     }
 
-    /* Returns file size. */
+    /** Returns file size. */
     inline uint64_t getFileSize()
     {
@@ -287,5 +60,5 @@
     }
 
-    /* Get reference to file descriptor */
+    /** Get reference to file descriptor */
     inline const RTFILE &getFile()
     {
@@ -293,5 +66,5 @@
     }
 
-    /* Returns available space on storage. */
+    /** Returns available space on storage. */
     inline uint64_t getAvailableSpace()
     {
@@ -301,5 +74,5 @@
     }
 
-    /* Closes the file. */
+    /** Closes the file. */
     inline void close()
     {
@@ -307,5 +80,5 @@
     }
 
-    /* Starts an EBML sub-element. */
+    /** Starts an EBML sub-element. */
     inline Ebml &subStart(EbmlClassId classId)
     {
@@ -320,5 +93,5 @@
     }
 
-    /* Ends an EBML sub-element. */
+    /** Ends an EBML sub-element. */
     inline Ebml &subEnd(EbmlClassId classId)
     {
@@ -339,5 +112,5 @@
     }
 
-    /* Serializes a null-terminated string. */
+    /** Serializes a null-terminated string. */
     inline Ebml &serializeString(EbmlClassId classId, const char *str)
     {
@@ -360,5 +133,6 @@
     }
 
-    /* Serializes a floating point value.
+    /** Serializes a floating point value.
+     *
      * Only 8-bytes double precision values are supported
      * by this function.
@@ -372,5 +146,5 @@
     }
 
-    /* Writes raw data to file. */
+    /** Writes raw data to file. */
     inline void write(const void *data, size_t size)
     {
@@ -379,5 +153,5 @@
     }
 
-    /* Writes an unsigned integer of variable of fixed size. */
+    /** Writes an unsigned integer of variable of fixed size. */
     inline void writeUnsignedInteger(uint64_t value, size_t size = sizeof(uint64_t))
     {
@@ -387,5 +161,6 @@
     }
 
-    /* Writes EBML class ID to file.
+    /** Writes EBML class ID to file.
+     *
      * EBML ID already has a UTF8-like represenation
      * so getSizeOfUInt is used to determine
@@ -397,5 +172,5 @@
     }
 
-    /* Writes data size value. */
+    /** Writes data size value. */
     inline void writeSize(uint64_t parm)
     {
@@ -419,5 +194,7 @@
         writeUnsignedInteger((parm & (((mask << 1) - 1) >> size)) | (mask >> (size - 1)), size);
     }
-    /* Size calculation for variable size UNSIGNED integer.
+
+    /** Size calculation for variable size UNSIGNED integer.
+     *
      * The function defines the size of the number by trimming
      * consequent trailing zero bytes starting from the most significant.
@@ -730,2 +507,3 @@
     return m_Impl->m_Ebml.getAvailableSpace();
 }
+
Index: trunk/src/VBox/Main/src-client/EbmlWriter.h
===================================================================
--- trunk/src/VBox/Main/src-client/EbmlWriter.h	(revision 63159)
+++ trunk/src/VBox/Main/src-client/EbmlWriter.h	(revision 63160)
@@ -16,20 +16,15 @@
  */
 
-/*
- * This code is based on:
- *
- * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS.  All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
 #ifndef ____EBMLWRITER
 #define ____EBMLWRITER
 
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 4668) /* vpx_codec.h(64) : warning C4668: '__GNUC__' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' */
 #include <vpx/vpx_encoder.h>
+# pragma warning(pop)
+#else
+# include <vpx/vpx_encoder.h>
+#endif
 
 class WebMWriter_Impl;
@@ -41,5 +36,5 @@
     virtual ~WebMWriter();
 
-    /* Creates output file
+    /** Creates output file
      *
      * @param   a_pszFilename   Name of the file to create.
@@ -51,5 +46,6 @@
     void close();
 
-    /* Writes WebM header to file.
+    /** Writes WebM header to file.
+     *
      * Should be called before any writeBlock call.
      *
@@ -61,5 +57,5 @@
     int writeHeader(const vpx_codec_enc_cfg_t *a_pCfg, const vpx_rational *a_pFps);
 
-    /* Writes a block of compressed data
+    /** Writes a block of compressed data
      *
      * @param a_pCfg Pointer to VPX Codec configuration structure.
@@ -70,6 +66,8 @@
     int writeBlock(const vpx_codec_enc_cfg_t *a_pCfg, const vpx_codec_cx_pkt_t *a_pPkt);
 
-    /* Writes WebM footer.
+    /** Writes WebM footer.
+     *
      * No other write functions should be called after this one.
+     *
      * @param a_u64Hash Hash value for the data written.
      *
@@ -78,10 +76,11 @@
     int writeFooter(uint32_t a_u64Hash);
 
-    /* Gets current output file size.
+    /** Gets current output file size.
+     *
      * @returns File size in bytes.
      */
     uint64_t getFileSize();
 
-    /* Gets current free storage space
+    /** Gets current free storage space
      * available for the file.
      *
@@ -91,11 +90,9 @@
 
 private:
-    /* WebMWriter implementation.
+    /** WebMWriter implementation.
      * To isolate some include files */
     WebMWriter_Impl *m_Impl;
 
-    /* Not defined */
-    void operator=(const WebMWriter &);
-    WebMWriter(const WebMWriter &);
+    DECLARE_CLS_COPY_CTOR_ASSIGN_NOOP(WebMWriter);
 };
 
