#include "transcode.h" Transcoder::Transcoder(std::istream& i, HTTPResponse& r, DecoderBase& d, EncoderBase& e) : is(i), res(r), decoder(d), encoder(e) { } void Transcoder::run() { char data[0x1000]; bool encoding_fone = false; while(!encoding_fone) { size_t decoded_size = 0; char decoded_data[0x1000]; if(is.good()) { is.read(data, 0x1000); decoded_size = decoder.decode((uint8_t*)data, is.gcount(), (uint8_t*)decoded_data, 0x1000); } char encoded_data[0x1000]; size_t encoded_size = encoder.encode((uint8_t*)decoded_data, decoded_size, (uint8_t*)encoded_data, 0x1000); res.write(encoded_data, encoded_size); } }