libgpac
Documentation of the core library of GPAC
Filter Properties

PID and filter properties. More...

+ Collaboration diagram for Filter Properties:

Data Structures

struct  GF_PropData
 
struct  GF_PropVec2i
 
struct  GF_PropVec2
 
struct  GF_PropVec3i
 
struct  GF_PropVec4i
 
struct  GF_PropStringList
 
struct  GF_PropUIntList
 
struct  GF_PropIntList
 
struct  GF_PropVec2iList
 
struct  GF_PropertyValue
 
struct  GF_BuiltInProperty
 
union  __gf_prop_val.value
 

Macros

#define GF_GSF_VERSION   2
 
#define GF_PROP_DUMP_ARG_SIZE   100
 
#define GF_PROP_FLAG_PCK   1
 
#define GF_PROP_FLAG_GSF_REM   1<<1
 
#define PROP_SINT(_val)   (GF_PropertyValue){.type=GF_PROP_SINT, .value.sint = _val}
 
#define PROP_UINT(_val)   (GF_PropertyValue){.type=GF_PROP_UINT, .value.uint = _val}
 
#define PROP_ENUM(_val, _type)   (GF_PropertyValue){.type=_type, .value.uint = _val}
 
#define PROP_4CC(_val)   (GF_PropertyValue){.type=GF_PROP_4CC, .value.uint = _val}
 
#define PROP_LONGSINT(_val)   (GF_PropertyValue){.type=GF_PROP_LSINT, .value.longsint = _val}
 
#define PROP_LONGUINT(_val)   (GF_PropertyValue){.type=GF_PROP_LUINT, .value.longuint = _val}
 
#define PROP_BOOL(_val)   (GF_PropertyValue){.type=GF_PROP_BOOL, .value.boolean = _val}
 
#define PROP_FIXED(_val)   (GF_PropertyValue){.type=GF_PROP_FLOAT, .value.fnumber = _val}
 
#define PROP_FLOAT(_val)   (GF_PropertyValue){.type=GF_PROP_FLOAT, .value.fnumber = FLT2FIX(_val)}
 
#define PROP_FRAC_INT(_num, _den)   (GF_PropertyValue){.type=GF_PROP_FRACTION, .value.frac.num = _num, .value.frac.den = _den}
 
#define PROP_FRAC(_val)   (GF_PropertyValue){.type=GF_PROP_FRACTION, .value.frac = _val }
 
#define PROP_FRAC64(_val)   (GF_PropertyValue){.type=GF_PROP_FRACTION64, .value.lfrac = _val}
 
#define PROP_FRAC64_INT(_num, _den)   (GF_PropertyValue){.type=GF_PROP_FRACTION64, .value.lfrac.num = _num, .value.lfrac.den = _den}
 
#define PROP_DOUBLE(_val)   (GF_PropertyValue){.type=GF_PROP_DOUBLE, .value.number = _val}
 
#define PROP_STRING(_val)   (GF_PropertyValue){.type=GF_PROP_STRING, .value.string = (char *) _val}
 
#define PROP_STRING_NO_COPY(_val)   (GF_PropertyValue){.type=GF_PROP_STRING_NO_COPY, .value.string = _val}
 
#define PROP_NAME(_val)   (GF_PropertyValue){.type=GF_PROP_NAME, .value.string = _val}
 
#define PROP_DATA(_val, _len)   (GF_PropertyValue){.type=GF_PROP_DATA, .value.data.ptr = _val, .value.data.size=_len}
 
#define PROP_DATA_NO_COPY(_val, _len)   (GF_PropertyValue){.type=GF_PROP_DATA_NO_COPY, .value.data.ptr = _val, .value.data.size =_len}
 
#define PROP_CONST_DATA(_val, _len)   (GF_PropertyValue){.type=GF_PROP_CONST_DATA, .value.data.ptr = _val, .value.data.size = _len}
 
#define PROP_VEC2(_val)   (GF_PropertyValue){.type=GF_PROP_VEC2, .value.vec2 = _val}
 
#define PROP_VEC2I(_val)   (GF_PropertyValue){.type=GF_PROP_VEC2I, .value.vec2i = _val}
 
#define PROP_VEC2I_INT(_x, _y)   (GF_PropertyValue){.type=GF_PROP_VEC2I, .value.vec2i.x = _x, .value.vec2i.y = _y}
 
#define PROP_VEC3I(_val)   (GF_PropertyValue){.type=GF_PROP_VEC3I, .value.vec3i = _val}
 
#define PROP_VEC3I_INT(_x, _y, _z)   (GF_PropertyValue){.type=GF_PROP_VEC3I, .value.vec3i.x = _x, .value.vec3i.y = _y, .value.vec3i.z = _z}
 
#define PROP_VEC4I(_val)   (GF_PropertyValue){.type=GF_PROP_VEC4I, .value.vec4i = _val}
 
#define PROP_VEC4I_INT(_x, _y, _z, _w)   (GF_PropertyValue){.type=GF_PROP_VEC4I, .value.vec4i.x = _x, .value.vec4i.y = _y, .value.vec4i.z = _z, .value.vec4i.w = _w}
 
#define PROP_POINTER(_val)   (GF_PropertyValue){.type=GF_PROP_POINTER, .value.ptr = (void*)_val}
 

Enumerations

enum  GF_PropType {
  GF_PROP_FORBIDDEN = 0 , GF_PROP_SINT = 1 , GF_PROP_UINT = 2 , GF_PROP_LSINT = 3 ,
  GF_PROP_LUINT = 4 , GF_PROP_BOOL = 5 , GF_PROP_FRACTION = 6 , GF_PROP_FRACTION64 = 7 ,
  GF_PROP_FLOAT = 8 , GF_PROP_DOUBLE = 9 , GF_PROP_VEC2I = 10 , GF_PROP_VEC2 = 11 ,
  GF_PROP_VEC3I = 12 , GF_PROP_VEC4I = 13 , GF_PROP_STRING = 14 , GF_PROP_STRING_NO_COPY = 15 ,
  GF_PROP_DATA = 16 , GF_PROP_NAME = 17 , GF_PROP_DATA_NO_COPY = 18 , GF_PROP_CONST_DATA = 19 ,
  GF_PROP_POINTER = 20 , GF_PROP_STRING_LIST = 21 , GF_PROP_UINT_LIST = 22 , GF_PROP_SINT_LIST = 23 ,
  GF_PROP_VEC2I_LIST = 24 , GF_PROP_4CC = 25 , GF_PROP_4CC_LIST = 26 , GF_PROP_STRING_LIST_COPY = 27 ,
  GF_PROP_LAST_NON_ENUM , GF_PROP_FIRST_ENUM = 40 , GF_PROP_PIXFMT = GF_PROP_FIRST_ENUM , GF_PROP_PCMFMT = GF_PROP_FIRST_ENUM+1 ,
  GF_PROP_CICP_COL_PRIM = GF_PROP_FIRST_ENUM+2 , GF_PROP_CICP_COL_TFC = GF_PROP_FIRST_ENUM+3 , GF_PROP_CICP_COL_MX = GF_PROP_FIRST_ENUM+4 , GF_PROP_CICP_LAYOUT = GF_PROP_FIRST_ENUM+5 ,
  GF_PROP_LAST_DEFINED
}
 
