GPAC
Open Source Multimedia Framework. For more information, check out http://gpac.wp.mines-telecom.fr
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups
base utils

Base definitions and functions of GPAC. More...

+ Collaboration diagram for base utils:

Modules

 Time tools
 System time and CPU functions.
 

Macros

#define gf_stringizer(x)
 Stringizer. More...
 
#define GF_SAFEALLOC(__ptr, __struct)
 Memory allocation for a structure. More...
 
#define GF_SAFE_ALLOC_N(__ptr, __n, __struct)
 Memory allocation for an array of n structs. More...
 
#define GF_4CC(a, b, c, d)   (((a)<<24)|((b)<<16)|((c)<<8)|(d))
 4CC Formatting More...
 

Typedefs

typedef Bool(* gf_enum_dir_item )(void *cbck, char *item_name, char *item_path)
 Directory Enumeration Callback. More...
 
typedef void(* gf_on_progress_cbk )(const void *cbck, const char *title, u64 done, u64 total)
 Progress Callback. More...
 

Functions

const char * gpac_features ()
 GPAC feature list. More...
 
const char * gf_4cc_to_str (u32 type)
 4CC Printing More...
 
int gf_asprintf (char **buffer, const char *fmt,...)
 asprintf() portable implementation More...
 
size_t gf_fwrite (const void *ptr, size_t size, size_t nmemb, FILE *stream)
 file writing helper More...
 
FILE * gf_f64_open (const char *file_name, const char *mode)
 large file opening More...
 
u64 gf_f64_tell (FILE *f)
 large file position query More...
 
u64 gf_f64_seek (FILE *f, s64 pos, s32 whence)
 large file seeking More...
 
void gf_rand_init (Bool Reset)
 PseudoRandom Integer Generation Initialization. More...
 
u32 gf_rand ()
 PseudoRandom Integer Generation. More...
 
void gf_get_user_name (char *buf, u32 buf_size)
 user name More...
 
GF_Err gf_enum_directory (const char *dir, Bool enum_directory, gf_enum_dir_item enum_dir, void *cbck, const char *filter)
 Directory enumeration. More...
 
GF_Err gf_delete_file (const char *fileName)
 File Deletion. More...
 
GF_Err gf_move_file (const char *fileName, const char *newFileName)
 File Move. More...
 
FILE * gf_temp_file_new ()
 Temporary File Creation. More...
 
u64 gf_file_modification_time (const char *filename)
 File Modification Time. More...
 
void gf_set_progress (const char *title, u64 done, u64 total)
 Progress formatting. More...
 
void gf_set_progress_callback (void *user_cbk, gf_on_progress_cbk prog_cbk)
 Progress overwriting. More...
 
Bool gf_prompt_has_input ()
 Prompt checking. More...
 
char gf_prompt_get_char ()
 Prompt character flush. More...
 
void gf_prompt_set_echo_off (Bool echo_off)
 turns prompt echo on/off More...
 

Detailed Description

This section documents some very basic functions and core definitions of the GPAC framework.

Macro Definition Documentation

#define gf_stringizer (   x)

Macro transforming its input name into a string

#define GF_SAFEALLOC (   __ptr,
  __struct 
)

Macro allocating memory and zero-ing it

#define GF_SAFE_ALLOC_N (   __ptr,
  __n,
  __struct 
)

Macro allocating memory for n structures and zero-ing it

#define GF_4CC (   a,
  b,
  c,
 
)    (((a)<<24)|((b)<<16)|((c)<<8)|(d))

Macro formating a 4-character code (or 4CC) "abcd" as 0xAABBCCDD

Typedef Documentation

typedef Bool(* gf_enum_dir_item)(void *cbck, char *item_name, char *item_path)

The gf_enum_dir_item type is the type for the callback of the gf_enum_directory function

Parameters
cbckOpaque user data.
item_nameFile or directory name.
item_pathFile or directory full path and name from filesystem root.
Returns
1 to abort enumeration, 0 to continue enumeration.
typedef void(* gf_on_progress_cbk)(const void *cbck, const char *title, u64 done, u64 total)

The gf_on_progress_cbk type is the type for the callback of the gf_set_progress_callback function

Parameters
cbckOpaque user data.
titlepreogress title.
doneCurrent amount performed of the action
totalTotal amount of the action.

Function Documentation

const char* gpac_features ( )

returns the list of features enabled/disabled in this GPAC build.

+ Here is the caller graph for this function:

const char* gf_4cc_to_str ( u32  type)

returns a 4CC printable form

