Blender  V3.3
Macros | Functions | Variables
avi.c File Reference
#include <ctype.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_fileops.h"
#include "BLI_sys_types.h"
#include "BLI_utildefines.h"
#include "AVI_avi.h"
#include "avi_intern.h"
#include "avi_endian.h"

Go to the source code of this file.

Macros

#define DEBUG_PRINT(x)
 

Functions

char * fcc_to_char (unsigned int fcc)
 
char * tcc_to_char (unsigned int tcc)
 
unsigned int GET_FCC (FILE *fp)
 
unsigned int GET_TCC (FILE *fp)
 
int AVI_get_stream (AviMovie *movie, int avist_type, int stream_num)
 
static int fcc_get_stream (int fcc)
 
static bool fcc_is_data (int fcc)
 
AviError AVI_print_error (AviError in_error)
 
bool AVI_is_avi (const char *name)
 
AviError AVI_open_movie (const char *name, AviMovie *movie)
 
voidAVI_read_frame (AviMovie *movie, AviFormat format, int frame, int stream)
 
AviError AVI_close (AviMovie *movie)
 
AviError AVI_open_compress (char *name, AviMovie *movie, int streams,...)
 
AviError AVI_write_frame (AviMovie *movie, int frame_num,...)
 
AviError AVI_close_compress (AviMovie *movie)
 

Variables

static int AVI_DEBUG = 0
 
static char DEBUG_FCC [4]
 

Detailed Description

This is external code.

Definition in file avi.c.

Macro Definition Documentation

◆ DEBUG_PRINT

#define DEBUG_PRINT (   x)
Value:
if (AVI_DEBUG) { \
printf("AVI DEBUG: " x); \
} \
(void)0
static int AVI_DEBUG
Definition: avi.c:31
SyclQueue void void size_t num_bytes void

Definition at line 34 of file avi.c.

Function Documentation

◆ AVI_close()

AviError AVI_close ( AviMovie movie)

◆ AVI_close_compress()

AviError AVI_close_compress ( AviMovie movie)

◆ AVI_get_stream()

int AVI_get_stream ( AviMovie movie,
int  avist_type,
int  stream_num 
)

Direct the streams <avist_type> to <movie>. Redirect <stream_num> streams.

Definition at line 90 of file avi.c.

References AVI_ERROR_FOUND, AVI_ERROR_OPTION, _AviMovie::header, NULL, _AviStreamRec::sh, _AviMainHeader::Streams, _AviMovie::streams, and _AviStreamHeader::Type.

◆ AVI_is_avi()

bool AVI_is_avi ( const char *  name)

Test whether this is an avi-format.

Definition at line 187 of file avi.c.

References AVI_FORMAT_AVI_RGB, AVI_FORMAT_MJPEG, AVI_MOVIE_READ, _AviBitmapInfoHeader::BitCount, BLI_fopen(), BLI_fseek(), BLI_ftell(), _AviStreamHeader::bottom, _AviBitmapInfoHeader::ClrImportant, _AviBitmapInfoHeader::ClrUsed, _AviBitmapInfoHeader::Compression, DEBUG_PRINT, _AviMainHeader::fcc, _AviStreamHeader::fcc, _AviBitmapInfoHeader::fcc, FCC, _AviMainHeader::Flags, _AviStreamHeader::Flags, _AviStreamRec::format, _AviMovie::fp, GET_FCC(), GET_TCC(), _AviStreamHeader::Handler, _AviMovie::header, _AviMainHeader::Height, _AviBitmapInfoHeader::Height, _AviMainHeader::InitialFrames, _AviStreamHeader::InitialFrames, _AviStreamHeader::Language, _AviStreamHeader::left, _AviStreamHeader::Length, _AviMainHeader::MaxBytesPerSec, MEM_calloc_arrayN, MEM_freeN, _AviMainHeader::MicroSecPerFrame, NULL, _AviMovie::offset_table, _AviMainHeader::PaddingGranularity, _AviBitmapInfoHeader::Planes, _AviStreamHeader::Priority, _AviStreamHeader::Quality, _AviStreamHeader::Rate, _AviMainHeader::Reserved, _AviStreamHeader::right, _AviStreamHeader::SampleSize, _AviStreamHeader::Scale, _AviStreamRec::sf, _AviStreamRec::sf_size, _AviStreamRec::sh, _AviMainHeader::size, _AviStreamHeader::size, _AviBitmapInfoHeader::size, _AviBitmapInfoHeader::Size, _AviMovie::size, _AviBitmapInfoHeader::SizeImage, _AviStreamHeader::Start, _AviMainHeader::Streams, _AviMovie::streams, _AviMainHeader::SuggestedBufferSize, _AviStreamHeader::SuggestedBufferSize, _AviStreamHeader::top, _AviMainHeader::TotalFrames, _AviStreamHeader::Type, _AviMovie::type, _AviMainHeader::Width, _AviBitmapInfoHeader::Width, _AviBitmapInfoHeader::XPelsPerMeter, and _AviBitmapInfoHeader::YPelsPerMeter.

