avidec.c File Reference
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "libavutil/bswap.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "libavutil/avstring.h"
#include "libavutil/avassert.h"
#include "avformat.h"
#include "internal.h"
#include "avi.h"
#include "dv.h"
#include "riff.h"
Include dependency graph for avidec.c:

Go to the source code of this file.

Data Structures

struct  AVIStream
 
struct  AVIContext
 

Macros

#define MAX_ODML_DEPTH   1000
 
#define print_tag(str, tag, size)
 

Typedefs

typedef struct AVIStream AVIStream
 

Functions

static int avi_load_index (AVFormatContext *s)
 
static int guess_ni_flag (AVFormatContext *s)
 
static int get_duration (AVIStream *ast, int len)
 
static int get_riff (AVFormatContext *s, AVIOContext *pb)
 
static int read_braindead_odml_indx (AVFormatContext *s, int frame_num)
 
static void clean_index (AVFormatContext *s)
 
static int avi_read_tag (AVFormatContext *s, AVStream *st, uint32_t tag, uint32_t size)
 
static void avi_metadata_creation_time (AVDictionary **metadata, char *date)
 
static void avi_read_nikon (AVFormatContext *s, uint64_t end)
 
static int avi_read_header (AVFormatContext *s)
 
static int read_gab2_sub (AVStream *st, AVPacket *pkt)
 
static AVStreamget_subtitle_pkt (AVFormatContext *s, AVStream *next_st, AVPacket *pkt)
 
static int get_stream_idx (int *d)
 
static int avi_sync (AVFormatContext *s, int exit_early)
 
static int avi_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int avi_read_idx1 (AVFormatContext *s, int size)
 
static void seek_subtitle (AVStream *st, AVStream *st2, int64_t timestamp)
 
static int avi_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 
static int avi_read_close (AVFormatContext *s)
 
static int avi_probe (AVProbeData *p)
 

Variables

static const AVOption options []
 
static const AVClass demuxer_class
 
static const char avi_headers [][8]
 
static const AVMetadataConv avi_metadata_conv []
 
static const char months [12][4]
 
AVInputFormat ff_avi_demuxer
 

Macro Definition Documentation

#define MAX_ODML_DEPTH   1000

Definition at line 75 of file avidec.c.

Referenced by read_braindead_odml_indx().

