#include "filter_graph.h"
#include "audio_buffers.h"
#include "ffmpeg_content.h"
-#include "image_proxy.h"
+#include "raw_image_proxy.h"
#include "film.h"
#include "timer.h"
ContentTime pre_roll = accurate ? ContentTime::from_seconds (2) : ContentTime (0);
time -= pre_roll;
- if (time < ContentTime (0)) {
- time = ContentTime (0);
- }
+ /* XXX: it seems debatable whether PTS should be used here...
+ http://www.mjbshaw.com/2012/04/seeking-in-ffmpeg-know-your-timestamp.html
+ */
+
ContentTime const u = time - _pts_offset;
int64_t s = u.seconds() / av_q2d (_format_context->streams[_video_stream]->time_base);
);
}
- /* Ridiculous empirical hack */
- s--;
- if (s < 0) {
- s = 0;
- }
-
av_seek_frame (_format_context, _video_stream, s, 0);
avcodec_flush_buffers (video_codec_context());
avsubtitle_free (&sub);
}
-bool
-FFmpegDecoder::has_subtitle_during (ContentTimePeriod p) const
+list<ContentTimePeriod>
+FFmpegDecoder::subtitles_during (ContentTimePeriod p, bool starting) const
{
- return _ffmpeg_content->has_subtitle_during (p);
+ return _ffmpeg_content->subtitles_during (p, starting);
}