Referenced by isavi().

◆ AVI_open_compress()

AviError AVI_open_compress ( char *  name,
AviMovie movie,
int  streams,
  ... 
)

Open a compressed file, decompress it into memory.

Definition at line 695 of file avi.c.

References AVI_BITMAPH, AVI_CHUNK, AVI_ERROR_FORMAT, AVI_ERROR_NONE, AVI_ERROR_OPEN, avi_get_format_compression(), avi_get_format_fcc(), avi_get_format_type(), AVI_HDRL_SOFF, AVI_LIST, AVI_MAINH, AVI_MOVIE_WRITE, AVI_STREAMH, AVIF_HASINDEX, AVIF_MUSTUSEINDEX, awrite(), BLI_fopen(), BLI_fseek(), BLI_ftell(), _AviStreamHeader::bottom, DEBUG_PRINT, _AviMovie::entries, _AviChunk::fcc, _AviList::fcc, _AviMainHeader::fcc, _AviStreamHeader::fcc, FCC, _AviMainHeader::Flags, _AviStreamHeader::Flags, _AviStreamRec::format, _AviMovie::fp, _AviStreamHeader::Handler, _AviMovie::header, _AviMainHeader::Height, _AviList::ids, _AviMovie::index_entries, _AviMainHeader::InitialFrames, _AviStreamHeader::InitialFrames, _AviStreamHeader::Language, _AviStreamHeader::left, _AviStreamHeader::Length, _AviMainHeader::MaxBytesPerSec, MEM_mallocN, _AviMainHeader::MicroSecPerFrame, _AviMovie::movi_offset, NULL, _AviMovie::offset_table, _AviMainHeader::PaddingGranularity, _AviStreamHeader::Priority, PUT_FCCN, _AviStreamHeader::Quality, _AviStreamHeader::Rate, _AviMainHeader::Reserved, _AviStreamHeader::right, _AviStreamHeader::SampleSize, _AviStreamHeader::Scale, _AviStreamRec::sf, _AviStreamRec::sf_size, _AviStreamRec::sh, _AviChunk::size, _AviList::size, _AviMainHeader::size, _AviStreamHeader::size, _AviStreamHeader::Start, _AviMainHeader::Streams, _AviMovie::streams, _AviMainHeader::SuggestedBufferSize, _AviStreamHeader::SuggestedBufferSize, _AviStreamHeader::top, _AviMainHeader::TotalFrames, _AviStreamHeader::Type, _AviMovie::type, and _AviMainHeader::Width.

◆ AVI_open_movie()

AviError AVI_open_movie ( const char *  name,
AviMovie movie 
)

Open a movie stream from file.

Definition at line 378 of file avi.c.

