enc_fields.h (1188B)
1 // Copyright (c) the JPEG XL Project Authors. All rights reserved. 2 // 3 // Use of this source code is governed by a BSD-style 4 // license that can be found in the LICENSE file. 5 6 #ifndef LIB_JXL_ENC_FIELDS_H_ 7 #define LIB_JXL_ENC_FIELDS_H_ 8 9 #include "lib/jxl/base/status.h" 10 #include "lib/jxl/enc_bit_writer.h" 11 #include "lib/jxl/frame_header.h" 12 #include "lib/jxl/headers.h" 13 #include "lib/jxl/image_metadata.h" 14 #include "lib/jxl/quantizer.h" 15 16 namespace jxl { 17 18 struct AuxOut; 19 20 // Write headers from the CodecMetadata. Also may modify nonserialized_... 21 // fields of the metadata. 22 Status WriteCodestreamHeaders(CodecMetadata* metadata, BitWriter* writer, 23 AuxOut* aux_out); 24 25 Status WriteFrameHeader(const FrameHeader& frame, 26 BitWriter* JXL_RESTRICT writer, AuxOut* aux_out); 27 28 Status WriteQuantizerParams(const QuantizerParams& params, 29 BitWriter* JXL_RESTRICT writer, size_t layer, 30 AuxOut* aux_out); 31 32 Status WriteSizeHeader(const SizeHeader& size, BitWriter* JXL_RESTRICT writer, 33 size_t layer, AuxOut* aux_out); 34 35 } // namespace jxl 36 37 #endif // LIB_JXL_ENC_FIELDS_H_