1 // Copyright (c) 2016 The WebM project authors. All Rights Reserved. 2 // 3 // Use of this source code is governed by a BSD-style license 4 // that can be found in the LICENSE file in the root of the source 5 // tree. An additional intellectual property rights grant can be found 6 // in the file PATENTS. All contributing project authors may 7 // be found in the AUTHORS file in the root of the source tree. 8 #ifndef SRC_CONTENT_ENCODING_PARSER_H_ 9 #define SRC_CONTENT_ENCODING_PARSER_H_ 10 11 #include "src/content_encryption_parser.h" 12 #include "src/int_parser.h" 13 #include "src/master_value_parser.h" 14 #include "webm/dom_types.h" 15 #include "webm/id.h" 16 17 namespace webm { 18 19 // Spec reference: 20 // http://matroska.org/technical/specs/index.html#ContentEncoding 21 // http://www.webmproject.org/docs/container/#ContentEncoding 22 class ContentEncodingParser : public MasterValueParser<ContentEncoding> { 23 public: ContentEncodingParser()24 ContentEncodingParser() 25 : MasterValueParser<ContentEncoding>( 26 MakeChild<UnsignedIntParser>(Id::kContentEncodingOrder, 27 &ContentEncoding::order), 28 MakeChild<UnsignedIntParser>(Id::kContentEncodingScope, 29 &ContentEncoding::scope), 30 MakeChild<IntParser<ContentEncodingType>>(Id::kContentEncodingType, 31 &ContentEncoding::type), 32 MakeChild<ContentEncryptionParser>(Id::kContentEncryption, 33 &ContentEncoding::encryption)) {} 34 }; 35 36 } // namespace webm 37 38 #endif // SRC_CONTENT_ENCODING_PARSER_H_ 39