summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-10-04 11:54:45 +0100
committerCarl Hetherington <cth@carlh.net>2016-10-04 11:54:45 +0100
commit4750382795aaf7964cfc4af9483d30dd4e565b4c (patch)
tree33877ce252ba386f1b3f74fc5622a33900c390fc /src/lib
parent069afcb80c8eefe46d101de39160c7b80bafa1d6 (diff)
Fix subtitle_id to work with _TEXT and _ASS subtitles (fixes #969).
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/ffmpeg.cc30
-rw-r--r--src/lib/ffmpeg_subtitle_stream.cc1
2 files changed, 19 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 ();
}
diff --git a/src/lib/ffmpeg_subtitle_stream.cc b/src/lib/ffmpeg_subtitle_stream.cc
index 627b0fef1..cf3a8c0f2 100644
--- a/src/lib/ffmpeg_subtitle_stream.cc
+++ b/src/lib/ffmpeg_subtitle_stream.cc
@@ -128,6 +128,7 @@ FFmpegSubtitleStream::add_image_subtitle (string id, ContentTimePeriod period)
void
FFmpegSubtitleStream::add_text_subtitle (string id, ContentTimePeriod period)
{
+ cout << id << " " << to_string(period.from) << " " << to_string(period.to) << "\n";
DCPOMATIC_ASSERT (_text_subtitles.find (id) == _text_subtitles.end ());
_text_subtitles[id] = period;
}