FFmpeg
Loading...
Searching...
No Matches
asfdec_o.c File Reference
#include "libavutil/attributes.h"
#include "libavutil/common.h"
#include "libavutil/dict.h"
#include "libavutil/internal.h"
#include "libavutil/mathematics.h"
#include "libavutil/mem.h"
#include "avformat.h"
#include "avlanguage.h"
#include "demux.h"
#include "internal.h"
#include "riff.h"
#include "asf.h"
#include "asfcrypt.h"

Go to the source code of this file.

Data Structures

struct  GUIDParseTable
 
struct  ASFPacket
 
struct  ASFStream
 
struct  ASFStreamData
 
struct  ASFContext
 

Macros

#define ASF_FLAG_BROADCAST   0x1
 
#define ASF_TYPE_AUDIO   0x2
 
#define ASF_TYPE_VIDEO   0x1
 
#define ASF_STREAM_NUM   0x7F
 
#define ASF_MAX_STREAMS   128
 
#define BMP_HEADER_SIZE   40
 
#define ASF_NUM_OF_PAYLOADS   0x3F
 
#define ASF_ERROR_CORRECTION_LENGTH_TYPE   0x60
 
#define ASF_PACKET_ERROR_CORRECTION_DATA_SIZE   0x2
 
#define READ_LEN(flag, name, len)
 

Functions

static int detect_unknown_subobject (AVFormatContext *s, int64_t offset, int64_t size)
 
static const GUIDParseTablefind_guid (ff_asf_guid guid)
 
static int asf_probe (const AVProbeData *pd)
 
static void swap_guid (ff_asf_guid guid)
 
static void align_position (AVIOContext *pb, int64_t offset, uint64_t size)
 
static int asf_read_unknown (AVFormatContext *s, const GUIDParseTable *g)
 
static int get_asf_string (AVIOContext *pb, int maxlen, char *buf, int buflen)
 
static int asf_read_marker (AVFormatContext *s, const GUIDParseTable *g)
 
static int asf_read_metadata (AVFormatContext *s, const char *title, uint16_t len, unsigned char *ch, uint16_t buflen)
 
static int asf_read_value (AVFormatContext *s, const uint8_t *name, uint16_t val_len, int type, AVDictionary **met)
 
static int asf_read_generic_value (AVIOContext *pb, int type, uint64_t *value)
 
static int asf_set_metadata (AVFormatContext *s, const uint8_t *name, int type, AVDictionary **met)
 
static int process_metadata (AVFormatContext *s, const uint8_t *name, uint16_t name_len, uint16_t val_len, uint16_t type, AVDictionary **met)
 
static int asf_read_ext_content (AVFormatContext *s, const GUIDParseTable *g)
 
static AVStreamfind_stream (AVFormatContext *s, uint16_t st_num)
 
static int asf_store_aspect_ratio (AVFormatContext *s, uint8_t st_num, uint8_t *name, int type)
 
static int asf_read_metadata_obj (AVFormatContext *s, const GUIDParseTable *g)
 
static int asf_read_content_desc (AVFormatContext *s, const GUIDParseTable *g)
 
static int asf_read_properties (AVFormatContext *s, const GUIDParseTable *g)
 
static int parse_video_info (AVFormatContext *avfmt, AVIOContext *pb, AVStream *st)
 
static int asf_read_stream_properties (AVFormatContext *s, const GUIDParseTable *g)
 
static void set_language (AVFormatContext *s, const char *rfc1766, AVDictionary **met)
 
static int asf_read_ext_stream_properties (AVFormatContext *s, const GUIDParseTable *g)
 
static int asf_read_language_list (AVFormatContext *s, const GUIDParseTable *g)
 
static int asf_read_data (AVFormatContext *s, const GUIDParseTable *g)
 
static int asf_read_simple_index (AVFormatContext *s, const GUIDParseTable *g)
 
static int asf_read_subpayload (AVFormatContext *s, AVPacket *pkt, int is_header)
 
static void reset_packet (ASFPacket *asf_pkt)
 
static int asf_read_replicated_data (AVFormatContext *s, ASFPacket *asf_pkt)
 
static int asf_read_multiple_payload (AVFormatContext *s, AVPacket *pkt, ASFPacket *asf_pkt)
 
static int asf_read_single_payload (AVFormatContext *s, ASFPacket *asf_pkt)
 
