Definition of the UTF-8 DVB character set.
More...
#include <tsDVBCharTableUTF8.h>
|
virtual bool | canEncode (const UString &str, size_t start=0, size_t count=NPOS) const override |
| Check if a string can be encoded using the charset (ie all characters can be represented).
|
|
virtual bool | decode (UString &str, const uint8_t *dvb, size_t dvbSize) const override |
| Decode a string from the specified byte buffer.
|
|
UString | decoded (const uint8_t *data, size_t size) const |
| Decode a string from the specified byte buffer and return a UString.
|
|
UString | decodedWithByteLength (const uint8_t *&data, size_t &size) const |
| Decode a string (preceded by its one-byte length) from the specified byte buffer.
|
|
bool | decodeWithByteLength (UString &str, const uint8_t *&data, size_t &size) const |
| Decode a string (preceded by its one-byte length) from the specified byte buffer.
|
|
virtual size_t | encode (uint8_t *&buffer, size_t &size, const UString &str, size_t start=0, size_t count=NPOS) const override |
| Encode a C++ Unicode string.
|
|
ByteBlock | encoded (const UString &str, size_t start=0, size_t count=NPOS) const |
| Encode a C++ Unicode string as a ByteBlock.
|
|
ByteBlock | encodedWithByteLength (const UString &str, size_t start=0, size_t count=NPOS) const |
| Encode a C++ Unicode string as a ByteBlock (preceded by its one-byte length).
|
|
virtual size_t | encodeTableCode (uint8_t *&buffer, size_t &size) const |
| Encode the character set table code.
|
|
size_t | encodeWithByteLength (uint8_t *&buffer, size_t &size, const UString &str, size_t start=0, size_t count=NPOS) const |
| Encode a C++ Unicode string preceded by its one-byte length.
|
|
UString | name () const |
| Get the character set name.
|
|
uint32_t | tableCode () const |
| Get the DVB table code for the character set.
|
|
virtual void | unregister () const override |
| Unregister the character set from the repository of character sets.
|
|
|
static constexpr uint16_t | DVB_CODEPOINT_CRLF = 0xE08A |
| Code point for DVB-encoded CR/LF in two-byte character sets.
|
|
static constexpr uint8_t | DVB_SINGLE_BYTE_CRLF = 0x8A |
| DVB-encoded CR/LF in single-byte character sets.
|
|
static const DVBCharset | DVB_UTF_8 |
| Non-standard DVB encoding using UTF-8 character set as default.
|
|
static const DVBCharTableUTF8 | RAW_UTF_8 |
| Raw UTF-8 character set.
|
|
Definition of the UTF-8 DVB character set.
- See also
- ETSI EN 300 468, Annex A.
◆ decode()
virtual bool ts::DVBCharTableUTF8::decode |
( |
UString & |
str, |
|
|
const uint8_t * |
data, |
|
|
size_t |
size |
|
) |
| const |
|
overridevirtual |
Decode a string from the specified byte buffer.
- Parameters
-
[out] | str | Returned decoded string. |
[in] | data | Address of an encoded string. |
[in] | size | Size in bytes of the encoded string. |
- Returns
- True on success, false on error (truncated, unsupported format, etc.)
Implements ts::Charset.
◆ canEncode()
virtual bool ts::DVBCharTableUTF8::canEncode |
( |
const UString & |
str, |
|
|
size_t |
start = 0 , |
|
|
size_t |
count = NPOS |
|
) |
| const |
|
overridevirtual |
Check if a string can be encoded using the charset (ie all characters can be represented).
- Parameters
-
[in] | str | The string to encode. |
[in] | start | Starting offset in str. |
[in] | count | Maximum number of characters to encode. |
- Returns
- True if all characters can be encoded.
Implements ts::Charset.
◆ encode()
virtual size_t ts::DVBCharTableUTF8::encode |
( |
uint8_t *& |
buffer, |
|
|
size_t & |
size, |
|
|
const UString & |
str, |
|
|
size_t |
start = 0 , |
|
|
size_t |
count = NPOS |
|
) |
| const |
|
overridevirtual |
Encode a C++ Unicode string.
Unrepresentable characters are skipped. Stop either when the specified number of characters are serialized or when the buffer is full, whichever comes first.
- Parameters
-
[in,out] | buffer | Address of the buffer. The address is updated to point after the encoded value. |
[in,out] | size | Size of the buffer. Updated to remaining size. |
[in] | str | The string to encode. |
[in] | start | Starting offset in str. |
[in] | count | Maximum number of characters to encode. |
- Returns
- The number of serialized characters (which is usually not the same as the number of written bytes).
Implements ts::Charset.
◆ DecodeTableCode()
static bool ts::DVBCharTable::DecodeTableCode |
( |
uint32_t & |
code, |
|
|
size_t & |
codeSize, |
|
|
const uint8_t * |
dvb, |
|
|
size_t |
dvbSize |
|
) |
| |
|
staticinherited |
This static function gets the character coding table at the beginning of a DVB string.
The character coding table is encoded on up to 3 bytes at the beginning of a DVB string. The following encodings are recognized, based on the first byte of the DVB string:
- First byte >= 0x20: The first byte is a character. The default encoding is ISO-6937. We return zero as code.
- First byte == 0x10: The next two bytes indicate an ISO-8859 encoding. We return 0x10xxyy as code.
- First byte == 0x1F: The second byte is an encoding_type_id. This encoding is not supported here.
- Other value: One byte encoding.
- Parameters
-
[out] | code | Returned character coding table value. Zero when no code is present (use the default character table). 0xFFFFFFFF in case of invalid data. |
[out] | codeSize | Size in bytes of character coding table in dvb. |
[in] | dvb | Address of a DVB string. |
[in] | dvbSize | Size in bytes of the DVB string. |
- Returns
- True on success, false on error (truncated, unsupported format, etc.)
◆ tableCode()
uint32_t ts::DVBCharTable::tableCode |
( |
| ) |
const |
|
inlineinherited |
Get the DVB table code for the character set.
- Returns
- DVB table code.
◆ GetTableFromLeadingCode()
static const DVBCharTable * ts::DVBCharTable::GetTableFromLeadingCode |
( |
uint32_t |
code | ) |
|
|
staticinherited |
Get a DVB character set by table code.
- Parameters
-
[in] | code | Table code of the requested character set. |
- Returns
- Address of the character or zero if not found.
◆ encodeTableCode()
virtual size_t ts::DVBCharTable::encodeTableCode |
( |
uint8_t *& |
buffer, |
|
|
size_t & |
size |
|
) |
| const |
|
virtualinherited |
Encode the character set table code.
Stop either when the specified number of characters are serialized or when the buffer is full, whichever comes first.
- Parameters
-
[in,out] | buffer | Address of the buffer. The address is updated to point after the encoded value. |
[in,out] | size | Size of the buffer. Updated to remaining size. |
- Returns
- The number of serialized byte.
◆ unregister()
virtual void ts::DVBCharTable::unregister |
( |
| ) |
const |
|
overridevirtualinherited |
Unregister the character set from the repository of character sets.
This is done automatically when the object is destructed. Can be called earlier to make sure a character set is no longer referenced.
Reimplemented from ts::Charset.
◆ name()
UString ts::Charset::name |
( |
| ) |
const |
|
inlineinherited |
Get the character set name.
- Returns
- The name.
◆ GetCharset()
static const Charset * ts::Charset::GetCharset |
( |
const UString & |
name | ) |
|
|
staticinherited |
Get a character set by name.
- Parameters
-
[in] | name | Name of the requested character set. |
- Returns
- Address of the character set or zero if not found.
◆ GetAllNames()
Find all registered character set names.
- Returns
- List of all registered names.
◆ decoded()
UString ts::Charset::decoded |
( |
const uint8_t * |
data, |
|
|
size_t |
size |
|
) |
| const |
|
inherited |
Decode a string from the specified byte buffer and return a UString.
Errors (truncation, unsupported format, etc) are ignored.
- Parameters
-
[in] | data | Address of an encoded string. |
[in] | size | Size in bytes of the encoded string. |
- Returns
- The decoded string.
◆ decodeWithByteLength()
bool ts::Charset::decodeWithByteLength |
( |
UString & |
str, |
|
|
const uint8_t *& |
data, |
|
|
size_t & |
size |
|
) |
| const |
|
inherited |
Decode a string (preceded by its one-byte length) from the specified byte buffer.
- Parameters
-
[out] | str | Returned decoded string. |
[in,out] | data | Address of an encoded string. The address is updated to point after the decoded value. |
[in,out] | size | Size of the buffer. Updated to remaining size. |
- Returns
- True on success, false on error (truncated, unsupported format, etc.)
◆ decodedWithByteLength()
UString ts::Charset::decodedWithByteLength |
( |
const uint8_t *& |
data, |
|
|
size_t & |
size |
|
) |
| const |
|
inherited |
Decode a string (preceded by its one-byte length) from the specified byte buffer.
Errors (truncation, unsupported format, etc) are ignored.
- Parameters
-
[in,out] | data | Address of an encoded string. The address is updated to point after the decoded value. |
[in,out] | size | Size of the buffer. Updated to remaining size. |
- Returns
- The decoded string.
◆ encodeWithByteLength()
size_t ts::Charset::encodeWithByteLength |
( |
uint8_t *& |
buffer, |
|
|
size_t & |
size, |
|
|
const UString & |
str, |
|
|
size_t |
start = 0 , |
|
|
size_t |
count = NPOS |
|
) |
| const |
|
inherited |
Encode a C++ Unicode string preceded by its one-byte length.
Unrepresentable characters are skipped. Stop either when the specified number of characters are serialized or when the buffer is full, whichever comes first.
- Parameters
-
[in,out] | buffer | Address of the buffer. The address is updated to point after the encoded value. |
[in,out] | size | Size of the buffer. Updated to remaining size. |
[in] | str | The string to encode. |
[in] | start | Starting offset in str. |
[in] | count | Maximum number of characters to encode. |
- Returns
- The number of serialized characters (which is usually not the same as the number of written bytes).
◆ encoded()
Encode a C++ Unicode string as a ByteBlock.
Unrepresentable characters are skipped.
- Parameters
-
[in] | str | The string to encode. |
[in] | start | Starting offset in str. |
[in] | count | Maximum number of characters to encode. |
- Returns
- A ByteBlock containing the encoded string.
◆ encodedWithByteLength()
ByteBlock ts::Charset::encodedWithByteLength |
( |
const UString & |
str, |
|
|
size_t |
start = 0 , |
|
|
size_t |
count = NPOS |
|
) |
| const |
|
inherited |
Encode a C++ Unicode string as a ByteBlock (preceded by its one-byte length).
Unrepresentable characters are skipped.
- Parameters
-
[in] | str | The string to encode. |
[in] | start | Starting offset in str. |
[in] | count | Maximum number of characters to encode. |
- Returns
- A ByteBlock containing the encoded string.
The documentation for this class was generated from the following file: