Fix warnings in MediaFileInfo, make safe casts explicit
This commit is contained in:
parent
1889afef8f
commit
e29f9bd4f8
|
@ -167,7 +167,7 @@ void MediaFileInfo::parseContainerFormat(Diagnostics &diag)
|
||||||
char buff[16];
|
char buff[16];
|
||||||
const char *const buffEnd = buff + sizeof(buff), *buffOffset;
|
const char *const buffEnd = buff + sizeof(buff), *buffOffset;
|
||||||
startParsingSignature:
|
startParsingSignature:
|
||||||
if (size() - m_containerOffset >= 16) {
|
if (size() - containerOffset() >= 16) {
|
||||||
stream().seekg(m_containerOffset, ios_base::beg);
|
stream().seekg(m_containerOffset, ios_base::beg);
|
||||||
stream().read(buff, sizeof(buff));
|
stream().read(buff, sizeof(buff));
|
||||||
|
|
||||||
|
@ -264,6 +264,7 @@ startParsingSignature:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
default:;
|
default:;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -388,7 +389,7 @@ void MediaFileInfo::parseTags(Diagnostics &diag)
|
||||||
auto id3v2Tag = make_unique<Id3v2Tag>();
|
auto id3v2Tag = make_unique<Id3v2Tag>();
|
||||||
stream().seekg(offset, ios_base::beg);
|
stream().seekg(offset, ios_base::beg);
|
||||||
try {
|
try {
|
||||||
id3v2Tag->parse(stream(), size() - offset, diag);
|
id3v2Tag->parse(stream(), size() - static_cast<uint64>(offset), diag);
|
||||||
m_paddingSize += id3v2Tag->paddingSize();
|
m_paddingSize += id3v2Tag->paddingSize();
|
||||||
} catch (const NoDataFoundException &) {
|
} catch (const NoDataFoundException &) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -1553,7 +1554,7 @@ void MediaFileInfo::makeMp3File(Diagnostics &diag, AbortableProgressFeedback &pr
|
||||||
if (flacStream) {
|
if (flacStream) {
|
||||||
// if it is a raw FLAC stream, make FLAC metadata
|
// if it is a raw FLAC stream, make FLAC metadata
|
||||||
startOfLastMetaDataBlock = flacStream->makeHeader(flacMetaData, diag);
|
startOfLastMetaDataBlock = flacStream->makeHeader(flacMetaData, diag);
|
||||||
tagsSize += flacMetaData.tellp();
|
tagsSize += static_cast<uint32>(flacMetaData.tellp());
|
||||||
streamOffset = flacStream->streamOffset();
|
streamOffset = flacStream->streamOffset();
|
||||||
} else {
|
} else {
|
||||||
// make no further metadata, just use the container offset as stream offset
|
// make no further metadata, just use the container offset as stream offset
|
||||||
|
@ -1663,8 +1664,8 @@ void MediaFileInfo::makeMp3File(Diagnostics &diag, AbortableProgressFeedback &pr
|
||||||
if (flacStream) {
|
if (flacStream) {
|
||||||
if (padding && startOfLastMetaDataBlock) {
|
if (padding && startOfLastMetaDataBlock) {
|
||||||
// if appending padding, ensure the last flag of the last "METADATA_BLOCK_HEADER" is not set
|
// if appending padding, ensure the last flag of the last "METADATA_BLOCK_HEADER" is not set
|
||||||
flacMetaData.seekg(startOfLastMetaDataBlock);
|
flacMetaData.seekg(static_cast<streamoff>(startOfLastMetaDataBlock));
|
||||||
flacMetaData.seekp(startOfLastMetaDataBlock);
|
flacMetaData.seekp(static_cast<streamoff>(startOfLastMetaDataBlock));
|
||||||
flacMetaData.put(static_cast<byte>(flacMetaData.peek()) & (0x80u - 1));
|
flacMetaData.put(static_cast<byte>(flacMetaData.peek()) & (0x80u - 1));
|
||||||
flacMetaData.seekg(0);
|
flacMetaData.seekg(0);
|
||||||
}
|
}
|
||||||
|
@ -1701,7 +1702,7 @@ void MediaFileInfo::makeMp3File(Diagnostics &diag, AbortableProgressFeedback &pr
|
||||||
default:
|
default:
|
||||||
progress.updateStep("Writing frames ...");
|
progress.updateStep("Writing frames ...");
|
||||||
}
|
}
|
||||||
backupStream.seekg(streamOffset);
|
backupStream.seekg(static_cast<streamoff>(streamOffset));
|
||||||
CopyHelper<0x4000> copyHelper;
|
CopyHelper<0x4000> copyHelper;
|
||||||
copyHelper.callbackCopy(backupStream, stream(), mediaDataSize, bind(&AbortableProgressFeedback::isAborted, ref(progress)),
|
copyHelper.callbackCopy(backupStream, stream(), mediaDataSize, bind(&AbortableProgressFeedback::isAborted, ref(progress)),
|
||||||
bind(&AbortableProgressFeedback::updateStepPercentage, ref(progress), _1));
|
bind(&AbortableProgressFeedback::updateStepPercentage, ref(progress), _1));
|
||||||
|
@ -1738,7 +1739,7 @@ void MediaFileInfo::makeMp3File(Diagnostics &diag, AbortableProgressFeedback &pr
|
||||||
// -> close stream before truncating
|
// -> close stream before truncating
|
||||||
outputStream.close();
|
outputStream.close();
|
||||||
// -> truncate file
|
// -> truncate file
|
||||||
if (truncate(path().c_str(), static_cast<std::streamoff>(newSize)) == 0) {
|
if (truncate(path().c_str(), static_cast<streamoff>(newSize)) == 0) {
|
||||||
reportSizeChanged(newSize);
|
reportSizeChanged(newSize);
|
||||||
} else {
|
} else {
|
||||||
diag.emplace_back(DiagLevel::Critical, "Unable to truncate the file.", context);
|
diag.emplace_back(DiagLevel::Critical, "Unable to truncate the file.", context);
|
||||||
|
|
|
@ -243,7 +243,7 @@ inline const char *MediaFileInfo::containerFormatSubversion() const
|
||||||
*/
|
*/
|
||||||
inline uint64 MediaFileInfo::containerOffset() const
|
inline uint64 MediaFileInfo::containerOffset() const
|
||||||
{
|
{
|
||||||
return m_containerOffset;
|
return static_cast<uint64>(m_containerOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
Loading…
Reference in New Issue