You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-07-11 14:30:22 +02:00
bprint: add av_bprint_init_for_buffer().
This commit is contained in:
@ -78,6 +78,15 @@ void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max)
|
|||||||
av_bprint_alloc(buf, size_init - 1);
|
av_bprint_alloc(buf, size_init - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size)
|
||||||
|
{
|
||||||
|
buf->str = buffer;
|
||||||
|
buf->len = 0;
|
||||||
|
buf->size = size;
|
||||||
|
buf->size_max = size;
|
||||||
|
*buf->str = 0;
|
||||||
|
}
|
||||||
|
|
||||||
void av_bprintf(AVBPrint *buf, const char *fmt, ...)
|
void av_bprintf(AVBPrint *buf, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
unsigned room;
|
unsigned room;
|
||||||
@ -178,6 +187,7 @@ static void bprint_pascal(AVBPrint *b, unsigned size)
|
|||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
AVBPrint b;
|
AVBPrint b;
|
||||||
|
char buf[256];
|
||||||
|
|
||||||
av_bprint_init(&b, 0, -1);
|
av_bprint_init(&b, 0, -1);
|
||||||
bprint_pascal(&b, 5);
|
bprint_pascal(&b, 5);
|
||||||
@ -208,6 +218,10 @@ int main(void)
|
|||||||
bprint_pascal(&b, 25);
|
bprint_pascal(&b, 25);
|
||||||
printf("Long text count only buffer: %zu/%u\n", strlen(b.str), b.len);
|
printf("Long text count only buffer: %zu/%u\n", strlen(b.str), b.len);
|
||||||
|
|
||||||
|
av_bprint_init_for_buffer(&b, buf, sizeof(buf));
|
||||||
|
bprint_pascal(&b, 25);
|
||||||
|
printf("Long text count only buffer: %zu/%u\n", strlen(buf), b.len);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,6 +99,17 @@ void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max);
|
|||||||
#define AV_BPRINT_SIZE_AUTOMATIC 1
|
#define AV_BPRINT_SIZE_AUTOMATIC 1
|
||||||
#define AV_BPRINT_SIZE_COUNT_ONLY 0
|
#define AV_BPRINT_SIZE_COUNT_ONLY 0
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init a print buffer using a pre-existing buffer.
|
||||||
|
*
|
||||||
|
* The buffer will not be reallocated.
|
||||||
|
*
|
||||||
|
* @param buf buffer structure to init
|
||||||
|
* @param buffer byte buffer to use for the string data
|
||||||
|
* @param size size of buffer
|
||||||
|
*/
|
||||||
|
void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Append a formated string to a print buffer.
|
* Append a formated string to a print buffer.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user