VLC 4.0.0-dev
Loading...
Searching...
No Matches
vlc_meta.h File Reference

This file defines functions and structures for stream meta-data in vlc. More...

Include dependency graph for vlc_meta.h:

Go to the source code of this file.

Data Structures

struct  meta_export_t

Macros

#define VLC_META_TYPE_COUNT   27
#define ITEM_PREPARSED   1
#define ITEM_ART_FETCHED   2
#define ITEM_ART_NOTFOUND   4
#define vlc_meta_Set(meta, meta_type, b)
#define vlc_meta_SetExtra(meta, psz_name, psz_value)
#define vlc_meta_Get(meta, meta_type)
#define vlc_meta_GetExtra(meta, psz_name)
#define vlc_meta_SetTitle(meta, b)
#define vlc_meta_SetArtist(meta, b)
#define vlc_meta_SetGenre(meta, b)
#define vlc_meta_SetCopyright(meta, b)
#define vlc_meta_SetAlbum(meta, b)
#define vlc_meta_SetTrackNum(meta, b)
#define vlc_meta_SetDescription(meta, b)
#define vlc_meta_SetRating(meta, b)
#define vlc_meta_SetDate(meta, b)
#define vlc_meta_SetSetting(meta, b)
#define vlc_meta_SetURL(meta, b)
#define vlc_meta_SetLanguage(meta, b)
#define vlc_meta_SetNowPlaying(meta, b)
#define vlc_meta_SetPublisher(meta, b)
#define vlc_meta_SetEncodedBy(meta, b)
#define vlc_meta_SetArtURL(meta, b)
#define vlc_meta_SetTrackID(meta, b)
#define vlc_meta_SetTrackTotal(meta, b)
#define vlc_meta_SetDirector(meta, b)
#define vlc_meta_SetSeason(meta, b)
#define vlc_meta_SetEpisode(meta, b)
#define vlc_meta_SetShowName(meta, b)
#define vlc_meta_SetActors(meta, b)
#define vlc_meta_SetAlbumArtist(meta, b)
#define vlc_meta_SetDiscNumber(meta, b)
#define VLC_META_TITLE   vlc_meta_TypeToLocalizedString( vlc_meta_Title )
#define VLC_META_ARTIST   vlc_meta_TypeToLocalizedString( vlc_meta_Artist )
#define VLC_META_GENRE   vlc_meta_TypeToLocalizedString( vlc_meta_Genre )
#define VLC_META_COPYRIGHT   vlc_meta_TypeToLocalizedString( vlc_meta_Copyright )
#define VLC_META_ALBUM   vlc_meta_TypeToLocalizedString( vlc_meta_Album )
#define VLC_META_TRACK_NUMBER   vlc_meta_TypeToLocalizedString( vlc_meta_TrackNumber )
#define VLC_META_DESCRIPTION   vlc_meta_TypeToLocalizedString( vlc_meta_Description )
#define VLC_META_RATING   vlc_meta_TypeToLocalizedString( vlc_meta_Rating )
#define VLC_META_DATE   vlc_meta_TypeToLocalizedString( vlc_meta_Date )
#define VLC_META_SETTING   vlc_meta_TypeToLocalizedString( vlc_meta_Setting )
#define VLC_META_URL   vlc_meta_TypeToLocalizedString( vlc_meta_URL )
#define VLC_META_LANGUAGE   vlc_meta_TypeToLocalizedString( vlc_meta_Language )
#define VLC_META_NOW_PLAYING   vlc_meta_TypeToLocalizedString( vlc_meta_NowPlaying )
#define VLC_META_PUBLISHER   vlc_meta_TypeToLocalizedString( vlc_meta_Publisher )
#define VLC_META_ENCODED_BY   vlc_meta_TypeToLocalizedString( vlc_meta_EncodedBy )
#define VLC_META_ART_URL   vlc_meta_TypeToLocalizedString( vlc_meta_ArtworkURL )
#define VLC_META_TRACKID   vlc_meta_TypeToLocalizedString( vlc_meta_TrackID )
#define VLC_META_DIRECTOR   vlc_meta_TypeToLocalizedString( vlc_meta_Director )
#define VLC_META_SEASON   vlc_meta_TypeToLocalizedString( vlc_meta_Season )
#define VLC_META_EPISODE   vlc_meta_TypeToLocalizedString( vlc_meta_Episode )
#define VLC_META_SHOW_NAME   vlc_meta_TypeToLocalizedString( vlc_meta_ShowName )
#define VLC_META_ACTORS   vlc_meta_TypeToLocalizedString( vlc_meta_Actors )
#define VLC_META_ALBUMARTIST   vlc_meta_TypeToLocalizedString( vlc_meta_AlbumArtist )
#define VLC_META_DISCNUMBER   vlc_meta_TypeToLocalizedString( vlc_meta_DiscNumber )
#define VLC_META_EXTRA_MB_ALBUMID   "MB_ALBUMID"