enum  GF_FilterPidPlaybackMode { GF_PLAYBACK_MODE_NONE =0 , GF_PLAYBACK_MODE_SEEK , GF_PLAYBACK_MODE_FASTFORWARD , GF_PLAYBACK_MODE_REWIND }
 
enum  {
  GF_PROP_PID_ID = GF_4CC('P','I','D','I') , GF_PROP_PID_ESID = GF_4CC('E','S','I','D') , GF_PROP_PID_ITEM_ID = GF_4CC('I','T','I','D') , GF_PROP_PID_ITEM_NUM = GF_4CC('I','T','I','X') ,
  GF_PROP_PID_TRACK_NUM = GF_4CC('P','I','D','X') , GF_PROP_PID_SERVICE_ID = GF_4CC('P','S','I','D') , GF_PROP_PID_CLOCK_ID = GF_4CC('C','K','I','D') , GF_PROP_PID_DEPENDENCY_ID = GF_4CC('D','P','I','D') ,
  GF_PROP_PID_SUBLAYER = GF_4CC('D','P','S','L') , GF_PROP_PID_PLAYBACK_MODE = GF_4CC('P','B','K','M') , GF_PROP_PID_SCALABLE = GF_4CC('S','C','A','L') , GF_PROP_PID_TILE_BASE = GF_4CC('S','A','B','T') ,
  GF_PROP_PID_TILE_ID = GF_4CC('P','T','I','D') , GF_PROP_PID_LANGUAGE = GF_4CC('L','A','N','G') , GF_PROP_PID_SERVICE_NAME = GF_4CC('S','N','A','M') , GF_PROP_PID_SERVICE_PROVIDER = GF_4CC('S','P','R','O') ,
  GF_PROP_PID_STREAM_TYPE = GF_4CC('P','M','S','T') , GF_PROP_PID_SUBTYPE = GF_4CC('P','S','S','T') , GF_PROP_PID_ISOM_SUBTYPE = GF_4CC('P','I','S','T') , GF_PROP_PID_ORIG_STREAM_TYPE = GF_4CC('P','O','S','T') ,
  GF_PROP_PID_CODECID = GF_4CC('P','O','T','I') , GF_PROP_PID_IN_IOD = GF_4CC('P','I','O','D') , GF_PROP_PID_UNFRAMED = GF_4CC('P','F','R','M') , GF_PROP_PID_UNFRAMED_FULL_AU = GF_4CC('P','F','R','F') ,
  GF_PROP_PID_DURATION = GF_4CC('P','D','U','R') , GF_PROP_PID_DURATION_AVG = GF_4CC('E','D','U','R') , GF_PROP_PID_NB_FRAMES = GF_4CC('N','F','R','M') , GF_PROP_PID_FRAME_OFFSET = GF_4CC('F','R','M','O') ,
  GF_PROP_PID_FRAME_SIZE = GF_4CC('C','F','R','S') , GF_PROP_PID_TIMESHIFT_DEPTH = GF_4CC('P','T','S','D') , GF_PROP_PID_TIMESHIFT_TIME = GF_4CC('P','T','S','T') , GF_PROP_PID_TIMESHIFT_STATE = GF_4CC('P','T','S','S') ,
  GF_PROP_PID_TIMESCALE = GF_4CC('T','I','M','S') , GF_PROP_PID_PROFILE_LEVEL = GF_4CC('P','R','P','L') , GF_PROP_PID_DECODER_CONFIG = GF_4CC('D','C','F','G') , GF_PROP_PID_DECODER_CONFIG_ENHANCEMENT = GF_4CC('E','C','F','G') ,
  GF_PROP_PID_DSI_SUPERSET = GF_4CC('D','C','F','S') , GF_PROP_PID_CONFIG_IDX = GF_4CC('I','C','F','G') , GF_PROP_PID_SAMPLE_RATE = GF_4CC('A','U','S','R') , GF_PROP_PID_SAMPLES_PER_FRAME = GF_4CC('F','R','M','S') ,
  GF_PROP_PID_NUM_CHANNELS = GF_4CC('C','H','N','B') , GF_PROP_PID_AUDIO_BPS = GF_4CC('A','B','P','S') , GF_PROP_PID_CHANNEL_LAYOUT = GF_4CC('C','H','L','O') , GF_PROP_PID_AUDIO_FORMAT = GF_4CC('A','F','M','T') ,
  GF_PROP_PID_AUDIO_SPEED = GF_4CC('A','S','P','D') , GF_PROP_PID_UNFRAMED_LATM = GF_4CC('L','A','T','M') , GF_PROP_PID_DELAY = GF_4CC('M','D','L','Y') , GF_PROP_PID_CTS_SHIFT = GF_4CC('M','D','T','S') ,
  GF_PROP_PID_NO_PRIMING = GF_4CC('A','S','K','P') , GF_PROP_PID_WIDTH = GF_4CC('W','I','D','T') , GF_PROP_PID_HEIGHT = GF_4CC('H','E','I','G') , GF_PROP_PID_PIXFMT = GF_4CC('P','F','M','T') ,
  GF_PROP_PID_PIXFMT_WRAPPED = GF_4CC('P','F','M','W') , GF_PROP_PID_STRIDE = GF_4CC('V','S','T','Y') , GF_PROP_PID_STRIDE_UV = GF_4CC('V','S','T','C') , GF_PROP_PID_BIT_DEPTH_Y = GF_4CC('Y','B','P','S') ,
  GF_PROP_PID_BIT_DEPTH_UV = GF_4CC('C','B','P','S') , GF_PROP_PID_FPS = GF_4CC('V','F','P','F') , GF_PROP_PID_INTERLACED = GF_4CC('V','I','L','C') , GF_PROP_PID_SAR = GF_4CC('P','S','A','R') ,
  GF_PROP_PID_WIDTH_MAX = GF_4CC('M', 'W','I','D') , GF_PROP_PID_HEIGHT_MAX = GF_4CC('M', 'H','E','I') , GF_PROP_PID_ZORDER = GF_4CC('V', 'Z','I','X') , GF_PROP_PID_TRANS_X = GF_4CC('V','T','R','X') ,
  GF_PROP_PID_TRANS_Y = GF_4CC('V','T','R','Y') , GF_PROP_PID_TRANS_X_INV = GF_4CC('V','T','R','x') , GF_PROP_PID_TRANS_Y_INV = GF_4CC('V','T','R','y') , GF_PROP_PID_HIDDEN = GF_4CC('H','I','D','E') ,
  GF_PROP_PID_CROP_POS = GF_4CC('V','C','X','Y') , GF_PROP_PID_ORIG_SIZE = GF_4CC('V','O','W','H') , GF_PROP_PID_SRD = GF_4CC('S','R','D','I') , GF_PROP_PID_SRD_REF = GF_4CC('S','R','D','R') ,
  GF_PROP_PID_SRD_MAP = GF_4CC('S','R','D','M') , GF_PROP_PID_ALPHA = GF_4CC('V','A','L','P') , GF_PROP_PID_MIRROR = GF_4CC('V','M','I','R') , GF_PROP_PID_ROTATE = GF_4CC('V','R','O','T') ,
  GF_PROP_PID_CLAP_W = GF_4CC('C','L','P','W') , GF_PROP_PID_CLAP_H = GF_4CC('C','L','P','H') , GF_PROP_PID_CLAP_X = GF_4CC('C','L','P','X') , GF_PROP_PID_CLAP_Y = GF_4CC('C','L','P','Y') ,
  GF_PROP_PID_NUM_VIEWS = GF_4CC('P','N','B','V') , GF_PROP_PID_DOLBY_VISION = GF_4CC('D','O','V','I') , GF_PROP_PID_BITRATE = GF_4CC('R','A','T','E') , GF_PROP_PID_MAXRATE = GF_4CC('M','R','A','T') ,
  GF_PROP_PID_TARGET_RATE = GF_4CC('T','B','R','T') , GF_PROP_PID_DBSIZE = GF_4CC('D','B','S','Z') , GF_PROP_PID_MEDIA_DATA_SIZE = GF_4CC('M','D','S','Z') , GF_PROP_PID_CAN_DATAREF = GF_4CC('D','R','E','F') ,
  GF_PROP_PID_URL = GF_4CC('F','U','R','L') , GF_PROP_PID_REMOTE_URL = GF_4CC('R','U','R','L') , GF_PROP_PID_REDIRECT_URL = GF_4CC('R','E','L','O') , GF_PROP_PID_FILEPATH = GF_4CC('F','S','R','C') ,
  GF_PROP_PID_MIME = GF_4CC('M','I','M','E') , GF_PROP_PID_FILE_EXT = GF_4CC('F','E','X','T') , GF_PROP_PID_OUTPATH = GF_4CC('F','D','S','T') , GF_PROP_PID_FILE_CACHED = GF_4CC('C','A','C','H') ,
  GF_PROP_PID_DOWN_RATE = GF_4CC('D','L','B','W') , GF_PROP_PID_DOWN_SIZE = GF_4CC('D','L','S','Z') , GF_PROP_PID_DOWN_BYTES = GF_4CC('D','L','B','D') , GF_PROP_PID_FILE_RANGE = GF_4CC('F','B','R','A') ,
  GF_PROP_PID_DISABLE_PROGRESSIVE = GF_4CC('N','P','R','G') , GF_PROP_PID_ISOM_BRANDS = GF_4CC('A','B','R','D') , GF_PROP_PID_ISOM_MBRAND = GF_4CC('M','B','R','D') , GF_PROP_PID_ISOM_MOVIE_TIME = GF_4CC('M','H','T','S') ,
  GF_PROP_PID_HAS_SYNC = GF_4CC('P','S','Y','N') , GF_PROP_SERVICE_WIDTH = GF_4CC('D','W','D','T') , GF_PROP_SERVICE_HEIGHT = GF_4CC('D','H','G','T') , GF_PROP_PID_IS_DEFAULT = GF_4CC('P','D','E','F') ,
  GF_PROP_PID_CAROUSEL_RATE = GF_4CC('C','A','R','A') , GF_PROP_PID_AUDIO_VOLUME = GF_4CC('A','V','O','L') , GF_PROP_PID_AUDIO_PAN = GF_4CC('A','P','A','N') , GF_PROP_PID_AUDIO_PRIORITY = GF_4CC('A','P','R','I') ,
  GF_PROP_PID_PROTECTION_SCHEME_TYPE = GF_4CC('S','C','H','T') , GF_PROP_PID_PROTECTION_SCHEME_VERSION = GF_4CC('S','C','H','V') , GF_PROP_PID_PROTECTION_SCHEME_URI = GF_4CC('S','C','H','U') , GF_PROP_PID_PROTECTION_KMS_URI = GF_4CC('K','M','S','U') ,
  GF_PROP_PID_ISMA_SELECTIVE_ENC = GF_4CC('I','S','S','E') , GF_PROP_PID_ISMA_IV_LENGTH = GF_4CC('I','S','I','V') , GF_PROP_PID_ISMA_KI_LENGTH = GF_4CC('I','S','K','I') , GF_PROP_PID_OMA_CRYPT_TYPE = GF_4CC('O','M','C','T') ,
  GF_PROP_PID_OMA_CID = GF_4CC('O','M','I','D') , GF_PROP_PID_OMA_TXT_HDR = GF_4CC('O','M','T','H') , GF_PROP_PID_OMA_CLEAR_LEN = GF_4CC('O','M','P','T') , GF_PROP_PID_CRYPT_INFO = GF_4CC('E','C','R','I') ,
  GF_PROP_PID_DECRYPT_INFO = GF_4CC('E','D','R','I') , GF_PROP_PCK_SENDER_NTP = GF_4CC('N','T','P','S') , GF_PROP_PCK_RECEIVER_NTP = GF_4CC('N','T','P','R') , GF_PROP_PID_ADOBE_CRYPT_META = GF_4CC('A','M','E','T') ,
  GF_PROP_PID_ENCRYPTED = GF_4CC('E','P','C','K') , GF_PROP_PID_OMA_PREVIEW_RANGE = GF_4CC('O','D','P','R') , GF_PROP_PID_CENC_PSSH = GF_4CC('P','S','S','H') , GF_PROP_PCK_CENC_SAI = GF_4CC('S','A','I','S') ,
  GF_PROP_PID_CENC_KEY_INFO = GF_4CC('C','B','I','V') , GF_PROP_PID_CENC_PATTERN = GF_4CC('C','P','T','R') , GF_PROP_PID_CENC_STORE = GF_4CC('C','S','T','R') , GF_PROP_PID_CENC_STSD_MODE = GF_4CC('C','S','T','M') ,
  GF_PROP_PID_CENC_HAS_ROLL = GF_4CC('C','R','O','L') , GF_PROP_PID_AMR_MODE_SET = GF_4CC('A','M','S','T') , GF_PROP_PCK_SUBS = GF_4CC('S','U','B','S') , GF_PROP_PID_MAX_NALU_SIZE = GF_4CC('N','A','L','S') ,
  GF_PROP_PCK_FILENUM = GF_4CC('F','N','U','M') , GF_PROP_PCK_FILENAME = GF_4CC('F','N','A','M') , GF_PROP_PCK_IDXFILENAME = GF_4CC('I','N','A','M') , GF_PROP_PCK_FILESUF = GF_4CC('F','S','U','F') ,
  GF_PROP_PCK_EODS = GF_4CC('E','O','D','S') , GF_PROP_PCK_CUE_START = GF_4CC('P','C','U','S') , GF_PROP_PCK_UTC_TIME = GF_4CC('U','T','C','D') , GF_PROP_PCK_MEDIA_TIME = GF_4CC('M','T','I','M') ,
  GF_PROP_PCK_MPD_SEGSTART = GF_4CC('F','M','S','S') , GF_PROP_PCK_ID = GF_4CC('P','K','I','D') , GF_PROP_PCK_REFS = GF_4CC('P','R','F','S') , GF_PROP_PCK_LLHAS_TEMPLATE = GF_4CC('P','S','R','T') ,
  GF_PROP_PID_MAX_FRAME_SIZE = GF_4CC('M','F','R','S') , GF_PROP_PID_AVG_FRAME_SIZE = GF_4CC('A','F','R','S') , GF_PROP_PID_MAX_TS_DELTA = GF_4CC('M','T','S','D') , GF_PROP_PID_MAX_CTS_OFFSET = GF_4CC('M','C','T','O') ,
  GF_PROP_PID_CONSTANT_DURATION = GF_4CC('S','C','T','D') , GF_PROP_PID_ISOM_TRACK_TEMPLATE = GF_4CC('I','T','K','T') , GF_PROP_PID_ISOM_TREX_TEMPLATE = GF_4CC('I','T','X','T') , GF_PROP_PID_ISOM_STSD_TEMPLATE = GF_4CC('I','S','T','D') ,
  GF_PROP_PID_ISOM_STSD_TEMPLATE_IDX = GF_4CC('I','S','T','I') , GF_PROP_PID_ISOM_STSD_ALL_TEMPLATES = GF_4CC('I','S','T','A') , GF_PROP_PID_ISOM_UDTA = GF_4CC('I','M','U','D') , GF_PROP_PID_ISOM_HANDLER = GF_4CC('I','H','D','L') ,
  GF_PROP_PID_ISOM_TRACK_FLAGS = GF_4CC('I','T','K','F') , GF_PROP_PID_ISOM_TRACK_MATRIX = GF_4CC('I','T','K','M') , GF_PROP_PID_ISOM_ALT_GROUP = GF_4CC('I','A','L','G') , GF_PROP_PID_ISOM_FORCE_NEGCTTS = GF_4CC('I','F','N','C') ,
  GF_PROP_PID_DISABLED = GF_4CC('I','T','K','D') , GF_PROP_PID_PERIOD_ID = GF_4CC('P','E','I','D') , GF_PROP_PID_PERIOD_START = GF_4CC('P','E','S','T') , GF_PROP_PID_PERIOD_DUR = GF_4CC('P','E','D','U') ,
  GF_PROP_PID_REP_ID = GF_4CC('D','R','I','D') , GF_PROP_PID_SSR = GF_4CC('S','S','R','R') , GF_PROP_PID_AS_ID = GF_4CC('D','A','I','D') , GF_PROP_PID_MUX_SRC = GF_4CC('M','S','R','C') ,
  GF_PROP_PID_DASH_MODE = GF_4CC('D','M','O','D') , GF_PROP_PID_FORCE_SEG_SYNC = GF_4CC('D','F','S','S') , GF_PROP_PID_DASH_DUR = GF_4CC('D','D','U','R') , GF_PROP_PID_DASH_FDUR = GF_4CC('F','D','U','R') ,
  GF_PROP_PID_DASH_MULTI_PID = GF_4CC('D','M','S','D') , GF_PROP_PID_DASH_MULTI_PID_IDX = GF_4CC('D','M','S','I') , GF_PROP_PID_DASH_MULTI_TRACK = GF_4CC('D','M','T','K') , GF_PROP_PID_ROLE = GF_4CC('R','O','L','E') ,
  GF_PROP_PID_PERIOD_DESC = GF_4CC('P','D','E','S') , GF_PROP_PID_AS_COND_DESC = GF_4CC('A','C','D','S') , GF_PROP_PID_AS_ANY_DESC = GF_4CC('A','A','D','S') , GF_PROP_PID_REP_DESC = GF_4CC('R','D','E','S') ,
  GF_PROP_PID_BASE_URL = GF_4CC('B','U','R','L') , GF_PROP_PID_TEMPLATE = GF_4CC('D','T','P','L') , GF_PROP_PID_START_NUMBER = GF_4CC('D','R','S','N') , GF_PROP_PID_XLINK = GF_4CC('X','L','N','K') ,
  GF_PROP_PID_CLAMP_DUR = GF_4CC('D','C','M','D') , GF_PROP_PID_HLS_PLAYLIST = GF_4CC('H','L','V','P') , GF_PROP_PID_HLS_GROUPID = GF_4CC('H','L','G','I') , GF_PROP_PID_HLS_FORCE_INF = GF_4CC('H','L','F','I') ,
  GF_PROP_PID_HLS_EXT_MASTER = GF_4CC('H','L','M','X') , GF_PROP_PID_HLS_EXT_VARIANT = GF_4CC('H','L','V','X') , GF_PROP_PID_DASH_CUE = GF_4CC('D','C','U','E') , GF_PROP_PID_DASH_SEGMENTS = GF_4CC('D','C','N','S') ,
  GF_PROP_PID_CODEC = GF_4CC('C','O','D','S') , GF_PROP_PID_SINGLE_SCALE = GF_4CC('D','S','T','S') , GF_PROP_PID_UDP = GF_4CC('P','U','D','P') , GF_PROP_PID_PRIMARY_ITEM = GF_4CC('P','I','T','M') ,
  GF_PROP_PID_PLAY_BUFFER = GF_4CC('P','B','P','L') , GF_PROP_PID_MAX_BUFFER = GF_4CC('P','B','M','X') , GF_PROP_PID_RE_BUFFER = GF_4CC('P','B','R','E') , GF_PROP_PID_VIEW_IDX = GF_4CC('V','I','D','X') ,
  GF_PROP_PID_COLR_PRIMARIES = GF_4CC('C','P','R','M') , GF_PROP_PID_COLR_TRANSFER = GF_4CC('C','T','R','C') , GF_PROP_PID_COLR_MX = GF_4CC('C','M','X','C') , GF_PROP_PID_COLR_RANGE = GF_4CC('C','F','R','A') ,
  GF_PROP_PID_COLR_CHROMAFMT = GF_4CC('C','F','M','T') , GF_PROP_PID_COLR_CHROMALOC = GF_4CC('C','L','O','C') , GF_PROP_PID_CONTENT_LIGHT_LEVEL = GF_4CC('C','L','L','I') , GF_PROP_PID_MASTER_DISPLAY_COLOUR = GF_4CC('M','D','C','V') ,
  GF_PROP_PID_ICC_PROFILE = GF_4CC('I','C','C','P') , GF_PROP_PID_SRC_MAGIC = GF_4CC('P','S','M','G') , GF_PROP_PID_MUX_INDEX = GF_4CC('T','I','D','X') , GF_PROP_NO_TS_LOOP = GF_4CC('N','T','S','L') ,
  GF_PROP_PID_MHA_COMPATIBLE_PROFILES = GF_4CC('M','H','C','P') , GF_PROP_PCK_FRAG_START = GF_4CC('P','F','R','B') , GF_PROP_PCK_FRAG_RANGE = GF_4CC('P','F','R','R') , GF_PROP_PCK_FRAG_TFDT = GF_4CC('P','F','R','T') ,
  GF_PROP_PCK_SIDX_RANGE = GF_4CC('P','F','S','R') , GF_PROP_PCK_MOOF_TEMPLATE = GF_4CC('M','F','T','P') , GF_PROP_PCK_INIT = GF_4CC('P','C','K','I') , GF_PROP_PID_RAWGRAB = GF_4CC('P','G','R','B') ,
  GF_PROP_PID_KEEP_AFTER_EOS = GF_4CC('P','K','A','E') , GF_PROP_PID_COVER_ART = GF_4CC('P','C','O','V') , GF_PROP_PID_ORIG_FRAG_URL = GF_4CC('O','F','R','A') , GF_PROP_PID_VOD_SIDX_RANGE = GF_4CC('P','R','S','R') ,
  GF_PROP_PID_MCAST_IP = GF_4CC('M','S','I','P') , GF_PROP_PID_MCAST_PORT = GF_4CC('M','S','P','N') , GF_PROP_PID_MCAST_NAME = GF_4CC('M','S','F','N') , GF_PROP_PID_MCAST_CAROUSEL = GF_4CC('M','S','C','R') ,
  GF_PROP_PID_MCAST_SENDTIME = GF_4CC('M','S','S','T') , GF_PROP_PID_STEREO_TYPE = GF_4CC('P','S','T','T') , GF_PROP_PID_PROJECTION_TYPE = GF_4CC('P','P','J','T') , GF_PROP_PID_VR_POSE = GF_4CC('P','P','O','S') ,
  GF_PROP_PID_CUBE_MAP_PAD = GF_4CC('P','C','M','P') , GF_PROP_PID_EQR_CLAMP = GF_4CC('P','E','Q','C') , GF_PROP_PID_SPARSE = GF_4CC('P','S','P','A') , GF_PROP_PID_CHARSET = GF_4CC('P','C','H','S') ,
  GF_PROP_PID_FORCED_SUB = GF_4CC('P','F','C','S') , GF_PROP_PID_SCENE_NODE = GF_4CC('P','S','N','D') , GF_PROP_PID_ORIG_CRYPT_SCHEME = GF_4CC('P','O','C','S') , GF_PROP_PID_TIMESHIFT_SEGS = GF_4CC('P','T','S','N') ,
  GF_PROP_PID_CHAP_TIMES = GF_4CC('C','H','P','T') , GF_PROP_PID_CHAP_NAMES = GF_4CC('C','H','P','N') , GF_PROP_PID_IS_CHAP = GF_4CC('P','C','H','P') , GF_PROP_PID_PREMUX_STREAM_TYPE = GF_4CC('P','P','S','T') ,
  GF_PROP_PID_CODEC_MERGEABLE = GF_4CC('P','C','M','B') , GF_PROP_PCK_FILE_REL = GF_4CC('F','N','R','L') , GF_PROP_PCK_HLS_REF = GF_4CC('H','P','L','R') , GF_PROP_PID_HLS_REF = GF_4CC('P','H','L','R') ,
  GF_PROP_PID_LLHAS_MODE = GF_4CC('H','L','H','S') , GF_PROP_PCK_LLHAS_FRAG_NUM = GF_4CC('H','L','S','N') , GF_PROP_PCK_SKIP_BEGIN = GF_4CC('P','C','K','S') , GF_PROP_PCK_SKIP_PRES = GF_4CC('P','C','K','D') ,
  GF_PROP_PCK_ORIG_DUR = GF_4CC('P','C','O','D') , GF_PROP_PID_DASH_FWD = GF_4CC('D','F','W','D') , GF_PROP_PCK_DASH_MANIFEST = GF_4CC('D','M','P','D') , GF_PROP_PCK_HLS_VARIANT = GF_4CC('D','H','L','V') ,
  GF_PROP_PID_DASH_PERIOD_START = GF_4CC('D','P','S','T') , GF_PROP_PCK_HLS_VARIANT_NAME = GF_4CC('D','H','L','N') , GF_PROP_PID_HLS_KMS = GF_4CC('H','L','S','K') , GF_PROP_PID_HLS_IV = GF_4CC('H','L','S','I') ,
  GF_PROP_PID_CLEARKEY_URI = GF_4CC('C','C','K','U') , GF_PROP_PID_CLEARKEY_KID = GF_4CC('C','C','K','I') , GF_PROP_PID_DASH_SPARSE = GF_4CC('D','S','S','G') , GF_PROP_PID_DASH_DEP_GROUP = GF_4CC('D','G','D','I') ,
  GF_PROP_PCK_DASH_PERIOD_START = GF_4CC('P','D','P','S') , GF_PROP_PID_HAS_SKIP_BEGIN = GF_4CC('P','S','B','P') , GF_PROP_PID_DOWNLOAD_SESSION = GF_4CC('G','H','T','T') , GF_PROP_PID_HAS_TEMI = GF_4CC('P','T','E','M') ,
  GF_PROP_PID_SCTE35_PID = GF_4CC('S','C','3','5') , GF_PROP_PID_NO_INIT = GF_4CC('P','N','I','N') , GF_PROP_PID_IS_MANIFEST = GF_4CC('P','H','S','M') , GF_PROP_PCK_XPS_MASK = GF_4CC('P','X','P','M') ,
  GF_PROP_PCK_END_RANGE = GF_4CC('P','C','E','R') , GF_PROP_PID_FORCE_UNFRAME = GF_4CC('P','F','U','F') , GF_PROP_PCK_SPLIT_START = GF_4CC('P','S','P','S') , GF_PROP_PCK_SPLIT_END = GF_4CC('P','S','P','E') ,
  GF_PROP_PID_INIT_NAME = GF_4CC('P','I','N','M') , GF_PROP_PCK_SEG_URL = GF_4CC('S','U','R','L') , GF_PROP_PCK_CENC_PSSH = GF_4CC('P','S','H','P') , GF_PROP_PID_META_DEMUX_CODEC_ID = GF_4CC('M','D','C','I') ,
  GF_PROP_PID_META_DEMUX_CODEC_NAME = GF_4CC('M','D','C','N') , GF_PROP_PID_META_DEMUX_OPAQUE = GF_4CC('M','D','O','P')
}
 
