diff --git a/Plugins/Opus/Opus/OpusDecoder.m b/Plugins/Opus/Opus/OpusDecoder.m index 6c92cbaa3..615dfab18 100644 --- a/Plugins/Opus/Opus/OpusDecoder.m +++ b/Plugins/Opus/Opus/OpusDecoder.m @@ -152,25 +152,26 @@ static void setDictionary(NSMutableDictionary *dict, NSString *tag, NSString *va char *name, *value; if(FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair(entry, &name, &value)) { NSString *tagName = guess_encoding_of_string(name); - NSString *tagValue = guess_encoding_of_string(value); free(name); - free(value); tagName = [tagName lowercaseString]; if([tagName isEqualToString:@"metadata_block_picture"]) { OpusPictureTag _pic = { 0 }; - if(opus_picture_tag_parse(&_pic, [tagValue UTF8String]) >= 0) { + if(opus_picture_tag_parse(&_pic, value) >= 0) { if(_pic.format == OP_PIC_FORMAT_PNG || _pic.format == OP_PIC_FORMAT_JPEG || - _pic.format == OP_PIC_FORMAT_GIF) { + _pic.format == OP_PIC_FORMAT_GIF || + _pic.format == OP_PIC_FORMAT_UNKNOWN) { _albumArt = [NSData dataWithBytes:_pic.data length:_pic.data_length]; } - opus_picture_tag_clear(&_pic); } + opus_picture_tag_clear(&_pic); } else { - setDictionary(_metaDict, tagName, tagValue); + setDictionary(_metaDict, tagName, guess_encoding_of_string(value)); } + + free(value); } } diff --git a/Plugins/Vorbis/VorbisDecoder.m b/Plugins/Vorbis/VorbisDecoder.m index a89b0e770..6b46c3da4 100644 --- a/Plugins/Vorbis/VorbisDecoder.m +++ b/Plugins/Vorbis/VorbisDecoder.m @@ -132,14 +132,12 @@ static void setDictionary(NSMutableDictionary *dict, NSString *tag, NSString *va char *name, *value; if(FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair(entry, &name, &value)) { NSString *tagName = guess_encoding_of_string(name); - NSString *tagValue = guess_encoding_of_string(value); free(name); - free(value); tagName = [tagName lowercaseString]; if([tagName isEqualToString:@"metadata_block_picture"]) { - flac_picture_t *picture = flac_picture_parse_from_base64([tagValue UTF8String]); + flac_picture_t *picture = flac_picture_parse_from_base64(value); if(picture) { if(picture->binary && picture->binary_length) { _albumArt = [NSData dataWithBytes:picture->binary length:picture->binary_length]; @@ -147,8 +145,10 @@ static void setDictionary(NSMutableDictionary *dict, NSString *tag, NSString *va flac_picture_free(picture); } } else { - setDictionary(_metaDict, tagName, tagValue); + setDictionary(_metaDict, tagName, guess_encoding_of_string(value)); } + + free(value); } }