static int asf_read_payload (AVFormatContext *s, AVPacket *pkt)
 
static int asf_read_packet_header (AVFormatContext *s)
 
static int asf_deinterleave (AVFormatContext *s, ASFPacket *asf_pkt, int st_num)
 
static int asf_read_packet (AVFormatContext *s, AVPacket *pkt)
 
static int asf_read_close (AVFormatContext *s)
 
static void reset_packet_state (AVFormatContext *s)
 
static int64_t asf_read_timestamp (AVFormatContext *s, int stream_index, int64_t *pos, int64_t pos_limit)
 
static int asf_read_seek (AVFormatContext *s, int stream_index, int64_t timestamp, int flags)
 
static int asf_read_header (AVFormatContext *s)
 

Variables

static const GUIDParseTable gdef []
 
const FFInputFormat ff_asf_o_demuxer
 

Macro Definition Documentation

◆ ASF_FLAG_BROADCAST

#define ASF_FLAG_BROADCAST   0x1

Definition at line 37 of file asfdec_o.c.

Referenced by asf_read_data(), asf_read_header(), asf_read_packet(), and asf_read_properties().

◆ ASF_TYPE_AUDIO

#define ASF_TYPE_AUDIO   0x2

Definition at line 38 of file asfdec_o.c.

◆ ASF_TYPE_VIDEO

#define ASF_TYPE_VIDEO   0x1

Definition at line 39 of file asfdec_o.c.

◆ ASF_STREAM_NUM

#define ASF_STREAM_NUM   0x7F

◆ ASF_MAX_STREAMS

#define ASF_MAX_STREAMS   128

Definition at line 41 of file asfdec_o.c.

◆ BMP_HEADER_SIZE

#define BMP_HEADER_SIZE   40

Definition at line 42 of file asfdec_o.c.

Referenced by parse_video_info().

◆ ASF_NUM_OF_PAYLOADS

#define ASF_NUM_OF_PAYLOADS   0x3F

Definition at line 43 of file asfdec_o.c.

Referenced by asf_read_packet_header().

◆ ASF_ERROR_CORRECTION_LENGTH_TYPE

#define ASF_ERROR_CORRECTION_LENGTH_TYPE   0x60

Definition at line 44 of file asfdec_o.c.

Referenced by asf_read_packet_header().

◆ ASF_PACKET_ERROR_CORRECTION_DATA_SIZE

#define ASF_PACKET_ERROR_CORRECTION_DATA_SIZE   0x2

Definition at line 45 of file asfdec_o.c.

Referenced by asf_read_packet_header(), and put_payload_parsing_info().

◆ READ_LEN

