Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/avi/intern/avi.c')
-rw-r--r--source/blender/avi/intern/avi.c689
1 files changed, 351 insertions, 338 deletions
diff --git a/source/blender/avi/intern/avi.c b/source/blender/avi/intern/avi.c
index 17c29e2a834..c4c4e65a7be 100644
--- a/source/blender/avi/intern/avi.c
+++ b/source/blender/avi/intern/avi.c
@@ -51,7 +51,7 @@
#include "endian.h"
-static int AVI_DEBUG=0;
+static int AVI_DEBUG = 0;
static char DEBUG_FCC[4];
#define DEBUG_PRINT(x) if (AVI_DEBUG) { printf("AVI DEBUG: " x); } (void)0
@@ -64,7 +64,7 @@ char *tcc_to_char(unsigned int tcc);
/* implemetation */
-unsigned int GET_FCC (FILE *fp)
+unsigned int GET_FCC(FILE *fp)
{
unsigned char tmp[4];
@@ -73,10 +73,10 @@ unsigned int GET_FCC (FILE *fp)
tmp[2] = getc(fp);
tmp[3] = getc(fp);
- return FCC (tmp);
+ return FCC(tmp);
}
-unsigned int GET_TCC (FILE *fp)
+unsigned int GET_TCC(FILE *fp)
{
char tmp[5];
@@ -85,25 +85,25 @@ unsigned int GET_TCC (FILE *fp)
tmp[2] = 0;
tmp[3] = 0;
- return FCC (tmp);
+ return FCC(tmp);
}
char *fcc_to_char(unsigned int fcc)
{
- DEBUG_FCC[0]= (fcc)&127;
- DEBUG_FCC[1]= (fcc>>8)&127;
- DEBUG_FCC[2]= (fcc>>16)&127;
- DEBUG_FCC[3]= (fcc>>24)&127;
+ DEBUG_FCC[0] = (fcc) & 127;
+ DEBUG_FCC[1] = (fcc >> 8) & 127;
+ DEBUG_FCC[2] = (fcc >> 16) & 127;
+ DEBUG_FCC[3] = (fcc >> 24) & 127;
return DEBUG_FCC;
}
char *tcc_to_char(unsigned int tcc)
{
- DEBUG_FCC[0]= (tcc)&127;
- DEBUG_FCC[1]= (tcc>>8)&127;
- DEBUG_FCC[2]= 0;
- DEBUG_FCC[3]= 0;
+ DEBUG_FCC[0] = (tcc) & 127;
+ DEBUG_FCC[1] = (tcc >> 8) & 127;
+ DEBUG_FCC[2] = 0;
+ DEBUG_FCC[3] = 0;
return DEBUG_FCC;
}
@@ -115,7 +115,7 @@ int AVI_get_stream(AviMovie *movie, int avist_type, int stream_num)
if (movie == NULL)
return -AVI_ERROR_OPTION;
- for (cur_stream=0; cur_stream < movie->header->Streams; cur_stream++) {
+ for (cur_stream = 0; cur_stream < movie->header->Streams; cur_stream++) {
if (movie->streams[cur_stream].sh.Type == avist_type) {
if (stream_num == 0)
return cur_stream;
@@ -127,28 +127,28 @@ int AVI_get_stream(AviMovie *movie, int avist_type, int stream_num)
return -AVI_ERROR_FOUND;
}
-static int fcc_get_stream (int fcc)
+static int fcc_get_stream(int fcc)
{
char fccs[4];
fccs[0] = fcc;
- fccs[1] = fcc>>8;
- fccs[2] = fcc>>16;
- fccs[3] = fcc>>24;
+ fccs[1] = fcc >> 8;
+ fccs[2] = fcc >> 16;
+ fccs[3] = fcc >> 24;
- return 10*(fccs[0]-'0') + (fccs[1]-'0');
+ return 10 * (fccs[0] - '0') + (fccs[1] - '0');
}
-static int fcc_is_data (int fcc)
+static int fcc_is_data(int fcc)
{
char fccs[4];
fccs[0] = fcc;
- fccs[1] = fcc>>8;
- fccs[2] = fcc>>16;
- fccs[3] = fcc>>24;
+ fccs[1] = fcc >> 8;
+ fccs[2] = fcc >> 16;
+ fccs[3] = fcc >> 24;
- if (!isdigit (fccs[0]) || !isdigit (fccs[1]) || (fccs[2] != 'd' && fccs[2] != 'w'))
+ if (!isdigit(fccs[0]) || !isdigit(fccs[1]) || (fccs[2] != 'd' && fccs[2] != 'w'))
return 0;
if (fccs[3] != 'b' && fccs[3] != 'c')
return 0;
@@ -166,34 +166,34 @@ AviError AVI_print_error(AviError in_error)
error = in_error;
switch (error) {
- case AVI_ERROR_NONE:
- break;
- case AVI_ERROR_COMPRESSION:
- printf ("AVI ERROR: compressed in an unsupported format\n");
- break;
- case AVI_ERROR_OPEN:
- printf ("AVI ERROR: could not open file\n");
- break;
- case AVI_ERROR_READING:
- printf ("AVI ERROR: could not read from file\n");
- break;
- case AVI_ERROR_WRITING:
- printf ("AVI ERROR: could not write to file\n");
- break;
- case AVI_ERROR_FORMAT:
- printf ("AVI ERROR: file is in an illegal or unrecognized format\n");
- break;
- case AVI_ERROR_ALLOC:
- printf ("AVI ERROR: error encountered while allocating memory\n");
- break;
- case AVI_ERROR_OPTION:
- printf ("AVI ERROR: program made illegal request\n");
- break;
- case AVI_ERROR_FOUND:
- printf ("AVI ERROR: movie did not contain expected item\n");
- break;
- default:
- break;
+ case AVI_ERROR_NONE:
+ break;
+ case AVI_ERROR_COMPRESSION:
+ printf("AVI ERROR: compressed in an unsupported format\n");
+ break;
+ case AVI_ERROR_OPEN:
+ printf("AVI ERROR: could not open file\n");
+ break;
+ case AVI_ERROR_READING:
+ printf("AVI ERROR: could not read from file\n");
+ break;
+ case AVI_ERROR_WRITING:
+ printf("AVI ERROR: could not write to file\n");
+ break;
+ case AVI_ERROR_FORMAT:
+ printf("AVI ERROR: file is in an illegal or unrecognized format\n");
+ break;
+ case AVI_ERROR_ALLOC:
+ printf("AVI ERROR: error encountered while allocating memory\n");
+ break;
+ case AVI_ERROR_OPTION:
+ printf("AVI ERROR: program made illegal request\n");
+ break;
+ case AVI_ERROR_FOUND:
+ printf("AVI ERROR: movie did not contain expected item\n");
+ break;
+ default:
+ break;
}
return in_error;
@@ -201,7 +201,7 @@ AviError AVI_print_error(AviError in_error)
#if 0
void AVI_set_debug(int mode)
{
- AVI_DEBUG= mode;
+ AVI_DEBUG = mode;
}
int AVI_is_avi(char *name)
@@ -209,13 +209,13 @@ int AVI_is_avi(char *name)
FILE *fp;
int ret;
- fp = fopen (name, "rb");
+ fp = fopen(name, "rb");
if (fp == NULL)
return 0;
- if (GET_FCC (fp) != FCC("RIFF") ||
- !GET_FCC (fp) ||
- GET_FCC (fp) != FCC("AVI ")) {
+ if (GET_FCC(fp) != FCC("RIFF") ||
+ !GET_FCC(fp) ||
+ GET_FCC(fp) != FCC("AVI ")) {
ret = 0;
}
else {
@@ -230,7 +230,7 @@ int AVI_is_avi(char *name)
int AVI_is_avi(const char *name)
{
int temp, fcca, j;
- AviMovie movie= {NULL};
+ AviMovie movie = {NULL};
AviMainHeader header;
AviBitmapInfoHeader bheader;
int movie_tracks = 0;
@@ -238,26 +238,26 @@ int AVI_is_avi(const char *name)
DEBUG_PRINT("opening movie\n");
movie.type = AVI_MOVIE_READ;
- movie.fp = fopen (name, "rb");
+ movie.fp = fopen(name, "rb");
movie.offset_table = NULL;
if (movie.fp == NULL)
return 0;
- if (GET_FCC (movie.fp) != FCC("RIFF") ||
- !(movie.size = GET_FCC (movie.fp))) {
+ if (GET_FCC(movie.fp) != FCC("RIFF") ||
+ !(movie.size = GET_FCC(movie.fp))) {
fclose(movie.fp);
return 0;
}
movie.header = &header;
- if (GET_FCC (movie.fp) != FCC("AVI ") ||
- GET_FCC (movie.fp) != FCC("LIST") ||
- !GET_FCC (movie.fp) ||
- GET_FCC (movie.fp) != FCC("hdrl") ||
- (movie.header->fcc = GET_FCC (movie.fp)) != FCC("avih") ||
- !(movie.header->size = GET_FCC (movie.fp))) {
+ if (GET_FCC(movie.fp) != FCC("AVI ") ||
+ GET_FCC(movie.fp) != FCC("LIST") ||
+ !GET_FCC(movie.fp) ||
+ GET_FCC(movie.fp) != FCC("hdrl") ||
+ (movie.header->fcc = GET_FCC(movie.fp)) != FCC("avih") ||
+ !(movie.header->size = GET_FCC(movie.fp))) {
DEBUG_PRINT("bad initial header info\n");
fclose(movie.fp);
return 0;
@@ -278,7 +278,7 @@ int AVI_is_avi(const char *name)
movie.header->Reserved[2] = GET_FCC(movie.fp);
movie.header->Reserved[3] = GET_FCC(movie.fp);
- fseek (movie.fp, movie.header->size-14*4, SEEK_CUR);
+ fseek(movie.fp, movie.header->size - 14 * 4, SEEK_CUR);
if (movie.header->Streams < 1) {
DEBUG_PRINT("streams less than 1\n");
@@ -286,15 +286,16 @@ int AVI_is_avi(const char *name)
return 0;
}
- movie.streams = (AviStreamRec *) MEM_callocN (sizeof(AviStreamRec) * movie.header->Streams, "moviestreams");
+ movie.streams = (AviStreamRec *) MEM_callocN(sizeof(AviStreamRec) * movie.header->Streams, "moviestreams");
- for (temp=0; temp < movie.header->Streams; temp++) {
+ for (temp = 0; temp < movie.header->Streams; temp++) {
if (GET_FCC(movie.fp) != FCC("LIST") ||
- !GET_FCC (movie.fp) ||
- GET_FCC (movie.fp) != FCC ("strl") ||
- (movie.streams[temp].sh.fcc = GET_FCC (movie.fp)) != FCC ("strh") ||
- !(movie.streams[temp].sh.size = GET_FCC (movie.fp))) {
+ !GET_FCC(movie.fp) ||
+ GET_FCC(movie.fp) != FCC("strl") ||
+ (movie.streams[temp].sh.fcc = GET_FCC(movie.fp)) != FCC("strh") ||
+ !(movie.streams[temp].sh.size = GET_FCC(movie.fp)))
+ {
DEBUG_PRINT("bad stream header information\n");
MEM_freeN(movie.streams);
@@ -302,20 +303,21 @@ int AVI_is_avi(const char *name)
return 0;
}
- movie.streams[temp].sh.Type = GET_FCC (movie.fp);
- movie.streams[temp].sh.Handler = GET_FCC (movie.fp);
+ movie.streams[temp].sh.Type = GET_FCC(movie.fp);
+ movie.streams[temp].sh.Handler = GET_FCC(movie.fp);
fcca = movie.streams[temp].sh.Handler;
if (movie.streams[temp].sh.Type == FCC("vids")) {
- if (fcca == FCC ("DIB ") ||
- fcca == FCC ("RGB ") ||
- fcca == FCC ("rgb ") ||
- fcca == FCC ("RAW ") ||
- fcca == 0) {
+ if (fcca == FCC("DIB ") ||
+ fcca == FCC("RGB ") ||
+ fcca == FCC("rgb ") ||
+ fcca == FCC("RAW ") ||
+ fcca == 0)
+ {
movie.streams[temp].format = AVI_FORMAT_AVI_RGB;
}
- else if (fcca == FCC ("mjpg")||fcca == FCC ("MJPG")) {
+ else if (fcca == FCC("mjpg") || fcca == FCC("MJPG")) {
movie.streams[temp].format = AVI_FORMAT_MJPEG;
}
else {
@@ -326,67 +328,70 @@ int AVI_is_avi(const char *name)
movie_tracks++;
}
- movie.streams[temp].sh.Flags = GET_FCC (movie.fp);
- movie.streams[temp].sh.Priority = GET_TCC (movie.fp);
- movie.streams[temp].sh.Language = GET_TCC (movie.fp);
- movie.streams[temp].sh.InitialFrames = GET_FCC (movie.fp);
- movie.streams[temp].sh.Scale = GET_FCC (movie.fp);
- movie.streams[temp].sh.Rate = GET_FCC (movie.fp);
- movie.streams[temp].sh.Start = GET_FCC (movie.fp);
- movie.streams[temp].sh.Length = GET_FCC (movie.fp);
- movie.streams[temp].sh.SuggestedBufferSize = GET_FCC (movie.fp);
- movie.streams[temp].sh.Quality = GET_FCC (movie.fp);
- movie.streams[temp].sh.SampleSize = GET_FCC (movie.fp);
- movie.streams[temp].sh.left = GET_TCC (movie.fp);
- movie.streams[temp].sh.top = GET_TCC (movie.fp);
- movie.streams[temp].sh.right = GET_TCC (movie.fp);
- movie.streams[temp].sh.bottom = GET_TCC (movie.fp);
-
- fseek (movie.fp, movie.streams[temp].sh.size-14*4, SEEK_CUR);
-
- if (GET_FCC (movie.fp) != FCC("strf")) {
+ movie.streams[temp].sh.Flags = GET_FCC(movie.fp);
+ movie.streams[temp].sh.Priority = GET_TCC(movie.fp);
+ movie.streams[temp].sh.Language = GET_TCC(movie.fp);
+ movie.streams[temp].sh.InitialFrames = GET_FCC(movie.fp);
+ movie.streams[temp].sh.Scale = GET_FCC(movie.fp);
+ movie.streams[temp].sh.Rate = GET_FCC(movie.fp);
+ movie.streams[temp].sh.Start = GET_FCC(movie.fp);
+ movie.streams[temp].sh.Length = GET_FCC(movie.fp);
+ movie.streams[temp].sh.SuggestedBufferSize = GET_FCC(movie.fp);
+ movie.streams[temp].sh.Quality = GET_FCC(movie.fp);
+ movie.streams[temp].sh.SampleSize = GET_FCC(movie.fp);
+ movie.streams[temp].sh.left = GET_TCC(movie.fp);
+ movie.streams[temp].sh.top = GET_TCC(movie.fp);
+ movie.streams[temp].sh.right = GET_TCC(movie.fp);
+ movie.streams[temp].sh.bottom = GET_TCC(movie.fp);
+
+ fseek(movie.fp, movie.streams[temp].sh.size - 14 * 4, SEEK_CUR);
+
+ if (GET_FCC(movie.fp) != FCC("strf")) {
DEBUG_PRINT("no stream format information\n");
MEM_freeN(movie.streams);
fclose(movie.fp);
return 0;
}
- movie.streams[temp].sf_size= GET_FCC(movie.fp);
+ movie.streams[temp].sf_size = GET_FCC(movie.fp);
if (movie.streams[temp].sh.Type == FCC("vids")) {
j = movie.streams[temp].sf_size - (sizeof(AviBitmapInfoHeader) - 8);
if (j >= 0) {
AviBitmapInfoHeader *bi;
- movie.streams[temp].sf= &bheader;
- bi= (AviBitmapInfoHeader *) movie.streams[temp].sf;
+ movie.streams[temp].sf = &bheader;
+ bi = (AviBitmapInfoHeader *) movie.streams[temp].sf;
- bi->fcc= FCC("strf");
- bi->size= movie.streams[temp].sf_size;
- bi->Size= GET_FCC(movie.fp);
- bi->Width= GET_FCC(movie.fp);
- bi->Height= GET_FCC(movie.fp);
- bi->Planes= GET_TCC(movie.fp);
- bi->BitCount= GET_TCC(movie.fp);
- bi->Compression= GET_FCC(movie.fp);
- bi->SizeImage= GET_FCC(movie.fp);
- bi->XPelsPerMeter= GET_FCC(movie.fp);
- bi->YPelsPerMeter= GET_FCC(movie.fp);
- bi->ClrUsed= GET_FCC(movie.fp);
- bi->ClrImportant= GET_FCC(movie.fp);
+ bi->fcc = FCC("strf");
+ bi->size = movie.streams[temp].sf_size;
+ bi->Size = GET_FCC(movie.fp);
+ bi->Width = GET_FCC(movie.fp);
+ bi->Height = GET_FCC(movie.fp);
+ bi->Planes = GET_TCC(movie.fp);
+ bi->BitCount = GET_TCC(movie.fp);
+ bi->Compression = GET_FCC(movie.fp);
+ bi->SizeImage = GET_FCC(movie.fp);
+ bi->XPelsPerMeter = GET_FCC(movie.fp);
+ bi->YPelsPerMeter = GET_FCC(movie.fp);
+ bi->ClrUsed = GET_FCC(movie.fp);
+ bi->ClrImportant = GET_FCC(movie.fp);
fcca = bi->Compression;
- if ( movie.streams[temp].format ==
- AVI_FORMAT_AVI_RGB) {
- if (fcca == FCC ("DIB ") ||
- fcca == FCC ("RGB ") ||
- fcca == FCC ("rgb ") ||
- fcca == FCC ("RAW ") ||
- fcca == 0 ) {
+ if (movie.streams[temp].format ==
+ AVI_FORMAT_AVI_RGB) {
+ if (fcca == FCC("DIB ") ||
+ fcca == FCC("RGB ") ||
+ fcca == FCC("rgb ") ||
+ fcca == FCC("RAW ") ||
+ fcca == 0)
+ {
+ /* pass */
}
- else if ( fcca == FCC ("mjpg") ||
- fcca == FCC ("MJPG")) {
- movie.streams[temp].format = AVI_FORMAT_MJPEG;
+ else if (fcca == FCC("mjpg") ||
+ fcca == FCC("MJPG"))
+ {
+ movie.streams[temp].format = AVI_FORMAT_MJPEG;
}
else {
MEM_freeN(movie.streams);
@@ -396,14 +401,14 @@ int AVI_is_avi(const char *name)
}
}
- if (j > 0) fseek (movie.fp, j, SEEK_CUR);
+ if (j > 0) fseek(movie.fp, j, SEEK_CUR);
}
- else fseek (movie.fp, movie.streams[temp].sf_size, SEEK_CUR);
+ else fseek(movie.fp, movie.streams[temp].sf_size, SEEK_CUR);
/* Walk to the next LIST */
- while (GET_FCC (movie.fp) != FCC("LIST")) {
- temp= GET_FCC (movie.fp);
- if (temp<0 || ftell(movie.fp) > movie.size) {
+ while (GET_FCC(movie.fp) != FCC("LIST")) {
+ temp = GET_FCC(movie.fp);
+ if (temp < 0 || ftell(movie.fp) > movie.size) {
DEBUG_PRINT("incorrect size in header or error in AVI\n");
MEM_freeN(movie.streams);
@@ -433,26 +438,27 @@ AviError AVI_open_movie(const char *name, AviMovie *movie)
memset(movie, 0, sizeof(AviMovie));
movie->type = AVI_MOVIE_READ;
- movie->fp = fopen (name, "rb");
+ movie->fp = fopen(name, "rb");
movie->offset_table = NULL;
if (movie->fp == NULL)
return AVI_ERROR_OPEN;
- if (GET_FCC (movie->fp) != FCC("RIFF") ||
- !(movie->size = GET_FCC (movie->fp)))
+ if (GET_FCC(movie->fp) != FCC("RIFF") ||
+ !(movie->size = GET_FCC(movie->fp)))
{
return AVI_ERROR_FORMAT;
}
- movie->header = (AviMainHeader *) MEM_mallocN (sizeof (AviMainHeader), "movieheader");
+ movie->header = (AviMainHeader *) MEM_mallocN(sizeof (AviMainHeader), "movieheader");
- if (GET_FCC (movie->fp) != FCC("AVI ") ||
- GET_FCC (movie->fp) != FCC("LIST") ||
- !GET_FCC (movie->fp) ||
- GET_FCC (movie->fp) != FCC("hdrl") ||
- (movie->header->fcc = GET_FCC (movie->fp)) != FCC("avih") ||
- !(movie->header->size = GET_FCC (movie->fp))) {
+ if (GET_FCC(movie->fp) != FCC("AVI ") ||
+ GET_FCC(movie->fp) != FCC("LIST") ||
+ !GET_FCC(movie->fp) ||
+ GET_FCC(movie->fp) != FCC("hdrl") ||
+ (movie->header->fcc = GET_FCC(movie->fp)) != FCC("avih") ||
+ !(movie->header->size = GET_FCC(movie->fp)))
+ {
DEBUG_PRINT("bad initial header info\n");
return AVI_ERROR_FORMAT;
}
@@ -472,40 +478,42 @@ AviError AVI_open_movie(const char *name, AviMovie *movie)
movie->header->Reserved[2] = GET_FCC(movie->fp);
movie->header->Reserved[3] = GET_FCC(movie->fp);
- fseek (movie->fp, movie->header->size-14*4, SEEK_CUR);
+ fseek(movie->fp, movie->header->size - 14 * 4, SEEK_CUR);
if (movie->header->Streams < 1) {
DEBUG_PRINT("streams less than 1\n");
return AVI_ERROR_FORMAT;
}
- movie->streams = (AviStreamRec *) MEM_callocN (sizeof(AviStreamRec) * movie->header->Streams, "moviestreams");
+ movie->streams = (AviStreamRec *) MEM_callocN(sizeof(AviStreamRec) * movie->header->Streams, "moviestreams");
- for (temp=0; temp < movie->header->Streams; temp++) {
+ for (temp = 0; temp < movie->header->Streams; temp++) {
if (GET_FCC(movie->fp) != FCC("LIST") ||
- !GET_FCC (movie->fp) ||
- GET_FCC (movie->fp) != FCC ("strl") ||
- (movie->streams[temp].sh.fcc = GET_FCC (movie->fp)) != FCC ("strh") ||
- !(movie->streams[temp].sh.size = GET_FCC (movie->fp))) {
+ !GET_FCC(movie->fp) ||
+ GET_FCC(movie->fp) != FCC("strl") ||
+ (movie->streams[temp].sh.fcc = GET_FCC(movie->fp)) != FCC("strh") ||
+ !(movie->streams[temp].sh.size = GET_FCC(movie->fp)))
+ {
DEBUG_PRINT("bad stream header information\n");
- return AVI_ERROR_FORMAT;
+ return AVI_ERROR_FORMAT;
}
- movie->streams[temp].sh.Type = GET_FCC (movie->fp);
- movie->streams[temp].sh.Handler = GET_FCC (movie->fp);
+ movie->streams[temp].sh.Type = GET_FCC(movie->fp);
+ movie->streams[temp].sh.Handler = GET_FCC(movie->fp);
fcca = movie->streams[temp].sh.Handler;
if (movie->streams[temp].sh.Type == FCC("vids")) {
- if (fcca == FCC ("DIB ") ||
- fcca == FCC ("RGB ") ||
- fcca == FCC ("rgb ") ||
- fcca == FCC ("RAW ") ||
- fcca == 0) {
+ if (fcca == FCC("DIB ") ||
+ fcca == FCC("RGB ") ||
+ fcca == FCC("rgb ") ||
+ fcca == FCC("RAW ") ||
+ fcca == 0)
+ {
movie->streams[temp].format = AVI_FORMAT_AVI_RGB;
}
- else if (fcca == FCC ("mjpg")||fcca == FCC ("MJPG")) {
+ else if (fcca == FCC("mjpg") || fcca == FCC("MJPG")) {
movie->streams[temp].format = AVI_FORMAT_MJPEG;
}
else {
@@ -513,66 +521,70 @@ AviError AVI_open_movie(const char *name, AviMovie *movie)
}
}
- movie->streams[temp].sh.Flags = GET_FCC (movie->fp);
- movie->streams[temp].sh.Priority = GET_TCC (movie->fp);
- movie->streams[temp].sh.Language = GET_TCC (movie->fp);
- movie->streams[temp].sh.InitialFrames = GET_FCC (movie->fp);
- movie->streams[temp].sh.Scale = GET_FCC (movie->fp);
- movie->streams[temp].sh.Rate = GET_FCC (movie->fp);
- movie->streams[temp].sh.Start = GET_FCC (movie->fp);
- movie->streams[temp].sh.Length = GET_FCC (movie->fp);
- movie->streams[temp].sh.SuggestedBufferSize = GET_FCC (movie->fp);
- movie->streams[temp].sh.Quality = GET_FCC (movie->fp);
- movie->streams[temp].sh.SampleSize = GET_FCC (movie->fp);
- movie->streams[temp].sh.left = GET_TCC (movie->fp);
- movie->streams[temp].sh.top = GET_TCC (movie->fp);
- movie->streams[temp].sh.right = GET_TCC (movie->fp);
- movie->streams[temp].sh.bottom = GET_TCC (movie->fp);
-
- fseek (movie->fp, movie->streams[temp].sh.size-14*4, SEEK_CUR);
-
- if (GET_FCC (movie->fp) != FCC("strf")) {
+ movie->streams[temp].sh.Flags = GET_FCC(movie->fp);
+ movie->streams[temp].sh.Priority = GET_TCC(movie->fp);
+ movie->streams[temp].sh.Language = GET_TCC(movie->fp);
+ movie->streams[temp].sh.InitialFrames = GET_FCC(movie->fp);
+ movie->streams[temp].sh.Scale = GET_FCC(movie->fp);
+ movie->streams[temp].sh.Rate = GET_FCC(movie->fp);
+ movie->streams[temp].sh.Start = GET_FCC(movie->fp);
+ movie->streams[temp].sh.Length = GET_FCC(movie->fp);
+ movie->streams[temp].sh.SuggestedBufferSize = GET_FCC(movie->fp);
+ movie->streams[temp].sh.Quality = GET_FCC(movie->fp);
+ movie->streams[temp].sh.SampleSize = GET_FCC(movie->fp);
+ movie->streams[temp].sh.left = GET_TCC(movie->fp);
+ movie->streams[temp].sh.top = GET_TCC(movie->fp);
+ movie->streams[temp].sh.right = GET_TCC(movie->fp);
+ movie->streams[temp].sh.bottom = GET_TCC(movie->fp);
+
+ fseek(movie->fp, movie->streams[temp].sh.size - 14 * 4, SEEK_CUR);
+
+ if (GET_FCC(movie->fp) != FCC("strf")) {
DEBUG_PRINT("no stream format information\n");
return AVI_ERROR_FORMAT;
}
- movie->streams[temp].sf_size= GET_FCC(movie->fp);
+ movie->streams[temp].sf_size = GET_FCC(movie->fp);
if (movie->streams[temp].sh.Type == FCC("vids")) {
j = movie->streams[temp].sf_size - (sizeof(AviBitmapInfoHeader) - 8);
if (j >= 0) {
AviBitmapInfoHeader *bi;
- movie->streams[temp].sf= MEM_mallocN(sizeof(AviBitmapInfoHeader), "streamformat");
+ movie->streams[temp].sf = MEM_mallocN(sizeof(AviBitmapInfoHeader), "streamformat");
- bi= (AviBitmapInfoHeader *) movie->streams[temp].sf;
+ bi = (AviBitmapInfoHeader *) movie->streams[temp].sf;
- bi->fcc= FCC("strf");
- bi->size= movie->streams[temp].sf_size;
- bi->Size= GET_FCC(movie->fp);
- bi->Width= GET_FCC(movie->fp);
- bi->Height= GET_FCC(movie->fp);
- bi->Planes= GET_TCC(movie->fp);
- bi->BitCount= GET_TCC(movie->fp);
- bi->Compression= GET_FCC(movie->fp);
- bi->SizeImage= GET_FCC(movie->fp);
- bi->XPelsPerMeter= GET_FCC(movie->fp);
- bi->YPelsPerMeter= GET_FCC(movie->fp);
- bi->ClrUsed= GET_FCC(movie->fp);
- bi->ClrImportant= GET_FCC(movie->fp);
+ bi->fcc = FCC("strf");
+ bi->size = movie->streams[temp].sf_size;
+ bi->Size = GET_FCC(movie->fp);
+ bi->Width = GET_FCC(movie->fp);
+ bi->Height = GET_FCC(movie->fp);
+ bi->Planes = GET_TCC(movie->fp);
+ bi->BitCount = GET_TCC(movie->fp);
+ bi->Compression = GET_FCC(movie->fp);
+ bi->SizeImage = GET_FCC(movie->fp);
+ bi->XPelsPerMeter = GET_FCC(movie->fp);
+ bi->YPelsPerMeter = GET_FCC(movie->fp);
+ bi->ClrUsed = GET_FCC(movie->fp);
+ bi->ClrImportant = GET_FCC(movie->fp);
fcca = bi->Compression;
- if ( movie->streams[temp].format ==
- AVI_FORMAT_AVI_RGB) {
- if (fcca == FCC ("DIB ") ||
- fcca == FCC ("RGB ") ||
- fcca == FCC ("rgb ") ||
- fcca == FCC ("RAW ") ||
- fcca == 0 ) {
+ if (movie->streams[temp].format ==
+ AVI_FORMAT_AVI_RGB)
+ {
+ if (fcca == FCC("DIB ") ||
+ fcca == FCC("RGB ") ||
+ fcca == FCC("rgb ") ||
+ fcca == FCC("RAW ") ||
+ fcca == 0)
+ {
+ /* pass */
}
- else if ( fcca == FCC ("mjpg") ||
- fcca == FCC ("MJPG")) {
- movie->streams[temp].format = AVI_FORMAT_MJPEG;
+ else if (fcca == FCC("mjpg") ||
+ fcca == FCC("MJPG"))
+ {
+ movie->streams[temp].format = AVI_FORMAT_MJPEG;
}
else {
return AVI_ERROR_COMPRESSION;
@@ -580,38 +592,38 @@ AviError AVI_open_movie(const char *name, AviMovie *movie)
}
}
- if (j > 0) fseek (movie->fp, j, SEEK_CUR);
+ if (j > 0) fseek(movie->fp, j, SEEK_CUR);
}
- else fseek (movie->fp, movie->streams[temp].sf_size, SEEK_CUR);
+ else fseek(movie->fp, movie->streams[temp].sf_size, SEEK_CUR);
/* Walk to the next LIST */
- while (GET_FCC (movie->fp) != FCC("LIST")) {
- temp= GET_FCC (movie->fp);
- if (temp<0 || ftell(movie->fp) > movie->size) {
+ while (GET_FCC(movie->fp) != FCC("LIST")) {
+ temp = GET_FCC(movie->fp);
+ if (temp < 0 || ftell(movie->fp) > movie->size) {
DEBUG_PRINT("incorrect size in header or error in AVI\n");
- return AVI_ERROR_FORMAT;
+ return AVI_ERROR_FORMAT;
}
- fseek(movie->fp, temp, SEEK_CUR);
+ fseek(movie->fp, temp, SEEK_CUR);
}
- fseek(movie->fp, -4L, SEEK_CUR);
+ fseek(movie->fp, -4L, SEEK_CUR);
}
while (1) {
- temp = GET_FCC (movie->fp);
- size = GET_FCC (movie->fp);
+ temp = GET_FCC(movie->fp);
+ size = GET_FCC(movie->fp);
if (size == 0)
break;
if (temp == FCC("LIST")) {
- if (GET_FCC(movie->fp) == FCC ("movi"))
+ if (GET_FCC(movie->fp) == FCC("movi"))
break;
else
- fseek (movie->fp, size-4, SEEK_CUR);
+ fseek(movie->fp, size - 4, SEEK_CUR);
}
else {
- fseek (movie->fp, size, SEEK_CUR);
+ fseek(movie->fp, size, SEEK_CUR);
}
if (ftell(movie->fp) > movie->size) {
DEBUG_PRINT("incorrect size in header or error in AVI\n");
@@ -619,31 +631,31 @@ AviError AVI_open_movie(const char *name, AviMovie *movie)
}
}
- movie->movi_offset = ftell (movie->fp);
+ movie->movi_offset = ftell(movie->fp);
movie->read_offset = movie->movi_offset;
/* Read in the index if the file has one, otherwise create one */
if (movie->header->Flags & AVIF_HASINDEX) {
- fseek(movie->fp, size-4, SEEK_CUR);
+ fseek(movie->fp, size - 4, SEEK_CUR);
if (GET_FCC(movie->fp) != FCC("idx1")) {
DEBUG_PRINT("bad index informatio\n");
return AVI_ERROR_FORMAT;
}
- movie->index_entries = GET_FCC (movie->fp)/sizeof(AviIndexEntry);
+ movie->index_entries = GET_FCC(movie->fp) / sizeof(AviIndexEntry);
if (movie->index_entries == 0) {
DEBUG_PRINT("no index entries\n");
return AVI_ERROR_FORMAT;
}
- movie->entries = (AviIndexEntry *) MEM_mallocN (movie->index_entries * sizeof(AviIndexEntry), "movieentries");
+ movie->entries = (AviIndexEntry *) MEM_mallocN(movie->index_entries * sizeof(AviIndexEntry), "movieentries");
- for (temp=0; temp < movie->index_entries; temp++) {
- movie->entries[temp].ChunkId = GET_FCC (movie->fp);
- movie->entries[temp].Flags = GET_FCC (movie->fp);
- movie->entries[temp].Offset = GET_FCC (movie->fp);
- movie->entries[temp].Size = GET_FCC (movie->fp);
+ for (temp = 0; temp < movie->index_entries; temp++) {
+ movie->entries[temp].ChunkId = GET_FCC(movie->fp);
+ movie->entries[temp].Flags = GET_FCC(movie->fp);
+ movie->entries[temp].Offset = GET_FCC(movie->fp);
+ movie->entries[temp].Size = GET_FCC(movie->fp);
if (AVI_DEBUG) {
printf("Index entry %04d: ChunkId:%s Flags:%d Offset:%d Size:%d\n",
@@ -660,31 +672,32 @@ AviError AVI_open_movie(const char *name, AviMovie *movie)
* undetermined reason */
if (movie->entries[0].Offset == movie->movi_offset)
- movie->read_offset= 4;
+ movie->read_offset = 4;
}
DEBUG_PRINT("movie succesfully opened\n");
return AVI_ERROR_NONE;
}
-void *AVI_read_frame (AviMovie *movie, AviFormat format, int frame, int stream)
+void *AVI_read_frame(AviMovie *movie, AviFormat format, int frame, int stream)
{
- int cur_frame=-1, temp, i=0, rewind=1;
+ int cur_frame = -1, temp, i = 0, rewind = 1;
void *buffer;
/* Retrieve the record number of the desired frame in the index
* If a chunk has Size 0 we need to rewind to previous frame */
while (rewind && frame > -1) {
- i=0;
- cur_frame=-1;
+ i = 0;
+ cur_frame = -1;
rewind = 0;
while (cur_frame < frame && i < movie->index_entries) {
- if (fcc_is_data (movie->entries[i].ChunkId) &&
- fcc_get_stream (movie->entries[i].ChunkId) == stream) {
- if ((cur_frame == frame -1) && (movie->entries[i].Size == 0)) {
+ if (fcc_is_data(movie->entries[i].ChunkId) &&
+ fcc_get_stream(movie->entries[i].ChunkId) == stream)
+ {
+ if ((cur_frame == frame - 1) && (movie->entries[i].Size == 0)) {
rewind = 1;
- frame = frame -1;
+ frame = frame - 1;
}
else {
cur_frame++;
@@ -697,18 +710,18 @@ void *AVI_read_frame (AviMovie *movie, AviFormat format, int frame, int stream)
if (cur_frame != frame) return NULL;
- fseek (movie->fp, movie->read_offset + movie->entries[i-1].Offset, SEEK_SET);
+ fseek(movie->fp, movie->read_offset + movie->entries[i - 1].Offset, SEEK_SET);
temp = GET_FCC(movie->fp);
- buffer = MEM_mallocN (temp, "readbuffer");
+ buffer = MEM_mallocN(temp, "readbuffer");
- if (fread (buffer, 1, temp, movie->fp) != temp) {
+ if (fread(buffer, 1, temp, movie->fp) != temp) {
MEM_freeN(buffer);
return NULL;
}
- buffer = avi_format_convert (movie, stream, buffer, movie->streams[stream].format, format, &temp);
+ buffer = avi_format_convert(movie, stream, buffer, movie->streams[stream].format, format, &temp);
return buffer;
}
@@ -717,21 +730,21 @@ AviError AVI_close(AviMovie *movie)
{
int i;
- fclose (movie->fp);
+ fclose(movie->fp);
- for (i=0; i < movie->header->Streams; i++) {
+ for (i = 0; i < movie->header->Streams; i++) {
if (movie->streams[i].sf != NULL)
- MEM_freeN (movie->streams[i].sf);
+ MEM_freeN(movie->streams[i].sf);
}
if (movie->header != NULL)
- MEM_freeN (movie->header);
- if (movie->streams!= NULL)
- MEM_freeN (movie->streams);
+ MEM_freeN(movie->header);
+ if (movie->streams != NULL)
+ MEM_freeN(movie->streams);
if (movie->entries != NULL)
- MEM_freeN (movie->entries);
+ MEM_freeN(movie->entries);
if (movie->offset_table != NULL)
- MEM_freeN (movie->offset_table);
+ MEM_freeN(movie->offset_table);
return AVI_ERROR_NONE;
}
@@ -747,21 +760,21 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
int64_t junk_pos;
movie->type = AVI_MOVIE_WRITE;
- movie->fp = fopen (name, "wb");
+ movie->fp = fopen(name, "wb");
movie->index_entries = 0;
if (movie->fp == NULL)
return AVI_ERROR_OPEN;
- movie->offset_table = (int64_t *) MEM_mallocN ((1+streams*2) * sizeof (int64_t), "offsettable");
+ movie->offset_table = (int64_t *) MEM_mallocN((1 + streams * 2) * sizeof (int64_t), "offsettable");
- for (i=0; i < 1 + streams*2; i++)
+ for (i = 0; i < 1 + streams * 2; i++)
movie->offset_table[i] = -1L;
movie->entries = NULL;
- movie->header = (AviMainHeader *) MEM_mallocN (sizeof(AviMainHeader), "movieheader");
+ movie->header = (AviMainHeader *) MEM_mallocN(sizeof(AviMainHeader), "movieheader");
movie->header->fcc = FCC("avih");
movie->header->size = 56;
@@ -780,20 +793,20 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
movie->header->Reserved[2] = 0;
movie->header->Reserved[3] = 0;
- movie->streams = (AviStreamRec *) MEM_mallocN (sizeof(AviStreamRec) * movie->header->Streams, "moviestreams");
+ movie->streams = (AviStreamRec *) MEM_mallocN(sizeof(AviStreamRec) * movie->header->Streams, "moviestreams");
- va_start (ap, streams);
+ va_start(ap, streams);
- for (i=0; i < movie->header->Streams; i++) {
+ for (i = 0; i < movie->header->Streams; i++) {
movie->streams[i].format = va_arg(ap, AviFormat);
- movie->streams[i].sh.fcc = FCC ("strh");
+ movie->streams[i].sh.fcc = FCC("strh");
movie->streams[i].sh.size = 56;
- movie->streams[i].sh.Type = avi_get_format_type (movie->streams[i].format);
+ movie->streams[i].sh.Type = avi_get_format_type(movie->streams[i].format);
if (movie->streams[i].sh.Type == 0)
return AVI_ERROR_FORMAT;
- movie->streams[i].sh.Handler = avi_get_format_fcc (movie->streams[i].format);
+ movie->streams[i].sh.Handler = avi_get_format_fcc(movie->streams[i].format);
if (movie->streams[i].sh.Handler == 0)
return AVI_ERROR_FORMAT;
@@ -816,30 +829,30 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
if (movie->streams[i].sh.Type == FCC("vids")) {
#if 0
if (movie->streams[i].format == AVI_FORMAT_MJPEG) {
- movie->streams[i].sf = MEM_mallocN (sizeof(AviBitmapInfoHeader)
- + sizeof(AviMJPEGUnknown), "moviestreamformatL");
+ movie->streams[i].sf = MEM_mallocN(sizeof(AviBitmapInfoHeader)
+ + sizeof(AviMJPEGUnknown), "moviestreamformatL");
movie->streams[i].sf_size = sizeof(AviBitmapInfoHeader) + sizeof(AviMJPEGUnknown);
}
else {
#endif
- movie->streams[i].sf = MEM_mallocN (sizeof(AviBitmapInfoHeader), "moviestreamformatS");
+ movie->streams[i].sf = MEM_mallocN(sizeof(AviBitmapInfoHeader), "moviestreamformatS");
movie->streams[i].sf_size = sizeof(AviBitmapInfoHeader);
- ((AviBitmapInfoHeader *) movie->streams[i].sf)->fcc = FCC ("strf");
+ ((AviBitmapInfoHeader *) movie->streams[i].sf)->fcc = FCC("strf");
((AviBitmapInfoHeader *) movie->streams[i].sf)->size = movie->streams[i].sf_size - 8;
((AviBitmapInfoHeader *) movie->streams[i].sf)->Size = movie->streams[i].sf_size - 8;
((AviBitmapInfoHeader *) movie->streams[i].sf)->Width = 0;
((AviBitmapInfoHeader *) movie->streams[i].sf)->Height = 0;
((AviBitmapInfoHeader *) movie->streams[i].sf)->Planes = 1;
((AviBitmapInfoHeader *) movie->streams[i].sf)->BitCount = 24;
- ((AviBitmapInfoHeader *) movie->streams[i].sf)->Compression = avi_get_format_compression (movie->streams[i].format);
+ ((AviBitmapInfoHeader *) movie->streams[i].sf)->Compression = avi_get_format_compression(movie->streams[i].format);
((AviBitmapInfoHeader *) movie->streams[i].sf)->SizeImage = 0;
((AviBitmapInfoHeader *) movie->streams[i].sf)->XPelsPerMeter = 0;
((AviBitmapInfoHeader *) movie->streams[i].sf)->YPelsPerMeter = 0;
((AviBitmapInfoHeader *) movie->streams[i].sf)->ClrUsed = 0;
((AviBitmapInfoHeader *) movie->streams[i].sf)->ClrImportant = 0;
-/*
+#if 0
if (movie->streams[i].format == AVI_FORMAT_MJPEG) {
AviMJPEGUnknown *tmp;
@@ -857,7 +870,7 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
else if (movie->streams[i].sh.Type == FCC("auds")) {
// pass
}
-*/
+#endif
}
}
@@ -865,53 +878,53 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
list.size = 0;
list.ids = FCC("AVI ");
- awrite (movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
+ awrite(movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
list.fcc = FCC("LIST");
list.size = 0;
list.ids = FCC("hdrl");
- awrite (movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
+ awrite(movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
header_pos1 = ftell(movie->fp);
movie->offset_table[0] = ftell(movie->fp);
- awrite (movie, movie->header, 1, sizeof(AviMainHeader), movie->fp, AVI_MAINH);
+ awrite(movie, movie->header, 1, sizeof(AviMainHeader), movie->fp, AVI_MAINH);
- for (i=0; i < movie->header->Streams; i++) {
+ for (i = 0; i < movie->header->Streams; i++) {
list.fcc = FCC("LIST");
list.size = 0;
list.ids = FCC("strl");
- awrite (movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
+ awrite(movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
stream_pos1 = ftell(movie->fp);
- movie->offset_table[1+i*2] = ftell(movie->fp);
- awrite (movie, &movie->streams[i].sh, 1, sizeof(AviStreamHeader), movie->fp, AVI_STREAMH);
+ movie->offset_table[1 + i * 2] = ftell(movie->fp);
+ awrite(movie, &movie->streams[i].sh, 1, sizeof(AviStreamHeader), movie->fp, AVI_STREAMH);
- movie->offset_table[1+i*2+1] = ftell(movie->fp);
- awrite (movie, movie->streams[i].sf, 1, movie->streams[i].sf_size, movie->fp, AVI_BITMAPH);
+ movie->offset_table[1 + i * 2 + 1] = ftell(movie->fp);
+ awrite(movie, movie->streams[i].sf, 1, movie->streams[i].sf_size, movie->fp, AVI_BITMAPH);
stream_pos2 = ftell(movie->fp);
- fseek (movie->fp, stream_pos1-8, SEEK_SET);
+ fseek(movie->fp, stream_pos1 - 8, SEEK_SET);
- PUT_FCCN((stream_pos2-stream_pos1+4L), movie->fp);
+ PUT_FCCN((stream_pos2 - stream_pos1 + 4L), movie->fp);
- fseek (movie->fp, stream_pos2, SEEK_SET);
+ fseek(movie->fp, stream_pos2, SEEK_SET);
}
- junk_pos= ftell(movie->fp);
+ junk_pos = ftell(movie->fp);
if (junk_pos < 2024 - 8) {
chunk.fcc = FCC("JUNK");
chunk.size = 2024 - 8 - (int)junk_pos;
- awrite (movie, &chunk, 1, sizeof(AviChunk), movie->fp, AVI_CHUNK);
+ awrite(movie, &chunk, 1, sizeof(AviChunk), movie->fp, AVI_CHUNK);
- for (i=0; i < chunk.size; i++)
+ for (i = 0; i < chunk.size; i++)
putc(0, movie->fp);
}
@@ -921,13 +934,13 @@ AviError AVI_open_compress(char *name, AviMovie *movie, int streams, ...)
list.size = 0;
list.ids = FCC("movi");
- awrite (movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
+ awrite(movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
- movie->movi_offset = ftell(movie->fp)-8L;
+ movie->movi_offset = ftell(movie->fp) - 8L;
- fseek (movie->fp, AVI_HDRL_SOFF, SEEK_SET);
+ fseek(movie->fp, AVI_HDRL_SOFF, SEEK_SET);
- PUT_FCCN((header_pos2-header_pos1+4L), movie->fp);
+ PUT_FCCN((header_pos2 - header_pos1 + 4L), movie->fp);
return AVI_ERROR_NONE;
}
@@ -949,93 +962,93 @@ AviError AVI_write_frame(AviMovie *movie, int frame_num, ...)
/* Allocate the new memory for the index entry */
- if (frame_num+1 > movie->index_entries) {
- temp = (AviIndexEntry *) MEM_mallocN ((frame_num+1) *
- (movie->header->Streams+1) * sizeof(AviIndexEntry), "newidxentry");
+ if (frame_num + 1 > movie->index_entries) {
+ temp = (AviIndexEntry *) MEM_mallocN((frame_num + 1) *
+ (movie->header->Streams + 1) * sizeof(AviIndexEntry), "newidxentry");
if (movie->entries != NULL) {
- memcpy (temp, movie->entries, movie->index_entries * (movie->header->Streams+1)
- * sizeof(AviIndexEntry));
- MEM_freeN (movie->entries);
+ memcpy(temp, movie->entries, movie->index_entries * (movie->header->Streams + 1)
+ * sizeof(AviIndexEntry));
+ MEM_freeN(movie->entries);
}
movie->entries = temp;
- movie->index_entries = frame_num+1;
+ movie->index_entries = frame_num + 1;
}
/* Slap a new record entry onto the end of the file */
- fseek (movie->fp, 0L, SEEK_END);
+ fseek(movie->fp, 0L, SEEK_END);
list.fcc = FCC("LIST");
list.size = 0;
list.ids = FCC("rec ");
- awrite (movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
+ awrite(movie, &list, 1, sizeof(AviList), movie->fp, AVI_LIST);
- rec_off = ftell (movie->fp)-8L;
+ rec_off = ftell(movie->fp) - 8L;
/* Write a frame for every stream */
- va_start (ap, frame_num);
+ va_start(ap, frame_num);
- for (stream=0; stream < movie->header->Streams; stream++) {
- unsigned int tbuf=0;
+ for (stream = 0; stream < movie->header->Streams; stream++) {
+ unsigned int tbuf = 0;
- format = va_arg (ap, AviFormat);
- buffer = va_arg (ap, void*);
- size = va_arg (ap, int);
+ format = va_arg(ap, AviFormat);
+ buffer = va_arg(ap, void *);
+ size = va_arg(ap, int);
/* Convert the buffer into the output format */
- buffer = avi_format_convert (movie, stream, buffer, format, movie->streams[stream].format, &size);
+ buffer = avi_format_convert(movie, stream, buffer, format, movie->streams[stream].format, &size);
/* Write the header info for this data chunk */
- fseek (movie->fp, 0L, SEEK_END);
+ fseek(movie->fp, 0L, SEEK_END);
- chunk.fcc = avi_get_data_id (format, stream);
+ chunk.fcc = avi_get_data_id(format, stream);
chunk.size = size;
- if (size%4) chunk.size += 4 - size%4;
+ if (size % 4) chunk.size += 4 - size % 4;
- awrite (movie, &chunk, 1, sizeof(AviChunk), movie->fp, AVI_CHUNK);
+ awrite(movie, &chunk, 1, sizeof(AviChunk), movie->fp, AVI_CHUNK);
/* Write the index entry for this data chunk */
- movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].ChunkId = chunk.fcc;
- movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].Flags = AVIIF_KEYFRAME;
- movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].Offset = (int)(ftell(movie->fp) - 12L - movie->movi_offset);
- movie->entries[frame_num * (movie->header->Streams+1) + stream + 1].Size = chunk.size;
+ movie->entries[frame_num * (movie->header->Streams + 1) + stream + 1].ChunkId = chunk.fcc;
+ movie->entries[frame_num * (movie->header->Streams + 1) + stream + 1].Flags = AVIIF_KEYFRAME;
+ movie->entries[frame_num * (movie->header->Streams + 1) + stream + 1].Offset = (int)(ftell(movie->fp) - 12L - movie->movi_offset);
+ movie->entries[frame_num * (movie->header->Streams + 1) + stream + 1].Size = chunk.size;
/* Write the chunk */
- awrite (movie, buffer, 1, size, movie->fp, AVI_RAW);
- MEM_freeN (buffer);
+ awrite(movie, buffer, 1, size, movie->fp, AVI_RAW);
+ MEM_freeN(buffer);
- if (size%4) awrite (movie, &tbuf, 1, 4-size%4, movie->fp, AVI_RAW);
+ if (size % 4) awrite(movie, &tbuf, 1, 4 - size % 4, movie->fp, AVI_RAW);
/* Update the stream headers length field */
movie->streams[stream].sh.Length++;
- fseek (movie->fp, movie->offset_table[1+stream*2], SEEK_SET);
- awrite (movie, &movie->streams[stream].sh, 1, sizeof(AviStreamHeader), movie->fp, AVI_STREAMH);
+ fseek(movie->fp, movie->offset_table[1 + stream * 2], SEEK_SET);
+ awrite(movie, &movie->streams[stream].sh, 1, sizeof(AviStreamHeader), movie->fp, AVI_STREAMH);
}
- va_end (ap);
+ va_end(ap);
/* Record the entry for the new record */
- fseek (movie->fp, 0L, SEEK_END);
+ fseek(movie->fp, 0L, SEEK_END);
- movie->entries[frame_num * (movie->header->Streams+1)].ChunkId = FCC("rec ");
- movie->entries[frame_num * (movie->header->Streams+1)].Flags = AVIIF_LIST;
- movie->entries[frame_num * (movie->header->Streams+1)].Offset = (int)(rec_off - 8L - movie->movi_offset);
- movie->entries[frame_num * (movie->header->Streams+1)].Size = (int)(ftell(movie->fp) - (rec_off + 4L));
+ movie->entries[frame_num * (movie->header->Streams + 1)].ChunkId = FCC("rec ");
+ movie->entries[frame_num * (movie->header->Streams + 1)].Flags = AVIIF_LIST;
+ movie->entries[frame_num * (movie->header->Streams + 1)].Offset = (int)(rec_off - 8L - movie->movi_offset);
+ movie->entries[frame_num * (movie->header->Streams + 1)].Size = (int)(ftell(movie->fp) - (rec_off + 4L));
/* Update the record size */
- fseek (movie->fp, rec_off, SEEK_SET);
- PUT_FCCN (movie->entries[frame_num * (movie->header->Streams+1)].Size, movie->fp);
+ fseek(movie->fp, rec_off, SEEK_SET);
+ PUT_FCCN(movie->entries[frame_num * (movie->header->Streams + 1)].Size, movie->fp);
/* Update the main header information in the file */
movie->header->TotalFrames++;
- fseek (movie->fp, movie->offset_table[0], SEEK_SET);
- awrite (movie, movie->header, 1, sizeof(AviMainHeader), movie->fp, AVI_MAINH);
+ fseek(movie->fp, movie->offset_table[0], SEEK_SET);
+ awrite(movie, movie->header, 1, sizeof(AviMainHeader), movie->fp, AVI_MAINH);
return AVI_ERROR_NONE;
}
@@ -1044,38 +1057,38 @@ AviError AVI_close_compress(AviMovie *movie)
{
int temp, movi_size, i;
- fseek (movie->fp, 0L, SEEK_END);
+ fseek(movie->fp, 0L, SEEK_END);
movi_size = (int)ftell(movie->fp);
- PUT_FCC ("idx1", movie->fp);
- PUT_FCCN ((movie->index_entries*(movie->header->Streams+1)*16), movie->fp);
+ PUT_FCC("idx1", movie->fp);
+ PUT_FCCN((movie->index_entries * (movie->header->Streams + 1) * 16), movie->fp);
- for (temp=0; temp < movie->index_entries*(movie->header->Streams+1); temp++)
- awrite (movie, &movie->entries[temp], 1, sizeof(AviIndexEntry), movie->fp, AVI_INDEXE);
+ for (temp = 0; temp < movie->index_entries * (movie->header->Streams + 1); temp++)
+ awrite(movie, &movie->entries[temp], 1, sizeof(AviIndexEntry), movie->fp, AVI_INDEXE);
temp = (int)ftell(movie->fp);
- fseek (movie->fp, AVI_RIFF_SOFF, SEEK_SET);
+ fseek(movie->fp, AVI_RIFF_SOFF, SEEK_SET);
- PUT_FCCN((temp-8L), movie->fp);
+ PUT_FCCN((temp - 8L), movie->fp);
- fseek (movie->fp, movie->movi_offset, SEEK_SET);
+ fseek(movie->fp, movie->movi_offset, SEEK_SET);
- PUT_FCCN((movi_size-(movie->movi_offset+4L)), movie->fp);
+ PUT_FCCN((movi_size - (movie->movi_offset + 4L)), movie->fp);
- fclose (movie->fp);
+ fclose(movie->fp);
- for (i=0; i < movie->header->Streams; i++) {
+ for (i = 0; i < movie->header->Streams; i++) {
if (movie->streams[i].sf != NULL)
- MEM_freeN (movie->streams[i].sf);
+ MEM_freeN(movie->streams[i].sf);
}
if (movie->header != NULL)
- MEM_freeN (movie->header);
+ MEM_freeN(movie->header);
if (movie->entries != NULL)
- MEM_freeN (movie->entries);
+ MEM_freeN(movie->entries);
if (movie->streams != NULL)
- MEM_freeN (movie->streams);
+ MEM_freeN(movie->streams);
if (movie->offset_table != NULL)
- MEM_freeN (movie->offset_table);
+ MEM_freeN(movie->offset_table);
return AVI_ERROR_NONE;
}