24 #include <core/exception.h> 25 #include <fvutils/color/colorspaces.h> 26 #include <fvutils/readers/fvraw.h> 27 #include <fvutils/writers/fvraw.h> 34 namespace firevision {
44 FvRawReader::FvRawReader(
const char *filename)
49 infile = fopen(filename,
"r");
52 throw Exception(
"Could not open file for reading");
55 if (fread((
char *)&header,
sizeof(header), 1, infile) != 1) {
58 if (header.file_id != FvRawWriter::FILE_IDENTIFIER) {
59 throw(
"Invalid file identifier");
61 buffer_size = colorspace_buffer_size(header.colorspace, header.width, header.height);
68 FvRawReader::~FvRawReader()
75 FvRawReader::set_buffer(
unsigned char *yuv422planar_buffer)
77 buffer = yuv422planar_buffer;
81 FvRawReader::colorspace()
84 return header.colorspace;
91 FvRawReader::pixel_width()
101 FvRawReader::pixel_height()
104 return header.height;
113 if (buffer == NULL) {
114 throw Exception(
"Read failed: buffer == NULL");
116 if (buffer_size == 0) {
117 throw Exception(
"Read failed: buffer_size == 0");
120 if (fread(buffer, buffer_size, 1, infile) != 1) {
121 throw Exception(
"Failed to read data", errno);
130 FvRawReader::is_FvRaw(
const char *filename)
133 f = fopen(filename,
"r");
136 if (fread((
char *)&header,
sizeof(header), 1, f) == 1) {
137 if (header.file_id == FvRawWriter::FILE_IDENTIFIER) {
Fawkes library namespace.
Base class for exceptions in Fawkes.