summaryrefslogtreecommitdiff
path: root/src/lib/ffmpeg_decoder.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-06-26 01:21:21 +0100
committerCarl Hetherington <cth@carlh.net>2013-06-26 17:04:31 +0100
commit09a9ac376db005a40a351736bcff4077f098825d (patch)
tree64ea69741155d15d114ad96daf0f90e24b3abe28 /src/lib/ffmpeg_decoder.h
parent46cd0fe7b5b514f0d9456b25f670679cc584a218 (diff)
Another try at sorting out the thorny question of timing.
Diffstat (limited to 'src/lib/ffmpeg_decoder.h')
-rw-r--r--src/lib/ffmpeg_decoder.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/ffmpeg_decoder.h b/src/lib/ffmpeg_decoder.h
index 331d9be70..8f0482aad 100644
--- a/src/lib/ffmpeg_decoder.h
+++ b/src/lib/ffmpeg_decoder.h
@@ -38,6 +38,7 @@ extern "C" {
#include "ffmpeg.h"
class Film;
+class ffmpeg_pts_offset_test;
/** @class FFmpegDecoder
* @brief A decoder using FFmpeg to decode content.
@@ -49,23 +50,24 @@ public:
~FFmpegDecoder ();
void pass ();
- void seek (Time);
+ void seek (VideoContent::Frame);
void seek_back ();
- void seek_forward ();
- Time position () const;
bool done () const;
private:
+ friend class ::ffmpeg_pts_offset_test;
/* No copy construction */
FFmpegDecoder (FFmpegDecoder const &);
FFmpegDecoder& operator= (FFmpegDecoder const &);
+ static double compute_pts_offset (double, double, float);
+
void setup_subtitle ();
AVSampleFormat audio_sample_format () const;
int bytes_per_audio_sample () const;
- void do_seek (Time, bool, bool);
+ void do_seek (VideoContent::Frame, bool, bool);
bool decode_video_packet ();
void decode_audio_packet ();
@@ -81,4 +83,6 @@ private:
bool _decode_video;
bool _decode_audio;
+
+ double _pts_offset;
};