Typedefs

typedef enum vlc_meta_type_t vlc_meta_type_t
typedef struct meta_export_t meta_export_t

Enumerations

enum  vlc_meta_type_t {
  vlc_meta_Title , vlc_meta_Artist , vlc_meta_Genre , vlc_meta_Copyright ,
  vlc_meta_Album , vlc_meta_TrackNumber , vlc_meta_Description , vlc_meta_Rating ,
  vlc_meta_Date , vlc_meta_Setting , vlc_meta_URL , vlc_meta_Language ,
  vlc_meta_NowPlaying , vlc_meta_ESNowPlaying , vlc_meta_Publisher , vlc_meta_EncodedBy ,
  vlc_meta_ArtworkURL , vlc_meta_TrackID , vlc_meta_TrackTotal , vlc_meta_Director ,
  vlc_meta_Season , vlc_meta_Episode , vlc_meta_ShowName , vlc_meta_Actors ,
  vlc_meta_AlbumArtist , vlc_meta_DiscNumber , vlc_meta_DiscTotal
}
enum  vlc_meta_priority_t { VLC_META_PRIORITY_BASIC , VLC_META_PRIORITY_PLAYLIST , VLC_META_PRIORITY_INBAND }

Functions

vlc_meta_tvlc_meta_New (void)
 vlc_meta constructor.
void vlc_meta_Delete (vlc_meta_t *m)
void vlc_meta_SetWithPriority (vlc_meta_t *p_meta, vlc_meta_type_t meta_type, const char *psz_val, vlc_meta_priority_t priority)
 vlc_meta has two kinds of meta, the one in a table, and the one in a dictionary.
const char * vlc_meta_GetWithPriority (const vlc_meta_t *p_meta, vlc_meta_type_t meta_type, vlc_meta_priority_t *restrict priority)
void vlc_meta_SetExtraWithPriority (vlc_meta_t *m, const char *psz_name, const char *psz_value, vlc_meta_priority_t priority)
 set the meta extra
const char * vlc_meta_GetExtraWithPriority (const vlc_meta_t *m, const char *name, vlc_meta_priority_t *priority)
unsigned vlc_meta_GetExtraCount (const vlc_meta_t *m)
char ** vlc_meta_CopyExtraNames (const vlc_meta_t *m)
 Allocate a copy of all extra meta names and a table with it.
void vlc_meta_Merge (vlc_meta_t *dst, const vlc_meta_t *src)
 Merging meta.
int vlc_meta_GetStatus (vlc_meta_t *m)
 vlc_meta status (see vlc_meta_status_e)
void vlc_meta_SetStatus (vlc_meta_t *m, int status)
const char * vlc_meta_TypeToString (vlc_meta_type_t meta_type)
const char * vlc_meta_TypeToLocalizedString (vlc_meta_type_t meta_type)
 Returns a localizes string describing the meta.
