libgpac
Documentation of the core library of GPAC
Loading...
Searching...
No Matches
out_file.c File Reference
#include <gpac/filters.h>
#include <gpac/constants.h>
#include <gpac/xml.h>

Data Structures

struct  GF_FileOutCtx
 

Macros

#define OFFS(_n)   #_n, offsetof(GF_FileOutCtx, _n)
 

Enumerations

enum  { FOUT_CAT_NONE = 0 , FOUT_CAT_AUTO , FOUT_CAT_ALL }
 

Functions

static void fileout_close_hls_chunk (GF_FileOutCtx *ctx, Bool final_flush)
 
static GF_Err fileout_open_close (GF_FileOutCtx *ctx, const char *filename, const char *ext, u32 file_idx, Bool explicit_overwrite, char *file_suffix)
 
static void fileout_setup_file (GF_FileOutCtx *ctx, Bool explicit_overwrite)
 
static GF_Err fileout_configure_pid (GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
 
static GF_Err fileout_initialize (GF_Filter *filter)
 
static void fileout_finalize (GF_Filter *filter)
 
static GF_Err fileout_process (GF_Filter *filter)
 
static Bool fileout_process_event (GF_Filter *filter, const GF_FilterEvent *evt)
 
static GF_FilterProbeScore fileout_probe_url (const char *url, const char *mime)
 
const GF_FilterRegister * fileout_register (GF_FilterSession *session)
 

Variables

static const GF_FilterArgs FileOutArgs []
 
static const GF_FilterCapability FileOutCaps []
 
GF_FilterRegister FileOutRegister
 

Data Structure Documentation

◆ GF_FileOutCtx

struct GF_FileOutCtx
Data Fields
Double start
Double speed
char * dst
char * mime
char * ext
Bool append
Bool dynext
Bool ow
Bool redund
Bool noinitraw
u32 cat
u32 mvbk
s32 max_cache_segs
GF_FilterPid * pid
FILE * file
Bool is_std
u64 nb_write
Bool use_templates
GF_FilterCapability in_caps[2]
char szExt[10]
char szFileName[GF_MAX_PATH]
Bool patch_blocks
Bool is_null
GF_Err error
u32 dash_mode
u64 offset_at_seg_start
const char * original_url
GF_FileIO * gfio_ref
FILE * hls_chunk
u32 max_segs
GF_List * past_files

Macro Definition Documentation

◆ OFFS

#define OFFS (   _n)    #_n, offsetof(GF_FileOutCtx, _n)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
FOUT_CAT_NONE 
FOUT_CAT_AUTO 
FOUT_CAT_ALL 

Function Documentation

◆ fileout_close_hls_chunk()

static void fileout_close_hls_chunk ( GF_FileOutCtx ctx,
Bool  final_flush 
)
static

◆ fileout_open_close()

static GF_Err fileout_open_close ( GF_FileOutCtx ctx,
const char *  filename,
const char *  ext,
u32  file_idx,
Bool  explicit_overwrite,
char *  file_suffix 
)
static

◆ fileout_setup_file()

static void fileout_setup_file ( GF_FileOutCtx ctx,
Bool  explicit_overwrite 
)
static

◆ fileout_configure_pid()

static GF_Err fileout_configure_pid ( GF_Filter *  filter,
GF_FilterPid *  pid,
Bool  is_remove 
)
static

◆ fileout_initialize()

static GF_Err fileout_initialize ( GF_Filter *  filter)
static

◆ fileout_finalize()

static void fileout_finalize ( GF_Filter *  filter)
static

◆ fileout_process()

static GF_Err fileout_process ( GF_Filter *  filter)
static

◆ fileout_process_event()

static Bool fileout_process_event ( GF_Filter *  filter,
const GF_FilterEvent *  evt 
)
static

◆ fileout_probe_url()

static GF_FilterProbeScore fileout_probe_url ( const char *  url,
const char *  mime 
)
static

◆ fileout_register()

const GF_FilterRegister * fileout_register ( GF_FilterSession *  session)

Variable Documentation

◆ FileOutArgs

const GF_FilterArgs FileOutArgs[]
static
Initial value:
=
{
{ OFFS(dst), "location of destination file", GF_PROP_NAME, NULL, NULL, 0},
{ OFFS(append), "open in append mode", GF_PROP_BOOL, "false", NULL, GF_FS_ARG_HINT_ADVANCED},
{ OFFS(dynext), "indicate the file extension is set by filter chain, not dst", GF_PROP_BOOL, "false", NULL, GF_FS_ARG_HINT_ADVANCED},
{ OFFS(start), "set playback start offset. A negative value means percent of media duration with -1 equal to duration", GF_PROP_DOUBLE, "0.0", NULL, 0},
{ OFFS(speed), "set playback speed when vsync is on. If negative and start is 0, start is set to -1", GF_PROP_DOUBLE, "1.0", NULL, 0},
{ OFFS(ext), "set extension for graph resolution, regardless of file extension", GF_PROP_NAME, NULL, NULL, GF_FS_ARG_HINT_ADVANCED},
{ OFFS(mime), "set mime type for graph resolution", GF_PROP_NAME, NULL, NULL, GF_FS_ARG_HINT_EXPERT},
{ OFFS(cat), "cat each file of input PID rather than creating one file per filename\n"
"- none: never cat files\n"
"- auto: only cat if files have same names\n"
"- all: always cat regardless of file names"
, GF_PROP_UINT, "none", "none|auto|all", GF_FS_ARG_HINT_ADVANCED},
{ OFFS(ow), "overwrite output if existing", GF_PROP_BOOL, "true", NULL, 0},
{ OFFS(mvbk), "block size used when moving parts of the file around in patch mode", GF_PROP_UINT, "8192", NULL, 0},
{ OFFS(redund), "keep redundant packet in output file", GF_PROP_BOOL, "false", NULL, 0},
{ OFFS(noinitraw), "do not produce initial segment", GF_PROP_BOOL, "false", NULL, GF_FS_ARG_HINT_HIDE},
{ OFFS(max_cache_segs), "maximum number of segments cached per HAS quality when recording live sessions (0 means no limit)", GF_PROP_SINT, "0", NULL, GF_FS_ARG_HINT_EXPERT},
{0}
}
@ GF_FS_ARG_HINT_EXPERT
Definition filters.h:1889
@ GF_FS_ARG_HINT_HIDE
Definition filters.h:1891
@ GF_FS_ARG_HINT_ADVANCED
Definition filters.h:1887
@ GF_PROP_BOOL
Definition filters.h:767
@ GF_PROP_SINT
Definition filters.h:759
@ GF_PROP_DOUBLE
Definition filters.h:775
@ GF_PROP_NAME
Definition filters.h:793
@ GF_PROP_UINT
Definition filters.h:761
#define OFFS(_n)
Definition out_file.c:702

◆ FileOutCaps

const GF_FilterCapability FileOutCaps[]
static
Initial value:
=
{
}
@ GF_STREAM_FILE
Definition constants.h:104
#define CAP_UINT(_f, _a, _b)
Definition filters.h:1955
#define CAP_STRING(_f, _a, _b)
Definition filters.h:1977
#define GF_CAPS_INPUT
Definition filters.h:2001
@ GF_PROP_PID_STREAM_TYPE
Definition filters.h:1016
@ GF_PROP_PID_FILE_EXT
Definition filters.h:1092

◆ FileOutRegister

GF_FilterRegister FileOutRegister