Libav
Data Structures | Macros | Functions | Variables
asfdec.c File Reference
#include <inttypes.h>
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/avstring.h"
#include "libavutil/bswap.h"
#include "libavutil/common.h"
#include "libavutil/dict.h"
#include "libavutil/internal.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "avformat.h"
#include "avio_internal.h"
#include "avlanguage.h"
#include "id3v2.h"
#include "internal.h"
#include "riff.h"
#include "asf.h"
#include "asfcrypt.h"
#include <assert.h>

Go to the source code of this file.

Data Structures

struct  ASFContext
 

Macros

#define ASF_MAX_STREAMS   127
 
#define FRAME_HEADER_SIZE   17
 
#define print_guid(g)
 
#define DO_2BITS(bits, var, defval)
 

Functions

static int asf_probe (AVProbeData *pd)
 
static int get_value (AVIOContext *pb, int type, int type2_size)
 
static int asf_read_picture (AVFormatContext *s, int len)
 
static void get_id3_tag (AVFormatContext *s, int len)
 
static void get_tag (AVFormatContext *s, const char *key, int type, int len, int type2_size)
 
static int asf_read_file_properties (AVFormatContext *s, int64_t size)
 
static int asf_read_stream_properties (AVFormatContext *s, int64_t size)
 
static int asf_read_ext_stream_properties (AVFormatContext *s, int64_t size)
 
static int asf_read_content_desc (AVFormatContext *s, int64_t size)
 
static int asf_read_ext_content_desc (AVFormatContext *s, int64_t size)
 
static int asf_read_language_list (AVFormatContext *s, int64_t size)
 
static int asf_read_metadata (AVFormatContext *s, int64_t size)
 
static int asf_read_marker (AVFormatContext *s, int64_t size)
 
static int asf_read_header (AVFormatContext *s)
 
static int asf_get_packet (AVFormatContext *s, AVIOContext *pb)
 Load a single ASF packet into the demuxer. More...
 
static int asf_read_frame_header (AVFormatContext *s, AVIOContext *pb)
 
static int asf_parse_packet (AVFormatContext *s, AVIOContext *pb, AVPacket *pkt)
 Parse data from individual ASF packets (which were previously loaded with asf_get_packet()). More...
 
static int asf_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static void asf_reset_header (AVFormatContext *s)
 
static int asf_read_close (AVFormatContext *s)
 
static int64_t asf_read_pts (AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit)
 
static int asf_build_simple_index (AVFormatContext *s, int stream_index)
 
static int asf_read_seek (AVFormatContext *s, int stream_index, int64_t pts, int flags)
 

Variables

static const AVOption options []
 
static const AVClass asf_class
 
static const ff_asf_guid index_guid
 
AVInputFormat ff_asf_demuxer
 

Macro Definition Documentation

§ ASF_MAX_STREAMS

#define ASF_MAX_STREAMS   127

Definition at line 100 of file asfdec.c.

Referenced by asf_read_pts(), and asf_read_stream_properties().

§ FRAME_HEADER_SIZE

#define FRAME_HEADER_SIZE   17

Definition at line 101 of file asfdec.c.

Referenced by asf_parse_packet(), and asf_read_packet().

§ print_guid

#define print_guid (   g)

Definition at line 153 of file asfdec.c.

Referenced by asf_read_header().

§ DO_2BITS

#define DO_2BITS (   bits,
  var,
  defval 
)
Value:
switch (bits & 3) { \
case 3: \
var = avio_rl32(pb); \
rsize += 4; \
break; \
case 2: \
var = avio_rl16(pb); \
rsize += 2; \
break; \
case 1: \
var = avio_r8(pb); \
rsize++; \
break; \
default: \
var = defval; \
break; \
}
uint8_t bits
Definition: crc.c:251
unsigned int avio_rl32(AVIOContext *s)
Definition: aviobuf.c:564
int avio_r8(AVIOContext *s)
Definition: aviobuf.c:443
unsigned int avio_rl16(AVIOContext *s)
Definition: aviobuf.c:548

Definition at line 844 of file asfdec.c.

Referenced by asf_get_packet(), and asf_read_frame_header().

Function Documentation

§ asf_probe()

static int asf_probe ( AVProbeData pd)
static

Definition at line 156 of file asfdec.c.

§ get_value()

static int get_value ( AVIOContext pb,
int  type,
int  type2_size 
)
static

Definition at line 167 of file asfdec.c.

Referenced by asf_read_ext_content_desc(), asf_read_metadata(), and get_tag().

§ asf_read_picture()

static int asf_read_picture ( AVFormatContext s,
int  len 
)
static

Definition at line 185 of file asfdec.c.

Referenced by get_tag().

§ get_id3_tag()

static void get_id3_tag ( AVFormatContext s,
int  len 
)
static

Definition at line 272 of file asfdec.c.

Referenced by get_tag().

§ get_tag()

static void get_tag ( AVFormatContext s,
const char *  key,
int  type,
int  len,
int  type2_size 
)
static

Definition at line 282 of file asfdec.c.

Referenced by asf_read_content_desc(), asf_read_ext_content_desc(), and asf_read_metadata().

§ asf_read_file_properties()

static int asf_read_file_properties ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 324 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_stream_properties()

