A buffer to print data progressively.
More...
|
#define | FF_PAD_STRUCTURE(name, size, ...) |
| Define a structure with extra padding to a fixed size This helps ensuring binary compatibility with future versions.
|
|
|
void | av_bprint_init (AVBPrint *buf, unsigned size_init, unsigned size_max) |
| Init a print buffer.
|
|
void | av_bprint_init_for_buffer (AVBPrint *buf, char *buffer, unsigned size) |
| Init a print buffer using a pre-existing buffer.
|
|
void | av_bprintf (AVBPrint *buf, const char *fmt,...) av_printf_format(2 |
| Append a formatted string to a print buffer.
|
|
void void | av_vbprintf (AVBPrint *buf, const char *fmt, va_list vl_arg) |
| Append a formatted string to a print buffer.
|
|
void | av_bprint_chars (AVBPrint *buf, char c, unsigned n) |
| Append char c n times to a print buffer.
|
|
void | av_bprint_append_data (AVBPrint *buf, const char *data, unsigned size) |
| Append data to a print buffer.
|
|
void | av_bprint_strftime (AVBPrint *buf, const char *fmt, const struct tm *tm) |
| Append a formatted date and time to a print buffer.
|
|
void | av_bprint_get_buffer (AVBPrint *buf, unsigned size, unsigned char **mem, unsigned *actual_size) |
| Allocate bytes in the buffer for external use.
|
|
void | av_bprint_clear (AVBPrint *buf) |
| Reset the string to "" but keep internal allocated data.
|
|
static int | av_bprint_is_complete (const AVBPrint *buf) |
| Test if the print buffer is complete (not truncated).
|
|
int | av_bprint_finalize (AVBPrint *buf, char **ret_str) |
| Finalize a print buffer.
|
|
void | av_bprint_escape (AVBPrint *dstbuf, const char *src, const char *special_chars, enum AVEscapeMode mode, int flags) |
| Escape the content in src and append it to dstbuf.
|
|
A buffer to print data progressively.
◆ FF_PAD_STRUCTURE
#define FF_PAD_STRUCTURE |
( |
|
name, |
|
|
|
size, |
|
|
|
... |
|
) |
| |
Value:struct ff_pad_helper_##name { __VA_ARGS__ }; \
typedef struct name { \
__VA_ARGS__ \
char reserved_padding[size - sizeof(struct ff_pad_helper_##name)]; \
} name;
Define a structure with extra padding to a fixed size This helps ensuring binary compatibility with future versions.
Definition at line 48 of file bprint.h.
◆ AV_BPRINT_SIZE_UNLIMITED
#define AV_BPRINT_SIZE_UNLIMITED ((unsigned)-1) |
Buffer will be reallocated as necessary, with an amortized linear cost.
Definition at line 111 of file bprint.h.
◆ AV_BPRINT_SIZE_AUTOMATIC
#define AV_BPRINT_SIZE_AUTOMATIC 1 |
Use the exact size available in the AVBPrint structure itself.
Thus ensuring no dynamic memory allocation. The internal buffer is large enough to hold a reasonable paragraph of text, such as the current paragraph.
Definition at line 118 of file bprint.h.
◆ AV_BPRINT_SIZE_COUNT_ONLY
#define AV_BPRINT_SIZE_COUNT_ONLY 0 |
Do not write anything to the buffer, only calculate the total length.
The write operations can then possibly be repeated in a buffer with exactly the necessary size (using size_init = size_max = AVBPrint.len + 1
).
Definition at line 125 of file bprint.h.
◆ av_bprint_init()
void av_bprint_init |
( |
AVBPrint * |
buf, |
|
|
unsigned |
size_init, |
|
|
unsigned |
size_max |
|
) |
| |
Init a print buffer.
- Parameters
-
buf | buffer to init |
size_init | initial size (including the final 0) |
size_max | maximum size;
0 means do not write anything, just count the length
1 is replaced by the maximum value for automatic storage any large value means that the internal buffer will be reallocated as needed up to that limit
-1 is converted to UINT_MAX , the largest limit possible. Check also AV_BPRINT_SIZE_* macros.
|
◆ av_bprint_init_for_buffer()
void av_bprint_init_for_buffer |
( |
AVBPrint * |
buf, |
|
|
char * |
buffer, |
|
|
unsigned |
size |
|
) |
| |
Init a print buffer using a pre-existing buffer.
The buffer will not be reallocated. In case size equals zero, the AVBPrint will be initialized to use the internal buffer as if using AV_BPRINT_SIZE_COUNT_ONLY with av_bprint_init().
- Parameters
-
buf | buffer structure to init |
buffer | byte buffer to use for the string data |
size | size of buffer |
◆ av_bprintf()
void av_bprintf |
( |
AVBPrint * |
buf, |
|
|
const char * |
fmt, |
|
|
|
... |
|
) |
| |
Append a formatted string to a print buffer.
◆ av_vbprintf()
void void av_vbprintf |
( |
AVBPrint * |
buf, |
|
|
const char * |
fmt, |
|
|
va_list |
vl_arg |
|
) |
| |
Append a formatted string to a print buffer.
◆ av_bprint_chars()
void av_bprint_chars |
( |
AVBPrint * |
buf, |
|
|
char |
c, |
|
|
unsigned |
n |
|
) |
| |
Append char c n times to a print buffer.
◆ av_bprint_append_data()
void av_bprint_append_data |
( |
AVBPrint * |
buf, |
|
|
const char * |
data, |
|
|
unsigned |
size |
|
) |
| |
Append data to a print buffer.
- Parameters
-
buf | bprint buffer to use |
data | pointer to data |
size | size of data |
◆ av_bprint_strftime()
void av_bprint_strftime |
( |
AVBPrint * |
buf, |
|
|
const char * |
fmt, |
|
|
const struct tm * |
tm |
|
) |
| |
Append a formatted date and time to a print buffer.
- Parameters
-
buf | bprint buffer to use |
fmt | date and time format string, see strftime() |
tm | broken-down time structure to translate |
- Note
- due to poor design of the standard strftime function, it may produce poor results if the format string expands to a very long text and the bprint buffer is near the limit stated by the size_max option.
◆ av_bprint_get_buffer()
void av_bprint_get_buffer |
( |
AVBPrint * |
buf, |
|
|
unsigned |
size, |
|
|
unsigned char ** |
mem, |
|
|
unsigned * |
actual_size |
|
) |
| |
Allocate bytes in the buffer for external use.
- Parameters
-
[in] | buf | buffer structure |
[in] | size | required size |
[out] | mem | pointer to the memory area |
[out] | actual_size | size of the memory area after allocation; can be larger or smaller than size |
◆ av_bprint_clear()
Reset the string to "" but keep internal allocated data.
◆ av_bprint_is_complete()
static int av_bprint_is_complete |
( |
const AVBPrint * |
buf | ) |
|
|
inlinestatic |
Test if the print buffer is complete (not truncated).
It may have been truncated due to a memory allocation failure or the size_max limit (compare size and size_max if necessary).
Definition at line 218 of file bprint.h.
◆ av_bprint_finalize()
int av_bprint_finalize |
( |
AVBPrint * |
buf, |
|
|
char ** |
ret_str |
|
) |
| |
Finalize a print buffer.
The print buffer can no longer be used afterwards, but the len and size fields are still valid.
- [out] ret_str if not NULL, used to return a permanent copy of the buffer contents, or NULL if memory allocation fails; if NULL, the buffer is discarded and freed
- Returns
- 0 for success or error code (probably AVERROR(ENOMEM))
◆ av_bprint_escape()
void av_bprint_escape |
( |
AVBPrint * |
dstbuf, |
|
|
const char * |
src, |
|
|
const char * |
special_chars, |
|
|
enum AVEscapeMode |
mode, |
|
|
int |
flags |
|
) |
| |
Escape the content in src and append it to dstbuf.
- Parameters
-
dstbuf | already inited destination bprint buffer |
src | string containing the text to escape |
special_chars | string containing the special characters which need to be escaped, can be NULL |
mode | escape mode to employ, see AV_ESCAPE_MODE_* macros. Any unknown value for mode will be considered equivalent to AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without notice. |
flags | flags which control how to escape, see AV_ESCAPE_FLAG_* macros |