References AVI_DEBUG, AVI_ERROR_COMPRESSION, AVI_ERROR_FORMAT, AVI_ERROR_NONE, AVI_ERROR_OPEN, AVI_FORMAT_AVI_RGB, AVI_FORMAT_MJPEG, AVI_MOVIE_READ, AVIF_HASINDEX, _AviBitmapInfoHeader::BitCount, BLI_fopen(), BLI_fseek(), BLI_ftell(), _AviStreamHeader::bottom, _AviIndexEntry::ChunkId, _AviBitmapInfoHeader::ClrImportant, _AviBitmapInfoHeader::ClrUsed, _AviBitmapInfoHeader::Compression, DEBUG_PRINT, _AviMovie::entries, _AviMainHeader::fcc, _AviStreamHeader::fcc, _AviBitmapInfoHeader::fcc, FCC, fcc_to_char(), _AviMainHeader::Flags, _AviStreamHeader::Flags, _AviIndexEntry::Flags, _AviStreamRec::format, _AviMovie::fp, GET_FCC(), GET_TCC(), _AviStreamHeader::Handler, _AviMovie::header, _AviMainHeader::Height, _AviBitmapInfoHeader::Height, _AviMovie::index_entries, _AviMainHeader::InitialFrames, _AviStreamHeader::InitialFrames, _AviStreamHeader::Language, _AviStreamHeader::left, _AviStreamHeader::Length, _AviMainHeader::MaxBytesPerSec, MEM_calloc_arrayN, MEM_mallocN, _AviMainHeader::MicroSecPerFrame, _AviMovie::movi_offset, NULL, _AviIndexEntry::Offset, _AviMovie::offset_table, _AviMainHeader::PaddingGranularity, _AviBitmapInfoHeader::Planes, _AviStreamHeader::Priority, _AviStreamHeader::Quality, _AviStreamHeader::Rate, _AviMovie::read_offset, _AviMainHeader::Reserved, _AviStreamHeader::right, _AviStreamHeader::SampleSize, _AviStreamHeader::Scale, _AviStreamRec::sf, _AviStreamRec::sf_size, _AviStreamRec::sh, size(), _AviMainHeader::size, _AviStreamHeader::size, _AviBitmapInfoHeader::size, _AviBitmapInfoHeader::Size, _AviIndexEntry::Size, _AviMovie::size, _AviBitmapInfoHeader::SizeImage, _AviStreamHeader::Start, _AviMainHeader::Streams, _AviMovie::streams, _AviMainHeader::SuggestedBufferSize, _AviStreamHeader::SuggestedBufferSize, _AviStreamHeader::top, _AviMainHeader::TotalFrames, _AviStreamHeader::Type, _AviMovie::type, _AviMainHeader::Width, _AviBitmapInfoHeader::Width, _AviBitmapInfoHeader::XPelsPerMeter, and _AviBitmapInfoHeader::YPelsPerMeter.

◆ AVI_print_error()

AviError AVI_print_error ( AviError  error)

◆ AVI_read_frame()

void* AVI_read_frame ( AviMovie movie,
AviFormat  format,
int  frame,
int  stream 
)

◆ AVI_write_frame()

AviError AVI_write_frame ( AviMovie movie,
int  frame_num,
  ... 
)

◆ fcc_get_stream()

static int fcc_get_stream ( int  fcc)
static

Definition at line 111 of file avi.c.

Referenced by AVI_read_frame().

◆ fcc_is_data()

static bool fcc_is_data ( int  fcc)
static

Definition at line 123 of file avi.c.

References ELEM.

Referenced by AVI_read_frame().

◆ fcc_to_char()

char * fcc_to_char ( unsigned int  fcc)

Definition at line 70 of file avi.c.

References DEBUG_FCC.

Referenced by AVI_open_movie().

◆ GET_FCC()

unsigned int GET_FCC ( FILE *  fp)

Definition at line 46 of file avi.c.

References FCC.

Referenced by AVI_is_avi(), AVI_open_movie(), and AVI_read_frame().

◆ GET_TCC()

unsigned int GET_TCC ( FILE *  fp)

Definition at line 58 of file avi.c.

References FCC.

Referenced by AVI_is_avi(), and AVI_open_movie().

◆ tcc_to_char()

char * tcc_to_char ( unsigned int  tcc)

Definition at line 80 of file avi.c.

References DEBUG_FCC.

Variable Documentation

◆ AVI_DEBUG

int AVI_DEBUG = 0
static

Definition at line 31 of file avi.c.

Referenced by AVI_open_movie().

◆ DEBUG_FCC

char DEBUG_FCC[4]
static

Definition at line 32 of file avi.c.

Referenced by fcc_to_char(), and tcc_to_char().