enum  { GF_PID_FILE_PATCH_NONE = 0 , GF_PID_FILE_PATCH_REPLACE = 1 , GF_PID_FILE_PATCH_INSERT = 2 }
 
enum  GF_PropDumpDataMode { GF_PROP_DUMP_DATA_NONE =0 , GF_PROP_DUMP_DATA_INFO , GF_PROP_DUMP_DATA_PTR , GF_PROP_DUMP_NO_REDUCE = 1<<16 }
 

Functions

const char * gf_props_4cc_get_name (u32 prop_4cc)
 
u32 gf_props_4cc_get_type (u32 prop_4cc)
 
Bool gf_props_equal (const GF_PropertyValue *p1, const GF_PropertyValue *p2)
 
Bool gf_props_equal_strict (const GF_PropertyValue *p1, const GF_PropertyValue *p2)
 
const char * gf_props_get_type_name (GF_PropType type)
 
const char * gf_props_get_type_desc (GF_PropType type)
 
GF_PropType gf_props_parse_type (const char *name)
 
Bool gf_props_type_is_enum (GF_PropType type)
 
u32 gf_props_parse_enum (u32 type, const char *value)
 
GF_PropertyValue gf_props_parse_value (u32 type, const char *name, const char *value, const char *enum_values, char list_sep_char)
 