int input_item_WriteMeta (vlc_object_t *, input_item_t *)

Detailed Description

This file defines functions and structures for stream meta-data in vlc.

Macro Definition Documentation

◆ ITEM_ART_FETCHED

#define ITEM_ART_FETCHED   2

◆ ITEM_ART_NOTFOUND

#define ITEM_ART_NOTFOUND   4

◆ ITEM_PREPARSED

#define ITEM_PREPARSED   1

◆ VLC_META_ACTORS

#define VLC_META_ACTORS   vlc_meta_TypeToLocalizedString( vlc_meta_Actors )

◆ VLC_META_ALBUM

#define VLC_META_ALBUM   vlc_meta_TypeToLocalizedString( vlc_meta_Album )

◆ VLC_META_ALBUMARTIST

#define VLC_META_ALBUMARTIST   vlc_meta_TypeToLocalizedString( vlc_meta_AlbumArtist )

◆ VLC_META_ART_URL

#define VLC_META_ART_URL   vlc_meta_TypeToLocalizedString( vlc_meta_ArtworkURL )

◆ VLC_META_ARTIST

#define VLC_META_ARTIST   vlc_meta_TypeToLocalizedString( vlc_meta_Artist )

◆ VLC_META_COPYRIGHT

#define VLC_META_COPYRIGHT   vlc_meta_TypeToLocalizedString( vlc_meta_Copyright )

◆ VLC_META_DATE

#define VLC_META_DATE   vlc_meta_TypeToLocalizedString( vlc_meta_Date )

◆ VLC_META_DESCRIPTION

#define VLC_META_DESCRIPTION   vlc_meta_TypeToLocalizedString( vlc_meta_Description )

◆ VLC_META_DIRECTOR

#define VLC_META_DIRECTOR   vlc_meta_TypeToLocalizedString( vlc_meta_Director )

◆ VLC_META_DISCNUMBER

#define VLC_META_DISCNUMBER   vlc_meta_TypeToLocalizedString( vlc_meta_DiscNumber )

◆ VLC_META_ENCODED_BY

#define VLC_META_ENCODED_BY   vlc_meta_TypeToLocalizedString( vlc_meta_EncodedBy )

◆ VLC_META_EPISODE

#define VLC_META_EPISODE   vlc_meta_TypeToLocalizedString( vlc_meta_Episode )

◆ VLC_META_EXTRA_MB_ALBUMID

#define VLC_META_EXTRA_MB_ALBUMID   "MB_ALBUMID"

◆ VLC_META_GENRE

#define VLC_META_GENRE   vlc_meta_TypeToLocalizedString( vlc_meta_Genre )

◆ vlc_meta_Get

#define vlc_meta_Get ( meta,
meta_type )
Value:
vlc_meta_GetWithPriority(meta, meta_type, NULL)
const char * vlc_meta_GetWithPriority(const vlc_meta_t *meta, vlc_meta_type_t meta_type, vlc_meta_priority_t *restrict priority)
Definition meta.c:161

Referenced by ArtCachePath(), CheckArt(), CheckMeta(), CreateCacheKey(), EsOutMeta(), EsOutProgramEpg(), EsOutProgramGetMetaName(), EsOutProgramGetProgramName(), EsOutProgramMeta(), EsOutProgramSelect(), input_item_GetMetaLocked(), input_item_GetTitleFbName(), and input_item_MetaMatch().

◆ vlc_meta_GetExtra

#define vlc_meta_GetExtra ( meta,
psz_name )
Value:
const char * vlc_meta_GetExtraWithPriority(const vlc_meta_t *m, const char *name, vlc_meta_priority_t *priority)
Definition meta.c:184
const char * psz_name
Definition text_style.c:33

Referenced by EsOutProgramMeta(), EsOutUpdateInfo(), input_item_GetMetaExtraLocked(), and vlc_replay_gain_CopyFromMeta().

◆ VLC_META_LANGUAGE

