summaryrefslogtreecommitdiff
path: root/src/lib/encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-05-20 13:23:26 +0100
committerCarl Hetherington <cth@carlh.net>2014-05-20 13:23:26 +0100
commit39bc73fe192f932ed6695eb87b19de446e8b4f55 (patch)
tree4811b0642b7fcd73206b037da4ffb342e90ce6dc /src/lib/encoder.cc
parentbb0a36c3a6bea9cd1ebdde7b8a3a04765e317569 (diff)
parent884093edac5f63d26c02d411c73dfb52376ccf8f (diff)
Merge master.
Diffstat (limited to 'src/lib/encoder.cc')
-rw-r--r--src/lib/encoder.cc28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/lib/encoder.cc b/src/lib/encoder.cc
index b83cbc10a..2364b67a7 100644
--- a/src/lib/encoder.cc
+++ b/src/lib/encoder.cc
@@ -35,7 +35,7 @@
#include "writer.h"
#include "server_finder.h"
#include "player.h"
-#include "dcp_video.h"
+#include "player_video_frame.h"
#include "i18n.h"
@@ -123,9 +123,9 @@ Encoder::process_end ()
*/
for (list<shared_ptr<DCPVideoFrame> >::iterator i = _queue.begin(); i != _queue.end(); ++i) {
- _film->log()->log (String::compose (N_("Encode left-over frame %1"), (*i)->frame ()));
+ _film->log()->log (String::compose (N_("Encode left-over frame %1"), (*i)->index ()));
try {
- _writer->write ((*i)->encode_locally(), (*i)->frame (), (*i)->eyes ());
+ _writer->write ((*i)->encode_locally(), (*i)->index (), (*i)->eyes ());
frame_done ();
} catch (std::exception& e) {
_film->log()->log (String::compose (N_("Local encode failed (%1)"), e.what ()));
@@ -178,7 +178,7 @@ Encoder::frame_done ()
}
void
-Encoder::process_video (shared_ptr<DCPVideo> frame)
+Encoder::process_video (shared_ptr<PlayerVideoFrame> pvf)
{
_waker.nudge ();
@@ -205,17 +205,15 @@ Encoder::process_video (shared_ptr<DCPVideo> frame)
rethrow ();
if (_writer->can_fake_write (_video_frames_out)) {
- _writer->fake_write (_video_frames_out, frame->eyes ());
+ _writer->fake_write (_video_frames_out, pvf->eyes ());
frame_done ();
} else {
/* Queue this new frame for encoding */
TIMING ("adding to queue of %1", _queue.size ());
_queue.push_back (shared_ptr<DCPVideoFrame> (
new DCPVideoFrame (
- frame->image(PIX_FMT_RGB24, false),
+ pvf,
_video_frames_out,
- frame->eyes(),
- frame->conversion(),
_film->video_frame_rate(),
_film->j2k_bandwidth(),
_film->resolution(),
@@ -226,7 +224,7 @@ Encoder::process_video (shared_ptr<DCPVideo> frame)
_condition.notify_all ();
}
- if (frame->eyes() != EYES_LEFT) {
+ if (pvf->eyes() != EYES_LEFT) {
++_video_frames_out;
}
}
@@ -280,7 +278,7 @@ try
TIMING ("encoder thread %1 wakes with queue of %2", boost::this_thread::get_id(), _queue.size());
shared_ptr<DCPVideoFrame> vf = _queue.front ();
- TIMING ("encoder thread %1 pops frame %2 (%3) from queue", boost::this_thread::get_id(), vf->frame(), vf->eyes ());
+ TIMING ("encoder thread %1 pops frame %2 (%3) from queue", boost::this_thread::get_id(), vf->index(), vf->eyes ());
_queue.pop_front ();
lock.unlock ();
@@ -306,27 +304,27 @@ try
_film->log()->log (
String::compose (
N_("Remote encode of %1 on %2 failed (%3); thread sleeping for %4s"),
- vf->frame(), server->host_name(), e.what(), remote_backoff)
+ vf->index(), server->host_name(), e.what(), remote_backoff)
);
}
} else {
try {
- TIMING ("encoder thread %1 begins local encode of %2", boost::this_thread::get_id(), vf->frame());
+ TIMING ("encoder thread %1 begins local encode of %2", boost::this_thread::get_id(), vf->index());
encoded = vf->encode_locally ();
- TIMING ("encoder thread %1 finishes local encode of %2", boost::this_thread::get_id(), vf->frame());
+ TIMING ("encoder thread %1 finishes local encode of %2", boost::this_thread::get_id(), vf->index());
} catch (std::exception& e) {
_film->log()->log (String::compose (N_("Local encode failed (%1)"), e.what ()));
}
}
if (encoded) {
- _writer->write (encoded, vf->frame (), vf->eyes ());
+ _writer->write (encoded, vf->index (), vf->eyes ());
frame_done ();
} else {
lock.lock ();
_film->log()->log (
- String::compose (N_("Encoder thread %1 pushes frame %2 back onto queue after failure"), boost::this_thread::get_id(), vf->frame())
+ String::compose (N_("Encoder thread %1 pushes frame %2 back onto queue after failure"), boost::this_thread::get_id(), vf->index())
);
_queue.push_front (vf);
lock.unlock ();