Merge /u/andrensairr/minidlna/ branch master into master
https://sourceforge.net/p/minidlna/git/merge-requests/41/
This commit is contained in:
commit
d54f5f6bd9
@ -65,6 +65,7 @@ _get_flctags(char *filename, struct song_metadata *psong)
|
||||
psong->song_length = (sec * 1000) + ms;
|
||||
psong->bitrate = (((uint64_t)(psong->file_size) * 1000) / (psong->song_length / 8));
|
||||
psong->samplerate = block->data.stream_info.sample_rate;
|
||||
psong->samplesize = block->data.stream_info.bits_per_sample;
|
||||
psong->channels = block->data.stream_info.channels;
|
||||
break;
|
||||
|
||||
|
@ -204,11 +204,18 @@ vc_scan(struct song_metadata *psong, const char *comment, const size_t length)
|
||||
strncpy(strbuf, comment, length);
|
||||
strbuf[length] = '\0';
|
||||
|
||||
// Xiph.org lists recommended field names for interoperability between programs.
|
||||
// Beyond these software may use other tag names, and because the files we are
|
||||
// tasked with reading may come from a variety of sources we include other commonly
|
||||
// used tags where we can.
|
||||
// https://xiph.org/vorbis/doc/v-comment.html
|
||||
// ALBUM, ARTIST, PUBLISHER, COPYRIGHT, DISCNUMBER, ISRC, EAN/UPN, LABEL, LABELNO,
|
||||
// LICENSE, OPUS, SOURCEMEDIA, TITLE, TRACKNUMBER, VERSION, ENCODED-BY, ENCODING,
|
||||
// -- following tags are muliples
|
||||
// COMPOSER, ARRANGER, LYRICIST, AUTHOR, CONDUCTOR, PERFORMER, ENSEMBLE, PART
|
||||
// PARTNUMBER, GENRE, DATE, LOCATION, COMMENT
|
||||
// -- In addition, some software (e.g. Windows Media Player) insists on using YEAR
|
||||
// -- rather than DATE, so support this where DATE is not available for reasons of usefulness.
|
||||
if(!strncasecmp(strbuf, "ALBUM=", 6))
|
||||
{
|
||||
if( *(strbuf+6) )
|
||||
@ -232,6 +239,16 @@ vc_scan(struct song_metadata *psong, const char *comment, const size_t length)
|
||||
{
|
||||
psong->contributor_sort[ROLE_BAND] = strdup(strbuf + 16);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "COMPOSER=", 9))
|
||||
{
|
||||
if( *(strbuf+9) )
|
||||
psong->contributor[ROLE_COMPOSER] = strdup(strbuf + 9);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "CONDUCTOR=", 10))
|
||||
{
|
||||
if( *(strbuf+10) )
|
||||
psong->contributor[ROLE_CONDUCTOR] = strdup(strbuf + 10);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "TITLE=", 6))
|
||||
{
|
||||
if( *(strbuf+6) )
|
||||
@ -241,16 +258,25 @@ vc_scan(struct song_metadata *psong, const char *comment, const size_t length)
|
||||
{
|
||||
psong->track = atoi(strbuf + 12);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "TRACKTOTAL=", 11))
|
||||
{
|
||||
psong->total_tracks = atoi(strbuf + 11);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "DISCNUMBER=", 11))
|
||||
{
|
||||
psong->disc = atoi(strbuf + 11);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "DISCTOTAL=", 10))
|
||||
{
|
||||
psong->total_discs = atoi(strbuf + 10);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "GENRE=", 6))
|
||||
{
|
||||
if( *(strbuf+6) )
|
||||
psong->genre = strdup(strbuf + 6);
|
||||
}
|
||||
else if(!strncasecmp(strbuf, "DATE=", 5))
|
||||
else if(!strncasecmp(strbuf, "DATE=", 5) ||
|
||||
(!strncasecmp(strbuf, "YEAR=", 5) && psong->year == 0))
|
||||
{
|
||||
if(length >= (5 + 10) &&
|
||||
isdigit(strbuf[5 + 0]) && isdigit(strbuf[5 + 1]) && ispunct(strbuf[5 + 2]) &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user