This is xanim_avi.h in view mode; [Download] [Up]
/*
* xanim.h
*
* Copyright (C) 1990,1991,1992,1993 by Mark Podlipec.
* All rights reserved.
*
* This software may be freely copied, modified and redistributed
* without fee provided that this copyright notice is preserved
* intact on all copies and modified copies.
*
* There is no warranty or other guarantee of fitness of this software.
* It is provided solely "as is". The author(s) disclaim(s) all
* responsibility and liability with respect to this software's usage
* or its effect upon hardware or computer systems.
*
*/
/** WAR: Wildly hacked to stream AVI RGB data to stdout, 7/2/94 **/
#include "xanim.h"
#define TRUE 1
#define FALSE 0
#ifndef MIN
#define MIN(x,y) ( ((x)>(y))?(y):(x) )
#endif
#ifndef MAX
#define MAX(x,y) ( ((x)>(y))?(x):(y) )
#endif
#define RIFF_RIFF 0x52494646
#define RIFF_LIST 0x4C495354
#define RIFF_avih 0x61766968
#define RIFF_strd 0x73747264
#define RIFF_strh 0x73747268
#define RIFF_strf 0x73747266
#define RIFF_vedt 0x76656474
#define RIFF_JUNK 0x4A554E4B
#define RIFF_00dc 0x30306463
#define RIFF_01wb 0x30317762
#define RIFF_idx1 0x69647831
#define RIFF_CRAM 0x4352414D
#define RIFF_AVI 0x41564920
#define RIFF_hdrl 0x6864726C
#define RIFF_strl 0x7374726C
#define RIFF_DISP 0x44495350
#define RIFF_ISBJ 0x4953424a
/* fcc Types */
#define RIFF_vids 0x76696473
#define RIFF_auds 0x61756473
/* fcc handlers */
#define RIFF_RLE 0x524C4432
#define RIFF_msvc 0x6D737663
typedef struct {
ULONG ckid;
ULONG flags;
ULONG chunk_offset; /* position of chunk rel to movi list include 8b hdr */
ULONG chunk_size; /* length of chunk excluding 8 bytes for RIFF hdr */
} AVI_INDEX_ENTRY;
/* Flags for AVI_INDEX_ENTRY */
#define AVIIF_LIST 0x00000001L
#define AVIIF_TWOCC 0x00000002L
/* keyframe doesn't need previous info to be decompressed */
#define AVIIF_KEYFRAME 0x00000010L
/* this chunk needs the frames following it to be used */
#define AVIIF_FIRSTPART 0x00000020L
/* this chunk needs the frames before it to be used */
#define AVIIF_LASTPART 0x00000040L
#define AVIIF_MIDPART (AVIIF_LASTPART|AVIIF_FIRSTPART)
/* this chunk doesn't affect timing ie palette change */
#define AVIIF_NOTIME 0x00000100L
#define AVIIF_COMPUSE 0x0FFF0000L
typedef struct {
ULONG us_frame; /* MicroSecPerFrame - timing between frames */
ULONG max_bps; /* MaxBytesPerSec - approx bps system must handle */
ULONG pad_gran; /* */
ULONG flags; /* Flags */
ULONG tot_frames; /* TotalFrames */
ULONG init_frames; /* InitialFrames - initial frame before interleaving */
ULONG streams; /* Streams */
ULONG sug_bsize; /* SuggestedBufferSize */
ULONG width; /* Width */
ULONG height; /* Height */
ULONG scale; /* Scale */
ULONG rate; /* Rate */
ULONG start; /* Start */
ULONG length; /* Length */
} AVI_HDR;
/* AVI_HDR Flags */
/* had idx1 chunk */
#define AVIF_HASINDEX 0x00000010
/* must use idx1 chunk to determine order */
#define AVIF_MUSTUSEINDEX 0x00000020
/* AVI file is interleaved */
#define AVIF_ISINTERLEAVED 0x00000100
/* specially allocated used for capturing real time video */
#define AVIF_WASCAPTUREFILE 0x00010000
/* contains copyrighted data */
#define AVIF_COPYRIGHTED 0x00020000
typedef struct {
ULONG fcc_type; /* fccType {vids} */
ULONG fcc_handler; /* fccHandler {msvc,RLE} */
ULONG flags; /* Flags */
ULONG priority; /* Priority */
ULONG init_frames; /* InitialFrames */
ULONG scale; /* Scale */
ULONG rate; /* Rate */
ULONG start; /* Start */
ULONG length; /* Length In units above... */
ULONG sug_bsize; /* SuggestedBufferSize */
ULONG quality; /* Quality */
ULONG samp_size; /* SampleSize */
} AVI_STREAM_HDR;
/* AVI_STREAM_HDR Flags */
#define AVISF_DISABLED 0x00000001
#define AVISF_VIDEO_PALCHANGES 0x00010000
typedef struct { /* BitMapInfoHeader */
ULONG size; /* Size */
ULONG width; /* Width */
ULONG height; /* Height */
ULONG planes; /* short Planes */
ULONG bit_cnt; /* short BitCount */
ULONG compression; /* Compression {1} */
ULONG image_size; /* SizeImage */
ULONG xpels_meter; /* XPelsPerMeter */
ULONG ypels_meter; /* XPelsPerMeter */
ULONG num_colors; /* ClrUsed */
ULONG imp_colors; /* ClrImportant */
} VIDS_HDR;
typedef struct AVI_FRAME_STRUCT {
ULONG time;
XA_ACTION *act;
struct AVI_FRAME_STRUCT *next;
} AVI_FRAME;
/* FUNCTIONS IN AVI.C */
LONG Is_AVI_File();
void AVI_Read_File();
void AVI_Print_ID();
AVI_FRAME *AVI_Add_Frame();
void AVI_Free_Frame_List();
ULONG AVI_Decode_CRAM();
void RIFF_Read_AVIH();
void RIFF_Read_STRH();
void RIFF_Read_VIDS();
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.