#define VLC_META_LANGUAGE   vlc_meta_TypeToLocalizedString( vlc_meta_Language )

◆ VLC_META_NOW_PLAYING

#define VLC_META_NOW_PLAYING   vlc_meta_TypeToLocalizedString( vlc_meta_NowPlaying )

◆ VLC_META_PUBLISHER

#define VLC_META_PUBLISHER   vlc_meta_TypeToLocalizedString( vlc_meta_Publisher )

◆ VLC_META_RATING

#define VLC_META_RATING   vlc_meta_TypeToLocalizedString( vlc_meta_Rating )

◆ VLC_META_SEASON

#define VLC_META_SEASON   vlc_meta_TypeToLocalizedString( vlc_meta_Season )

◆ vlc_meta_Set

#define vlc_meta_Set ( meta,
meta_type,
b )
Value:
void vlc_meta_SetWithPriority(vlc_meta_t *p_meta, vlc_meta_type_t meta_type, const char *psz_val, vlc_meta_priority_t priority)
vlc_meta has two kinds of meta, the one in a table, and the one in a dictionary.
Definition meta.c:153
@ VLC_META_PRIORITY_BASIC
Definition vlc_meta.h:68

Referenced by EsOutProgramEpg(), input_item_SetMeta(), and InputMetaUser().

◆ vlc_meta_SetActors

#define vlc_meta_SetActors ( meta,
b )
Value:
#define vlc_meta_Set(meta, meta_type, b)
Definition vlc_meta.h:127
@ vlc_meta_Actors
Definition vlc_meta.h:58

◆ vlc_meta_SetAlbum

#define vlc_meta_SetAlbum ( meta,
b )
Value:
@ vlc_meta_Album
Definition vlc_meta.h:39

◆ vlc_meta_SetAlbumArtist

#define vlc_meta_SetAlbumArtist ( meta,
b )
Value:
@ vlc_meta_AlbumArtist
Definition vlc_meta.h:59

◆ vlc_meta_SetArtist

#define vlc_meta_SetArtist ( meta,
b )
Value:
@ vlc_meta_Artist
Definition vlc_meta.h:36

◆ vlc_meta_SetArtURL

#define vlc_meta_SetArtURL ( meta,
b )
Value:
@ vlc_meta_ArtworkURL
Definition vlc_meta.h:51

◆ vlc_meta_SetCopyright

#define vlc_meta_SetCopyright ( meta,
b )
Value:
@ vlc_meta_Copyright
Definition vlc_meta.h:38

◆ vlc_meta_SetDate

#define vlc_meta_SetDate ( meta,
b )
Value:
@ vlc_meta_Date
Definition vlc_meta.h:43

◆ vlc_meta_SetDescription

#define vlc_meta_SetDescription ( meta,
b )
Value:
@ vlc_meta_Description
Definition vlc_meta.h:41

◆ vlc_meta_SetDirector

#define vlc_meta_SetDirector ( meta,
b )
Value:
@ vlc_meta_Director
Definition vlc_meta.h:54

◆ vlc_meta_SetDiscNumber

#define vlc_meta_SetDiscNumber ( meta,
b )
Value:
@ vlc_meta_DiscNumber
Definition vlc_meta.h:60

◆ vlc_meta_SetEncodedBy

#define vlc_meta_SetEncodedBy ( meta,
b )
Value:
@ vlc_meta_EncodedBy
Definition vlc_meta.h:50

◆ vlc_meta_SetEpisode

#define vlc_meta_SetEpisode ( meta,
b )
Value:
@ vlc_meta_Episode
Definition vlc_meta.h:56

◆ vlc_meta_SetExtra

#define vlc_meta_SetExtra ( meta,
psz_name,
psz_value )
Value:
void vlc_meta_SetExtraWithPriority(vlc_meta_t *m, const char *psz_name, const char *psz_value, vlc_meta_priority_t priority)
set the meta extra
Definition meta.c:173
char psz_value[8]
Definition vout_intf.c:110

