digiKam
heif_plugin_registry.h
Go to the documentation of this file.
1 /*
2  * HEIF codec.
3  * Copyright (c) 2017 struktur AG, Dirk Farin <farin@struktur.de>
4  *
5  * This file is part of libheif.
6  *
7  * libheif is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU Lesser General Public License as
9  * published by the Free Software Foundation, either version 3 of
10  * the License, or (at your option) any later version.
11  *
12  * libheif is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with libheif. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef LIBHEIF_HEIF_PLUGIN_REGISTRY_H
22 #define LIBHEIF_HEIF_PLUGIN_REGISTRY_H
23 
24 #include <map>
25 #include <memory>
26 #include <set>
27 #include <string>
28 #include <vector>
29 
30 #include "error.h"
31 
32 #include "heif.h"
33 #include "heif_plugin.h"
34 
35 
37 {
38  const struct heif_encoder_plugin* plugin;
39 
40  const char* get_name() const { return plugin->get_plugin_name(); }
42 };
43 
44 
45 namespace heif {
46 
47  extern std::set<const struct heif_decoder_plugin*> s_decoder_plugins;
48 
49  void register_decoder(const heif_decoder_plugin* decoder_plugin);
50 
51  void register_encoder(const heif_encoder_plugin* encoder_plugin);
52 
54 
56 
57  std::vector<const struct heif_encoder_descriptor*>
59  const char* name);
60 }
61 
62 #endif
heif_compression_format
Definition: heif.h:715
Definition: bitstream.h:41
const struct heif_decoder_plugin * get_decoder(enum heif_compression_format type)
std::set< const struct heif_decoder_plugin * > s_decoder_plugins
std::vector< const struct heif_encoder_descriptor * > get_filtered_encoder_descriptors(enum heif_compression_format, const char *name)
void register_decoder(const heif_decoder_plugin *decoder_plugin)
const struct heif_encoder_plugin * get_encoder(enum heif_compression_format type)
void register_encoder(const heif_encoder_plugin *encoder_plugin)
Definition: heif_plugin.h:51
Definition: heif_plugin_registry.h:37
enum heif_compression_format get_compression_format() const
Definition: heif_plugin_registry.h:41
const char * get_name() const
Definition: heif_plugin_registry.h:40
const struct heif_encoder_plugin * plugin
Definition: heif_plugin_registry.h:38
Definition: heif_plugin.h:120
enum heif_compression_format compression_format
Definition: heif_plugin.h:128
const char *(* get_plugin_name)()
Definition: heif_plugin.h:144