THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/*! \file AS_DCP_TimedText.cpp
- \version $Id: AS_02_TimedText.cpp,v 1.5 2015/10/09 23:41:11 jhurst Exp $
+ \version $Id: AS_02_TimedText.cpp,v 1.5 2015/10/09 23:41:11 jhurst Exp $
\brief AS-DCP library, PCM essence reader and writer implementation
*/
ASDCP_NO_COPY_CONSTRUCT(h__Reader);
public:
- TimedTextDescriptor m_TDesc;
+ TimedTextDescriptor m_TDesc;
h__Reader(const Dictionary& d) : AS_02::h__AS02Reader(d), m_EssenceDescriptor(0) {
memset(&m_TDesc.AssetID, 0, UUIDlen);
AS_02::TimedText::MXFReader::h__Reader::OpenRead(const std::string& filename)
{
Result_t result = OpenMXFRead(filename.c_str());
-
+
if( ASDCP_SUCCESS(result) )
{
if ( m_EssenceDescriptor == 0 )
m_HeaderSize += ( resourceSubdescriptor->MIMEMediaType.ArchiveLength() * 2 /*ArchiveLength is broken*/ ) + 72;
}
}
-
+
if ( KM_SUCCESS(result) )
{
result = WriteAS02Header(TIMED_TEXT_PACKAGE_LABEL, UL(m_Dict->ul(MDD_TimedTextWrappingClip)),
"Data Track", UL(m_EssenceUL), UL(m_Dict->ul(MDD_TimedTextEssence)),
TDesc.EditRate, derive_timecode_rate_from_edit_rate(TDesc.EditRate));
}
-
+
if ( KM_SUCCESS(result) )
{
this->m_IndexWriter.SetPrimerLookup(&this->m_HeaderPart.m_Primer);
ui32_t str_size = XMLDoc.size();
ASDCP::TimedText::FrameBuffer FrameBuf(str_size);
-
+
memcpy(FrameBuf.Data(), XMLDoc.c_str(), str_size);
FrameBuf.Size(str_size);
IndexTableSegment::IndexEntry Entry;
Entry.StreamOffset = m_StreamOffset;
-
+
if ( KM_SUCCESS(result) )
{
- ui64_t this_stream_offset = m_StreamOffset; // m_StreamOffset will be changed by the call to Write_EKLV_Packet
-
result = Write_EKLV_Packet(m_File, *m_Dict, m_HeaderPart, m_Info, m_CtFrameBuf, m_FramesWritten,
m_StreamOffset, FrameBuf, m_EssenceUL, Ctx, HMAC);
}
if ( KM_SUCCESS(result) )
{
- ui64_t this_stream_offset = m_StreamOffset; // m_StreamOffset will be changed by the call to Write_EKLV_Packet
-
result = Write_EKLV_Packet(m_File, *m_Dict, m_HeaderPart, m_Info, m_CtFrameBuf, m_FramesWritten,
m_StreamOffset, FrameBuf, GenericStream_DataElement.Value(), Ctx, HMAC);
}
m_Writer = new h__Writer(DefaultSMPTEDict());
m_Writer->m_Info = Info;
-
+
Result_t result = m_Writer->OpenWrite(filename, HeaderSize);
if ( ASDCP_SUCCESS(result) )
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
+*/
/*! \file AS_02_internal.h
- \version $Id: AS_02_internal.h ***
+ \version $Id: AS_02_internal.h ***
\brief AS-02 library, non-public common elements
*/
public:
const ASDCP::Dictionary*& m_Dict;
ASDCP::IPrimerLookup* m_Lookup;
-
+
AS02IndexWriterVBR(const ASDCP::Dictionary*&);
virtual ~AS02IndexWriterVBR();
ASDCP::IPrimerLookup* m_Lookup;
ui32_t m_Duration;
ui32_t m_SampleSize;
-
+
AS02IndexWriterCBR(const ASDCP::Dictionary*&);
virtual ~AS02IndexWriterCBR();
~h__AS02Writer() {}
-
+
// all the above for a single source clip
Result_t WriteAS02Header(const std::string& PackageLabel, const ASDCP::UL& WrappingUL,
const std::string& TrackName, const ASDCP::UL& EssenceUL,
if ( KM_SUCCESS(result) )
result = this->m_File.Seek(0);
-
+
if ( KM_SUCCESS(result) )
result = m_HeaderPart.WriteToFile(this->m_File, this->m_HeaderSize);
-
+
if ( KM_SUCCESS(result) )
{
ASDCP::MXF::RIP::const_pair_iterator i = this->m_RIP.PairArray.begin();
- ui64_t header_byte_count = this->m_HeaderPart.HeaderByteCount;
ui64_t previous_partition = 0;
for ( i = this->m_RIP.PairArray.begin(); KM_SUCCESS(result) && i != this->m_RIP.PairArray.end(); ++i )
if ( KM_SUCCESS(result) )
result = plain_part.InitFromFile(this->m_File);
-
+
if ( KM_SUCCESS(result)
&& ( plain_part.IndexSID > 0 || plain_part.BodySID > 0 ) )
{
}
}
}
-
+
this->m_File.Close();
return result;
}
if ( ASDCP_SUCCESS(result) )
{
result = m_RIP.InitFromFile(m_File);
- ui32_t test_s = m_RIP.PairArray.size();
if ( ASDCP_FAILURE(result) )
{
//
void get_PictureEssenceCoding(FILE* = 0)
{
- const Dictionary& Dict = DefaultCompositeDict();
MXF::RGBAEssenceDescriptor *descriptor = 0;
Result_t result = m_Reader.OP1aHeader().GetMDObjectByType(DefaultCompositeDict().ul(MDD_RGBAEssenceDescriptor),
//
void dump_WaveAudioDescriptor(FILE* stream = 0)
{
- const Dictionary& Dict = DefaultCompositeDict();
MXF::WaveAudioDescriptor *descriptor = 0;
Result_t result = m_Reader.OP1aHeader().GetMDObjectByType(DefaultCompositeDict().ul(MDD_WaveAudioDescriptor),
main(int argc, const char** argv)
{
Result_t result = RESULT_OK;
- char str_buf[64];
CommandOptions Options(argc, argv);
if ( Options.version_flag )
main(int argc, const char** argv)
{
Result_t result = RESULT_OK;
- char str_buf[64];
CommandOptions Options(argc, argv);
if ( Options.version_flag )
main(int argc, const char** argv)
{
Result_t result = RESULT_OK;
- char str_buf[64];
g_dict = &ASDCP::DefaultSMPTEDict();
CommandOptions Options(argc, argv);
{
//
UL OP1a_ul(m_Dict->ul(MDD_OP1a));
- InterchangeObject* Object;
m_Info.LabelSetType = LS_MXF_SMPTE;
if ( m_HeaderPart.OperationalPattern != OP1a_ul )
if( KM_SUCCESS(result) )
{
//
- InterchangeObject* Object;
-
m_Info.LabelSetType = LS_MXF_UNKNOWN;
if ( m_HeaderPart.OperationalPattern.ExactMatch(MXFInterop_OPAtom_Entry().ul) )
if ( ASDCP_SUCCESS(result) )
{
result = RIP.InitFromFile(Reader);
- ui32_t test_s = RIP.PairArray.size();
if ( ASDCP_FAILURE(result) )
{
if ( ASDCP_SUCCESS(result) )
{
result = RIP.InitFromFile(Reader);
- ui32_t test_s = RIP.PairArray.size();
if ( ASDCP_FAILURE(result) )
{
{
ui32_t write_count = 0;
ui32_t duration = 0;
- byte_t scaled_pink[sizeof(ui32_t)];
while ( ASDCP_SUCCESS(result) && (duration++ < Options.duration) )
{