FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
bprint.c File Reference
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "avassert.h"
#include "bprint.h"
#include "common.h"
#include "error.h"
#include "mem.h"

Go to the source code of this file.

Macros

#define av_bprint_room(buf)   ((buf)->size - FFMIN((buf)->len, (buf)->size))
 
#define av_bprint_is_allocated(buf)   ((buf)->str != (buf)->reserved_internal_buffer)
 

Functions

static int av_bprint_alloc (AVBPrint *buf, unsigned room)
 
static void av_bprint_grow (AVBPrint *buf, unsigned extra_len)
 
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,...)
 
void av_bprint_chars (AVBPrint *buf, char c, unsigned n)
 Append char c n times 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.
 
int av_bprint_finalize (AVBPrint *buf, char **ret_str)
 Finalize a print buffer.
 

Macro Definition Documentation

#define av_bprint_room (   buf)    ((buf)->size - FFMIN((buf)->len, (buf)->size))

Definition at line 31 of file bprint.c.

Referenced by av_bprint_chars(), av_bprint_get_buffer(), av_bprint_strftime(), and av_bprintf().

#define av_bprint_is_allocated (   buf)    ((buf)->str != (buf)->reserved_internal_buffer)

Definition at line 32 of file bprint.c.

Referenced by av_bprint_alloc(), and av_bprint_finalize().

Function Documentation

static int av_bprint_alloc ( AVBPrint buf,
unsigned  room 
)
static
static void av_bprint_grow ( AVBPrint buf,
unsigned  extra_len 
)
static

Definition at line 58 of file bprint.c.

Referenced by av_bprint_chars(), av_bprint_strftime(), and av_bprintf().

void av_bprint_init ( AVBPrint buf,
unsigned  size_init,
unsigned  size_max 
)

Init a print buffer.

Parameters
bufbuffer to init
size_initinitial size (including the final 0)
size_maxmaximum 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 67 of file bprint.c.

Referenced by ass_read_header(), avfilter_graph_dump(), compact_print_str(), config_output(), configure_input_video_filter(), configure_output_audio_filter(), decode_zbuf(), dvdsub_init(), escape(), ffprobe_show_program_version(), flat_print_str(), ini_print_str(), init(), init_report(), jacosub_decode_frame(), jacosub_read_header(), json_print_int(), json_print_item_str(), json_print_section_header(), lavfi_read_packet(), main(), make_command_flags_str(), microdvd_decode_frame(), microdvd_init(), mpsub_read_header(), parse_string(), print_report(), realtext_decode_frame(), realtext_read_header(), sami_init(), sami_read_header(), show_frame(), show_packet(), show_stream(), srt_read_header(), subviewer_decode_frame(), subviewer_read_header(), webvtt_decode_frame(), webvtt_read_header(), writer_open(), writer_print_data(), writer_print_rational(), and xml_print_str().

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
bufbuffer structure to init
bufferbyte buffer to use for the string data
sizesize of buffer

Definition at line 83 of file bprint.c.

Referenced by av_get_channel_layout_string().

void av_bprintf ( AVBPrint buf,
const char *  fmt,
  ... 
)
void av_bprint_chars ( AVBPrint buf,
char  c,
unsigned  n 
)
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 133 of file bprint.c.

Referenced by draw_text(), and func_strftime().

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]bufbuffer structure
[in]sizerequired size
[out]mempointer to the memory area
[out]actual_sizesize of the memory area after allocation; can be larger or smaller than size

Definition at line 175 of file bprint.c.

Referenced by decode_zbuf().

void av_bprint_clear ( AVBPrint buf)
int av_bprint_finalize ( AVBPrint buf,
char **  ret_str 
)