If one wants to know about the presence of broken_link_flag, the thing to do is to use esdots -x.
All the recovery point SEI message are reported there (included the value of broken_link_flag)
--HG--
extra : convert_revision : svn%3Aeff31bef-be4a-0410-a8fe-e47997df2690/trunk%4078
h.264 RAP as I or I + recovery_point SEI
Two changes done:
1) esdots computes the duration of GOPs, even in the h.264 case. The change made is to consider an I frame without recovery_point SEI as beginning of a new GOP. This can be changed just setting rec_point_required = TRUE in esdots.c.
In this case a new GOP is started when we found I + recovery point SEI
2) nalunit has been modified so it's able to output the information about error recovery point SEI message. Just use 'esreport -x' and SEI recovery point messages will be reported with the same syntax as all the others.
e.g.
83644584/0036: NAL unit 0/6 (SEI) 6: 06 06 01 a4 80 00
@@ Recovery Point SEI
recovery_frame_cnt 0
exact_match_flag 0
broken_link_flag 1
changing_slice_group_idc 0
--HG--
extra : convert_revision : svn%3Aeff31bef-be4a-0410-a8fe-e47997df2690/trunk%4074
Want to use it? Find 'broken_link_flag is 1' and uncomment that part of code.
Than compile and use esdots.
--HG--
extra : convert_revision : svn%3Aeff31bef-be4a-0410-a8fe-e47997df2690/trunk%4073
In choose_nal_type in esdotc.c there is a boolean value rec_point_required. It you set it to FALSE any I pic is considered a random access point.
The field recovery_frame_cnt is not used (as if it was 0). If it is != 0 a warning message is printed.
The fields broken_link_flag, exact_match_flag and changing_slice_group_idc are not considered (as 0).
In the final message the max, min and mean duration of a GOP are shown. For H.264 streams this is defined as the distance between 2 random access points. If no full GOP is found this info is not displayed.
The -gop switch works as before.
In esdots a function choose_nal_type has been added.
In nalunit.c a function read_SEI_recovery_point has been added.
The structure nal_SEI_recovery_data has been added, in order to cope with the recovery_point message. It's added to nal_innards too. See nalunit_defns.h
--HG--
extra : convert_revision : svn%3Aeff31bef-be4a-0410-a8fe-e47997df2690/trunk%409