+ /* Media Header box */\r
+ case (MDHD_BOX): {\r
+ unsigned long int version;\r
+ unsigned short int language;\r
+ fileid->Read(&version, sizeof(unsigned long int));\r
+ version = BYTE_SWAP4(version);\r
+ if (version == 0) {\r
+ unsigned long int creation_time, modification_time, timescale, duration;\r
+ fileid->Read(&creation_time, sizeof(unsigned long int));\r
+ creation_time = BYTE_SWAP4(creation_time);\r
+ fileid->Read(&modification_time, sizeof(unsigned long int));\r
+ modification_time = BYTE_SWAP4(modification_time);\r
+ fileid->Read(×cale, sizeof(unsigned long int));\r
+ timescale = BYTE_SWAP4(timescale);\r
+ fileid->Read(&duration, sizeof(unsigned long int));\r
+ duration = BYTE_SWAP4(duration);\r
+ const long unix_time = creation_time - 2082844800L;\r
+ wxTreeItemId currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Creation time: %u (%.24s)"), creation_time, ctime(&unix_time)),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ const long unix_time1 = modification_time - 2082844800L;\r
+ currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Modification time: %u (%.24s)"), modification_time, ctime(&unix_time1)),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Timescale: %u (%.6fs)"), timescale, 1.0 / (float) timescale),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Duration: %u (%.3fs)"), duration, (float) duration / (float) timescale),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ } else {\r
+ int8byte creation_time, modification_time, duration;\r
+ unsigned long int timescale;\r
+ fileid->Read(&creation_time, sizeof(int8byte));\r
+ creation_time = BYTE_SWAP8(creation_time);\r
+ fileid->Read(&modification_time, sizeof(int8byte));\r
+ modification_time = BYTE_SWAP8(modification_time);\r
+ fileid->Read(×cale, sizeof(unsigned long int));\r
+ timescale = BYTE_SWAP4(timescale);\r
+ fileid->Read(&duration, sizeof(int8byte));\r
+ duration = BYTE_SWAP8(duration);\r
+ wxTreeItemId currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Creation time: %u"), creation_time),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Modification time: %u"), modification_time),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Timescale: %u"), timescale),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Duration: %u"), duration),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ }\r
+ fileid->Read(&language, sizeof(unsigned short int));\r
+\r
+ wxTreeItemId currid = m_tree->AppendItem(parentid,\r
+ wxString::Format(wxT("Language: %d (%c%c%c)"), language & 0xEFFF,\r
+ 0x60 + (char) ((language >> 10) & 0x001F), 0x60 + (char) ((language >> 5) & 0x001F), 0x60 + (char) ((language >> 0) & 0x001F)),\r
+ m_tree->TreeCtrlIcon_File, m_tree->TreeCtrlIcon_File + 1,\r
+ new OPJMarkerData(wxT("INFO"))\r
+ );\r
+ };\r
+ break;\r