libgpac
Documentation of the core library of GPAC
filter_queue.c File Reference
#include "filter_session.h"
+ Include dependency graph for filter_queue.c:

Data Structures

struct  GF_LFQItem
 
struct  GF_FilterQueue
 

Macros

#define atomic_compare_and_swap(_ptr, _comparand, _replacement)   __sync_bool_compare_and_swap(_ptr, _comparand, _replacement)
 

Functions

GF_FilterQueue * gf_fq_new (const GF_Mutex *mx)
 
void gf_fq_del (GF_FilterQueue *q, void(*item_delete)(void *))
 
static void gf_fq_lockfree_enqueue (GF_LFQItem *it, GF_LFQItem **tail_ptr)
 
static void * gf_fq_lockfree_dequeue (GF_LFQItem **head_ptr, GF_LFQItem **tail_ptr, GF_LFQItem **prev_head)
 
void gf_lfq_add (GF_FilterQueue *q, void *item)
 
void * gf_lfq_pop (GF_FilterQueue *q)
 
u32 gf_fq_count (GF_FilterQueue *q)
 
void gf_fq_add (GF_FilterQueue *fq, void *item)
 
void * gf_fq_pop (GF_FilterQueue *fq)
 
void * gf_fq_head (GF_FilterQueue *fq)
 
void * gf_fq_get (GF_FilterQueue *fq, u32 idx)
 
void gf_fq_enum (GF_FilterQueue *fq, void(*enum_func)(void *udta1, void *item), void *udta)
 
Bool gf_fq_res_add (GF_FilterQueue *fq, void *item)
 

Data Structure Documentation

◆ GF_LFQItem

struct GF_LFQItem
Data Fields
struct __lf_item * next
void * data

◆ __gf_filter_queue

struct __gf_filter_queue
+ Collaboration diagram for GF_FilterQueue:
Data Fields
GF_LFQItem * head
GF_LFQItem * tail
GF_LFQItem * res_head
GF_LFQItem * res_tail
volatile u32 nb_items
GF_Mutex * mx
u8 use_mx

Macro Definition Documentation

◆ atomic_compare_and_swap

#define atomic_compare_and_swap (   _ptr,
  _comparand,
  _replacement 
)    __sync_bool_compare_and_swap(_ptr, _comparand, _replacement)

Function Documentation

◆ gf_fq_new()

GF_FilterQueue* gf_fq_new ( const GF_Mutex *  mx)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_del()

void gf_fq_del ( GF_FilterQueue *  q,
void(*)(void *)  item_delete 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_lockfree_enqueue()

static void gf_fq_lockfree_enqueue ( GF_LFQItem it,
GF_LFQItem **  tail_ptr 
)
static
+ Here is the caller graph for this function:

◆ gf_fq_lockfree_dequeue()

static void* gf_fq_lockfree_dequeue ( GF_LFQItem **  head_ptr,
GF_LFQItem **  tail_ptr,
GF_LFQItem **  prev_head 
)
static
+ Here is the caller graph for this function:

◆ gf_lfq_add()

void gf_lfq_add ( GF_FilterQueue *  q,
void *  item 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_lfq_pop()

void* gf_lfq_pop ( GF_FilterQueue *  q)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_count()

u32 gf_fq_count ( GF_FilterQueue *  q)
+ Here is the caller graph for this function:

◆ gf_fq_add()

void gf_fq_add ( GF_FilterQueue *  fq,
void *  item 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_pop()

void* gf_fq_pop ( GF_FilterQueue *  fq)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_head()

void* gf_fq_head ( GF_FilterQueue *  fq)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_get()

void* gf_fq_get ( GF_FilterQueue *  fq,
u32  idx 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_enum()

void gf_fq_enum ( GF_FilterQueue *  fq,
void(*)(void *udta1, void *item)  enum_func,
void *  udta 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gf_fq_res_add()

Bool gf_fq_res_add ( GF_FilterQueue *  fq,
void *  item 
)
+ Here is the call graph for this function:
+ Here is the caller graph for this function: