2022-05-03 03:56:07 +00:00
|
|
|
|
#include "ImageMatQueue.h"
|
|
|
|
|
GRawDecode::GRawDecode(std::shared_ptr<std::vector<char>> buff)
|
|
|
|
|
{
|
|
|
|
|
m_buffs.push_back(buff);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GRawDecode::GRawDecode(void* data, size_t bytes)
|
|
|
|
|
{
|
|
|
|
|
std::shared_ptr<std::vector<char>> buf;
|
|
|
|
|
buf.reset(new std::vector<char>);
|
|
|
|
|
buf->resize(bytes);
|
|
|
|
|
memcpy(buf->data(), data, bytes);
|
|
|
|
|
m_buffs.push_back(buf);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
G200Decode::G200Decode(std::shared_ptr<std::vector<char>> buff,bool is_duplex,bool is_switchFrontBack)
|
|
|
|
|
{
|
|
|
|
|
const int int_buffer_size = 1024;
|
|
|
|
|
int buffer_size = buff->size();
|
|
|
|
|
int b_buffer_size = 0;
|
|
|
|
|
int f_buffer_size = 0;
|
|
|
|
|
std::shared_ptr<std::vector<char>> buffB(new std::vector<char>(buff->size()));
|
|
|
|
|
std::shared_ptr<std::vector<char>> buffF(new std::vector<char>(buff->size()));
|
|
|
|
|
unsigned char *bbuf = (unsigned char *)(buffB->data());
|
|
|
|
|
unsigned char *fbuf = (unsigned char *)(buffF->data());
|
|
|
|
|
unsigned char *buf = (unsigned char *)(buff->data());
|
|
|
|
|
for (int i = 0; i < (buffer_size / int_buffer_size); i++)
|
|
|
|
|
{
|
|
|
|
|
if (buf[(i + 1) * int_buffer_size - 1] == 0)
|
|
|
|
|
{
|
|
|
|
|
memcpy(bbuf + b_buffer_size, buf + i * int_buffer_size, int_buffer_size - 1);
|
|
|
|
|
b_buffer_size += (int_buffer_size - 1);
|
|
|
|
|
}
|
|
|
|
|
else if (buf[(i + 1) * int_buffer_size - 1] == 255)
|
|
|
|
|
{
|
|
|
|
|
memcpy(fbuf + f_buffer_size, buf + i * int_buffer_size, int_buffer_size - 1);
|
|
|
|
|
f_buffer_size += (int_buffer_size - 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
buffB->resize(b_buffer_size);
|
|
|
|
|
buffF->resize(f_buffer_size);
|
|
|
|
|
|
|
|
|
|
if (is_duplex)
|
|
|
|
|
{
|
|
|
|
|
m_buffs.push_back(is_switchFrontBack ? buffF : buffB);
|
|
|
|
|
m_buffs.push_back(is_switchFrontBack ? buffB : buffF);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
m_buffs.push_back(is_switchFrontBack ? buffF : buffB);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
G400Decode::G400Decode(std::shared_ptr<std::vector<char>> buff,bool i)
|
|
|
|
|
{
|
2022-05-05 10:04:20 +00:00
|
|
|
|
/*std::shared_ptr<std::vector<char>> buf;
|
|
|
|
|
buf.reset(new std::vector<char>);
|
|
|
|
|
auto bytes = buff->size();
|
|
|
|
|
buf->resize(bytes);
|
|
|
|
|
memcpy(buf->data(), buff->data(), bytes);
|
|
|
|
|
m_buffs.push_back(buf);*/
|
|
|
|
|
m_buffs.push_back(buff);
|
2022-05-06 05:37:14 +00:00
|
|
|
|
// printf("G400 :buff->size()=%d\r\n",buff->size());
|
2022-05-03 03:56:07 +00:00
|
|
|
|
}
|
|
|
|
|
|