Class: kodi::addon::CInstanceImageDecoder
Image decoder add-on instance
This instance type is used to allow Kodi various additional image format types.
This usage can be requested under various conditions, by a Mimetype protocol defined in addon.xml
or supported file extensions.
Include the header #include <kodi/addon-instance/ImageDecoder.h> to use this class.
Here is an example of what the addon.xml.in
would look like for an image decoder addon:
<?xml version="1.0" encoding="UTF-8"?>
<addon
id="imagedecoder.myspecialnamefor"
version="1.0.0"
name="My image decoder addon"
provider-name="Your Name">
<requires>@ADDON_DEPENDS@</requires>
<extension
point="kodi.imagedecoder"
library_@PLATFORM@="@LIBRARY_FILENAME@">
<support>
<mimetype name="image/mymimea">
<extension>.imga</extension>
<description>30100</description>
<icon>resources/file_format_icon_a.png</icon>
</mimetype>
<mimetype name="image/mymimeb">
<extension>.imgb</extension>
<description>30101</description>
<icon>resources/file_format_icon_b.png</icon>
</mimetype>
</support>
</extension>
<extension point="xbmc.addon.metadata">
<summary lang="en_GB">My image decoder addon summary</summary>
<description lang="en_GB">My image decoder description</description>
<platform>@PLATFORM@</platform>
</extension>
</addon>
Standard values that can be declared for processing in addon.xml
.
These values are used by Kodi to identify associated images and file extensions and then to select the associated addon.
Labels | Type | Description |
point | string | The identification of the addon instance to image decoder is mandatory kodi.imagedecoder . In addition, the instance declared in the first <support> is also the main type of addon. |
library_@PLATFORM@ | string | The runtime library used for the addon. This is usually declared by cmake and correctly displayed in the translated addon.xml . |
<support>...</support> | XML group | Contains the formats supported by the addon. |
<mimetype name="image/mymimea">...</mimetype> | string / group | The from addon operated image mimetypes.
Optional can be with <description> and <icon> additional info added where used for list views in Kodi. |
<mimetype ...><extension>...</extension></mimetype> | string | The file extensions / styles supported by this addon and relates to given mimetype before.
- Note
- Required to use about info support by CInstanceImageDecoder::SupportsFile and CInstanceImageDecoder::ReadTag!
|
Example:
#include <kodi/addon-instance/ImageDecoder.h>
{
public:
size_t bufSize,
unsigned int& width,
unsigned int& height) override;
unsigned int width,
unsigned int height,
unsigned int pitch,
...
};
: CInstanceImageDecoder(instance)
{
...
}
bool CMyImageDecoder::LoadImageFromMemory(const uint8_t* buffer,
size_t bufSize,
unsigned int& width,
unsigned int& height)
{
...
return true;
}
bool CMyImageDecoder::Decode(uint8_t* pixels,
unsigned int width,
unsigned int height,
unsigned int pitch,
{
...
return true;
}
{
public:
CMyAddon() = default;
KODI_ADDON_INSTANCE_HDL& hdl) override;
};
KODI_ADDON_INSTANCE_HDL& hdl)
{
{
hdl = new CMyImageDecoder(instance);
}
else if (...)
{
...
}
}
ADDONCREATOR(CMyAddon)
Definition AddonBase.h:775
Definition ImageDecoder.h:537
Definition AddonBase.h:498
@ ADDON_LOG_INFO
1 : To include information messages in the log file.
Definition addon_base.h:187
ADDON_STATUS
Definition addon_base.h:138
@ ADDON_STATUS_OK
For everything OK and no error.
Definition addon_base.h:140
@ ADDON_STATUS_UNKNOWN
Unknown and incomprehensible error.
Definition addon_base.h:152
@ ADDON_INSTANCE_IMAGEDECODER
Image decoder instance, see kodi::addon::CInstanceImageDecoder.
Definition versions.h:246
bool IsType(KODI_ADDON_INSTANCE_TYPE type) const
Check asked type used on this class.
Definition AddonBase.h:525
ADDON_IMG_FMT
Definition imagedecoder.h:30
virtual bool Decode(uint8_t *pixels, unsigned int width, unsigned int height, unsigned int pitch, ADDON_IMG_FMT format)=0
Decode previously loaded image.
virtual bool LoadImageFromMemory(const std::string &mimetype, const uint8_t *buffer, size_t bufSize, unsigned int &width, unsigned int &height)=0
Initialize an encoder.
void ATTR_DLL_LOCAL Log(const ADDON_LOG loglevel, const char *format,...)
Add a message to Kodi's log.
Definition AddonBase.h:1938
The destruction of the example class CMyImageDecoder
is called from Kodi's header. Manually deleting the add-on instance is not required.
◆ CInstanceImageDecoder()
Class constructor.
- Parameters
-
◆ SupportsFile()
virtual bool SupportsFile |
( |
const std::string & | filename | ) |
|
|
inlinevirtual |
Checks addon support given file path.
- Parameters
-
[in] | filename | The file to read |
- Returns
- true if successfully done and supported, otherwise false
- Note
- Optional to add, as default becomes
true
used.
◆ ReadTag()
Read tag of a file.
- Parameters
-
[in] | file | File to read tag for |
[out] | tag | Information tag about |
- Returns
- True on success, false on failure
The following table contains values that can be set with class ImageDecoderInfoTag :
◆ LoadImageFromMemory()
virtual bool LoadImageFromMemory |
( |
const std::string & | mimetype, |
|
|
const uint8_t * | buffer, |
|
|
size_t | bufSize, |
|
|
unsigned int & | width, |
|
|
unsigned int & | height ) |
|
pure virtual |
Initialize an encoder.
- Parameters
-
[in] | mimetype | The mimetype wanted from Kodi |
[in] | buffer | The data to read from memory |
[in] | bufSize | The buffer size |
[in,out] | width | The optimal width of image on entry, obtained width on return |
[in,out] | height | The optimal height of image, actual obtained height on return |
- Returns
- true if successful done, false on error
◆ Decode()
virtual bool Decode |
( |
uint8_t * | pixels, |
|
|
unsigned int | width, |
|
|
unsigned int | height, |
|
|
unsigned int | pitch, |
|
|
ADDON_IMG_FMT | format ) |
|
pure virtual |
Decode previously loaded image.
- Parameters
-
[in] | pixels | Output buffer |
[in] | width | Width of output image |
[in] | height | Height of output image |
[in] | pitch | Pitch of output image |
[in] | format | Format of output image |
- Returns
- true if successful done, false on error