const char * gf_props_enum_name (u32 type, u32 value)
 
const char * gf_props_enum_all_names (u32 type)
 
u32 gf_props_get_base_type (u32 type)
 
Bool gf_props_sanity_check ()
 
const char * gf_props_dump_val (const GF_PropertyValue *att, char dump[GF_PROP_DUMP_ARG_SIZE], GF_PropDumpDataMode dump_data_flags, const char *min_max_enum)
 
const char * gf_props_dump (u32 p4cc, const GF_PropertyValue *att, char dump[GF_PROP_DUMP_ARG_SIZE], GF_PropDumpDataMode dump_data_mode)
 
void gf_props_reset_single (GF_PropertyValue *prop)
 
const GF_BuiltInPropertygf_props_get_description (u32 prop_idx)
 
u32 gf_props_get_id (const char *name)
 
u8 gf_props_4cc_get_flags (u32 prop_4cc)
 

Detailed Description

Documents the property object used for PID and packets.


Data Structure Documentation

◆ GF_PropData

struct GF_PropData

Data property

Data Fields
u8 * ptr

data pointer

u32 size

data size

◆ GF_PropVec2i

struct GF_PropVec2i

2D signed integer vector property

Data Fields
s32 x

x coord

s32 y

y coord

◆ GF_PropVec2

