On 11/23/2017 03:04 AM, Jerome Martinez wrote: > 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". > >
The use case this patch was created for is PGS subtitles that use an "empty" PGS subtitle to mark the end of the previous subtitle. An "empty" PGS subtitle is not a packet of 0 length. It is a PGS subtitle that has zero composition objects. So a non-empty frame of 0 duration gets written to mark the end of the previous PGS. It's not practical to know the duration of the previous subtitle before writing it because you can't know it till you have seen this empty PGS. Once you've seen the empty PGS, it is often too late to properly interleave the previous PGS in the output file. Your suggestion (0 means up to next frame) however works I believe. I.e. display the "empty" PGS up to the next frame. -- John GnuPG fingerprint: D0EC B3DB C372 D1F1 0B01 83F0 49F1 D7B2 60D4 D0F7
signature.asc
Description: OpenPGP digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel