Calculate the minimum and maximum cluster timecodes correctly. Only the cluster timecodes have changed for the reference test files however, as the relative block timecodes can be negative.

This commit is contained in:
Moritz Bunkus 2007-10-17 21:12:57 +00:00
parent 76dc3cb3b2
commit ab33e25049
2 changed files with 15 additions and 13 deletions

View File

@ -297,7 +297,7 @@ cluster_helper_c::render() {
DataBuffer *data_buffer;
int i, k, elements_in_cluster;
packet_cptr pack;
int64_t max_cl_timecode;
int64_t min_cl_timecode, max_cl_timecode;
generic_packetizer_c *source;
vector<render_groups_t *> render_groups;
render_groups_t *render_group;
@ -307,6 +307,7 @@ cluster_helper_c::render() {
BlockBlobType this_block_blob_type, std_block_blob_type = use_simpleblock ?
BLOCK_BLOB_ALWAYS_SIMPLE : BLOCK_BLOB_NO_SIMPLE;
min_cl_timecode = 9223372036854775807LL;
max_cl_timecode = 0;
// Splitpoint stuff
@ -347,9 +348,8 @@ cluster_helper_c::render() {
render_groups.push_back(render_group);
}
if (i == 0)
cluster->set_min_timecode(pack->assigned_timecode - timecode_offset);
max_cl_timecode = pack->assigned_timecode;
min_cl_timecode = MXMIN(pack->assigned_timecode, min_cl_timecode);
max_cl_timecode = MXMAX(pack->assigned_timecode, max_cl_timecode);
data_buffer = new DataBuffer((binary *)pack->data->get(),
pack->data->get_size());
@ -485,6 +485,8 @@ cluster_helper_c::render() {
if (elements_in_cluster > 0) {
for (i = 0; i < render_groups.size(); i++)
set_duration(render_groups[i]);
cluster->set_min_timecode(min_cl_timecode - timecode_offset);
cluster->set_max_timecode(max_cl_timecode - timecode_offset);
cluster->Render(*out, *kax_cues);
bytes_in_file += cluster->ElementSize();

View File

@ -47,8 +47,8 @@ T_048X_chapters_ogmstyle:5ecb42d20d78b4f73fc2340a2e4f0803:passed:20040920-192349
T_049ass:b50e8bc1d9acbe0a5a940e18e4b33cde:passed:20040929-113852
T_050X_ass:6aeb4aef55511282630e9f0e69777c46-d65638e96a393b01deb6d5e132d35552:passed:20040929-113852
T_200mp2_from_mp4:4e8078c1fbe5ec97a3a74e1f5aeb255a:passed:20040917-185156
T_201avc_from_mp4_with_par:7fde891eefaa495c0dab229888aae1a6:passed:20050125-224528
T_202avc_from_mp4_with_par_bframes:abf88626e2ae80e8711b3bce9ba2ed2e:passed:20050125-224635
T_201avc_from_mp4_with_par:6c7940e2a22ceeb41599880a8499ab8a:passed:20050125-224528
T_202avc_from_mp4_with_par_bframes:646322197912c18bbeeaec2b6bcdb781:passed:20050125-224635
T_203wavpack_with_correctiondata:a375abc2174544fda652ec9ea0bffd61:passed:20050201-094411
T_204wavpack_without_correctiondata:58e1c78c7a26d67af71845754519c652:passed:20050201-094414
T_205X_cuesheets:3b00b00c7d185137e30d7e95e3123d33-b3bb67d316e20da12926d5c1d628f6e5:passed:20050210-211853
@ -57,12 +57,12 @@ T_207segmentinfo:824963a25737f7785a7dc2ff13febd27:passed:20050211-234856
T_208cat_and_splitting:f91e9554e8a2919c5df10b653ba787a5-8adde65fdd770ba8e2aafa4f930bc1ba:passed:20050306-152640
T_209ac3misdeetected_as_mpeges:7a0a91f18dea69ea2a43774098f5d472:passed:20050315-092851
T_210splitting_and_chapters:1a8f6844f5912334d5ed3c329f8e0662-cd88146c6b77b9a2bfa370ac11c15997-a1bd93f44ca199aee4e44c0632d0733f-fc3d1279de973c724dc3ed946358cd54:passed:20050406-165104
T_211bug_segfault_reading_mp4:2490c01adda16aa621201836d38a3145:passed:20050728-083402
T_211bug_segfault_reading_mp4:77ac0d67fd2b1865b241e43d45e98819:passed:20050728-083402
T_212ssa_attachments:7555c28c8b18536880248bb88253fa49-9a5a5ed80808c9d448ca5b44b640d8aa-c9a562c38a809df96ba6bd78220bb930-6ee73fb6f296ec5a9d9322c8ec556bc3-cadf6d54ff0e53f2fa363b4042d2be2a:passed:20050824-131320
T_213mp4_broken_pixel_dimensions:dc4f6c0c82b1d1aabaadac51d70b77c0:passed:20050919-094831
T_214one_frame_avi:bea975277e91ded1a4085043e89608ce:passed:20051004-192755
T_215X_codec_extradata_avi:78d669fc6511b6b931cd0981e2e1cca9-3fabc505fdd377c05ce4557b1bc13545:passed:20051004-194707
T_216mp4_editlists:af755119f47f2cad57d45f5c6e1145f4:passed:20051118-191453
T_216mp4_editlists:e892849c0caf98ea19399c63040d94db:passed:20051118-191453
T_217file_identification:ef3c502529537c1d3699d0e0487751c3-d40a9c9f030a0ec8cb4386746a1eb2da-3932d2e08ee1db10320e451664df0d3e-740f6f0002645b8e3722c7620a03ad15-3653ca6236d589cd9cc59fde37b2d2dc-9c926be4a5c0dbf460ebc0c0ecf9a756-2422026a86400c0a1a4b5ddab16e29ef-6524735ec6a605cc67c8907486c45ced-c170654ad0688c40fc9e2ceeb9ef0b9f-6b44c4e351ac48b7fdb63355c65783eb-d701319c3f77c58adfee92b1186a3993-12aa395d3bc0431c5acb81bc4407b70f-3e7956db47487933b47241fc7bc76359-52dfc8091ce64db9f8ad44aee34748ec-6b7149a5774a37d214b8085c6409aab3-15beba0108723bff77bf8d88876f8f31-72fabb6ff0194c82321db1c317b11c63-2b03944260062946d1ceabde9c71e007-87cb6b0e3933210309228a79d3a3f823-34b0b13ac1b1b3ced17cbb31df973d62-e592a5d28c92ebb23fe6d7ea901ec0a9-f997737ca7eff867d33ee58af611e741:passed:20051209-180815
T_218theora:35ea3cf1add9a6687627953e1645d4c9-fac4b041366588e3c8215b9fbb696db2:passed:20060428-105054
T_219srt_short_timecodes:a7db07ee64751fcc24993dd4af73ccf1:passed:20060926-112658
@ -72,11 +72,11 @@ T_222stereo_mode:22eebd6bda7d848379044be8d9d8f440-38a1988c087c40e6e52025bb974f2c
T_223ra_cook_keyframes:9586107c7cf22c7fe4e3a3513f8da68d:passed:20061228-150947
T_224dts:af6388e169eb68cfb5e3ce3af8b39da3-844ad568698bde5b3b778632f355aab8:passed:20070206-174735
T_225dts_in_wav:8bc50d56c1bc7031284c963b0c00389c-7438d3051d05d983d1cf740902a1b913:passed:20070206-174726
T_226h264:d2599cdc7b3aa46f2b00c5ef49f948d2:passed:20070208-103558
T_227h264_with_garbage:a390685806a6282bbf68593329728557:passed:20070208-103656
T_228h264_no_idr_slices:80c935a51e96facf6a4232df8c647cfa:passed:20070426-103130
T_226h264:d4f91974c45f08ae697f872f970d7c44:passed:20070208-103558
T_227h264_with_garbage:832021cdd448f3c0703609218c43641b:passed:20070208-103656
T_228h264_no_idr_slices:6c734c225a3ee5fa2fe2c558e03a677c:passed:20070426-103130
T_229rav3_in_rm:afe8fabeb8f8d74f29a5116b731c3262:passed:20070619-220659
T_230h264_nalu_size_len_change:7778979ff769e9c85cd052ea1731beb0-abf88626e2ae80e8711b3bce9ba2ed2e:passed:20070622-103843
T_230h264_nalu_size_len_change:5edd20bc714e136b1b09c0d518688f03-646322197912c18bbeeaec2b6bcdb781:passed:20070622-103843
T_231X_ac3_header_removal:6ca341797c5f93e273c8502f4d6f4fba:passed:20070623-111240
T_232h264_changing_sps_pps:6f35e6f75bff5560f13bf465d1cd16d9:passed:20070815-211934
T_232h264_changing_sps_pps:e3c2583388a2178a2b9f706cc96cd82b:passed:20070815-211934
T_233srt_with_coordinates:ecb701d64b3073d99295e9e160761962:passed:20070819-203105