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

Data Structures

struct  LATMIdx
 
struct  GF_LATMDmxCtx
 

Macros

#define LATM_DMX_MAX_SIZE   8192
 
#define OFFS(_n)   #_n, offsetof(GF_LATMDmxCtx, _n)
 

Functions

static Bool latm_dmx_sync_frame_bs (GF_BitStream *bs, GF_M4ADecSpecInfo *acfg, u32 *nb_bytes, u8 *buffer, u32 *nb_skipped)
 
GF_Err latm_dmx_configure_pid (GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
 
static void latm_dmx_check_dur (GF_Filter *filter, GF_LATMDmxCtx *ctx)
 
static void latm_dmx_check_pid (GF_Filter *filter, GF_LATMDmxCtx *ctx)
 
static Bool latm_dmx_process_event (GF_Filter *filter, const GF_FilterEvent *evt)
 
static GFINLINE void latm_dmx_update_cts (GF_LATMDmxCtx *ctx)
 
GF_Err latm_dmx_process (GF_Filter *filter)
 
static void latm_dmx_finalize (GF_Filter *filter)
 
static const char * latm_dmx_probe_data (const u8 *data, u32 size, GF_FilterProbeScore *score)
 
const GF_FilterRegister * latm_dmx_register (GF_FilterSession *session)
 

Variables

static const GF_FilterCapability LATMDmxCaps []
 
static const GF_FilterArgs LATMDmxArgs []
 
GF_FilterRegister LATMDmxRegister
 

Data Structure Documentation

◆ LATMIdx

struct LATMIdx
Data Fields
u64 pos
Double duration

◆ GF_LATMDmxCtx

struct GF_LATMDmxCtx
Data Fields
u32 frame_size
Double index
GF_FilterPid * ipid
GF_FilterPid * opid
GF_BitStream * bs
u64 file_pos
u64 cts
u32 sr_idx
u32 nb_ch
u32 base_object_type
GF_Fraction64 duration
Double start_range
Bool in_seek
u32 timescale
GF_M4ADecSpecInfo acfg
char * latm_buffer
u32 latm_buffer_size
u32 latm_buffer_alloc
u32 dts_inc
Bool is_playing
Bool is_file
Bool file_loaded
Bool initial_play_done
GF_FilterPacket * src_pck
LATMIdx * indexes
u32 index_alloc_size
u32 index_size
u32 resume_from
Bool prev_sap
u32 bitrate
GF_Err in_error
Bool copy_props

Macro Definition Documentation

◆ LATM_DMX_MAX_SIZE

#define LATM_DMX_MAX_SIZE   8192

◆ OFFS

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

Function Documentation

◆ latm_dmx_sync_frame_bs()

static Bool latm_dmx_sync_frame_bs ( GF_BitStream *  bs,
GF_M4ADecSpecInfo acfg,
u32 nb_bytes,
u8 buffer,
u32 nb_skipped 
)
static

◆ latm_dmx_configure_pid()

GF_Err latm_dmx_configure_pid ( GF_Filter *  filter,
GF_FilterPid *  pid,
Bool  is_remove 
)

◆ latm_dmx_check_dur()

static void latm_dmx_check_dur ( GF_Filter *  filter,
GF_LATMDmxCtx ctx 
)
static

◆ latm_dmx_check_pid()

static void latm_dmx_check_pid ( GF_Filter *  filter,
GF_LATMDmxCtx ctx 
)
static

◆ latm_dmx_process_event()

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

◆ latm_dmx_update_cts()

static GFINLINE void latm_dmx_update_cts ( GF_LATMDmxCtx ctx)
static

◆ latm_dmx_process()

GF_Err latm_dmx_process ( GF_Filter *  filter)

◆ latm_dmx_finalize()

static void latm_dmx_finalize ( GF_Filter *  filter)
static

◆ latm_dmx_probe_data()

static const char * latm_dmx_probe_data ( const u8 data,
u32  size,
GF_FilterProbeScore score 
)
static

◆ latm_dmx_register()

const GF_FilterRegister * latm_dmx_register ( GF_FilterSession *  session)

Variable Documentation

◆ LATMDmxCaps

const GF_FilterCapability LATMDmxCaps[]
static
Initial value:
=
{
CAP_STRING(GF_CAPS_INPUT, GF_PROP_PID_MIME, "audio/aac+latm|audio/xheaac+latm"),
{0},
}
@ GF_CODECID_AAC_MPEG4
Definition constants.h:408
@ GF_CODECID_AAC_MPEG2_SSRP
Definition constants.h:426
@ GF_CODECID_AAC_MPEG2_LCP
Definition constants.h:424
@ GF_CODECID_AAC_MPEG2_MP
Definition constants.h:422
@ GF_STREAM_AUDIO
Definition constants.h:66
@ 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_OUTPUT_EXCLUDED
Definition filters.h:2017
#define CAP_BOOL(_f, _a, _b)
Definition filters.h:1963
#define GF_CAPS_INPUT
Definition filters.h:2001
#define GF_CAPS_OUTPUT_STATIC
Definition filters.h:2019
@ GF_PROP_PID_CODECID
Definition filters.h:1020
@ GF_PROP_PID_UNFRAMED_LATM
Definition filters.h:1043
@ GF_PROP_PID_STREAM_TYPE
Definition filters.h:1016
@ GF_PROP_PID_UNFRAMED
Definition filters.h:1022
@ GF_PROP_PID_FILE_EXT
Definition filters.h:1092
@ GF_PROP_PID_MIME
Definition filters.h:1091
@ GF_TRUE
Definition setup.h:435

◆ LATMDmxArgs

const GF_FilterArgs LATMDmxArgs[]
static
Initial value:
=
{
{ OFFS(frame_size), "size of AAC frame in audio samples", GF_PROP_UINT, "1024", NULL, GF_FS_ARG_HINT_EXPERT},
{ OFFS(index), "indexing window length", GF_PROP_DOUBLE, "1.0", NULL, 0},
{0}
}
@ GF_FS_ARG_HINT_EXPERT
Definition filters.h:1889
@ GF_PROP_DOUBLE
Definition filters.h:775
@ GF_PROP_UINT
Definition filters.h:761
#define OFFS(_n)
Definition reframe_latm.c:659

◆ LATMDmxRegister

GF_FilterRegister LATMDmxRegister
Initial value:
= {
.name = "rflatm",
.private_size = sizeof(GF_LATMDmxCtx),
.finalize = latm_dmx_finalize,
.configure_pid = latm_dmx_configure_pid,
.process = latm_dmx_process,
.probe_data = latm_dmx_probe_data,
.process_event = latm_dmx_process_event
}
#define SETCAPS(__struct)
Definition filters.h:2144
attribute Array args
Definition jsf.idl:24
static Bool latm_dmx_process_event(GF_Filter *filter, const GF_FilterEvent *evt)
Definition reframe_latm.c:378
GF_Err latm_dmx_process(GF_Filter *filter)
Definition reframe_latm.c:457
static const GF_FilterArgs LATMDmxArgs[]
Definition reframe_latm.c:660
GF_Err latm_dmx_configure_pid(GF_Filter *filter, GF_FilterPid *pid, Bool is_remove)
Definition reframe_latm.c:196
static const char * latm_dmx_probe_data(const u8 *data, u32 size, GF_FilterProbeScore *score)
Definition reframe_latm.c:609
static void latm_dmx_finalize(GF_Filter *filter)
Definition reframe_latm.c:601
static const GF_FilterCapability LATMDmxCaps[]
Definition reframe_latm.c:640
Definition reframe_latm.c:42