Class: kodi::addon::CInstanceImageDecoder
Image decoder add-on instance
This instance type is used to allow Kodi various additional image format types.
More...
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:
{
public:
size_t bufSize,
unsigned int&
height)
override;
...
};
{
...
}
size_t bufSize,
{
...
return true;
}
{
...
return true;
}
{
public:
CMyAddon() = default;
};
{
{
}
else if (...)
{
...
}
}
unsigned __int8 uint8_t
Definition DirectXGraphics.h:130
void * KODI_ADDON_INSTANCE_HDL
Definition addon_base.h:121
#define ATTR_DLL_LOCAL
Definition addon_base.h:86
KODI_ADDON_HDL * hdl
Definition addon_base.h:344
uint8_t * buffer
Definition addons/kodi-dev-kit/include/kodi/c-api/addon-instance/AudioDecoder.h:116
const char unsigned int int int int int64_t int enum AudioEngineDataFormat * format
Definition addons/kodi-dev-kit/include/kodi/c-api/addon-instance/AudioDecoder.h:113
Definition kodi-dev-kit/include/kodi/AddonBase.h:775
Definition kodi-dev-kit/include/kodi/addon-instance/ImageDecoder.h:537
virtual ADDON_STATUS CreateInstance(const kodi::addon::IInstanceInfo &instance, KODI_ADDON_INSTANCE_HDL &hdl)
Definition kodi-dev-kit/include/kodi/AddonBase.h:578
Definition kodi-dev-kit/include/kodi/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
ADDON_IMG_FMT
Definition kodi-dev-kit/include/kodi/c-api/addon-instance/ImageDecoder.h:30
virtual bool LoadImageFromMemory(const std::string &mimetype, const uint8_t *buffer, size_t bufSize, unsigned int &width, unsigned int &height)=0
Initialize an encoder.
virtual bool Decode(uint8_t *pixels, unsigned int width, unsigned int height, unsigned int pitch, ADDON_IMG_FMT format)=0
Decode previously loaded image.
void ATTR_DLL_LOCAL Log(const ADDON_LOG loglevel, const char *format,...)
Add a message to Kodi's log.
Definition kodi-dev-kit/include/kodi/AddonBase.h:1938
#define ADDONCREATOR(AddonClass)
Definition kodi-dev-kit/include/kodi/AddonBase.h:2047
uint8_t * pixels
Definition kodi-dev-kit/include/kodi/c-api/addon-instance/ImageDecoder.h:420
uint8_t size_t unsigned int unsigned int unsigned int pitch
Definition kodi-dev-kit/include/kodi/c-api/addon-instance/ImageDecoder.h:424
const char const uint8_t size_t unsigned int unsigned int * height
Definition kodi-dev-kit/include/kodi/c-api/addon-instance/ImageDecoder.h:417
const char const uint8_t size_t unsigned int * width
Definition kodi-dev-kit/include/kodi/c-api/addon-instance/ImageDecoder.h:416
Definition addon_base.h:268
The destruction of the example class CMyImageDecoder
is called from Kodi's header. Manually deleting the add-on instance is not required.
◆ CInstanceImageDecoder()
kodi::addon::CInstanceImageDecoder::CInstanceImageDecoder |
( |
const IInstanceInfo & | instance | ) |
|
|
inlineexplicit |
Class constructor.
- Parameters
-
◆ Decode()
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
◆ LoadImageFromMemory()
virtual bool kodi::addon::CInstanceImageDecoder::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
◆ 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 :
◆ SupportsFile()
virtual bool kodi::addon::CInstanceImageDecoder::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.