Referenced by input_item_SetMetaExtra().

◆ vlc_meta_SetGenre

#define vlc_meta_SetGenre ( meta,
b )
Value:
@ vlc_meta_Genre
Definition vlc_meta.h:37

◆ vlc_meta_SetLanguage

#define vlc_meta_SetLanguage ( meta,
b )
Value:
@ vlc_meta_Language
Definition vlc_meta.h:46

◆ vlc_meta_SetNowPlaying

#define vlc_meta_SetNowPlaying ( meta,
b )
Value:
@ vlc_meta_NowPlaying
Definition vlc_meta.h:47

Referenced by EsOutProgramEpg().

◆ vlc_meta_SetPublisher

#define vlc_meta_SetPublisher ( meta,
b )
Value:
@ vlc_meta_Publisher
Definition vlc_meta.h:49

◆ vlc_meta_SetRating

#define vlc_meta_SetRating ( meta,
b )
Value:
@ vlc_meta_Rating
Definition vlc_meta.h:42

◆ vlc_meta_SetSeason

#define vlc_meta_SetSeason ( meta,
b )
Value:
@ vlc_meta_Season
Definition vlc_meta.h:55

◆ vlc_meta_SetSetting

#define vlc_meta_SetSetting ( meta,
b )
Value:
@ vlc_meta_Setting
Definition vlc_meta.h:44

◆ vlc_meta_SetShowName

#define vlc_meta_SetShowName ( meta,
b )
Value:
@ vlc_meta_ShowName
Definition vlc_meta.h:57

◆ VLC_META_SETTING

#define VLC_META_SETTING   vlc_meta_TypeToLocalizedString( vlc_meta_Setting )

◆ vlc_meta_SetTitle

#define vlc_meta_SetTitle ( meta,
b )
Value:
@ vlc_meta_Title
Definition vlc_meta.h:35

◆ vlc_meta_SetTrackID

#define vlc_meta_SetTrackID ( meta,
b )
Value:
@ vlc_meta_TrackID
Definition vlc_meta.h:52

◆ vlc_meta_SetTrackNum

#define vlc_meta_SetTrackNum ( meta,
b )
Value:
@ vlc_meta_TrackNumber
Definition vlc_meta.h:40

◆ vlc_meta_SetTrackTotal

#define vlc_meta_SetTrackTotal ( meta,
b )
Value:
@ vlc_meta_TrackTotal
Definition vlc_meta.h:53

◆ vlc_meta_SetURL

#define vlc_meta_SetURL ( meta,
b )
Value:
@ vlc_meta_URL
Definition vlc_meta.h:45

◆ VLC_META_SHOW_NAME

#define VLC_META_SHOW_NAME   vlc_meta_TypeToLocalizedString( vlc_meta_ShowName )

◆ VLC_META_TITLE

#define VLC_META_TITLE   vlc_meta_TypeToLocalizedString( vlc_meta_Title )

◆ VLC_META_TRACK_NUMBER

#define VLC_META_TRACK_NUMBER   vlc_meta_TypeToLocalizedString( vlc_meta_TrackNumber )

◆ VLC_META_TRACKID

#define VLC_META_TRACKID   vlc_meta_TypeToLocalizedString( vlc_meta_TrackID )

◆ VLC_META_TYPE_COUNT

#define VLC_META_TYPE_COUNT   27

◆ VLC_META_URL

#define VLC_META_URL   vlc_meta_TypeToLocalizedString( vlc_meta_URL )

Typedef Documentation

◆ meta_export_t

typedef struct meta_export_t meta_export_t

◆ vlc_meta_type_t

Enumeration Type Documentation

◆ vlc_meta_priority_t

Enumerator
VLC_META_PRIORITY_BASIC 
VLC_META_PRIORITY_PLAYLIST 
VLC_META_PRIORITY_INBAND 

◆ vlc_meta_type_t

