Opened 10 years ago

Closed 10 years ago

#8781 closed defect (fixed)

AV subtitle durations sometimes handled incorrectly

Reported by: Jim Stichnoth <stichnot@…> Owned by: markk
Priority: minor Milestone: unknown
Component: MythTV - Video Playback Version: Unspecified
Severity: medium Keywords:
Cc: Ticket locked: no

Description

https://docs.google.com/leaf?id=0BxETmfuHvGPQOWQ0YzZkZGUtOGNjNy00MzI3LTk3ZWQtYjg5N2I5NjQ0MDNj&sort=name&layout=list&num=50

This is a 100 MB sample from a children's DVD with a "read-along" feature implemented in terms of AV subtitles. The appearance of this feature is that individual words in the subtitle change color as they are spoken. The experience in myth is pretty bad, as the subtitles flash on and off quickly instead of displaying smoothly as they do in vlc. It appears the author of this DVD is using zero-duration subtitles to mean infinite duration (or until the next subtitle is to be displayed). The attached patch changes zero duration to be 10 seconds, which makes the sample display nicely, even if it's not necessarily the best solution.

The second issue is probably related. If you pause while a subtitle is displayed, it is still erased after its duration elapses, even though playback is paused. This is because of the way m_expireTimes is used. I didn't test, but I suspect the subtitle durations do not respect timestretch.

Attachments (2)

zero_length_subtitles.patch (644 bytes) - added by Jim Stichnoth <stichnot@…> 10 years ago.
zero_length_subtitles_v2.patch (757 bytes) - added by Jim Stichnoth <stichnot@…> 10 years ago.

Download all attachments as: .zip

Change History (8)

Changed 10 years ago by Jim Stichnoth <stichnot@…>

Attachment: zero_length_subtitles.patch added

comment:1 Changed 10 years ago by markk

Owner: changed from Janne Grunau to markk
Status: newassigned

comment:2 Changed 10 years ago by markk

Jim - is that link correct? It's not working for me here. thanks.

comment:3 Changed 10 years ago by markk

(In [25670]) If an AVSubtitle has a duration of exactly zero, bump the display time to 1 minute - which should cover most use cases.

Also filter out some unnecessary logging when AVSubtitle display is only fractionally late.

Refs #8781

comment:4 Changed 10 years ago by markk

Resolution: fixed
Status: assignedclosed

(In [25674]) Use the frame timecode to expire AV subtitles.

The old time based approach didn't account for changes to playback speed such as pause and timestretch. Using the timecode also brings AV subtitles in line with the other types of subtitle.

Closes #8781

Changed 10 years ago by Jim Stichnoth <stichnot@…>

comment:5 Changed 10 years ago by Jim Stichnoth <stichnot@…>

Resolution: fixed
Status: closednew

Some logic in [25670] is wrong. The v2 patch fixes it.

comment:6 Changed 10 years ago by markk

Resolution: fixed
Status: newclosed

(In [25756]) Fix zero duration AVSubtitle following r25670.

Closes #8781 - thanks to Jim

Note: See TracTickets for help on using tickets.