int gf_asprintf ( char **  buffer,
const char *  fmt,
  ... 
)
similar to sprintf, except it allows the string on the
Note
asprintf implementation for windows
size_t gf_fwrite ( const void *  ptr,
size_t  size,
size_t  nmemb,
FILE *  stream 
)

Wrapper to properly handle calls to fwrite() Ensures proper error handling is invoked when it fails.

Returns
Same as gf_fwrite

+ Here is the caller graph for this function:

FILE* gf_f64_open ( const char *  file_name,
const char *  mode 
)

Opens a large file (>4GB)

Parameters
file_nameSame semantics as gf_f64_open
modeSame semantics as gf_f64_open
Returns
stream handle of the file object
Note
You only need to call this function if you're suspecting the file to be a large one (usually only media files), otherwise use regular stdio.
u64 gf_f64_tell ( FILE *  f)

Queries the current read/write position in a large file

Parameters
fSame semantics as ftell
Returns
position in the file
Note
You only need to call this function if you're suspecting the file to be a large one (usually only media files), otherwise use regular stdio.
u64 gf_f64_seek ( FILE *  f,
s64  pos,
s32  whence 
)

Seeks the current read/write position in a large file

Parameters
fSame semantics as fseek
posSame semantics as fseek
whenceSame semantics as fseek
Returns
new position in the file
Note
You only need to call this function if you're suspecting the file to be a large one (usually only media files), otherwise use regular stdio.
void gf_rand_init ( Bool  Reset)

Sets the starting point for generating a series of pseudorandom integers.

Parameters
ResetRe-initializes the random number generator

+ Here is the caller graph for this function:

u32 gf_rand ( )

Returns a pseudorandom integer.

+ Here is the caller graph for this function:

void gf_get_user_name ( char *  buf,
u32  buf_size 
)

Gets current user (login) name.

+ Here is the caller graph for this function:

GF_Err gf_enum_directory ( const char *  dir,
Bool  enum_directory,
gf_enum_dir_item  enum_dir,
void *  cbck,
const char *  filter 
)

Enumerates a directory content. Feedback is provided by the enum_dir_item function

Parameters
dirDirectory to enumerate
enum_directoryIf set, only directories will be enumerated, otherwise only files are.
enum_dirgf_enum_dir_item callback function for enumeration.
cbckOpaque user data passed to callback function.
filteroptional filter for file extensions. If a file extension without the dot '.' character is not found in the filter the file will be skipped.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

GF_Err gf_delete_file ( const char *  fileName)

Deletes a file from the disk.

Parameters
fileNameabsolute name of the file or name relative to the current working directory.

+ Here is the caller graph for this function:

GF_Err gf_move_file ( const char *  fileName,
const char *  newFileName 
)

Moves or renames a file or directory.

Parameters
fileNameabsolute path of the file / directory to move or rename
newFileNameabsolute new path/name of the file / directory

+ Here is the caller graph for this function:

FILE* gf_temp_file_new ( )

Creates a new temporary file in binary mode

Returns
stream handle to the new file ressoucre

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u64 gf_file_modification_time ( const char *  filename)

Returns the modification time of the given file. The exact meaning of this value is system dependent

Parameters
filenamefile to check
Returns
modification time of the file

+ Here is the caller graph for this function:

void gf_set_progress ( const char *  title,
u64  done,
u64  total 
)

Signals progress in GPAC's operations. Note that progress signaling with this function is not thread-safe, the main purpose is to use it for authoring tools only.

Parameters
titletitle string of the progress, or NULL for no progress
doneCurrent amount performed of the action.
totalTotal amount of the action.

+ Here is the call graph for this function:

void gf_set_progress_callback ( void *  user_cbk,
gf_on_progress_cbk  prog_cbk 
)

Iverwrites the progress signaling function by a user-defined one.

Parameters
user_cbkOpaque user data
prog_cbknew callback function to use. Passing NULL restore default GPAC stderr notification.

+ Here is the caller graph for this function:

Bool gf_prompt_has_input ( )

Checks if a character is pending in the prompt buffer.

Returns
1 if a character is ready to be fetched, 0 otherwise.
Note
Function not available under WindowsCE nor SymbianOS

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

char gf_prompt_get_char ( )

Returns the current character entered at prompt if any.

Returns
value of the character.
Note
Function not available under WindowsCE nor SymbianOS

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gf_prompt_set_echo_off ( Bool  echo_off)

Turns the prompt character echo on/off - this is usefull when entering passwords.

Parameters
echo_offindicates whether echo should be turned on or off.
Note
Function not available under WindowsCE nor SymbianOS

+ Here is the call graph for this function: