#include <stdarg.h>
#include "attributes.h"
#include "avstring.h"
Go to the source code of this file.
|
void | av_bprint_init (AVBPrint *buf, unsigned size_init, unsigned size_max) |
| Init a print buffer. More...
|
|
void | av_bprint_init_for_buffer (AVBPrint *buf, char *buffer, unsigned size) |
| Init a print buffer using a pre-existing buffer. More...
|
|
void | av_bprintf (AVBPrint *buf, const char *fmt,...) av_printf_format(2 |
| Append a formatted string to a print buffer. More...
|
|
void void | av_vbprintf (AVBPrint *buf, const char *fmt, va_list vl_arg) |
| Append a formatted string to a print buffer. More...
|
|
void | av_bprint_chars (AVBPrint *buf, char c, unsigned n) |
| Append char c n times to a print buffer. More...
|
|
void | av_bprint_append_data (AVBPrint *buf, const char *data, unsigned size) |
| Append data to a print buffer. More...
|
|
void | av_bprint_strftime (AVBPrint *buf, const char *fmt, const struct tm *tm) |
| Append a formatted date and time to a print buffer. More...
|
|
void | av_bprint_get_buffer (AVBPrint *buf, unsigned size, unsigned char **mem, unsigned *actual_size) |
| Allocate bytes in the buffer for external use. More...
|
|
void | av_bprint_clear (AVBPrint *buf) |
| Reset the string to "" but keep internal allocated data. More...
|
|
static int | av_bprint_is_complete (AVBPrint *buf) |
| Test if the print buffer is complete (not truncated). More...
|
|
int | av_bprint_finalize (AVBPrint *buf, char **ret_str) |
| Finalize a print buffer. More...
|
|
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. More...
|
|
#define FF_PAD_STRUCTURE |
( |
|
size, |
|
|
|
... |
|
) |
| |
Value:__VA_ARGS__ \
char reserved_padding[
size -
sizeof(
struct { __VA_ARGS__ })];
Define a structure with extra padding to a fixed size This helps ensuring binary compatibility with future versions.
Definition at line 33 of file bprint.h.
#define AV_BPRINT_SIZE_UNLIMITED ((unsigned)-1) |
#define AV_BPRINT_SIZE_AUTOMATIC 1 |
#define AV_BPRINT_SIZE_COUNT_ONLY 0 |
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. |
Definition at line 69 of file bprint.c.
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.
- Parameters
-
buf | buffer structure to init |
buffer | byte buffer to use for the string data |
size | size of buffer |
Definition at line 85 of file bprint.c.
Append a formatted string to a print buffer.
Append a formatted string to a print buffer.
Definition at line 117 of file bprint.c.
Append char c n times to a print buffer.
Definition at line 140 of file bprint.c.
void av_bprint_append_data |
( |
AVBPrint * |
buf, |
|
|
const char * |
data, |
|
|
unsigned |
size |
|
) |
| |
Append data to a print buffer.
param buf bprint buffer to use param data pointer to data param size size of data
Definition at line 158 of file bprint.c.
void av_bprint_strftime |
( |
AVBPrint * |
buf, |
|
|
const char * |
fmt, |
|
|
const struct tm * |
tm |
|
) |
| |
Append a formatted date and time to a print buffer.
param buf bprint buffer to use param fmt date and time format string, see strftime() param 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.
Definition at line 176 of file bprint.c.
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 |
Definition at line 218 of file bprint.c.
Reset the string to "" but keep internal allocated data.
Definition at line 227 of file bprint.c.
static int av_bprint_is_complete |
( |
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 182 of file bprint.h.
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))
Definition at line 235 of file bprint.c.
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 |
Definition at line 265 of file bprint.c.