blob: f3698a3e737231b6ed99e4fd254cf7e37fdaef66 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include "transcode.h"
#include <boost/iostreams/device/file.hpp>
#include <boost/iostreams/filtering_stream.hpp>
Transcoder::Transcoder(std::string p, HTTP::Connection::p r, DecoderBase& d, EncoderBase& e) : path(p), res(r), decoder(d), encoder(e) {
}
void Transcoder::run() {
const std::streamsize buffer_size = 0x1000;
boost::iostreams::file_source is(path, std::ios::in | std::ios::binary);
boost::iostreams::filtering_istream s;
s.push(EncoderFilter(encoder), buffer_size);
s.push(DecoderFilter(decoder), buffer_size);
s.push(is, buffer_size);
res->send_data(s);
}
|