* @return Encoded data.
*/
Data
-DCPVideo::encode_remotely (ServerDescription serv)
+DCPVideo::encode_remotely (ServerDescription serv, int timeout)
{
boost::asio::io_service io_service;
boost::asio::ip::tcp::resolver resolver (io_service);
boost::asio::ip::tcp::resolver::query query (serv.host_name(), raw_convert<string> (Config::instance()->server_port_base ()));
boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
- shared_ptr<Socket> socket (new Socket);
+ shared_ptr<Socket> socket (new Socket (timeout));
socket->connect (*endpoint_iterator);
DCPVideo (boost::shared_ptr<const PlayerVideo>, cxml::ConstNodePtr, boost::shared_ptr<Log>);
dcp::Data encode_locally (dcp::NoteHandler note);
- dcp::Data encode_remotely (ServerDescription);
+ dcp::Data encode_remotely (ServerDescription, int timeout = 30);
int index () const {
return _index;
#include "exceptions.h"
#include <boost/bind.hpp>
#include <boost/lambda/lambda.hpp>
+#include <iostream>
#include "i18n.h"
read (reinterpret_cast<uint8_t *> (&v), 4);
return ntohl (v);
}
-
gettimeofday (&after_encode, 0);
try {
- socket->write (encoded.size ());
- socket->write (encoded.data ().get (), encoded.size ());
+ socket->write (encoded.size());
+ socket->write (encoded.data().get(), encoded.size());
} catch (std::exception& e) {
cerr << "Send failed; frame " << dcp_video_frame.index() << "\n";
LOG_ERROR ("Send failed; frame %1", dcp_video_frame.index());
do_remote_encode (shared_ptr<DCPVideo> frame, ServerDescription description, Data locally_encoded)
{
Data remotely_encoded;
- BOOST_CHECK_NO_THROW (remotely_encoded = frame->encode_remotely (description));
+ BOOST_CHECK_NO_THROW (remotely_encoded = frame->encode_remotely (description, 60));
BOOST_CHECK_EQUAL (locally_encoded.size(), remotely_encoded.size());
BOOST_CHECK_EQUAL (memcmp (locally_encoded.data().get(), remotely_encoded.data().get(), locally_encoded.size()), 0);