Cleanup: move avi io to C++ #110537
|
@ -12,13 +12,13 @@ set(INC_SYS
|
|||
)
|
||||
|
||||
set(SRC
|
||||
intern/avi.c
|
||||
intern/avi_codecs.c
|
||||
intern/avi_endian.c
|
||||
intern/avi_mjpeg.c
|
||||
intern/avi_options.c
|
||||
intern/avi_rgb.c
|
||||
intern/avi_rgb32.c
|
||||
intern/avi.cc
|
||||
intern/avi_codecs.cc
|
||||
intern/avi_endian.cc
|
||||
intern/avi_mjpeg.cc
|
||||
intern/avi_options.cc
|
||||
intern/avi_rgb.cc
|
||||
intern/avi_rgb32.cc
|
||||
|
||||
AVI_avi.h
|
||||
intern/avi_endian.h
|
||||
|
|
|
@ -92,7 +92,7 @@ int AVI_get_stream(AviMovie *movie, int avist_type, int stream_num)
|
|||
{
|
||||
int cur_stream;
|
||||
|
||||
if (movie == NULL) {
|
||||
if (movie == nullptr) {
|
||||
return -AVI_ERROR_OPTION;
|
||||
}
|
||||
|
||||
|
@ -188,7 +188,7 @@ AviError AVI_print_error(AviError in_error)
|
|||
bool AVI_is_avi(const char *filepath)
|
||||
{
|
||||
int temp, fcca, j;
|
||||
AviMovie movie = {NULL};
|
||||
AviMovie movie = {nullptr};
|
||||
AviMainHeader header;
|
||||
AviBitmapInfoHeader bheader;
|
||||
int movie_tracks = 0;
|
||||
|
@ -197,9 +197,9 @@ bool AVI_is_avi(const char *filepath)
|
|||
|
||||
movie.type = AVI_MOVIE_READ;
|
||||
movie.fp = BLI_fopen(filepath, "rb");
|
||||
movie.offset_table = NULL;
|
||||
movie.offset_table = nullptr;
|
||||
|
||||
if (movie.fp == NULL) {
|
||||
if (movie.fp == nullptr) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -390,9 +390,9 @@ AviError AVI_open_movie(const char *filepath, AviMovie *movie)
|
|||
|
||||
movie->type = AVI_MOVIE_READ;
|
||||
movie->fp = BLI_fopen(filepath, "rb");
|
||||
movie->offset_table = NULL;
|
||||
movie->offset_table = nullptr;
|
||||
|
||||
if (movie->fp == NULL) {
|
||||
if (movie->fp == nullptr) {
|
||||
return AVI_ERROR_OPEN;
|
||||
}
|
||||
|
||||
|
@ -657,7 +657,7 @@ void *AVI_read_frame(AviMovie *movie, AviFormat format, int frame, int stream)
|
|||
}
|
||||
|
||||
if (cur_frame != frame) {
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
BLI_fseek(movie->fp, movie->read_offset + movie->entries[i - 1].Offset, SEEK_SET);
|
||||
|
@ -668,7 +668,7 @@ void *AVI_read_frame(AviMovie *movie, AviFormat format, int frame, int stream)
|
|||
if (fread(buffer, 1, size, movie->fp) != size) {
|
||||
MEM_freeN(buffer);
|
||||
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
buffer = avi_format_convert(movie, stream, buffer, movie->streams[stream].format, format, &size);
|
||||
|
@ -683,7 +683,7 @@ AviError AVI_close(AviMovie *movie)
|
|||
fclose(movie->fp);
|
||||
|
||||
for (i = 0; i < movie->header->Streams; i++) {
|
||||
if (movie->streams[i].sf != NULL) {
|
||||
if (movie->streams[i].sf != nullptr) {
|
||||
MEM_freeN(movie->streams[i].sf);
|
||||
}
|
||||
}
|
||||
|
@ -691,10 +691,10 @@ AviError AVI_close(AviMovie *movie)
|
|||
MEM_freeN(movie->header);
|
||||
MEM_freeN(movie->streams);
|
||||
|
||||
if (movie->entries != NULL) {
|
||||
if (movie->entries != nullptr) {
|
||||
MEM_freeN(movie->entries);
|
||||
}
|
||||
if (movie->offset_table != NULL) {
|
||||
if (movie->offset_table != nullptr) {
|
||||
MEM_freeN(movie->offset_table);
|
||||
}
|
||||
|
||||
|
@ -716,7 +716,7 @@ AviError AVI_open_compress(char *filepath, AviMovie *movie, int streams, ...)
|
|||
|
||||
movie->index_entries = 0;
|
||||
|
||||
if (movie->fp == NULL) {
|
||||
if (movie->fp == nullptr) {
|
||||
return AVI_ERROR_OPEN;
|
||||
}
|
||||
|
||||
|
@ -726,7 +726,7 @@ AviError AVI_open_compress(char *filepath, AviMovie *movie, int streams, ...)
|
|||
movie->offset_table[i] = -1L;
|
||||
}
|
||||
|
||||
movie->entries = NULL;
|
||||
movie->entries = nullptr;
|
||||
|
||||
movie->header = (AviMainHeader *)MEM_mallocN(sizeof(AviMainHeader), "movieheader");
|
||||
|
||||
|
@ -760,7 +760,7 @@ AviError AVI_open_compress(char *filepath, AviMovie *movie, int streams, ...)
|
|||
va_start(ap, streams);
|
||||
|
||||
for (i = 0; i < movie->header->Streams; i++) {
|
||||
movie->streams[i].format = va_arg(ap, AviFormat);
|
||||
movie->streams[i].format = AviFormat(va_arg(ap, int));
|
||||
|
||||
movie->streams[i].sh.fcc = FCC("strh");
|
||||
movie->streams[i].sh.size = 56;
|
||||
|
@ -928,7 +928,7 @@ AviError AVI_write_frame(AviMovie *movie, int frame_num, ...)
|
|||
for (stream = 0; stream < movie->header->Streams; stream++) {
|
||||
uint tbuf = 0;
|
||||
|
||||
format = va_arg(ap, AviFormat);
|
||||
format = AviFormat(va_arg(ap, int));
|
||||
buffer = va_arg(ap, void *);
|
||||
size_t size = va_arg(ap, int);
|
||||
|
||||
|
@ -999,7 +999,7 @@ AviError AVI_close_compress(AviMovie *movie)
|
|||
{
|
||||
int temp, movi_size, i;
|
||||
|
||||
if (movie->fp == NULL) {
|
||||
if (movie->fp == nullptr) {
|
||||
/* none of the allocations below were done if the file failed to open */
|
||||
return AVI_ERROR_FOUND;
|
||||
}
|
||||
|
@ -1027,20 +1027,20 @@ AviError AVI_close_compress(AviMovie *movie)
|
|||
fclose(movie->fp);
|
||||
|
||||
for (i = 0; i < movie->header->Streams; i++) {
|
||||
if (movie->streams && (movie->streams[i].sf != NULL)) {
|
||||
if (movie->streams && (movie->streams[i].sf != nullptr)) {
|
||||
MEM_freeN(movie->streams[i].sf);
|
||||
}
|
||||
}
|
||||
|
||||
MEM_freeN(movie->header);
|
||||
|
||||
if (movie->entries != NULL) {
|
||||
if (movie->entries != nullptr) {
|
||||
MEM_freeN(movie->entries);
|
||||
}
|
||||
if (movie->streams != NULL) {
|
||||
if (movie->streams != nullptr) {
|
||||
MEM_freeN(movie->streams);
|
||||
}
|
||||
if (movie->offset_table != NULL) {
|
||||
if (movie->offset_table != nullptr) {
|
||||
MEM_freeN(movie->offset_table);
|
||||
}
|
||||
return AVI_ERROR_NONE;
|
|
@ -38,26 +38,28 @@ void *avi_format_convert(
|
|||
case AVI_FORMAT_RGB24:
|
||||
switch (from) {
|
||||
case AVI_FORMAT_AVI_RGB:
|
||||
buffer = avi_converter_from_avi_rgb(movie, stream, buffer, size);
|
||||
buffer = avi_converter_from_avi_rgb(
|
||||
movie, stream, static_cast<unsigned char *>(buffer), size);
|
||||
break;
|
||||
case AVI_FORMAT_MJPEG:
|
||||
buffer = avi_converter_from_mjpeg(movie, stream, buffer, size);
|
||||
buffer = avi_converter_from_mjpeg(movie, stream, static_cast<uchar *>(buffer), size);
|
||||
break;
|
||||
case AVI_FORMAT_RGB32:
|
||||
buffer = avi_converter_from_rgb32(movie, stream, buffer, size);
|
||||
buffer = avi_converter_from_rgb32(
|
||||
movie, stream, static_cast<unsigned char *>(buffer), size);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case AVI_FORMAT_AVI_RGB:
|
||||
buffer = avi_converter_to_avi_rgb(movie, stream, buffer, size);
|
||||
buffer = avi_converter_to_avi_rgb(movie, stream, static_cast<unsigned char *>(buffer), size);
|
||||
break;
|
||||
case AVI_FORMAT_MJPEG:
|
||||
buffer = avi_converter_to_mjpeg(movie, stream, buffer, size);
|
||||
buffer = avi_converter_to_mjpeg(movie, stream, static_cast<uchar *>(buffer), size);
|
||||
break;
|
||||
case AVI_FORMAT_RGB32:
|
||||
buffer = avi_converter_to_rgb32(movie, stream, buffer, size);
|
||||
buffer = avi_converter_to_rgb32(movie, stream, static_cast<unsigned char *>(buffer), size);
|
||||
break;
|
||||
default:
|
||||
break;
|
|
@ -10,6 +10,10 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define AVI_RAW 0
|
||||
#define AVI_CHUNK 1
|
||||
#define AVI_LIST 2
|
||||
|
@ -20,3 +24,7 @@
|
|||
#define AVI_MJPEGU 7
|
||||
|
||||
void awrite(AviMovie *movie, void *datain, int block, int size, FILE *fp, int type);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
|
||||
#include <stdio.h> /* for FILE */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
unsigned int GET_FCC(FILE *fp);
|
||||
unsigned int GET_TCC(FILE *fp);
|
||||
|
||||
|
@ -45,3 +49,7 @@ int avi_get_data_id(AviFormat format, int stream);
|
|||
int avi_get_format_type(AviFormat format);
|
||||
int avi_get_format_fcc(AviFormat format);
|
||||
int avi_get_format_compression(AviFormat format);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -35,7 +35,7 @@ static void add_huff_table(j_decompress_ptr dinfo,
|
|||
const UINT8 *val,
|
||||
const size_t val_size)
|
||||
{
|
||||
if (*htblptr == NULL) {
|
||||
if (*htblptr == nullptr) {
|
||||
*htblptr = jpeg_alloc_huff_table((j_common_ptr)dinfo);
|
||||
}
|
||||
|
||||
|
@ -227,7 +227,7 @@ static int Decode_JPEG(uchar *inBuffer, uchar *outBuffer, uint width, uint heigh
|
|||
jpeg_create_decompress(&dinfo);
|
||||
jpegmemsrcmgr_build(&dinfo, inBuffer, bufsize);
|
||||
jpeg_read_header(&dinfo, true);
|
||||
if (dinfo.dc_huff_tbl_ptrs[0] == NULL) {
|
||||
if (dinfo.dc_huff_tbl_ptrs[0] == nullptr) {
|
||||
std_huff_tables(&dinfo);
|
||||
}
|
||||
dinfo.out_color_space = JCS_RGB;
|
||||
|
@ -251,7 +251,7 @@ static int Decode_JPEG(uchar *inBuffer, uchar *outBuffer, uint width, uint heigh
|
|||
|
||||
numbytes = 0;
|
||||
jpeg_read_header(&dinfo, true);
|
||||
if (dinfo.dc_huff_tbl_ptrs[0] == NULL) {
|
||||
if (dinfo.dc_huff_tbl_ptrs[0] == nullptr) {
|
||||
std_huff_tables(&dinfo);
|
||||
}
|
||||
|
||||
|
@ -365,13 +365,13 @@ void *avi_converter_from_mjpeg(AviMovie *movie, int stream, uchar *buffer, const
|
|||
|
||||
(void)stream; /* unused */
|
||||
|
||||
buf = imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_from_mjpeg 1");
|
||||
buf = static_cast<uchar *>(imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_from_mjpeg 1"));
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
deint = Decode_JPEG(buffer, buf, movie->header->Width, movie->header->Height, *size);
|
||||
|
@ -379,11 +379,11 @@ void *avi_converter_from_mjpeg(AviMovie *movie, int stream, uchar *buffer, const
|
|||
MEM_freeN(buffer);
|
||||
|
||||
if (deint) {
|
||||
buffer = imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_from_mjpeg 2");
|
||||
buffer = static_cast<uchar *>(imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_from_mjpeg 2"));
|
||||
if (buffer) {
|
||||
interlace(buffer, buf, movie->header->Width, movie->header->Height);
|
||||
}
|
||||
|
@ -403,13 +403,13 @@ void *avi_converter_to_mjpeg(AviMovie *movie, int stream, uchar *buffer, size_t
|
|||
numbytes = 0;
|
||||
*size = 0;
|
||||
|
||||
buf = imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_to_mjpeg 1");
|
||||
buf = static_cast<uchar *>(imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_to_mjpeg 1"));
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!movie->interlace) {
|
||||
|
@ -426,11 +426,11 @@ void *avi_converter_to_mjpeg(AviMovie *movie, int stream, uchar *buffer, size_t
|
|||
MEM_freeN(buffer);
|
||||
|
||||
buffer = buf;
|
||||
buf = imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_to_mjpeg 1");
|
||||
buf = static_cast<uchar *>(imb_alloc_pixels(movie->header->Height,
|
||||
movie->header->Width,
|
||||
3,
|
||||
sizeof(uchar),
|
||||
"avi.avi_converter_to_mjpeg 1"));
|
||||
|
||||
if (buf) {
|
||||
Compress_JPEG(movie->streams[stream].sh.Quality / 100,
|
||||
|
@ -478,7 +478,8 @@ static void jpegmemdestmgr_term_destination(j_compress_ptr cinfo)
|
|||
|
||||
static void jpegmemdestmgr_build(j_compress_ptr cinfo, uchar *buffer, size_t bufsize)
|
||||
{
|
||||
cinfo->dest = MEM_mallocN(sizeof(*(cinfo->dest)), "avi.jpegmemdestmgr_build");
|
||||
cinfo->dest = static_cast<jpeg_destination_mgr *>(
|
||||
MEM_mallocN(sizeof(*(cinfo->dest)), "avi.jpegmemdestmgr_build"));
|
||||
|
||||
cinfo->dest->init_destination = jpegmemdestmgr_init_destination;
|
||||
cinfo->dest->empty_output_buffer = jpegmemdestmgr_empty_output_buffer;
|
||||
|
@ -532,7 +533,8 @@ static void jpegmemsrcmgr_term_source(j_decompress_ptr dinfo)
|
|||
|
||||
static void jpegmemsrcmgr_build(j_decompress_ptr dinfo, const uchar *buffer, size_t bufsize)
|
||||
{
|
||||
dinfo->src = MEM_mallocN(sizeof(*(dinfo->src)), "avi.jpegmemsrcmgr_build");
|
||||
dinfo->src = static_cast<jpeg_source_mgr *>(
|
||||
MEM_mallocN(sizeof(*(dinfo->src)), "avi.jpegmemsrcmgr_build"));
|
||||
|
||||
dinfo->src->init_source = jpegmemsrcmgr_init_source;
|
||||
dinfo->src->fill_input_buffer = jpegmemsrcmgr_fill_input_buffer;
|
|
@ -8,5 +8,13 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void *avi_converter_from_mjpeg(AviMovie *movie, int stream, uchar *buffer, const size_t *size);
|
||||
void *avi_converter_to_mjpeg(AviMovie *movie, int stream, uchar *buffer, size_t *size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -42,8 +42,8 @@ void *avi_converter_from_avi_rgb(AviMovie *movie, int stream, uchar *buffer, con
|
|||
uchar *pxla;
|
||||
#endif
|
||||
|
||||
buf = imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 3, sizeof(uchar), "fromavirgbbuf");
|
||||
buf = static_cast<uchar *>(imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 3, sizeof(uchar), "fromavirgbbuf"));
|
||||
|
||||
if (buf) {
|
||||
size_t y = movie->header->Height;
|
||||
|
@ -79,8 +79,8 @@ void *avi_converter_from_avi_rgb(AviMovie *movie, int stream, uchar *buffer, con
|
|||
return buf;
|
||||
}
|
||||
|
||||
buf = imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 3, sizeof(uchar), "fromavirgbbuf");
|
||||
buf = static_cast<uchar *>(imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 3, sizeof(uchar), "fromavirgbbuf"));
|
||||
|
||||
if (buf) {
|
||||
size_t rowstride = movie->header->Width * 3;
|
||||
|
@ -119,7 +119,7 @@ void *avi_converter_to_avi_rgb(AviMovie *movie, int stream, uchar *buffer, size_
|
|||
rowstride = (rowstride + 3) & ~3;
|
||||
|
||||
*size = movie->header->Height * rowstride;
|
||||
buf = MEM_mallocN(*size, "toavirgbbuf");
|
||||
buf = static_cast<uchar *>(MEM_mallocN(*size, "toavirgbbuf"));
|
||||
|
||||
for (size_t y = 0; y < movie->header->Height; y++) {
|
||||
memcpy(&buf[y * rowstride],
|
|
@ -8,8 +8,16 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void *avi_converter_from_avi_rgb(AviMovie *movie,
|
||||
int stream,
|
||||
unsigned char *buffer,
|
||||
const size_t *size);
|
||||
void *avi_converter_to_avi_rgb(AviMovie *movie, int stream, unsigned char *buffer, size_t *size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -25,10 +25,10 @@ void *avi_converter_from_rgb32(AviMovie *movie, int stream, uchar *buffer, size_
|
|||
(void)stream; /* unused */
|
||||
|
||||
*size = (size_t)movie->header->Height * (size_t)movie->header->Width * 3;
|
||||
buf = imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 3, sizeof(uchar), "fromrgb32buf");
|
||||
buf = static_cast<uchar *>(imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 3, sizeof(uchar), "fromrgb32buf"));
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
size_t rowstridea = movie->header->Width * 3;
|
||||
|
@ -55,10 +55,10 @@ void *avi_converter_to_rgb32(AviMovie *movie, int stream, uchar *buffer, size_t
|
|||
(void)stream; /* unused */
|
||||
|
||||
*size = (size_t)movie->header->Height * (size_t)movie->header->Width * 4;
|
||||
buf = imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 4, sizeof(uchar), "torgb32buf");
|
||||
buf = static_cast<uchar *>(imb_alloc_pixels(
|
||||
movie->header->Height, movie->header->Width, 4, sizeof(uchar), "torgb32buf"));
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
memset(buf, 255, *size);
|
|
@ -8,5 +8,13 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void *avi_converter_from_rgb32(AviMovie *movie, int stream, unsigned char *buffer, size_t *size);
|
||||
void *avi_converter_to_rgb32(AviMovie *movie, int stream, unsigned char *buffer, size_t *size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue