#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <time.h>
#include "avilib.h"
#include "defs.h"
Go to the source code of this file.
Defines | |
#define | AVIF_COPYRIGHTED 0x00020000 |
#define | AVIF_COPYRIGHTED 0x00020000 |
#define | AVIF_HASINDEX 0x00000010 /* Index at end of file */ |
#define | AVIF_HASINDEX 0x00000010 /* Index at end of file */ |
#define | AVIF_ISINTERLEAVED 0x00000100 |
#define | AVIF_ISINTERLEAVED 0x00000100 |
#define | AVIF_MUSTUSEINDEX 0x00000020 |
#define | AVIF_MUSTUSEINDEX 0x00000020 |
#define | AVIF_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ |
#define | AVIF_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ |
#define | AVIF_WASCAPTUREFILE 0x00010000 |
#define | AVIF_WASCAPTUREFILE 0x00010000 |
#define | ERR_EXIT(x) |
#define | HEADERBYTES 2048 |
#define | INFO_LIST |
#define | MAX_INFO_STRLEN 64 |
#define | OUT4CC(s) if(nhb<=HEADERBYTES-4) memcpy(AVI_header+nhb,s,4); nhb += 4 |
#define | OUTCHR(n) |
#define | OUTLONG(n) if(nhb<=HEADERBYTES-4) long2str(AVI_header+nhb,n); nhb += 4 |
#define | OUTMEM(d, s) |
#define | OUTSHRT(n) |
#define | PACKAGE "guvcview" |
#define | PAD_EVEN(x) ( ((x)+1) & ~1 ) |
#define | S_IRGRP 00040 /* read permission: group */ |
#define | S_IROTH 00004 /* read permission: other */ |
#define | S_IRUSR 00400 /* read permission: owner */ |
#define | S_IRWXG 00070 /* read, write, execute: group */ |
#define | S_IRWXO 00007 /* read, write, execute: other */ |
#define | S_IRWXU 00700 /* read, write, execute: owner */ |
#define | S_IWGRP 00020 /* write permission: group */ |
#define | S_IWOTH 00002 /* write permission: other */ |
#define | S_IWUSR 00200 /* write permission: owner */ |
#define | S_IXGRP 00010 /* execute permission: group */ |
#define | S_IXOTH 00001 /* execute permission: other */ |
#define | S_IXUSR 00100 /* execute permission: owner */ |
#define | VERSION "0.9" |
Functions | |
static int | avi_add_chunk (struct avi_t *AVI, BYTE *tag, BYTE *data, int length) |
static int | avi_add_index_entry (struct avi_t *AVI, BYTE *tag, long flags, long pos, long len) |
int | AVI_append_audio (struct avi_t *AVI, BYTE *data, long bytes) |
ULONG | AVI_bytes_remain (struct avi_t *AVI) |
ULONG | AVI_bytes_written (struct avi_t *AVI) |
int | AVI_close (struct avi_t *AVI) |
static int | avi_close_output_file (struct avi_t *AVI) |
int | AVI_dup_frame (struct avi_t *AVI) |
int | AVI_getErrno () |
int | AVI_open_output_file (struct avi_t *AVI, const char *filename) |
void | AVI_print_error (char *str) |
static int | avi_sampsize (struct avi_t *AVI, int j) |
void | AVI_set_audio (struct avi_t *AVI, int channels, long rate, int mpgrate, int bits, int format) |
int | AVI_set_audio_track (struct avi_t *AVI, int track) |
void | AVI_set_audio_vbr (struct avi_t *AVI, long is_vbr) |
ULONG | AVI_set_MAX_LEN (ULONG len) |
void | AVI_set_video (struct avi_t *AVI, int width, int height, double fps, char *compressor) |
char * | AVI_strerror () |
static int | avi_update_header (struct avi_t *AVI) |
static ssize_t | avi_write (int fd, BYTE *buf, size_t len) |
int | AVI_write_audio (struct avi_t *AVI, BYTE *data, long bytes) |
static int | avi_write_data (struct avi_t *AVI, BYTE *data, long length, int audio, int keyframe) |
int | AVI_write_frame (struct avi_t *AVI, BYTE *data, long bytes, int keyframe) |
static void | long2str (unsigned char *dst, int n) |
static unsigned long | str2ulong (BYTE *str) |
Variables | |
long | AVI_errno = 0 |
char * | avi_errors [] |
ULONG | AVI_MAX_LEN = AVI_MAX_SIZE |
static char | error_string [4096] |
static char | id_str [MAX_INFO_STRLEN] |
static int | num_avi_errors = sizeof(avi_errors)/sizeof(char*) |
#define AVIF_COPYRIGHTED 0x00020000 |
#define AVIF_COPYRIGHTED 0x00020000 |
#define AVIF_HASINDEX 0x00000010 /* Index at end of file */ |
#define AVIF_HASINDEX 0x00000010 /* Index at end of file */ |
#define AVIF_ISINTERLEAVED 0x00000100 |
#define AVIF_ISINTERLEAVED 0x00000100 |
#define AVIF_MUSTUSEINDEX 0x00000020 |
#define AVIF_MUSTUSEINDEX 0x00000020 |
#define AVIF_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ |
#define AVIF_TRUSTCKTYPE 0x00000800 /* Use CKType to find key frames */ |
#define AVIF_WASCAPTUREFILE 0x00010000 |
#define AVIF_WASCAPTUREFILE 0x00010000 |
#define HEADERBYTES 2048 |
#define MAX_INFO_STRLEN 64 |
#define OUT4CC | ( | s | ) | if(nhb<=HEADERBYTES-4) memcpy(AVI_header+nhb,s,4); nhb += 4 |
#define OUTCHR | ( | n | ) |
if(nhb<=HEADERBYTES-1) { \ AVI_header[nhb ] = (n )&0xff; \ } \ nhb += 1
#define OUTLONG | ( | n | ) | if(nhb<=HEADERBYTES-4) long2str(AVI_header+nhb,n); nhb += 4 |
{ \ unsigned int s_ = (s); \ if(nhb <= HEADERBYTES-s_) \ memcpy(AVI_header+nhb, (d), s_); \ nhb += s_; \ }
#define OUTSHRT | ( | n | ) |
if(nhb<=HEADERBYTES-2) { \ AVI_header[nhb ] = (n )&0xff; \ AVI_header[nhb+1] = (n>>8)&0xff; \ } \ nhb += 2
static int avi_add_chunk | ( | struct avi_t * | AVI, |
BYTE * | tag, | ||
BYTE * | data, | ||
int | length | ||
) | [static] |
static int avi_add_index_entry | ( | struct avi_t * | AVI, |
BYTE * | tag, | ||
long | flags, | ||
long | pos, | ||
long | len | ||
) | [static] |
int AVI_append_audio | ( | struct avi_t * | AVI, |
BYTE * | data, | ||
long | bytes | ||
) |
ULONG AVI_bytes_remain | ( | struct avi_t * | AVI | ) |
ULONG AVI_bytes_written | ( | struct avi_t * | AVI | ) |
static int avi_close_output_file | ( | struct avi_t * | AVI | ) | [static] |
int AVI_dup_frame | ( | struct avi_t * | AVI | ) |
int AVI_getErrno | ( | ) |
int AVI_open_output_file | ( | struct avi_t * | AVI, |
const char * | filename | ||
) |
void AVI_print_error | ( | char * | str | ) |
static int avi_sampsize | ( | struct avi_t * | AVI, |
int | j | ||
) | [static] |
void AVI_set_audio | ( | struct avi_t * | AVI, |
int | channels, | ||
long | rate, | ||
int | mpgrate, | ||
int | bits, | ||
int | format | ||
) |
int AVI_set_audio_track | ( | struct avi_t * | AVI, |
int | track | ||
) |
void AVI_set_audio_vbr | ( | struct avi_t * | AVI, |
long | is_vbr | ||
) |
ULONG AVI_set_MAX_LEN | ( | ULONG | len | ) |
void AVI_set_video | ( | struct avi_t * | AVI, |
int | width, | ||
int | height, | ||
double | fps, | ||
char * | compressor | ||
) |
char* AVI_strerror | ( | ) |
static int avi_update_header | ( | struct avi_t * | AVI | ) | [static] |
int AVI_write_audio | ( | struct avi_t * | AVI, |
BYTE * | data, | ||
long | bytes | ||
) |
static int avi_write_data | ( | struct avi_t * | AVI, |
BYTE * | data, | ||
long | length, | ||
int | audio, | ||
int | keyframe | ||
) | [static] |
int AVI_write_frame | ( | struct avi_t * | AVI, |
BYTE * | data, | ||
long | bytes, | ||
int | keyframe | ||
) |
static void long2str | ( | unsigned char * | dst, |
int | n | ||
) | [static] |
char* avi_errors[] |
{ "avilib - No Error", "avilib - AVI file size limit reached", "avilib - Error opening AVI file", "avilib - Error reading from AVI file", "avilib - Error writing to AVI file", "avilib - Error writing index (file may still be useable)", "avilib - Error closing AVI file", "avilib - Operation (read/write) not permitted", "avilib - Out of memory (malloc failed)", "avilib - Not an AVI file", "avilib - AVI file has no header list (corrupted?)", "avilib - AVI file has no MOVI list (corrupted?)", "avilib - AVI file has no video data", "avilib - operation needs an index", "avilib - Unkown Error" }
char error_string[4096] [static] |
char id_str[MAX_INFO_STRLEN] [static] |
int num_avi_errors = sizeof(avi_errors)/sizeof(char*) [static] |