1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
// Copyright (c) the JPEG XL 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.
#ifndef LIB_JXL_ENC_FILE_H_
#define LIB_JXL_ENC_FILE_H_
// Facade for JXL encoding.
#include "lib/jxl/aux_out.h"
#include "lib/jxl/aux_out_fwd.h"
#include "lib/jxl/base/data_parallel.h"
#include "lib/jxl/base/padded_bytes.h"
#include "lib/jxl/base/status.h"
#include "lib/jxl/codec_in_out.h"
#include "lib/jxl/enc_cache.h"
#include "lib/jxl/enc_params.h"
namespace jxl {
// Write preview from `io`.
Status EncodePreview(const CompressParams& cparams, const ImageBundle& ib,
const CodecMetadata* metadata, ThreadPool* pool,
BitWriter* JXL_RESTRICT writer);
// Write headers from the CodecMetadata. Also may modify nonserialized_...
// fields of the metadata.
Status WriteHeaders(CodecMetadata* metadata, BitWriter* writer,
AuxOut* aux_out);
// Compresses pixels from `io` (given in any ColorEncoding).
// `io->metadata.m.original` must be set.
Status EncodeFile(const CompressParams& params, const CodecInOut* io,
PassesEncoderState* passes_enc_state, PaddedBytes* compressed,
AuxOut* aux_out = nullptr, ThreadPool* pool = nullptr);
// Backwards-compatible interface. Don't use in new code.
// TODO(deymo): Remove this function once we migrate users to C encoder API.
struct FrameEncCache {};
JXL_INLINE Status EncodeFile(const CompressParams& params, const CodecInOut* io,
FrameEncCache* /* unused */,
PaddedBytes* compressed, AuxOut* aux_out = nullptr,
ThreadPool* pool = nullptr) {
PassesEncoderState passes_enc_state;
return EncodeFile(params, io, &passes_enc_state, compressed, aux_out, pool);
}
} // namespace jxl
#endif // LIB_JXL_ENC_FILE_H_
|