mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 23:42:58 +02:00
driver/audiodec,audiometadata: cover file handling fixed
This commit is contained in:
@@ -348,8 +348,10 @@ CBaseDec::RetCode CFfmpegDec::Decoder(FILE *_in, const CFile::FileType ft, int /
|
||||
//av_free(avcc);
|
||||
|
||||
DeInit();
|
||||
if (!_meta_data->cover.empty())
|
||||
if (_meta_data->cover_temporary && !_meta_data->cover.empty()) {
|
||||
_meta_data->cover_temporary = false;
|
||||
unlink(_meta_data->cover.c_str());
|
||||
}
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -445,6 +447,7 @@ bool CFfmpegDec::SetMetaData(FILE *_in, CFile::FileType ft, CAudioMetaData* m)
|
||||
fwrite(pkt->data, pkt->size, 1, f);
|
||||
fclose(f);
|
||||
m->cover = cover;
|
||||
m->cover_temporary = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -42,6 +42,13 @@ CAudioMetaData::CAudioMetaData()
|
||||
clear();
|
||||
}
|
||||
|
||||
// destructor
|
||||
CAudioMetaData::~CAudioMetaData()
|
||||
{
|
||||
if (cover_temporary && !cover.empty())
|
||||
unlink(cover.c_str());
|
||||
}
|
||||
|
||||
// copy constructor
|
||||
CAudioMetaData::CAudioMetaData( const CAudioMetaData& src )
|
||||
: type( src.type ), type_info( src.type_info ),
|
||||
@@ -52,7 +59,7 @@ CAudioMetaData::CAudioMetaData( const CAudioMetaData& src )
|
||||
hasInfoOrXingTag( src.hasInfoOrXingTag ), artist( src.artist ),
|
||||
title( src.title ), album( src.album ), sc_station( src.sc_station ),
|
||||
date( src.date ), genre( src.genre ), track( src.track ),cover(src.cover),
|
||||
changed( src.changed )
|
||||
changed( src.changed ), cover_temporary(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -84,6 +91,8 @@ void CAudioMetaData::operator=( const CAudioMetaData& src )
|
||||
cover = src.cover;
|
||||
sc_station = src.sc_station;
|
||||
changed = src.changed;
|
||||
changed = src.changed;
|
||||
cover_temporary = false;
|
||||
}
|
||||
|
||||
void CAudioMetaData::clear()
|
||||
@@ -105,6 +114,9 @@ void CAudioMetaData::clear()
|
||||
date.clear();
|
||||
genre.clear();
|
||||
track.clear();
|
||||
if (cover_temporary && !cover.empty())
|
||||
unlink(cover.c_str());
|
||||
cover.clear();
|
||||
cover_temporary=false;
|
||||
changed=false;
|
||||
}
|
||||
|
@@ -44,6 +44,8 @@ class CAudioMetaData
|
||||
public:
|
||||
// constructor
|
||||
CAudioMetaData();
|
||||
// destructor
|
||||
~CAudioMetaData();
|
||||
// copy constructor
|
||||
CAudioMetaData( const CAudioMetaData& src );
|
||||
// assignment operator
|
||||
@@ -85,6 +87,7 @@ public:
|
||||
std::string genre;
|
||||
std::string track;
|
||||
std::string cover;
|
||||
bool cover_temporary;
|
||||
bool changed;
|
||||
};
|
||||
#endif /* __AUDIO_METADATA__ */
|
||||
|
Reference in New Issue
Block a user