On 12/11/2017 03:12, Carl Eugen Hoyos wrote:
The matroska spec says blockduration == 0 means the frame is not a
keyframe.  Since all subtitles are "keyframes", 0 blockduration should
not be written.

As I understand from discussion on CELLAR mailing-list:
- if is not expected to have a frame with block duration of 0, in a perfect world the previous frame should have the right duration and the player should hide the previous frame after blockduration of the previous frame. - as a workaround, it would make sense to put an empty frame with "unlimited" duration, so no blockduration, as implemented in the patch.

The only issue is in the case someone puts a "not empty" frame with a duration of 0, this patch would change the behavior (from nothing displayed to the frame displayed) but as it is not expected to have a duration of 0 when something is displayed, this is not a real use case IMO.

Suggestion of changes for this patch:
- Remove the outdated part about specs. A duration of 0 is not coherent, that's all. - Add a comment (in the code?) stipulating that duration of 0 is a special case which means "up to the next frame".

ffmpeg-devel mailing list

Reply via email to