Enumerator
vlc_meta_Title 
vlc_meta_Artist 
vlc_meta_Genre 
vlc_meta_Copyright 
vlc_meta_Album 
vlc_meta_TrackNumber 
vlc_meta_Description 
vlc_meta_Rating 
vlc_meta_Date 
vlc_meta_Setting 
vlc_meta_URL 
vlc_meta_Language 
vlc_meta_NowPlaying 
vlc_meta_ESNowPlaying 
vlc_meta_Publisher 
vlc_meta_EncodedBy 
vlc_meta_ArtworkURL 
vlc_meta_TrackID 
vlc_meta_TrackTotal 
vlc_meta_Director 
vlc_meta_Season 
vlc_meta_Episode 
vlc_meta_ShowName 
vlc_meta_Actors 
vlc_meta_AlbumArtist 
vlc_meta_DiscNumber 
vlc_meta_DiscTotal 

Function Documentation

◆ input_item_WriteMeta()

◆ vlc_meta_CopyExtraNames()

char ** vlc_meta_CopyExtraNames ( const vlc_meta_t * m)

Allocate a copy of all extra meta names and a table with it.

Be sure to free both the returned pointers and its name.

References vlc_meta_t::extra_tags, and vlc_dictionary_all_keys().

Referenced by EsOutProgramMeta(), EsOutUpdateInfo(), and input_item_GetMetaExtraNames().

◆ vlc_meta_Delete()

◆ vlc_meta_GetExtraCount()

unsigned vlc_meta_GetExtraCount ( const vlc_meta_t * m)

◆ vlc_meta_GetExtraWithPriority()

const char * vlc_meta_GetExtraWithPriority ( const vlc_meta_t * m,
const char * name,
vlc_meta_priority_t * priority )

◆ vlc_meta_GetStatus()

int vlc_meta_GetStatus ( vlc_meta_t * m)

◆ vlc_meta_GetWithPriority()

const char * vlc_meta_GetWithPriority ( const vlc_meta_t * p_meta,
vlc_meta_type_t meta_type,
vlc_meta_priority_t *restrict priority )

◆ vlc_meta_Merge()

◆ vlc_meta_New()

◆ vlc_meta_SetExtraWithPriority()

void vlc_meta_SetExtraWithPriority ( vlc_meta_t * m,
const char * psz_name,
const char * psz_value,
vlc_meta_priority_t priority )

set the meta extra

Parameters
mvlc_meta_t
psz_namemeta extra name (nonnullable)
psz_valuemeta extra value (nullable) Removed from meta extra if set to NULL
prioritymetadata priority (in terms of vlc_meta_priority_t)

References vlc_meta_t::extra_tags, kVLCDictionaryNotFound, vlc_meta_value::priority, psz_name, psz_value, vlc_dictionary_remove_value_for_key(), vlc_dictionary_value_for_key(), vlc_meta_FreeExtraKey(), and vlc_meta_InsertExtra().

◆ vlc_meta_SetStatus()

void vlc_meta_SetStatus ( vlc_meta_t * m,
int status )

◆ vlc_meta_SetWithPriority()

void vlc_meta_SetWithPriority ( vlc_meta_t * p_meta,
vlc_meta_type_t meta_type,
const char * psz_val,
vlc_meta_priority_t priority )

vlc_meta has two kinds of meta, the one in a table, and the one in a dictionary.

FIXME - Why don't we merge those two?

References IsUTF8(), vlc_meta_t::meta, vlc_meta_value::priority, strdup(), and vlc_meta_value::value.

◆ vlc_meta_TypeToLocalizedString()

const char * vlc_meta_TypeToLocalizedString ( vlc_meta_type_t meta_type)

Returns a localizes string describing the meta.

References vlc_gettext(), and vlc_meta_TypeToString().

Referenced by EsOutProgramEpg(), and EsOutProgramMeta().

◆ vlc_meta_TypeToString()