static int asf_read_stream_properties ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 348 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_ext_stream_properties()

static int asf_read_ext_stream_properties ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 514 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_content_desc()

static int asf_read_content_desc ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 562 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_ext_content_desc()

static int asf_read_ext_content_desc ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 581 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_language_list()

static int asf_read_language_list ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 615 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_metadata()

static int asf_read_metadata ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 635 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_marker()

static int asf_read_marker ( AVFormatContext s,
int64_t  size 
)
static

Definition at line 674 of file asfdec.c.

Referenced by asf_read_header().

§ asf_read_header()

static int asf_read_header ( AVFormatContext s)
static

Definition at line 710 of file asfdec.c.

§ asf_get_packet()

static int asf_get_packet ( AVFormatContext s,
AVIOContext pb 
)
static

Load a single ASF packet into the demuxer.

Parameters
sdemux context
pbcontext to read data from
Returns
0 on success, <0 on error

Definition at line 869 of file asfdec.c.

Referenced by asf_read_packet().

§ asf_read_frame_header()

static int asf_read_frame_header ( AVFormatContext s,
AVIOContext pb 
)
static
Returns
<0 if error

Definition at line 968 of file asfdec.c.

Referenced by asf_parse_packet().

§ asf_parse_packet()

static int asf_parse_packet ( AVFormatContext s,
AVIOContext pb,
AVPacket pkt 
)
static

Parse data from individual ASF packets (which were previously loaded with asf_get_packet()).

Parameters
sdemux context
pbcontext to read data from
pktpointer to store packet data into
Returns
0 if data was stored in pkt, <0 on error or 1 if more ASF packets need to be loaded (through asf_get_packet())

Definition at line 1061 of file asfdec.c.

Referenced by asf_read_packet().

§ asf_read_packet()

static int asf_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 1287 of file asfdec.c.

Referenced by asf_read_pts().

§ asf_reset_header()

static void asf_reset_header ( AVFormatContext s)
static

Definition at line 1307 of file asfdec.c.

Referenced by asf_read_close(), asf_read_pts(), and asf_read_seek().

§ asf_read_close()

static int asf_read_close ( AVFormatContext s)
static

Definition at line 1343 of file asfdec.c.

§ asf_read_pts()

static int64_t asf_read_pts ( AVFormatContext s,
int  stream_index,
int64_t *  ppos,
int64_t  pos_limit 
)
static

Definition at line 1350 of file asfdec.c.

§ asf_build_simple_index()

static int asf_build_simple_index ( AVFormatContext s,
int  stream_index 
)
static

Definition at line 1402 of file asfdec.c.

Referenced by asf_read_seek().

§ asf_read_seek()

static int asf_read_seek ( AVFormatContext s,
int  stream_index,
int64_t  pts,
int  flags 
)
static

Definition at line 1460 of file asfdec.c.

Variable Documentation

§ options

const AVOption options[]
static
Initial value:
= {
{ "no_resync_search", "Don't try to resynchronize by looking for a certain optional start code", 0x42, AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 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:265

Definition at line 85 of file asfdec.c.

§ asf_class

const AVClass asf_class
static
Initial value:
= {
.class_name = "asf demuxer",
.item_name = av_default_item_name,
.option = options,
}
static const AVOption options[]
Definition: asfdec.c:85
LIBAVUTIL_VERSION_INT
Definition: eval.c:55
av_default_item_name
Definition: dnxhdenc.c:52

Definition at line 90 of file asfdec.c.

§ index_guid

const ff_asf_guid index_guid
static
Initial value:
= {
0x90, 0x08, 0x00, 0x33, 0xb1, 0xe5, 0xcf, 0x11, 0x89, 0xf4, 0x00, 0xa0, 0xc9, 0x03, 0x49, 0xcb
}

Definition at line 104 of file asfdec.c.

Referenced by asf_build_simple_index().

§ ff_asf_demuxer

AVInputFormat ff_asf_demuxer
Initial value:
= {
.name = "asf",
.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
.priv_data_size = sizeof(ASFContext),
.read_timestamp = asf_read_pts,
.priv_class = &asf_class,
}
#define AVFMT_NOBINSEARCH
Format does not allow to fall back on binary search via read_timestamp.
Definition: avformat.h:422
static const AVClass asf_class
Definition: asfdec.c:90
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition: libcdio.c:153
static int flags
Definition: log.c:44
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. ...
Definition: internal.h:145
static int asf_read_header(AVFormatContext *s)
Definition: asfdec.c:710
static int read_probe(AVProbeData *pd)
Definition: jvdec.c:55
static int asf_probe(AVProbeData *pd)
Definition: asfdec.c:156
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:544
static int64_t asf_read_pts(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit)
Definition: asfdec.c:1350
static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int flags)
Definition: asfdec.c:1460
#define AVFMT_NOGENSEARCH
Format does not allow to fall back on generic search.
Definition: avformat.h:423
static int read_packet(AVFormatContext *ctx, AVPacket *pkt)
Definition: libcdio.c:114
static int asf_read_close(AVFormatContext *s)
Definition: asfdec.c:1343
static int asf_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition: asfdec.c:1287

Definition at line 1510 of file asfdec.c.

Referenced by ff_wms_parse_sdp_a_line().