diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-01-17 21:42:43 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-01-17 21:42:43 +0000 |
| commit | 039ac5848730d154e0b3f3dd841a55e45ba922d8 (patch) | |
| tree | 905e5121f749b016815ead3f95140cdf0b22e002 /src/lib/encoder.h | |
| parent | d42989d447bc9199b670d8e99fbb8b93f06ddb71 (diff) | |
| parent | 72494dd766159e9bdac5d80479b43eb1b3ca15b2 (diff) | |
Merge writer-thread with original which was time-cleanup.
Diffstat (limited to 'src/lib/encoder.h')
| -rw-r--r-- | src/lib/encoder.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/encoder.h b/src/lib/encoder.h index 20255cca9..96e7a1d25 100644 --- a/src/lib/encoder.h +++ b/src/lib/encoder.h @@ -50,6 +50,7 @@ class AudioBuffers; class Film; class ServerDescription; class DCPVideoFrame; +class EncodedData; /** @class Encoder * @brief Encoder to J2K and WAV for DCP. @@ -119,6 +120,9 @@ private: /** Number of audio frames written for the DCP so far */ int64_t _audio_frames_out; + void writer_thread (); + void terminate_writer_thread (); + #if HAVE_SWRESAMPLE SwrContext* _swr_context; #endif @@ -133,11 +137,17 @@ private: std::vector<SNDFILE*> _sound_files; boost::optional<int> _last_real_frame; - bool _process_end; - std::list<boost::shared_ptr<DCPVideoFrame> > _queue; + bool _terminate_encoder; + std::list<boost::shared_ptr<DCPVideoFrame> > _encode_queue; std::list<boost::thread *> _worker_threads; mutable boost::mutex _worker_mutex; boost::condition _worker_condition; + + boost::thread* _writer_thread; + bool _terminate_writer; + std::list<std::pair<boost::shared_ptr<EncodedData>, int> > _write_queue; + mutable boost::mutex _writer_mutex; + boost::condition _writer_condition; }; #endif |
