+#undef SET
+ static const struct { uint32_t xa9_type; char metadata[25]; } xa9typetoextrameta[] =
+ {
+ { FOURCC_0xa9wrt, N_("Writer") },
+ { FOURCC_0xa9com, N_("Composr") },
+ { FOURCC_0xa9prd, N_("Producer") },
+ { FOURCC_0xa9inf, N_("Information") },
+ { FOURCC_0xa9dir, N_("Director") },
+ { FOURCC_0xa9dis, N_("Disclaimer") },
+ { FOURCC_0xa9req, N_("Requirements") },
+ { FOURCC_0xa9fmt, N_("Original Format") },
+ { FOURCC_0xa9dsa, N_("Display Source As") },
+ { FOURCC_0xa9hst, N_("Host Computer") },
+ { FOURCC_0xa9prf, N_("Performers") },
+ { FOURCC_0xa9ope, N_("Original Performer") },
+ { FOURCC_0xa9src, N_("Providers Source Content") },
+ { FOURCC_0xa9wrn, N_("Warning") },
+ { FOURCC_0xa9swr, N_("Software") },
+ { FOURCC_0xa9lyr, N_("Lyrics") },
+ { FOURCC_0xa9mak, N_("Make") },
+ { FOURCC_0xa9mod, N_("Model") },
+ { FOURCC_0xa9PRD, N_("Product") },
+ { FOURCC_0xa9grp, N_("Grouping") },
+ { 0, "" },
+ };
+ for( unsigned i = 0; xa9typetoextrameta[i].xa9_type; i++ )
+ {
+ if( p_0xa9xxx->i_type == xa9typetoextrameta[i].xa9_type )
+ {
+ char *psz_utf = strdup( p_0xa9xxx->data.p_0xa9xxx->psz_text ? p_0xa9xxx->data.p_0xa9xxx->psz_text : "" );
+ if( psz_utf )
+ {
+ EnsureUTF8( psz_utf );
+ vlc_meta_AddExtra( p_meta, _(xa9typetoextrameta[i].metadata), psz_utf );
+ free( psz_utf );
+ }
+ break;
+ }
+ }