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  |