projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve FFmpeg sync, in theory.
[dcpomatic.git]
/
src
/
lib
/
ffmpeg_decoder.h
diff --git
a/src/lib/ffmpeg_decoder.h
b/src/lib/ffmpeg_decoder.h
index 331d9be70ffb5cfb55e247583c4055ef65bb2268..8f0482aad8331dcd12685e1d4724e08469b20eb8 100644
(file)
--- a/
src/lib/ffmpeg_decoder.h
+++ b/
src/lib/ffmpeg_decoder.h
@@
-38,6
+38,7
@@
extern "C" {
#include "ffmpeg.h"
class Film;
#include "ffmpeg.h"
class Film;
+class ffmpeg_pts_offset_test;
/** @class FFmpegDecoder
* @brief A decoder using FFmpeg to decode content.
/** @class FFmpegDecoder
* @brief A decoder using FFmpeg to decode content.
@@
-49,23
+50,24
@@
public:
~FFmpegDecoder ();
void pass ();
~FFmpegDecoder ();
void pass ();
- void seek (
Ti
me);
+ void seek (
VideoContent::Fra
me);
void seek_back ();
void seek_back ();
- void seek_forward ();
- Time position () const;
bool done () const;
private:
bool done () const;
private:
+ friend class ::ffmpeg_pts_offset_test;
/* No copy construction */
FFmpegDecoder (FFmpegDecoder const &);
FFmpegDecoder& operator= (FFmpegDecoder const &);
/* 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 setup_subtitle ();
AVSampleFormat audio_sample_format () const;
int bytes_per_audio_sample () const;
- void do_seek (
Ti
me, bool, bool);
+ void do_seek (
VideoContent::Fra
me, bool, bool);
bool decode_video_packet ();
void decode_audio_packet ();
bool decode_video_packet ();
void decode_audio_packet ();
@@
-81,4
+83,6
@@
private:
bool _decode_video;
bool _decode_audio;
bool _decode_video;
bool _decode_audio;
+
+ double _pts_offset;
};
};