Result_t WriteFrame(const FrameBuffer&, StereoscopicPhase_t phase,
AESEncContext* = 0, HMACContext* = 0, std::string* hash = 0);
- Result_t FakeWriteFrame(int size);
+ Result_t FakeWriteFrame(int size, StereoscopicPhase_t phase);
// Closes the MXF file, writing the index and revised header. Returns
// RESULT_SPHASE if WriteFrame was called an odd number of times.
return lh__Writer::WriteFrame(FrameBuf, false, Ctx, HMAC, hash);
}
+ Result_t FakeWriteFrame(int size, StereoscopicPhase_t phase)
+ {
+ if (m_NextPhase != phase)
+ {
+ return RESULT_SPHASE;
+ }
+
+ if (phase == SP_LEFT)
+ {
+ m_NextPhase = SP_RIGHT;
+ return lh__Writer::FakeWriteFrame(size, true);
+ }
+
+ m_NextPhase = SP_LEFT;
+ return lh__Writer::FakeWriteFrame(size, false);
+ }
+
//
Result_t Finalize()
{
}
ASDCP::Result_t
-ASDCP::JP2K::MXFSWriter::FakeWriteFrame(int size)
+ASDCP::JP2K::MXFSWriter::FakeWriteFrame(int size, StereoscopicPhase_t phase)
{
if ( m_Writer.empty() )
return RESULT_INIT;
- return m_Writer->FakeWriteFrame(size, true);
+ return m_Writer->FakeWriteFrame(size, phase);
}
// Closes the MXF file, writing the index and other closing information.
assert (_started);
assert (!_finalized);
- Kumu::Result_t r = _state->mxf_writer.FakeWriteFrame (size);
+ Kumu::Result_t r = _state->mxf_writer.FakeWriteFrame (size, _next_eye == EYE_LEFT ? ASDCP::JP2K::SP_LEFT : ASDCP::JP2K::SP_RIGHT);
if (ASDCP_FAILURE (r)) {
boost::throw_exception (MXFFileError ("error in writing video MXF", _asset->path().string(), r));
}