projects
/
asdcplib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Permit 64-bit builds.
[asdcplib.git]
/
src
/
MXF.cpp
diff --git
a/src/MXF.cpp
b/src/MXF.cpp
index be8f031a9a3d2d8d4edb1cd13567a2aea5389214..bf99e3e522271ebc4bc9dd4538fcfe92a98fe586 100755
(executable)
--- a/
src/MXF.cpp
+++ b/
src/MXF.cpp
@@
-1,5
+1,5
@@
/*
/*
-Copyright (c) 2005-200
7
, John Hurst
+Copyright (c) 2005-200
8
, John Hurst
All rights reserved.
Redistribution and use in source and binary forms, with or without
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@
-32,7
+32,9
@@
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "MXF.h"
#include "Metadata.h"
#include <KM_log.h>
#include "MXF.h"
#include "Metadata.h"
#include <KM_log.h>
+
using Kumu::DefaultLogSink;
using Kumu::DefaultLogSink;
+using Kumu::GenRandomValue;
// index segments must be < 64K
// NOTE: this value may too high if advanced index entry elements are used.
// index segments must be < 64K
// NOTE: this value may too high if advanced index entry elements are used.
@@
-709,7
+711,8
@@
ASDCP::MXF::OPAtomHeader::InitFromFile(const Kumu::FileReader& Reader)
if ( HeaderByteCount < 1024 )
DefaultLogSink().Warn("Improbably small HeaderByteCount value: %u\n", HeaderByteCount);
if ( HeaderByteCount < 1024 )
DefaultLogSink().Warn("Improbably small HeaderByteCount value: %u\n", HeaderByteCount);
- result = m_Buffer.Capacity(HeaderByteCount);
+ assert (HeaderByteCount <= 0xFFFFFFFFL);
+ result = m_Buffer.Capacity((ui32_t) HeaderByteCount);
if ( ASDCP_SUCCESS(result) )
{
if ( ASDCP_SUCCESS(result) )
{
@@
-839,7
+842,8
@@
ASDCP::MXF::OPAtomHeader::WriteToFile(Kumu::FileWriter& Writer, ui32_t HeaderSiz
ASDCP::FrameBuffer HeaderBuffer;
HeaderByteCount = HeaderSize - ArchiveSize();
ASDCP::FrameBuffer HeaderBuffer;
HeaderByteCount = HeaderSize - ArchiveSize();
- Result_t result = HeaderBuffer.Capacity(HeaderByteCount);
+ assert (HeaderByteCount <= 0xFFFFFFFFL);
+ Result_t result = HeaderBuffer.Capacity((ui32_t) HeaderByteCount);
m_Preface->m_Lookup = &m_Primer;
std::list<InterchangeObject*>::iterator pl_i = m_PacketList->m_List.begin();
m_Preface->m_Lookup = &m_Primer;
std::list<InterchangeObject*>::iterator pl_i = m_PacketList->m_List.begin();
@@
-953,7
+957,10
@@
ASDCP::MXF::OPAtomIndexFooter::InitFromFile(const Kumu::FileReader& Reader)
ui32_t read_count;
if ( ASDCP_SUCCESS(result) )
ui32_t read_count;
if ( ASDCP_SUCCESS(result) )
- result = m_Buffer.Capacity(IndexByteCount);
+ {
+ assert (IndexByteCount <= 0xFFFFFFFFL);
+ result = m_Buffer.Capacity((ui32_t) IndexByteCount);
+ }
if ( ASDCP_SUCCESS(result) )
result = Reader.Read(m_Buffer.Data(), m_Buffer.Capacity(), &read_count);
if ( ASDCP_SUCCESS(result) )
result = Reader.Read(m_Buffer.Data(), m_Buffer.Capacity(), &read_count);
@@
-1094,7
+1101,9
@@
ASDCP::MXF::OPAtomIndexFooter::Lookup(ui32_t frame_num, IndexTableSegment::Index
else if ( (ui64_t)frame_num >= start_pos
&& (ui64_t)frame_num < (start_pos + Segment->IndexDuration) )
{
else if ( (ui64_t)frame_num >= start_pos
&& (ui64_t)frame_num < (start_pos + Segment->IndexDuration) )
{
- Entry = Segment->IndexEntryArray[frame_num-start_pos];
+ ui64_t tmp = frame_num - start_pos;
+ assert(tmp <= 0xFFFFFFFFL);
+ Entry = Segment->IndexEntryArray[(ui32_t) tmp];
return RESULT_OK;
}
}
return RESULT_OK;
}
}