From 7e7ea12b233a64a66da571f9ac947f75df6c4978 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Sun, 31 Dec 2017 22:56:50 +0100 Subject: [PATCH] kax_info_c: output timestamps/durations as formatted ns --- src/common/kax_info.cpp | 74 +++++++++++++++++------------------------ src/common/kax_info.h | 5 +-- tests/results.txt | 14 ++++---- 3 files changed, 40 insertions(+), 53 deletions(-) diff --git a/src/common/kax_info.cpp b/src/common/kax_info.cpp index 47055fea1..a7a32eaf6 100644 --- a/src/common/kax_info.cpp +++ b/src/common/kax_info.cpp @@ -93,8 +93,6 @@ unsigned int kax_info_c::ms_bf_format_binary_1 = 0; unsigned int kax_info_c::ms_bf_format_binary_2 = 0; unsigned int kax_info_c::ms_bf_block_group_block_summary = 0; unsigned int kax_info_c::ms_bf_block_group_block_frame = 0; -unsigned int kax_info_c::ms_bf_block_group_reference_1 = 0; -unsigned int kax_info_c::ms_bf_block_group_reference_2 = 0; unsigned int kax_info_c::ms_bf_block_group_summary_position = 0; unsigned int kax_info_c::ms_bf_block_group_summary_with_duration = 0; unsigned int kax_info_c::ms_bf_block_group_summary_no_duration = 0; @@ -182,17 +180,15 @@ kax_info_c::init_common_formats() { BF_ADD(ms_bf_show_unknown_element, Y("(Unknown element: %1%; ID: 0x%2% size: %3%)")); BF_ADD(ms_bf_format_binary_1, Y("length %1%, data: %2%")); BF_ADD(ms_bf_format_binary_2, Y(" (adler: 0x%|1$08x|)")); - BF_ADD(ms_bf_block_group_block_summary, Y("track number %1%, %2% frame(s), timestamp %|3$.3f|s = %4%")); + BF_ADD(ms_bf_block_group_block_summary, Y("track number %1%, %2% frame(s), timestamp %3%")); BF_ADD(ms_bf_block_group_block_frame, Y("Frame with size %1%%2%%3%")); - BF_ADD(ms_bf_block_group_reference_1, "-%1%.%|2$06d|ms"); - BF_ADD(ms_bf_block_group_reference_2, "%1%.%|2$06d|ms"); BF_ADD(ms_bf_block_group_summary_position, Y(", position %1%")); - BF_ADD(ms_bf_block_group_summary_with_duration, Y("%1% frame, track %2%, timestamp %3% (%4%), duration %|5$.3f|, size %6%, adler 0x%|7$08x|%8%%9%\n")); - BF_ADD(ms_bf_block_group_summary_no_duration, Y("%1% frame, track %2%, timestamp %3% (%4%), size %5%, adler 0x%|6$08x|%7%%8%\n")); + BF_ADD(ms_bf_block_group_summary_with_duration, Y("%1% frame, track %2%, timestamp %3%, duration %4%, size %5%, adler 0x%|6$08x|%7%%8%\n")); + BF_ADD(ms_bf_block_group_summary_no_duration, Y("%1% frame, track %2%, timestamp %3%, size %4%, adler 0x%|5$08x|%6%%7%\n")); BF_ADD(ms_bf_block_group_summary_v2, Y("[%1% frame for track %2%, timestamp %3%]")); - BF_ADD(ms_bf_simple_block_basics, Y("%1%track number %2%, %3% frame(s), timestamp %|4$.3f|s = %5%")); + BF_ADD(ms_bf_simple_block_basics, Y("%1%track number %2%, %3% frame(s), timestamp %4%")); BF_ADD(ms_bf_simple_block_frame, Y("Frame with size %1%%2%%3%")); - BF_ADD(ms_bf_simple_block_summary, Y("%1% frame, track %2%, timestamp %3% (%4%), size %5%, adler 0x%|6$08x|%7%\n")); + BF_ADD(ms_bf_simple_block_summary, Y("%1% frame, track %2%, timestamp %3%, size %4%, adler 0x%|5$08x|%6%\n")); BF_ADD(ms_bf_simple_block_summary_v2, Y("[%1% frame for track %2%, timestamp %3%]")); BF_ADD(ms_bf_at, Y(" at %1%")); BF_ADD(ms_bf_size, Y(" size %1%")); @@ -508,6 +504,11 @@ kax_info_c::format_signed_integer_as_timestamp(EbmlElement &e) { return format_timestamp(static_cast(e).GetValue()); } +std::string +kax_info_c::format_signed_integer_as_scaled_timestamp(EbmlElement &e) { + return format_timestamp(m_ts_scale * static_cast(e).GetValue()); +} + #define PRE( Class, Processor) m_custom_element_pre_processors.insert( { Class::ClassInfos.GlobalId.GetValue(), Processor }); #define POST( Class, Processor) m_custom_element_post_processors.insert( { Class::ClassInfos.GlobalId.GetValue(), Processor }); #define FMT( Class, Formatter) m_custom_element_value_formatters.insert({ Class::ClassInfos.GlobalId.GetValue(), Formatter }); @@ -619,7 +620,7 @@ kax_info_c::init_custom_element_value_formatters_and_processors() { POST(KaxVideoPixelCropRight, [this](EbmlElement &e) { m_summary.push_back((boost::format(Y("pixel crop right: %1%")) % static_cast(e).GetValue()).str()); }); POST(KaxVideoPixelCropBottom, [this](EbmlElement &e) { m_summary.push_back((boost::format(Y("pixel crop bottom: %1%")) % static_cast(e).GetValue()).str()); }); POST(KaxTrackLanguage, [this](EbmlElement &e) { m_summary.push_back((boost::format(Y("language: %1%")) % static_cast(e).GetValue()).str()); }); - POST(KaxBlockDuration, [this](EbmlElement &e) { m_block_duration = static_cast(static_cast(e).GetValue()) * m_ts_scale / 1000000.0; }); + POST(KaxBlockDuration, [this](EbmlElement &e) { m_block_duration = static_cast(static_cast(e).GetValue()) * m_ts_scale; }); POST(KaxReferenceBlock, [this](EbmlElement &) { ++m_num_references; }); POSTM(KaxSimpleBlock, post_simple_block); @@ -671,13 +672,11 @@ kax_info_c::init_custom_element_value_formatters_and_processors() { FMTM(KaxSimpleBlock, format_simple_block); FMTM(KaxBlock, format_block); FMTM(KaxBlockDuration, format_unsigned_integer_as_scaled_timestamp); + FMTM(KaxReferenceBlock, format_signed_integer_as_scaled_timestamp); + + FMT(KaxDuration, [this](EbmlElement &e) { return format_timestamp(static_cast(static_cast(e).GetValue() * m_ts_scale)); }); // More complex formatters: - FMT(KaxDuration, [this](EbmlElement &e) -> std::string { - auto duration = static_cast(e).GetValue(); - return (boost::format("%|1$.3f|s (%2%)") % (duration * m_ts_scale / 1000000000.0) % format_timestamp(duration * m_ts_scale, 3)).str(); - }); - FMT(KaxSeekID, [](EbmlElement &e) -> std::string { auto &seek_id = static_cast(e); EbmlId id(seek_id.GetBuffer(), seek_id.GetSize()); @@ -805,7 +804,7 @@ kax_info_c::init_custom_element_value_formatters_and_processors() { FMT(KaxContentSigHashAlgo, [](EbmlElement &e) -> std::string { auto s_halgo = static_cast(e).GetValue(); - return (boost::format(Y("Signature hash algorithm: %1% (%2%)")) + return (boost::format("%1% (%2%)") % s_halgo % ( 0 == s_halgo ? Y("no signature hash algorithm") : 1 == s_halgo ? Y("SHA1-160") @@ -824,21 +823,14 @@ kax_info_c::init_custom_element_value_formatters_and_processors() { }); FMT(KaxCodecPrivate, [this](EbmlElement &e) -> std::string { - return (boost::format(Y("size %1%")) % e.GetSize()).str() + m_track->fourcc; + return (ms_common_formats[ms_bf_element_size] % e.GetSize()).str() + m_track->fourcc; }); FMT(KaxTrackDefaultDuration, [this](EbmlElement &) -> std::string { - return (boost::format(Y("%|1$.3f|ms (%|2$.3f| frames/fields per second for a video track)")) - % (static_cast(m_track->default_duration) / 1000000.0) + return (boost::format(Y("%1% (%|2$.3f| frames/fields per second for a video track)")) + % format_timestamp(m_track->default_duration) % (1000000000.0 / static_cast(m_track->default_duration))).str(); }); - - FMT(KaxReferenceBlock, [this](EbmlElement &e) -> std::string { - auto reference = static_cast(static_cast(e).GetValue() * m_ts_scale); - return 0 >= reference ? (ms_common_formats[ms_bf_block_group_reference_1] % (std::abs(reference) / 1000000) % (std::abs(reference) % 1000000)).str() - : 0 < reference ? (ms_common_formats[ms_bf_block_group_reference_2] % ( reference / 1000000) % ( reference % 1000000)).str() - : std::string{}; - }); } #undef FMT @@ -856,7 +848,7 @@ kax_info_c::pre_block(EbmlElement &e) { m_lf_timestamp = block.GlobalTimecode(); m_lf_tnum = block.TrackNum(); - m_block_duration = -1.0; + m_block_duration = boost::none; return true; } @@ -868,8 +860,7 @@ kax_info_c::format_block(EbmlElement &e) { return (ms_common_formats[ms_bf_block_group_block_summary] % block.TrackNum() % block.NumberFrames() - % (static_cast(m_lf_timestamp) / 1000000000.0) - % format_timestamp(m_lf_timestamp, 3)).str(); + % format_timestamp(m_lf_timestamp)).str(); } void @@ -922,13 +913,12 @@ kax_info_c::post_block_group(EbmlElement &e) { frame_pos += m_frame_sizes[fidx]; } - if (m_block_duration != -1.0) + if (m_block_duration) m_out->write((ms_common_formats[ms_bf_block_group_summary_with_duration] % (m_num_references >= 2 ? 'B' : m_num_references == 1 ? 'P' : 'I') % m_lf_tnum - % std::llround(m_lf_timestamp / 1000000.0) - % format_timestamp(m_lf_timestamp, 3) - % m_block_duration + % format_timestamp(m_lf_timestamp) + % format_timestamp(*m_block_duration) % m_frame_sizes[fidx] % m_frame_adlers[fidx] % m_frame_hexdumps[fidx] @@ -937,8 +927,7 @@ kax_info_c::post_block_group(EbmlElement &e) { m_out->write((ms_common_formats[ms_bf_block_group_summary_no_duration] % (m_num_references >= 2 ? 'B' : m_num_references == 1 ? 'P' : 'I') % m_lf_tnum - % std::llround(m_lf_timestamp / 1000000.0) - % format_timestamp(m_lf_timestamp, 3) + % format_timestamp(m_lf_timestamp) % m_frame_sizes[fidx] % m_frame_adlers[fidx] % m_frame_hexdumps[fidx] @@ -950,7 +939,7 @@ kax_info_c::post_block_group(EbmlElement &e) { ms_common_formats[ms_bf_block_group_summary_v2] % (m_num_references >= 2 ? 'B' : m_num_references == 1 ? 'P' : 'I') % m_lf_tnum - % std::llround(m_lf_timestamp / 1000000.0)); + % format_timestamp(m_lf_timestamp)); auto &tinfo = m_track_info[m_lf_tnum]; @@ -964,10 +953,10 @@ kax_info_c::post_block_group(EbmlElement &e) { tinfo.m_max_timestamp = m_lf_timestamp; - if (-1 == m_block_duration) + if (!m_block_duration) tinfo.m_add_duration_for_n_packets = m_frame_sizes.size(); else { - *tinfo.m_max_timestamp += m_block_duration * 1000000.0; + *tinfo.m_max_timestamp += *m_block_duration; tinfo.m_add_duration_for_n_packets = 0; } } @@ -998,8 +987,7 @@ kax_info_c::format_simple_block(EbmlElement &e) { % info % block.TrackNum() % block.NumberFrames() - % (timestamp_ns / 1000000000.0) - % format_timestamp(timestamp_ns, 3)).str(); + % format_timestamp(timestamp_ns)).str(); } void @@ -1007,7 +995,6 @@ kax_info_c::post_simple_block(EbmlElement &e) { auto &block = static_cast(e); auto &tinfo = m_track_info[block.TrackNum()]; auto timestamp_ns = mtx::math::to_signed(block.GlobalTimecode()); - auto timestamp_ms = std::llround(static_cast(timestamp_ns) / 1000000.0); int num_frames = block.NumberFrames(); int64_t frame_pos = block.GetElementPosition() + block.ElementSize(); @@ -1042,8 +1029,7 @@ kax_info_c::post_simple_block(EbmlElement &e) { m_out->write((ms_common_formats[ms_bf_simple_block_summary] % (block.IsKeyframe() ? 'I' : block.IsDiscardable() ? 'B' : 'P') % block.TrackNum() - % timestamp_ms - % format_timestamp(timestamp_ns, 3) + % format_timestamp(timestamp_ns) % m_frame_sizes[idx] % m_frame_adlers[idx] % position).str()); @@ -1054,7 +1040,7 @@ kax_info_c::post_simple_block(EbmlElement &e) { ms_common_formats[ms_bf_simple_block_summary_v2] % (block.IsKeyframe() ? 'I' : block.IsDiscardable() ? 'B' : 'P') % block.TrackNum() - % timestamp_ms); + % timestamp_ns); tinfo.m_blocks += block.NumberFrames(); tinfo.m_blocks_by_ref_num[block.IsKeyframe() ? 0 : block.IsDiscardable() ? 2 : 1] += block.NumberFrames(); diff --git a/src/common/kax_info.h b/src/common/kax_info.h index 58b61f8c7..0b1abc89f 100644 --- a/src/common/kax_info.h +++ b/src/common/kax_info.h @@ -59,7 +59,7 @@ protected: protected: static std::vector ms_common_formats; - static unsigned int ms_bf_show_unknown_element, ms_bf_format_binary_1, ms_bf_format_binary_2, ms_bf_block_group_block_summary, ms_bf_block_group_block_frame, ms_bf_block_group_reference_1, ms_bf_block_group_reference_2, + static unsigned int ms_bf_show_unknown_element, ms_bf_format_binary_1, ms_bf_format_binary_2, ms_bf_block_group_block_summary, ms_bf_block_group_block_frame, ms_bf_block_group_summary_position, ms_bf_block_group_summary_with_duration, ms_bf_block_group_summary_no_duration, ms_bf_block_group_summary_v2, ms_bf_simple_block_basics, ms_bf_simple_block_frame, ms_bf_simple_block_summary, ms_bf_simple_block_summary_v2, ms_bf_at, ms_bf_size, ms_bf_at_hex, ms_bf_block_group_block_adler, ms_bf_simple_block_adler, ms_bf_simple_block_position, ms_bf_crc32_value, ms_bf_element_size; @@ -80,7 +80,7 @@ protected: std::vector m_frame_adlers; std::vector m_frame_hexdumps; int64_t m_num_references{}, m_lf_timestamp{}, m_lf_tnum{}; - double m_block_duration{}; + boost::optional m_block_duration; bool m_use_gui{}, m_calc_checksums{}, m_show_summary{}, m_show_hexdump{}, m_show_size{}, m_show_track_info{}, m_hex_positions{}; int m_hexdump_max_size{}, m_verbose{}; @@ -126,6 +126,7 @@ public: std::string format_unsigned_integer_as_timestamp(EbmlElement &e); std::string format_unsigned_integer_as_scaled_timestamp(EbmlElement &e); std::string format_signed_integer_as_timestamp(EbmlElement &e); + std::string format_signed_integer_as_scaled_timestamp(EbmlElement &e); std::string format_block(EbmlElement &e); std::string format_simple_block(EbmlElement &e); diff --git a/tests/results.txt b/tests/results.txt index abfca44dd..00b9197c0 100644 --- a/tests/results.txt +++ b/tests/results.txt @@ -110,7 +110,7 @@ T_261line_endings_in_text_files:849271156b2f7aa8c46ac38a43495138-849271156b2f7aa T_262level1_with_size_0:f6e6e8837f59d4f3dd0e546eb67cba59:passed:20100407-131350:0.043549684 T_263ass_missing_text_in_format:2640dcc0b1ae1e80baf05e17abfab5ca-273e8eb33584686874e52a94a0304cf7:passed:20100411-181436:0.133828607 T_264avc_es_from_lavf_with_native_codecid:3a7f8b0c3bd0dedf8501db86ac9496fd:passed:20100427-123025:0.163914551 -T_265mkvinfo_clusters_with_unknown_size:6b0a9063ef569425b7536ef6f2b91660:passed:20100522-213708:0.127393107 +T_265mkvinfo_clusters_with_unknown_size:864a5c81d78882b240d50b860314f0c1:passed:20100522-213708:0.127393107 T_266mkvmerge_clusters_with_unknown_size:16c8843afe2d1d75172118fe618e4728:passed:20100523-154308:0.04514363 T_267mkvextract_clusters_with_unknown_size:b994ef83db70b5193696121cf1399adf:passed:20100523-154920:0.056976575 T_268X_vp8:c53158209dbc17baa518129377d74edd:passed:20100527-140446:0.041033789 @@ -176,7 +176,7 @@ T_327vp8_frame_type:67f09745027c31fbbd7838df6c94163b:passed:20111207-233304:0.08 T_328dts_detected_as_ac3:4347fcb56eb22be08b08b5a25974f511:passed:20111229-192324:0.090561076 T_329X_timecodes_v2:51d1e61178c7fa2b654d1be71576113c-473bb854441388700e42ee8b4d21c61c-f531fa64a457eb3204e8f09235b039ed-646b73b730d4bd09d13a56bc861ee659-409743510ede469f8d2bf1a098ff36f8-473bb854441388700e42ee8b4d21c61c-4473fffbc0dec00c3955f861a6880b22-3b3c2e7c2470ca550acb1e913311daef-a80f23069cd692e2e8700a6729d6d290-c04e13b7e74a8d6ee694ea2cfba79009:passed:20120105-202451:1.08041896 T_330dts_detection:dd6c70a09fb62a0a7a5f3271a2d71b12:passed:20120107-210130:1.935366715 -T_331read_buffer_underflow:300d676c78644310847c07a31bca384e:passed:20120125-232902:0.322029153 +T_331read_buffer_underflow:d6cf667deec3ba08b0a79d98c1e369df:passed:20120125-232902:0.322029153 T_332eac3_misdetected_as_avc:b2c9f1f1d4c7a4e08dd052b0f7c68dba:passed:20120131-145550:0.208997135 T_333wavpack_with_correction:14daaaf34210bdf3655c418164cf1afb-e33897409384ca5fd8ed5e497f8c3883+37f802510b43b2ab4bd7d8356a7ac606-ok:passed:20120131-164845:0.221105789 T_334mp4_audio_encoder_delay:e64d19eaeb4437a3453b5a6f4cb50322:passed:20120206-100443:0.085778798 @@ -291,13 +291,13 @@ T_442ui_locale_ca_ES:b8b1ebb4a729cd34bac943b4a7eec4d5-efc218c7d73104f27e852a4d6b T_443hevc_keep_user_data:12ba5291fea7247f64acbf02fa357385:passed:20141105-202533:1.308417598 T_444pcm_statistics_from_packaged_sources:7fbfcd5dae796951c461de5aec60e3a9-7fbfcd5dae796951c461de5aec60e3a9-ffdebcc03419e30af6426dcb9310282b-833f726aa92853b669032182bc3fe56f-+++:passed:20141205-220805:0.604375231 T_445teletext_subs_missing_second_line:2905a956d904d14fc4abd387237c1ca7:passed:20141210-224823:5.420908642 -T_446mkvinfo_output:971eada3a36b4360bdad8a5ea7c69b95-a4b49ffe0dd3ca5791213cc1e9c4339e-0d81582748f17ea4b9ad519f8a378f6e-9a2153cce8a21ce8d622288d6f749860-290d60bee99f7e026739240d190702b6-27d32b0075b8a3cdf85656a13ffe3679-a0b64654592143f561d64cd73c80088a-5f4502fe1bb2e28fabff49199e4e858b-8d510cc4e11696a7212a7fdc2e881277-d149c92ff330acda86603efd96643ed6-c6f4f64af265b93f8040e1eb71e9738d-7d956c3e3ab39ef24f60afb3f83b5429-fa6292eda70224403f52dd30421ace66-ee9729758386d0c30fcc62e53955bc8d-3ac30e2bb2e385cd8336334d763e96d4-baa6bee1355f80fabd2ccb13bf5172a6-60c8cf38c61775bc97675ae3e98a33fb-3d108ef48b15ed6eadffd7d1c4e425e2-348c10dce8a34da6fa92bc2780922b19-cac0e5957dd779b7c4648b328c1d2de6-f13e1405fe773f9a0eaffdb105b4453f-7d987f120302740a498a0208274c1940-f3c6f16e9ca4efa7c02a3dcdc8b1de21-b87655a7fb8b260b7e0b0ec2230d2081:passed:20141216-165433:1.564089101 -T_447mkvinfo_rounded_timecodes:ac529df3e4a1b52e47a80444d00471da-ebf8dbee37c031a18e031bd79013a764-449245d7458cc8f085eb72aae71e0f80:passed:20141216-172642:1.712081143 +T_446mkvinfo_output:679910ac4cacbf61267623715e376662-e6ab3475101843d9e1ccd540de64cc61-5ccf8d3b47979bfa5cdb3830569813fa-602b7a1dd9a3ee6fef3b15cd7033ac10-592afe5c007531caa842afe1b981d7fa-935704bcf3fe3716d01ec57bd9a294f2-f173b2de31671ec8ff186477ba825ecc-434e3c8801f16aa583d7e069ad8c5f19-7da967266addf514d98c75bff12bbffe-155ca5aa07d33b20abc94294bcd1adda-65e054efd9aa22609e64bd7439bf8b95-5f819634820ab513c690f54e5ca49dfa-2b06fb46390f755c3003393df314317e-727ef871feec1654010bb026a360e73e-fa310f4893321e5de7e07810e929e6d3-4e20175eb71d1cba1b038add1ffc9ea2-579ba3dc315fb8b67bd69c5260aa3583-c139af96e553b570b79eb6cc514f392f-77cb97bf13ec07227c36f400c3629bd4-5c63548bdbf21725bf6372e77f0fad13-d39b820a409c8d2270f7cf4f8af1f45e-f8dec143a888b472d7a23dfea61f5d1c-5c83039a10f10571e78ba059fcdfa04f-470c4c0f93a5e92408e490d2a941c61f:passed:20141216-165433:1.564089101 +T_447mkvinfo_rounded_timecodes:ac529df3e4a1b52e47a80444d00471da-90c50241a6ae5f1a9501b0a2f547893b-6135e4f80135868978559bf679caf950:passed:20141216-172642:1.712081143 T_448mpeg_ts_with_hevc:9de20597912046a874fea3baff0b98d2:passed:20141216-181650:1.133097273 -T_449segfaults_assertions:error-error-ok-e5484c528a96c5f3fd678ea6bd99a8f2-97291ab0ad9168ef33cd90aa6c4fd918-dea21321ee05fbd8896f38c2db4befef-error-error-ok-efb4e996cf72156f6dd9378394d758d3-2e7700ee082c34a5a0301b2207ed9a0f-e5484c528a96c5f3fd678ea6bd99a8f2-e5484c528a96c5f3fd678ea6bd99a8f2-e89ec43ba0e50e05116fc35b7d850b06-f6498791fdf982a10d40b4e0149ddd3e-e89ec43ba0e50e05116fc35b7d850b06:passed:20141219-195127:0.830949441 +T_449segfaults_assertions:error-error-ok-e5484c528a96c5f3fd678ea6bd99a8f2-b526471aa15744d03fe9665a196fa25e-bde7dcf99103daa65b439850e473c2b2-error-error-ok-efb4e996cf72156f6dd9378394d758d3-2e7700ee082c34a5a0301b2207ed9a0f-e5484c528a96c5f3fd678ea6bd99a8f2-e5484c528a96c5f3fd678ea6bd99a8f2-1f8853bf46b9114b1270cef0816e2e8c-fe4582879f536528ca7df446d8dbf16b-1f8853bf46b9114b1270cef0816e2e8c:passed:20141219-195127:0.830949441 T_450aac_loas_latm_in_mpeg_ts:1451cec5b51034d78e81bfa561205f63:passed:20141229-210738:0.515183095 T_451aac_loas_latm_raw:5a2db12f6eea0bcd37a5d524d8c4c91c:passed:20141230-155351:0.589778873 -T_452mkvinfo_track_statistics_frame_order:1b1b5d14958f2b869572842ff8efd39b-70839a7ba34350108a1c8fe830a165eb:passed:20141230-182428:1.579605124 +T_452mkvinfo_track_statistics_frame_order:1b1b5d14958f2b869572842ff8efd39b-290e77662b1dc198005d551c3c8c3eb7:passed:20141230-182428:1.579605124 T_453mp4_with_hevc:1249facae773a277010f907a94282eb4:passed:20141231-125834:0.046223562 T_454mp4_dash:83d89ede8a370f640b832e39f3152ef8-054255e9f3ca05a108719d501defd173:passed:20141231-214733:0.429881173 T_455he_aacv2_ps:2fbfac35fa7785f8e500f1708da4ec4f:passed:20150101-152553:0.075964546 @@ -350,7 +350,7 @@ T_501mpeg_ts_pat_and_pmt_crc_errors:1a042dec9ef1546a365b0a20cf41fc54:passed:2015 T_502ui_locale_sr_RS:650e05c9c091234882980f4c1da05dc4-25fa402006e7971d8e5a2b1139a4c4d8:failed:20150829-213708:0.062939538 T_503pcm_in_mkv_varying_samples_per_packet:091442963a5879e8e1d8fca62458a06a:passed:20151004-215848:0.430291421 T_504dts_96_24_identification:714be08304c623a79718bd4b32e5dc60-5ff730d8c7bf5f6497773257065ae316-af15fa6318a9384ccfee94e1351ef81b:passed:20151006-223804:2.278995107 -T_505cisco_talos_can_0036:3da3d88523c55f6ef389d2275d9a1f74-dc81bc3628aad4db426dcd1c8c94101d:passed:20151020-161153:0.071686357 +T_505cisco_talos_can_0036:3da3d88523c55f6ef389d2275d9a1f74-9e16370b5219b10d36653bf6ba9da889:passed:20151020-161153:0.071686357 T_506cisco_talos_can_0037:54399680b58f12b413f0f6bad1fe19f0-cb44407e3d07c58d8bb2ff4529db80d6-78582dc40dadcab1b74f309f8afc0fc8-5fdbf203870a3a0d10f606ced148937d-68a1629a3e422cf9c912d7ad36b596bf-49c908b1ce81040889192314e1b64692-7efe15e3a1e5d67f5a58e0aa3430da21-9c54bf25d2c55485bb0387ccd518cdd8:passed:20151020-161234:0.319298931 T_507rerender_track_headers:d08bce971fd84d78fe3ee6865f682fc1-008168c17d73c02eab05d1c2e2213197:passed:20151022-104930:2.573204876 T_508splitting_by_parts_with_segment_linking:existence0-true-true-true-existence1-true-true-true-existence2-true-true-true-equality_previous-true-true-equality_next-true-true:passed:20151103-204257:0.111807853