#define print_tag (   str,
  tag,
  size 
)
Value:
av_dlog(NULL, "%s: tag=%c%c%c%c size=0x%x\n", \
str, tag & 0xff, \
(tag >> 8) & 0xff, \
(tag >> 16) & 0xff, \
(tag >> 24) & 0xff, \
av_dlog(ac->avr,"%d samples - audio_convert: %s to %s (%s)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt), use_generic?ac->func_descr_generic:ac->func_descr)
uint32_t tag
Definition: movenc.c:894
int size
NULL
Definition: eval.c:55

Definition at line 111 of file avidec.c.

Referenced by avi_read_header().

Typedef Documentation

typedef struct AVIStream AVIStream

Function Documentation

static int avi_load_index ( AVFormatContext s)
static

Definition at line 1406 of file avidec.c.

Referenced by avi_read_header(), and avi_read_seek().

static void avi_metadata_creation_time ( AVDictionary **  metadata,
char *  date 
)
static

Definition at line 299 of file avidec.c.

Referenced by avi_read_header().

static int avi_probe ( AVProbeData p)
static

Definition at line 1591 of file avidec.c.

static int avi_read_close ( AVFormatContext s)
static

Definition at line 1568 of file avidec.c.

static int avi_read_header ( AVFormatContext s)
static

Definition at line 354 of file avidec.c.

static int avi_read_idx1 ( AVFormatContext s,
int  size 
)
static

Definition at line 1269 of file avidec.c.

Referenced by avi_load_index().

static void avi_read_nikon ( AVFormatContext s,
uint64_t  end 
)
static

Definition at line 318 of file avidec.c.

Referenced by avi_read_header().

static int avi_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 1061 of file avidec.c.

static int avi_read_seek ( AVFormatContext s,
int  stream_index,
int64_t  timestamp,
int  flags 
)
static

Definition at line 1462 of file avidec.c.

static int avi_read_tag ( AVFormatContext s,
AVStream st,
uint32_t  tag,
uint32_t  size 
)
static

Definition at line 275 of file avidec.c.

Referenced by avi_read_header().

static int avi_sync ( AVFormatContext s,
int  exit_early 
)
static
Parameters
exit_earlyset to 1 to just gather packet position without making the changes needed to actually read & return the packet

Definition at line 924 of file avidec.c.

Referenced by avi_read_idx1(), and avi_read_packet().

static void clean_index ( AVFormatContext s)
static

Definition at line 249 of file avidec.c.

Referenced by avi_read_header().

static int get_duration ( AVIStream ast,
int  len 
)
inlinestatic

Definition at line 119 of file avidec.c.

Referenced by avi_read_idx1(), avi_read_packet(), avi_sync(), and read_braindead_odml_indx().

static int get_riff ( AVFormatContext s,
AVIOContext pb 
)
static

Definition at line 128 of file avidec.c.

Referenced by avi_read_header().

static int get_stream_idx ( int *  d)
static

Definition at line 911 of file avidec.c.

Referenced by avi_sync().

static AVStream* get_subtitle_pkt ( AVFormatContext s,
AVStream next_st,
AVPacket pkt 
)
static

Definition at line 878 of file avidec.c.

Referenced by avi_read_packet().

static int guess_ni_flag ( AVFormatContext s)
static

Definition at line 1348 of file avidec.c.

Referenced by avi_read_header().

static int read_braindead_odml_indx ( AVFormatContext s,
int  frame_num 
)
static

Definition at line 152 of file avidec.c.

Referenced by avi_read_header().

static int read_gab2_sub ( AVStream st,
AVPacket pkt 
)
static

Definition at line 830 of file avidec.c.

Referenced by avi_read_packet().

static void seek_subtitle ( AVStream st,
AVStream st2,
int64_t  timestamp 
)
static

Definition at line 1452 of file avidec.c.

Referenced by avi_read_seek().

Variable Documentation

const char avi_headers[][8]
static
Initial value:
= {
{ 'R', 'I', 'F', 'F', 'A', 'V', 'I', ' ' },
{ 'R', 'I', 'F', 'F', 'A', 'V', 'I', 'X' },
{ 'R', 'I', 'F', 'F', 'A', 'V', 'I', 0x19},
{ 'O', 'N', '2', ' ', 'O', 'N', '2', 'f' },
{ 'R', 'I', 'F', 'F', 'A', 'M', 'V', ' ' },
{ 0 }
}

Definition at line 94 of file avidec.c.

Referenced by avi_probe(), and get_riff().

const AVMetadataConv avi_metadata_conv[]
static
Initial value:
= {
{ "strn", "title" },
{ 0 },
}

Definition at line 103 of file avidec.c.

const AVClass demuxer_class
static
Initial value:
= {
.class_name = "avi",
.item_name = av_default_item_name,
.option = options,
}
av_default_item_name
LIBAVUTIL_VERSION_INT
Definition: eval.c:55
static const AVOption options[]
Definition: avidec.c:80

Definition at line 85 of file avidec.c.

AVInputFormat ff_avi_demuxer
Initial value:
= {
.name = "avi",
.long_name = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
.priv_data_size = sizeof(AVIContext),
.priv_class = &demuxer_class,
}
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition: libcdio.c:153
static int avi_read_close(AVFormatContext *s)
Definition: avidec.c:1568
static av_cold int read_close(AVFormatContext *ctx)
Definition: libcdio.c:145
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static int read_probe(AVProbeData *pd)
static int avi_read_header(AVFormatContext *s)
Definition: avidec.c:354
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:517
static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: avidec.c:1061
static int read_packet(AVFormatContext *ctx, AVPacket *pkt)
Definition: libcdio.c:114
static int avi_probe(AVProbeData *p)
Definition: avidec.c:1591
static const AVClass demuxer_class
Definition: avidec.c:85
static int avi_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
Definition: avidec.c:1462

Definition at line 1604 of file avidec.c.

const char months[12][4]
static
Initial value:
= { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }

Definition at line 296 of file avidec.c.

Referenced by avi_metadata_creation_time().

const AVOption options[]
static
Initial value:
= {
{ "use_odml", "use odml index", offsetof(AVIContext, use_odml), AV_OPT_TYPE_INT, {.i64 = 1}, -1, 1, AV_OPT_FLAG_DECODING_PARAM},
{ NULL },
}
NULL
Definition: eval.c:55
#define AV_OPT_FLAG_DECODING_PARAM
a generic parameter which can be set by the user for demuxing or decoding
Definition: opt.h:282

Definition at line 80 of file avidec.c.