struct GF_PropVec2

2D double number vector property

Data Fields
Double x

x coord

Double y

y coord

◆ GF_PropVec3i

struct GF_PropVec3i

3D signed integer vector property

Data Fields
s32 x

x coord

s32 y

y coord

s32 z

z coord

◆ GF_PropVec4i

struct GF_PropVec4i

4D signed integer vector property

Data Fields
s32 x

x coord

s32 y

y coord

s32 z

z coord

s32 w

w coord

◆ GF_PropStringList

struct GF_PropStringList

List of strings property - do not change field order !

Data Fields
char ** vals

array of unsigned integers

u32 nb_items

number of items in array

◆ GF_PropUIntList

struct GF_PropUIntList

List of unsigned int property - do not change field order !

Data Fields
u32 * vals

array of unsigned integers

u32 nb_items

number of items in array

◆ GF_PropIntList

struct GF_PropIntList

List of signed int property - do not change field order !

Data Fields
s32 * vals

array of signed integers

u32 nb_items

number of items in array

◆ GF_PropVec2iList

struct GF_PropVec2iList

List of unsigned int property

+ Collaboration diagram for GF_PropVec2iList:
Data Fields
GF_PropVec2i * vals

array of vec2i

u32 nb_items

number of items in array

◆ __gf_prop_val