#define READ_LEN ( flag,
name,
len )
Value:
do { \
if ((flag) == name ## IS_BYTE) \
len = avio_r8(pb); \
else if ((flag) == name ## IS_WORD) \
len = avio_rl16(pb); \
else if ((flag) == name ## IS_DWORD) \
len = avio_rl32(pb); \
else \
len = 0; \
} while(0)
unsigned int avio_rl16(AVIOContext *s)
Definition aviobuf.c:717
unsigned int avio_rl32(AVIOContext *s)
Definition aviobuf.c:733
int avio_r8(AVIOContext *s)
Definition aviobuf.c:606
#define flag(name)
Definition cbs_h264.c:60
const char * name
Definition qsvenc.c:142
int len

Definition at line 936 of file asfdec_o.c.

Referenced by asf_read_packet_header(), and asf_read_payload().

Function Documentation

◆ detect_unknown_subobject()

static int detect_unknown_subobject ( AVFormatContext * s,
int64_t offset,
int64_t size )
static

Definition at line 1539 of file asfdec_o.c.

Referenced by asf_read_unknown().

◆ find_guid()

static const GUIDParseTable * find_guid ( ff_asf_guid guid)
static

◆ asf_probe()

static int asf_probe ( const AVProbeData * pd)
static

Definition at line 140 of file asfdec_o.c.

◆ swap_guid()

static void swap_guid ( ff_asf_guid guid)
static

Definition at line 149 of file asfdec_o.c.

Referenced by find_guid().

◆ align_position()

◆ asf_read_unknown()

static int asf_read_unknown ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 163 of file asfdec_o.c.

Referenced by detect_unknown_subobject().

◆ get_asf_string()

static int get_asf_string ( AVIOContext * pb,
int maxlen,
char * buf,
int buflen )
static

Definition at line 196 of file asfdec_o.c.

Referenced by asf_read_language_list(), and asf_read_value().

◆ asf_read_marker()

static int asf_read_marker ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 213 of file asfdec_o.c.

◆ asf_read_metadata()

static int asf_read_metadata ( AVFormatContext * s,
const char * title,
uint16_t len,
unsigned char * ch,
uint16_t buflen )
static

Definition at line 255 of file asfdec_o.c.

Referenced by asf_read_content_desc().

◆ asf_read_value()

static int asf_read_value ( AVFormatContext * s,
const uint8_t * name,
uint16_t val_len,
int type,
AVDictionary ** met )
static

Definition at line 269 of file asfdec_o.c.

Referenced by process_metadata().

◆ asf_read_generic_value()

static int asf_read_generic_value ( AVIOContext * pb,
int type,
uint64_t * value )
static

Definition at line 310 of file asfdec_o.c.

Referenced by asf_set_metadata(), and asf_store_aspect_ratio().

◆ asf_set_metadata()

static int asf_set_metadata ( AVFormatContext * s,
const uint8_t * name,
int type,
AVDictionary ** met )
static

Definition at line 333 of file asfdec_o.c.

Referenced by process_metadata().

◆ process_metadata()

static int process_metadata ( AVFormatContext * s,
const uint8_t * name,
uint16_t name_len,
uint16_t val_len,
uint16_t type,
AVDictionary ** met )
static

Definition at line 352 of file asfdec_o.c.

Referenced by asf_read_ext_content(), and asf_read_metadata_obj().

◆ asf_read_ext_content()

static int asf_read_ext_content ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 380 of file asfdec_o.c.

◆ find_stream()

static AVStream * find_stream ( AVFormatContext * s,
uint16_t st_num )
static

Definition at line 417 of file asfdec_o.c.

Referenced by asf_read_header().

◆ asf_store_aspect_ratio()

static int asf_store_aspect_ratio ( AVFormatContext * s,
uint8_t st_num,
uint8_t * name,
int type )
static

Definition at line 433 of file asfdec_o.c.

Referenced by asf_read_metadata_obj().

◆ asf_read_metadata_obj()

static int asf_read_metadata_obj ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 453 of file asfdec_o.c.

◆ asf_read_content_desc()

static int asf_read_content_desc ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 501 of file asfdec_o.c.

◆ asf_read_properties()

static int asf_read_properties ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 530 of file asfdec_o.c.

◆ parse_video_info()

static int parse_video_info ( AVFormatContext * avfmt,
AVIOContext * pb,
AVStream * st )
static

Definition at line 557 of file asfdec_o.c.

Referenced by asf_read_stream_properties().

◆ asf_read_stream_properties()

static int asf_read_stream_properties ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 581 of file asfdec_o.c.

◆ set_language()

static void set_language ( AVFormatContext * s,
const char * rfc1766,
AVDictionary ** met )
static

Definition at line 687 of file asfdec_o.c.

Referenced by asf_read_header(), and parse_mca_labels().

◆ asf_read_ext_stream_properties()

static int asf_read_ext_stream_properties ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 700 of file asfdec_o.c.

◆ asf_read_language_list()

static int asf_read_language_list ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 770 of file asfdec_o.c.

◆ asf_read_data()

static int asf_read_data ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 796 of file asfdec_o.c.

◆ asf_read_simple_index()

static int asf_read_simple_index ( AVFormatContext * s,
const GUIDParseTable * g )
static

Definition at line 832 of file asfdec_o.c.

◆ asf_read_subpayload()

static int asf_read_subpayload ( AVFormatContext * s,
AVPacket * pkt,
int is_header )
static

Definition at line 948 of file asfdec_o.c.

Referenced by asf_read_multiple_payload(), and asf_read_payload().

◆ reset_packet()

static void reset_packet ( ASFPacket * asf_pkt)
static

Definition at line 1003 of file asfdec_o.c.

Referenced by asf_read_payload(), and reset_packet_state().

◆ asf_read_replicated_data()

static int asf_read_replicated_data ( AVFormatContext * s,
ASFPacket * asf_pkt )
static

Definition at line 1013 of file asfdec_o.c.

Referenced by asf_read_multiple_payload().

◆ asf_read_multiple_payload()

static int asf_read_multiple_payload ( AVFormatContext * s,
AVPacket * pkt,
ASFPacket * asf_pkt )
static

Definition at line 1035 of file asfdec_o.c.

Referenced by asf_read_payload().

◆ asf_read_single_payload()

static int asf_read_single_payload ( AVFormatContext * s,
ASFPacket * asf_pkt )
static

Definition at line 1086 of file asfdec_o.c.

Referenced by asf_read_payload().

◆ asf_read_payload()

static int asf_read_payload ( AVFormatContext * s,
AVPacket * pkt )
static

Definition at line 1138 of file asfdec_o.c.

Referenced by asf_read_packet().

◆ asf_read_packet_header()

static int asf_read_packet_header ( AVFormatContext * s)
static

Definition at line 1218 of file asfdec_o.c.

Referenced by asf_read_packet().

◆ asf_deinterleave()

static int asf_deinterleave ( AVFormatContext * s,
ASFPacket * asf_pkt,
int st_num )
static

Definition at line 1255 of file asfdec_o.c.

Referenced by asf_read_packet().

◆ asf_read_packet()

static int asf_read_packet ( AVFormatContext * s,
AVPacket * pkt )
static

Definition at line 1301 of file asfdec_o.c.

Referenced by asf_read_timestamp().

◆ asf_read_close()

static int asf_read_close ( AVFormatContext * s)
static

Definition at line 1385 of file asfdec_o.c.

Referenced by asf_read_header().

◆ reset_packet_state()

static void reset_packet_state ( AVFormatContext * s)
static

Definition at line 1402 of file asfdec_o.c.

Referenced by asf_read_seek(), and asf_read_timestamp().

◆ asf_read_timestamp()

static int64_t asf_read_timestamp ( AVFormatContext * s,
int stream_index,
int64_t * pos,
int64_t pos_limit )
static

Definition at line 1438 of file asfdec_o.c.

◆ asf_read_seek()

static int asf_read_seek ( AVFormatContext * s,
int stream_index,
int64_t timestamp,
int flags )
static

Definition at line 1500 of file asfdec_o.c.

◆ asf_read_header()

static int asf_read_header ( AVFormatContext * s)
static

Definition at line 1572 of file asfdec_o.c.

Variable Documentation

◆ gdef

const GUIDParseTable gdef[]
static

Definition at line 886 of file asfdec_o.c.

Referenced by find_guid().

◆ ff_asf_o_demuxer

const FFInputFormat ff_asf_o_demuxer
Initial value:
= {
.p.name = "asf_o",
.p.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
.priv_data_size = sizeof(ASFContext),
}
static int asf_read_header(AVFormatContext *s)
Definition asfdec_f.c:700
static int asf_read_packet(AVFormatContext *s, AVPacket *pkt)
Definition asfdec_f.c:1369
static int asf_probe(const AVProbeData *pd)
Definition asfdec_f.c:196
static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int flags)
Definition asfdec_f.c:1570
static int asf_read_close(AVFormatContext *s)
Definition asfdec_f.c:1437
static int64_t asf_read_timestamp(AVFormatContext *s, int stream_index, int64_t *pos, int64_t pos_limit)
Definition asfdec_o.c:1438
#define AVFMT_NOGENSEARCH
Format does not allow to fall back on generic search.
Definition avformat.h:505
#define AVFMT_NOBINSEARCH
Format does not allow to fall back on binary search via read_timestamp.
Definition avformat.h:504
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
static int read_probe(const AVProbeData *p)
Definition cdg.c:30
static int read_header(FFV1Context *f, RangeCoder *c)
Definition ffv1dec.c:578
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition internal.h:88
static av_cold int read_close(AVFormatContext *ctx)
Definition libcdio.c:143
static int read_seek(AVFormatContext *ctx, int stream_index, int64_t timestamp, int flags)
Definition libcdio.c:151
static int64_t read_timestamp(AVFormatContext *s, int stream_index, int64_t *ppos, int64_t pos_limit, int64_t(*read_timestamp)(struct AVFormatContext *, int, int64_t *, int64_t))
Definition seek.c:281

Definition at line 1655 of file asfdec_o.c.