Class: kodi::addon::CInstanceAudioEncoder
Audio encoder add-on instance.
For audio encoders as binary add-ons. This class implements a way to handle the encode of given stream to a new format.
The addon.xml defines the capabilities of this add-on.
Here's an example on addon.xml:
<extension
point="kodi.audioencoder"
extension=".flac"
library_@PLATFORM@="@LIBRARY_FILENAME@"/>
Description to audio encoder related addon.xml values:
Name | Description |
point | Addon type specification
At all addon types and for this kind always "kodi.audioencoder". |
library_@PLATFORM@ | Sets the used library name, which is automatically set by cmake at addon build. |
extension | The file extensions / styles supported by this addon. |
Here is a code example how this addon is used:
#include <kodi/addon-instance/AudioEncoder.h>
{
public:
int Encode(
int numBytesRead,
const uint8_t* pbtStream)
override;
};
: kodi::addon::CInstanceAudioEncoder(instance)
{
...
}
{
...
return true;
}
ssize_t CMyAudioEncoder::Encode(const uint8_t* pbtStream, size_t numBytesRead)
{
uint8_t* data = nullptr;
size_t length = 0;
...
return 0;
}
bool CMyAudioEncoder::Finish()
{
...
return true;
}
{
public:
CMyAddon() = default;
KODI_ADDON_INSTANCE_HDL& hdl) override;
};
KODI_ADDON_INSTANCE_HDL& hdl)
{
{
hdl = new CMyAudioEncoder(instance);
}
else if (...)
{
...
}
}
ADDONCREATOR(CMyAddon)
Definition AudioEncoder.h:40
Definition AddonBase.h:775
Definition AudioEncoder.h:361
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_AUDIOENCODER
Audio encoder instance, see kodi::addon::CInstanceAudioEncoder.
Definition versions.h:222
bool IsType(KODI_ADDON_INSTANCE_TYPE type) const
Check asked type used on this class.
Definition AddonBase.h:525
virtual ADDON_STATUS CreateInstance(const kodi::addon::IInstanceInfo &instance, KODI_ADDON_INSTANCE_HDL &hdl)
Instance created.
Definition AddonBase.h:924
virtual bool Finish()
Finalize encoding (optional)
Definition AudioEncoder.h:434
ssize_t Write(const uint8_t *data, size_t length)
Write block of data.
Definition AudioEncoder.h:447
virtual bool Start(const kodi::addon::AudioEncoderInfoTag &tag)=0
Start encoder (required)
virtual ssize_t Encode(const uint8_t *pbtStream, size_t numBytesRead)=0
Encode a chunk of audio (required)
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 CMyAudioEncoder
is called from Kodi's header. Manually deleting the add-on instance is not required.
◆ CInstanceAudioEncoder()
Audio encoder class constructor used to support multiple instances.
- Parameters
-
[in] | instance | The instance value given to kodi::addon::CAddonBase::CreateInstance(...) . |
Here's example about the use of this:
{
public:
{
...
}
...
};
KODI_ADDON_INSTANCE_HDL& hdl)
{
hdl = new CMyAudioEncoder(instance);
}
◆ Start()
Start encoder (required)
- Parameters
-
[in] | tag | Information tag about |
- Returns
- True on success, false on failure.
◆ Encode()
virtual ssize_t Encode |
( |
const uint8_t * | pbtStream, |
|
|
size_t | numBytesRead ) |
|
pure virtual |
Encode a chunk of audio (required)
- Parameters
-
[in] | pbtStream | The input buffer |
[in] | numBytesRead | Number of bytes in input buffer |
- Returns
- Number of bytes consumed
◆ Finish()
Finalize encoding (optional)
- Returns
- True on success, false on failure.
◆ Write()
ssize_t Write |
( |
const uint8_t * | data, |
|
|
size_t | length ) |
|
inline |
Write block of data.
- Parameters
-
[in] | data | Pointer to the array of elements to be written |
[in] | length | Size in bytes to be written. |
- Returns
- The total number of bytes successfully written is returned.
◆ Seek()
ssize_t Seek |
( |
ssize_t | position, |
|
|
int | whence = SEEK_SET ) |
|
inline |
Set the file's current position.
The whence argument is optional and defaults to SEEK_SET (0)
- Parameters
-
[in] | position | The position that you want to seek to |
[in] | whence | [optional] offset relative to
You can set the value of whence to one of three things:
Value | int | Description |
SEEK_SET | 0 | position is relative to the beginning of the file. This is probably what you had in mind anyway, and is the most commonly used value for whence. |
SEEK_CUR | 1 | position is relative to the current file pointer position. So, in effect, you can say, "Move to my current position plus 30 bytes," or, "move to my current position minus 20 bytes." |
SEEK_END | 2 | position is relative to the end of the file. Just like SEEK_SET except from the other end of the file. Be sure to use negative values for offset if you want to back up from the end of the file, instead of going past the end into oblivion. |
|
- Returns
- Returns the resulting offset location as measured in bytes from the beginning of the file. On error, the value -1 is returned.