struct __gf_prop_val

Property value used by PIDs and packets

Filter Property object

Data Fields
GF_PropType type

type of the property

union __gf_prop_val value

union of all possible property data types

◆ GF_BuiltInProperty

struct GF_BuiltInProperty

Structure describing a built-in property in GPAC

Data Fields
u32 type

identifier (4CC)

const char * name

name

const char * description

description

u8 data_type

data type (uint, float, etc ..)

u8 flags

flags for the property

◆ __gf_prop_val.value

union __gf_prop_val.value

union of all possible property data types

Data Fields
u64 longuint

64 bit unsigned integer value of property

s64 longsint

64 bit signed integer value of property

s32 sint

32 bit signed integer value of property

u32 uint

32 bit unsigned integer value of property

Bool boolean

boolean value of property

GF_Fraction frac

fraction (32/32 bits) value of property

GF_Fraction64 lfrac

fraction (64/64 bits) value of property

Fixed fnumber

fixed number (float or 32 bit depending on compilation settings) value of property

Double number

double value of property

GF_PropVec2i vec2i

2D signed integer vector value of property

GF_PropVec2 vec2

2D double vector value of property

GF_PropVec3i vec3i

3D signed integer vector value of property

GF_PropVec4i vec4i

4D signed integer vector value of property

GF_PropData data

data value of property. For non const data type, the memory is freed by filter session. Otherwise caller is responsible to free it at end of filter/session

char * string

string value of property. For non const string / names, the memory is freed by filter session, otherwise handled as const char *.

void * ptr

pointer value of property

GF_PropStringList string_list

string list value of property - memory is handled by filter session (always copy)

GF_PropUIntList uint_list

unsigned integer list value of property - memory is handled by filter session (always copy)

GF_PropIntList sint_list

signed integer list value of property - memory is handled by filter session (always copy)

GF_PropVec2iList v2i_list

vec2i list value of property - memory is handled by filter session (always copy)

Macro Definition Documentation

◆ GF_GSF_VERSION

#define GF_GSF_VERSION   2

GSF version (coded on 8 bits in gsf format)

◆ GF_PROP_DUMP_ARG_SIZE

#define GF_PROP_DUMP_ARG_SIZE   100

Maximum string size to use when dumping a property

◆ GF_PROP_FLAG_PCK

#define GF_PROP_FLAG_PCK   1

Property applies only to packets - if not set, property only applies to PID

◆ GF_PROP_FLAG_GSF_REM

#define GF_PROP_FLAG_GSF_REM   1<<1

Property is optional for GPAC GSF serialization (not transmitted over network when property removal is enabled)

◆ PROP_SINT

#define PROP_SINT (   _val)    (GF_PropertyValue){.type=GF_PROP_SINT, .value.sint = _val}

Helper macro to set signed int property

◆ PROP_UINT

#define PROP_UINT (   _val)    (GF_PropertyValue){.type=GF_PROP_UINT, .value.uint = _val}

Helper macro to set unsigned int property

◆ PROP_ENUM

#define PROP_ENUM (   _val,
  _type 
)    (GF_PropertyValue){.type=_type, .value.uint = _val}

Helper macro to set an enum property

◆ PROP_4CC

#define PROP_4CC (   _val)    (GF_PropertyValue){.type=GF_PROP_4CC, .value.uint = _val}

Helper macro to set 4CC unsigned int property

◆ PROP_LONGSINT

#define PROP_LONGSINT (   _val)    (GF_PropertyValue){.type=GF_PROP_LSINT, .value.longsint = _val}

Helper macro to set long signed int property

◆ PROP_LONGUINT

#define PROP_LONGUINT (   _val)    (GF_PropertyValue){.type=GF_PROP_LUINT, .value.longuint = _val}

Helper macro to set long unsigned int property

◆ PROP_BOOL

#define PROP_BOOL (   _val)    (GF_PropertyValue){.type=GF_PROP_BOOL, .value.boolean = _val}

Helper macro to set boolean property

◆ PROP_FIXED

#define PROP_FIXED (   _val)    (GF_PropertyValue){.type=GF_PROP_FLOAT, .value.fnumber = _val}

Helper macro to set fixed-point number property

◆ PROP_FLOAT

#define PROP_FLOAT (   _val)    (GF_PropertyValue){.type=GF_PROP_FLOAT, .value.fnumber = FLT2FIX(_val)}

Helper macro to set float property

◆ PROP_FRAC_INT

#define PROP_FRAC_INT (   _num,
  _den 
)    (GF_PropertyValue){.type=GF_PROP_FRACTION, .value.frac.num = _num, .value.frac.den = _den}

Helper macro to set 32-bit fraction property from integers

◆ PROP_FRAC

#define PROP_FRAC (   _val)    (GF_PropertyValue){.type=GF_PROP_FRACTION, .value.frac = _val }

Helper macro to set 32-bit fraction property

◆ PROP_FRAC64

#define PROP_FRAC64 (   _val)    (GF_PropertyValue){.type=GF_PROP_FRACTION64, .value.lfrac = _val}

Helper macro to set 64-bit fraction property from integers

◆ PROP_FRAC64_INT

#define PROP_FRAC64_INT (   _num,
  _den 
)    (GF_PropertyValue){.type=GF_PROP_FRACTION64, .value.lfrac.num = _num, .value.lfrac.den = _den}

