FFmpeg
Data Structures | Functions | Variables
file.c File Reference
#include "config.h"
#include "file.h"
#include "file_open.h"
#include "internal.h"
#include "log.h"
#include "mem.h"
#include <fcntl.h>
#include <sys/stat.h>

Go to the source code of this file.

Data Structures

struct  FileLogContext
 

Functions

int av_file_map (const char *filename, uint8_t **bufptr, size_t *size, int log_offset, void *log_ctx)
 Read the file with name filename, and put its content in a newly allocated buffer or map it with mmap() when available. More...
 
void av_file_unmap (uint8_t *bufptr, size_t size)
 Unmap or free the buffer bufptr created by av_file_map(). More...
 
int av_tempfile (const char *prefix, char **filename, int log_offset, void *log_ctx)
 Wrapper to work around the lack of mkstemp() on mingw. More...
 

Variables

static const AVClass file_log_ctx_class
 

Function Documentation

◆ av_file_map()

int av_file_map ( const char *  filename,
uint8_t **  bufptr,
size_t *  size,
int  log_offset,
void *  log_ctx 
)

Read the file with name filename, and put its content in a newly allocated buffer or map it with mmap() when available.

In case of success set *bufptr to the read or mmapped buffer, and *size to the size in bytes of the buffer in *bufptr. Unlike mmap this function succeeds with zero sized files, in this case *bufptr will be set to NULL and *size will be set to 0. The returned buffer must be released with av_file_unmap().

Parameters
filenamepath to the file
[out]bufptrpointee is set to the mapped or allocated buffer
[out]sizepointee is set to the size in bytes of the buffer
log_offsetloglevel offset used for logging
log_ctxcontext used for logging
Returns
a non negative number in case of success, a negative value corresponding to an AVERROR error code in case of failure
Examples
avio_read_callback.c.

Definition at line 54 of file file.c.

Referenced by init(), init_pattern_from_file(), init_vulkan(), load_textfile(), main(), parse_psfile(), and read_shape_from_file().

◆ av_file_unmap()

void av_file_unmap ( uint8_t *  bufptr,
size_t  size 
)

Unmap or free the buffer bufptr created by av_file_map().

Parameters
bufptrthe buffer previously created with av_file_map()
sizesize in bytes of bufptr, must be the same as returned by av_file_map()
Examples
avio_read_callback.c.

Definition at line 145 of file file.c.

Referenced by init(), init_vulkan(), load_textfile(), main(), parse_psfile(), read_shape_from_file(), and uninit().

◆ av_tempfile()

int av_tempfile ( const char *  prefix,
char **  filename,
int  log_offset,
void *  log_ctx 
)

Wrapper to work around the lack of mkstemp() on mingw.

Also, tries to create file in /tmp first, if possible. *prefix can be a character constant; *filename will be allocated internally.

Returns
file descriptor of opened file (or negative value corresponding to an AVERROR code on error) and opened file name in **filename.
Note
On very old libcs it is necessary to set a secure umask before calling this, av_tempfile() can't call umask itself as it is used in libraries and could interfere with the calling application.
Deprecated:
as fd numbers cannot be passed saftely between libs on some platforms

Definition at line 159 of file file.c.

Variable Documentation

◆ file_log_ctx_class

const AVClass file_log_ctx_class
static
Initial value:
= {
.class_name = "FILE",
.item_name = av_default_item_name,
.option = NULL,
.log_level_offset_offset = 0x42,
.parent_log_context_offset = 0x42,
}

Definition at line 45 of file file.c.

Referenced by av_file_map().

LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
NULL
#define NULL
Definition: coverity.c:32
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:237