diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-10-04 11:54:45 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-10-04 11:54:45 +0100 |
| commit | 4750382795aaf7964cfc4af9483d30dd4e565b4c (patch) | |
| tree | 33877ce252ba386f1b3f74fc5622a33900c390fc /src/lib/ffmpeg.cc | |
| parent | 069afcb80c8eefe46d101de39160c7b80bafa1d6 (diff) | |
Fix subtitle_id to work with _TEXT and _ASS subtitles (fixes #969).
Diffstat (limited to 'src/lib/ffmpeg.cc')
| -rw-r--r-- | src/lib/ffmpeg.cc | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/lib/ffmpeg.cc b/src/lib/ffmpeg.cc index 4b95666b8..af6c8e167 100644 --- a/src/lib/ffmpeg.cc +++ b/src/lib/ffmpeg.cc @@ -282,21 +282,27 @@ FFmpeg::subtitle_id (AVSubtitle const & sub) digester.add (sub.pts); for (unsigned int i = 0; i < sub.num_rects; ++i) { AVSubtitleRect* rect = sub.rects[i]; - digester.add (rect->x); - digester.add (rect->y); - digester.add (rect->w); - digester.add (rect->h); + if (rect->type == SUBTITLE_BITMAP) { + digester.add (rect->x); + digester.add (rect->y); + digester.add (rect->w); + digester.add (rect->h); #ifdef DCPOMATIC_HAVE_AVSUBTITLERECT_PICT - int const line = rect->pict.linesize[0]; - for (int j = 0; j < rect->h; ++j) { - digester.add (rect->pict.data[0] + j * line, line); - } + int const line = rect->pict.linesize[0]; + for (int j = 0; j < rect->h; ++j) { + digester.add (rect->pict.data[0] + j * line, line); + } #else - int const line = rect->linesize[0]; - for (int j = 0; j < rect->h; ++j) { - digester.add (rect->data[0] + j * line, line); - } + int const line = rect->linesize[0]; + for (int j = 0; j < rect->h; ++j) { + digester.add (rect->data[0] + j * line, line); + } #endif + } else if (rect->type == SUBTITLE_TEXT) { + digester.add (string (rect->text)); + } else if (rect->type == SUBTITLE_ASS) { + digester.add (string (rect->ass)); + } } return digester.get (); } |