Helper macro to set 64-bit fraction property

◆ PROP_DOUBLE

#define PROP_DOUBLE (   _val)    (GF_PropertyValue){.type=GF_PROP_DOUBLE, .value.number = _val}

Helper macro to set double property

◆ PROP_STRING

#define PROP_STRING (   _val)    (GF_PropertyValue){.type=GF_PROP_STRING, .value.string = (char *) _val}

Helper macro to set string property

◆ PROP_STRING_NO_COPY

#define PROP_STRING_NO_COPY (   _val)    (GF_PropertyValue){.type=GF_PROP_STRING_NO_COPY, .value.string = _val}

Helper macro to set string property without string copy (string memory is owned by filter)

◆ PROP_NAME

#define PROP_NAME (   _val)    (GF_PropertyValue){.type=GF_PROP_NAME, .value.string = _val}

Helper macro to set name property

◆ PROP_DATA

#define PROP_DATA (   _val,
  _len 
)    (GF_PropertyValue){.type=GF_PROP_DATA, .value.data.ptr = _val, .value.data.size=_len}

Helper macro to set data property

◆ PROP_DATA_NO_COPY

#define PROP_DATA_NO_COPY (   _val,
  _len 
)    (GF_PropertyValue){.type=GF_PROP_DATA_NO_COPY, .value.data.ptr = _val, .value.data.size =_len}

Helper macro to set data property without data copy ( memory is owned by filter)

◆ PROP_CONST_DATA

#define PROP_CONST_DATA (   _val,
  _len 
)    (GF_PropertyValue){.type=GF_PROP_CONST_DATA, .value.data.ptr = _val, .value.data.size = _len}

Helper macro to set const data property

◆ PROP_VEC2

#define PROP_VEC2 (   _val)    (GF_PropertyValue){.type=GF_PROP_VEC2, .value.vec2 = _val}

Helper macro to set 2D float vector property

◆ PROP_VEC2I

#define PROP_VEC2I (   _val)    (GF_PropertyValue){.type=GF_PROP_VEC2I, .value.vec2i = _val}

Helper macro to set 2D integer vector property

◆ PROP_VEC2I_INT

#define PROP_VEC2I_INT (   _x,
  _y 
)    (GF_PropertyValue){.type=GF_PROP_VEC2I, .value.vec2i.x = _x, .value.vec2i.y = _y}

Helper macro to set 2D integer vector property from integers

◆ PROP_VEC3I

#define PROP_VEC3I (   _val)    (GF_PropertyValue){.type=GF_PROP_VEC3I, .value.vec3i = _val}

Helper macro to set 3D integer vector property

◆ PROP_VEC3I_INT

#define PROP_VEC3I_INT (   _x,
  _y,
  _z 
)    (GF_PropertyValue){.type=GF_PROP_VEC3I, .value.vec3i.x = _x, .value.vec3i.y = _y, .value.vec3i.z = _z}

Helper macro to set 3D integer vector property from integers

◆ PROP_VEC4I

#define PROP_VEC4I (   _val)    (GF_PropertyValue){.type=GF_PROP_VEC4I, .value.vec4i = _val}

Helper macro to set 4D integer vector property

◆ PROP_VEC4I_INT

#define PROP_VEC4I_INT (   _x,
  _y,
  _z,
  _w 
)    (GF_PropertyValue){.type=GF_PROP_VEC4I, .value.vec4i.x = _x, .value.vec4i.y = _y, .value.vec4i.z = _z, .value.vec4i.w = _w}

Helper macro to set 4D integer vector property from integers

◆ PROP_POINTER

#define PROP_POINTER (   _val)    (GF_PropertyValue){.type=GF_PROP_POINTER, .value.ptr = (void*)_val}

Helper macro to set pointer property

Enumeration Type Documentation

◆ GF_PropType

Property types

Enumerator
GF_PROP_FORBIDDEN 

not allowed

GF_PROP_SINT 

signed 32 bit integer

GF_PROP_UINT 

unsigned 32 bit integer

GF_PROP_LSINT 

signed 64 bit integer

GF_PROP_LUINT 

unsigned 64 bit integer

GF_PROP_BOOL 

boolean

GF_PROP_FRACTION 

32 bit / 32 bit fraction

GF_PROP_FRACTION64 

64 bit / 64 bit fraction

GF_PROP_FLOAT 

float (Fixed) number

GF_PROP_DOUBLE 

double number

GF_PROP_VEC2I 

2D signed integer vector

GF_PROP_VEC2 

2D double number vector

GF_PROP_VEC3I 

3D signed integer vector

GF_PROP_VEC4I 

4D signed integer vector

GF_PROP_STRING 

string property, memory is duplicated when setting the property and managed internally

GF_PROP_STRING_NO_COPY 

string property, memory is NOT duplicated when setting the property but is then managed (and free) internally. Only used when setting a property, the type then defaults to GF_PROP_STRING DO NOT USE the associate string field upon return from setting the property, it might have been destroyed

GF_PROP_DATA 

data property, memory is duplicated when setting the property and managed internally

GF_PROP_NAME 

const string property, memory is NOT duplicated when setting the property, stays user-managed

GF_PROP_DATA_NO_COPY 

data property, memory is NOT duplicated when setting the property but is then managed (and free) internally. Only used when setting a property, the type then defaults to GF_PROP_DATA DO NOT USE the associate data field upon return from setting the property, it might have been destroyed

GF_PROP_CONST_DATA 

const data property, memory is NOT duplicated when setting the property, stays user-managed

GF_PROP_POINTER 

user-managed pointer

GF_PROP_STRING_LIST 

string list, memory is NOT duplicated when setting the property, the passed array is directly assigned to the new property and will be and managed internally (freed by the filter session) DO NOT USE the associate string array field upon return from setting the property, it might have been destroyed

GF_PROP_UINT_LIST 

unsigned 32 bit integer list, memory is ALWAYS duplicated when setting the property

GF_PROP_SINT_LIST 

signed 32 bit integer list, memory is ALWAYS duplicated when setting the property

GF_PROP_VEC2I_LIST 

2D signed integer vector list, memory is ALWAYS duplicated when setting the property

GF_PROP_4CC 

4CC on unsigned 32 bit integer

GF_PROP_4CC_LIST 

4CC list on unsigned 32 bit integer, memory is ALWAYS duplicated when setting the property

GF_PROP_STRING_LIST_COPY 

string list, memory is duplicated when setting the property - to use only with property assignment functions

GF_PROP_LAST_NON_ENUM 

last non-enum property

GF_PROP_FIRST_ENUM 

All constants are defined after this - constants are stored as u32

GF_PROP_PIXFMT 

Video Pixel format

GF_PROP_PCMFMT 

Audio PCM format

GF_PROP_CICP_COL_PRIM 

CICP Color Primaries

GF_PROP_CICP_COL_TFC 

CICP Color Transfer Characteristics

GF_PROP_CICP_COL_MX 

CICP Color Matrix

GF_PROP_CICP_LAYOUT 

CICP Layout

GF_PROP_LAST_DEFINED 

not allowed

◆ GF_FilterPidPlaybackMode

Playback mode type supported on PID

Enumerator
GF_PLAYBACK_MODE_NONE 

simplest playback mode, can play from 0 at speed=1 only

GF_PLAYBACK_MODE_SEEK 

seek playback mode, can play from any position at speed=1 only

GF_PLAYBACK_MODE_FASTFORWARD 

fast forward playback mode, can play from any position at speed=N only, with N>=0

GF_PLAYBACK_MODE_REWIND 

rewind playback mode, can play from any position at speed=N, N positive or negative

◆ anonymous enum

anonymous enum

Built-in property types See gpac help (gpac -h props) for codes, types, formats and and meaning

All these property must use capital alpha-numerical code, no space or special charcters allowed.

    \hideinitializer
Enumerator
GF_PROP_PID_META_DEMUX_CODEC_ID 

Internal property used for meta demuxers ( FFmpeg, ...) codec ID

Property can be:
- pointer to codec context: only for ffdmx with old ffmpeg versions)
- uint: AVCODEC_ID_*  ffdmx with newer versions or ffenc output
GF_PROP_PID_META_DEMUX_OPAQUE 

Internal property used for meta demuxers ( FFmpeg, ...) codec opaque data, u32

◆ anonymous enum

anonymous enum

Block patching requirements for FILE pids, as signaled by GF_PROP_PID_DISABLE_PROGRESSIVE

◆ GF_PropDumpDataMode

Data property dump mode

Enumerator
GF_PROP_DUMP_DATA_NONE 

do not dump data

GF_PROP_DUMP_DATA_INFO 

dump data if less than 40 bytes, otherwise dump ptr address and CRC

GF_PROP_DUMP_DATA_PTR 

dump data to parsable property, as ADDRESS+'@'+POINTER

GF_PROP_DUMP_NO_REDUCE 

do not reduce fractions when dumping

Function Documentation

◆ gf_props_4cc_get_name()

const char* gf_props_4cc_get_name ( u32  prop_4cc)

Gets readable name of built-in property

Parameters
prop_4ccproperty built-in 4cc
Returns
readable name

◆ gf_props_4cc_get_type()

u32 gf_props_4cc_get_type ( u32  prop_4cc)

Gets property type of built-in property

Parameters
prop_4ccproperty built-in 4cc
Returns
property name

◆ gf_props_equal()

Bool gf_props_equal ( const GF_PropertyValue *  p1,
const GF_PropertyValue *  p2 
)

Checks if two properties are equal

Parameters
p1first property to compare - shall not be NULL
p2second property to compare - shall not be NULL
Returns
GF_TRUE if properties are equal, GF_FALSE otherwise

◆ gf_props_equal_strict()

Bool gf_props_equal_strict ( const GF_PropertyValue *  p1,
const GF_PropertyValue *  p2 
)

Same as gf_props_equal but do not match string with value "*" to string with value different from "*"

Parameters
p1first property to compare - shall not be NULL
p2second property to compare - shall not be NULL
Returns
GF_TRUE if properties are equal, GF_FALSE otherwise

◆ gf_props_get_type_name()

const char* gf_props_get_type_name ( GF_PropType  type)

Gets the readable name for a property type

Parameters
typeproperty type
Returns
readable name

◆ gf_props_get_type_desc()

const char* gf_props_get_type_desc ( GF_PropType  type)

Gets the description for a property type

Parameters
typeproperty type
Returns
description

◆ gf_props_parse_type()

GF_PropType gf_props_parse_type ( const char *  name)

Gets the description type for a given property type name

Parameters
nameproperty type name
Returns
property type or GF_PROP_FORBIDDEN

◆ gf_props_type_is_enum()

Bool gf_props_type_is_enum ( GF_PropType  type)

Check if a property type is an enum type

Parameters
typeproperty type
Returns
GF_TRUE if constant, GF_FALSE otherwise

◆ gf_props_parse_enum()

u32 gf_props_parse_enum ( u32  type,
const char *  value 
)

Parse a enum type property string

Parameters
typeproperty type
valuevalue to parse
Returns
value, 0xFFFFFFFF if error

◆ gf_props_parse_value()

GF_PropertyValue gf_props_parse_value ( u32  type,
const char *  name,
const char *  value,
const char *  enum_values,
char  list_sep_char 
)

Parses a property value from string

Parameters
typeproperty type to parse
nameproperty name to parse (for logs)
valuestring containing the value to parse
enum_valuesstring containig enum_values, or NULL. enum_values are used for unsigned int properties, take the form "a|b|c" and resolve to 0|1|2.
list_sep_charvalue of the list separator character to use
Returns
the parsed property value

◆ gf_props_enum_name()

const char* gf_props_enum_name ( u32  type,
u32  value 
)

Get the name of a constant type property value

Parameters
typeproperty type
valuevalue of constant
Returns
value, 0xFFFFFFFF if error

◆ gf_props_enum_all_names()

const char* gf_props_enum_all_names ( u32  type)

Get the possible names of an enum type property

Parameters
typeproperty type
Returns
comma-separated list of possible values

◆ gf_props_get_base_type()

u32 gf_props_get_base_type ( u32  type)

Get the base type of a property type. Properties with same base type can be safely type-casted

Parameters
typeproperty type
Returns
base property type

◆ gf_props_sanity_check()

Bool gf_props_sanity_check ( )

Checks consistency of defined properties

Returns
GF_TRUE if OK, GF_FALSE otherwise

◆ gf_props_dump_val()

const char* gf_props_dump_val ( const GF_PropertyValue *  att,
char  dump[GF_PROP_DUMP_ARG_SIZE],
GF_PropDumpDataMode  dump_data_flags,
const char *  min_max_enum 
)

Dumps a property value to string

Parameters
attproperty value
dumpbuffer holding the resulting value for types requiring string conversions (integers, ...)
dump_data_flagsdata dump mode and flags
min_max_enumoptional, gives the min/max or enum string when the property is a filter argument
Returns
string

◆ gf_props_dump()

const char* gf_props_dump ( u32  p4cc,
const GF_PropertyValue *  att,
char  dump[GF_PROP_DUMP_ARG_SIZE],
GF_PropDumpDataMode  dump_data_mode 
)

Dumps a property value to string, resolving any built-in types (pix formats, codec id, ...)

Parameters
p4ccproperty 4CC
attproperty value
dumpbuffer holding the resulting value for types requiring string conversions (integers, ...)
dump_data_modedata dump mode
Returns
string

◆ gf_props_reset_single()

void gf_props_reset_single ( GF_PropertyValue *  prop)

Resets a property value, freeing allocated data or strings depending on the property type

Parameters
propproperty 4CC

◆ gf_props_get_description()

const GF_BuiltInProperty* gf_props_get_description ( u32  prop_idx)

Gets property description

Parameters
prop_idxbuilt-in property index, starting from 0
Returns
associated property description or NULL if property was not found

◆ gf_props_get_id()

u32 gf_props_get_id ( const char *  name)

Gets built-in property 4CC from name

Parameters
namebuilt-in property name
Returns
built-in property 4CC or 0 if not found

◆ gf_props_4cc_get_flags()

u8 gf_props_4cc_get_flags ( u32  prop_4cc)

Gets flags of built-in property

Parameters
prop_4ccbuilt-in property 4CC
Returns
built-in property flags, 0 if not found