#include "libavutil/intreadwrite.h"
#include "libavutil/intfloat.h"
#include "avformat.h"
#include "internal.h"
#include "wtv.h"
#include "mpegts.h"
#include <strings.h>
Go to the source code of this file.
Data Structures | |
struct | WtvFile |
struct | WtvStream |
struct | WtvContext |
Defines | |
#define | PRI_PRETTY_GUID "%08x-%04x-%04x-%02x%02x%02x%02x%02x%02x%02x%02x" |
#define | ARG_PRETTY_GUID(g) AV_RL32(g),AV_RL16(g+4),AV_RL16(g+6),g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15] |
#define | LEN_PRETTY_GUID 34 |
#define | wtvfile_open(s, buf, buf_size, filename) wtvfile_open2(s, buf, buf_size, filename, sizeof(filename)) |
Enumerations | |
enum | { SEEK_TO_DATA = 0, SEEK_TO_PTS } |
Functions | |
static int | wtvfile_read_packet (void *opaque, uint8_t *buf, int buf_size) |
static int64_t | wtvfile_seek (void *opaque, int64_t offset, int whence) |
static int | read_ints (AVIOContext *pb, uint32_t *data, int count) |
read non-zero integers (le32) from input stream | |
static AVIOContext * | wtvfile_open_sector (int first_sector, uint64_t length, int depth, AVFormatContext *s) |
Open file. | |
static AVIOContext * | wtvfile_open2 (AVFormatContext *s, const uint8_t *buf, int buf_size, const uint8_t *filename, int filename_size) |
Open file using filename. | |
static void | wtvfile_close (AVIOContext *pb) |
Close file opened with wtvfile_open_sector(), or wtv_open(). | |
static int | read_probe (AVProbeData *p) |
static void | filetime_to_iso8601 (char *buf, int buf_size, int64_t value) |
Convert win32 FILETIME to ISO-8601 string. | |
static void | crazytime_to_iso8601 (char *buf, int buf_size, int64_t value) |
Convert crazy time (100ns since 1 Jan 0001) to ISO-8601 string. | |
static int | oledate_to_iso8601 (char *buf, int buf_size, int64_t value) |
Convert OLE DATE to ISO-8601 string. | |
static void | get_attachment (AVFormatContext *s, AVIOContext *pb, int length) |
static void | get_tag (AVFormatContext *s, AVIOContext *pb, const char *key, int type, int length) |
static void | parse_legacy_attrib (AVFormatContext *s, AVIOContext *pb) |
Parse metadata entries. | |
static int | parse_videoinfoheader2 (AVFormatContext *s, AVStream *st) |
parse VIDEOINFOHEADER2 structure | |
static void | parse_mpeg1waveformatex (AVStream *st) |
Parse MPEG1WAVEFORMATEX extradata structure. | |
static AVStream * | new_stream (AVFormatContext *s, AVStream *st, int sid, int codec_type) |
Initialise stream. | |
static AVStream * | parse_media_type (AVFormatContext *s, AVStream *st, int sid, ff_asf_guid mediatype, ff_asf_guid subtype, ff_asf_guid formattype, int size) |
parse Media Type structure and populate stream | |
static int | parse_chunks (AVFormatContext *s, int mode, int64_t seekts, int *len_ptr) |
Parse WTV chunks. | |
static int | read_header (AVFormatContext *s) |
static int | read_packet (AVFormatContext *s, AVPacket *pkt) |
static int | read_seek (AVFormatContext *s, int stream_index, int64_t ts, int flags) |
static int | read_close (AVFormatContext *s) |
Variables | |
static const ff_asf_guid | EVENTID_SubtitleSpanningEvent |
static const ff_asf_guid | EVENTID_LanguageSpanningEvent |
static const ff_asf_guid | EVENTID_AudioDescriptorSpanningEvent |
static const ff_asf_guid | EVENTID_CtxADescriptorSpanningEvent |
static const ff_asf_guid | EVENTID_CSDescriptorSpanningEvent |
static const ff_asf_guid | EVENTID_DVBScramblingControlSpanningEvent |
static const ff_asf_guid | EVENTID_StreamIDSpanningEvent |
static const ff_asf_guid | EVENTID_TeletextSpanningEvent |
static const ff_asf_guid | EVENTID_AudioTypeSpanningEvent |
static const ff_asf_guid | mediasubtype_mpeg1payload |
static const ff_asf_guid | mediatype_mpeg2_sections |
static const ff_asf_guid | mediatype_mpeg2_pes |
static const ff_asf_guid | mediatype_mstvcaption |
static const ff_asf_guid | mediasubtype_dvb_subtitle |
static const ff_asf_guid | mediasubtype_teletext |
static const ff_asf_guid | mediasubtype_dtvccdata |
static const ff_asf_guid | mediasubtype_mpeg2_sections |
static const ff_asf_guid | format_videoinfo2 |
AVInputFormat | ff_wtv_demuxer |
Definition in file wtvdec.c.
#define PRI_PRETTY_GUID "%08x-%04x-%04x-%02x%02x%02x%02x%02x%02x%02x%02x" |
#define wtvfile_open | ( | s, | |||
buf, | |||||
buf_size, | |||||
filename | ) | wtvfile_open2(s, buf, buf_size, filename, sizeof(filename)) |
static void crazytime_to_iso8601 | ( | char * | buf, | |
int | buf_size, | |||
int64_t | value | |||
) | [static] |
static void filetime_to_iso8601 | ( | char * | buf, | |
int | buf_size, | |||
int64_t | value | |||
) | [static] |
static void get_attachment | ( | AVFormatContext * | s, | |
AVIOContext * | pb, | |||
int | length | |||
) | [static] |
static void get_tag | ( | AVFormatContext * | s, | |
AVIOContext * | pb, | |||
const char * | key, | |||
int | type, | |||
int | length | |||
) | [static] |
static AVStream* new_stream | ( | AVFormatContext * | s, | |
AVStream * | st, | |||
int | sid, | |||
int | codec_type | |||
) | [static] |
Initialise stream.
st | Stream to initialise, or NULL to create and initialise new stream |
Definition at line 556 of file wtvdec.c.
Referenced by parse_media_type().
static int oledate_to_iso8601 | ( | char * | buf, | |
int | buf_size, | |||
int64_t | value | |||
) | [static] |
static int parse_chunks | ( | AVFormatContext * | s, | |
int | mode, | |||
int64_t | seekts, | |||
int * | len_ptr | |||
) | [static] |
Parse WTV chunks.
mode | SEEK_TO_DATA or SEEK_TO_PTS | |
seekts | timestamp | |
[out] | len_ptr | Length of data chunk |
Definition at line 711 of file wtvdec.c.
Referenced by read_header(), read_packet(), and read_seek().
static void parse_legacy_attrib | ( | AVFormatContext * | s, | |
AVIOContext * | pb | |||
) | [static] |
static AVStream* parse_media_type | ( | AVFormatContext * | s, | |
AVStream * | st, | |||
int | sid, | |||
ff_asf_guid | mediatype, | |||
ff_asf_guid | subtype, | |||
ff_asf_guid | formattype, | |||
int | size | |||
) | [static] |
parse Media Type structure and populate stream
st | Stream, or NULL to create new stream | |
mediatype | Mediatype GUID | |
subtype | Subtype GUID | |
formattype | Format GUID | |
size | Size of format buffer |
Definition at line 588 of file wtvdec.c.
Referenced by parse_chunks().
static void parse_mpeg1waveformatex | ( | AVStream * | st | ) | [static] |
Parse MPEG1WAVEFORMATEX extradata structure.
Definition at line 533 of file wtvdec.c.
Referenced by parse_media_type().
static int parse_videoinfoheader2 | ( | AVFormatContext * | s, | |
AVStream * | st | |||
) | [static] |
parse VIDEOINFOHEADER2 structure
Definition at line 519 of file wtvdec.c.
Referenced by parse_media_type().
static int read_close | ( | AVFormatContext * | s | ) | [static] |
static int read_header | ( | AVFormatContext * | s | ) | [static] |
static int read_ints | ( | AVIOContext * | pb, | |
uint32_t * | data, | |||
int | count | |||
) | [static] |
read non-zero integers (le32) from input stream
pb | ||
[out] | data | destination |
count | maximum number of integers to read |
Definition at line 129 of file wtvdec.c.
Referenced by wtvfile_open_sector().
static int read_packet | ( | AVFormatContext * | s, | |
AVPacket * | pkt | |||
) | [static] |
static int read_probe | ( | AVProbeData * | p | ) | [static] |
static int read_seek | ( | AVFormatContext * | s, | |
int | stream_index, | |||
int64_t | ts, | |||
int | flags | |||
) | [static] |
static void wtvfile_close | ( | AVIOContext * | pb | ) | [static] |
Close file opened with wtvfile_open_sector(), or wtv_open().
Definition at line 286 of file wtvdec.c.
Referenced by read_close(), and read_header().
static AVIOContext* wtvfile_open2 | ( | AVFormatContext * | s, | |
const uint8_t * | buf, | |||
int | buf_size, | |||
const uint8_t * | filename, | |||
int | filename_size | |||
) | [static] |
static AVIOContext* wtvfile_open_sector | ( | int | first_sector, | |
uint64_t | length, | |||
int | depth, | |||
AVFormatContext * | s | |||
) | [static] |
Open file.
first_sector | First sector | |
length | Length of file (bytes) | |
depth | File allocation table depth |
Definition at line 146 of file wtvdec.c.
Referenced by wtvfile_open2().
static int wtvfile_read_packet | ( | void * | opaque, | |
uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
Definition at line 64 of file wtvdec.c.
Referenced by wtvfile_open_sector().
static int64_t wtvfile_seek | ( | void * | opaque, | |
int64_t | offset, | |||
int | whence | |||
) | [static] |
Definition at line 103 of file wtvdec.c.
Referenced by wtvfile_open_sector().
const ff_asf_guid EVENTID_AudioDescriptorSpanningEvent [static] |
Initial value:
{0x1C,0xD4,0x7B,0x10,0xDA,0xA6,0x91,0x46,0x83,0x69,0x11,0xB2,0xCD,0xAA,0x28,0x8E}
Definition at line 323 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_AudioTypeSpanningEvent [static] |
Initial value:
{0xBE,0xBF,0x1C,0x50,0x49,0xB8,0xCE,0x42,0x9B,0xE9,0x3D,0xB8,0x69,0xFB,0x82,0xB3}
Definition at line 335 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_CSDescriptorSpanningEvent [static] |
Initial value:
{0xD9,0x79,0xE7,0xEf,0xF0,0x97,0x86,0x47,0x80,0x0D,0x95,0xCF,0x50,0x5D,0xDC,0x66}
Definition at line 327 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_CtxADescriptorSpanningEvent [static] |
Initial value:
{0xE6,0xA2,0xB4,0x3A,0x47,0x42,0x34,0x4B,0x89,0x6C,0x30,0xAF,0xA5,0xD2,0x1C,0x24}
Definition at line 325 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_DVBScramblingControlSpanningEvent [static] |
Initial value:
{0xC4,0xE1,0xD4,0x4B,0xA1,0x90,0x09,0x41,0x82,0x36,0x27,0xF0,0x0E,0x7D,0xCC,0x5B}
Definition at line 329 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_LanguageSpanningEvent [static] |
Initial value:
{0x6D,0x66,0x92,0xE2,0x02,0x9C,0x8D,0x44,0xAA,0x8D,0x78,0x1A,0x93,0xFD,0xC3,0x95}
Definition at line 321 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_StreamIDSpanningEvent [static] |
Initial value:
{0x68,0xAB,0xF1,0xCA,0x53,0xE1,0x41,0x4D,0xA6,0xB3,0xA7,0xC9,0x98,0xDB,0x75,0xEE}
Definition at line 331 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_SubtitleSpanningEvent [static] |
Initial value:
{0x48,0xC0,0xCE,0x5D,0xB9,0xD0,0x63,0x41,0x87,0x2C,0x4F,0x32,0x22,0x3B,0xE8,0x8A}
Definition at line 319 of file wtvdec.c.
Referenced by parse_chunks().
const ff_asf_guid EVENTID_TeletextSpanningEvent [static] |
Initial value:
{0x50,0xD9,0x99,0x95,0x33,0x5F,0x17,0x46,0xAF,0x7C,0x1E,0x54,0xB5,0x10,0xDA,0xA3}
Definition at line 333 of file wtvdec.c.
Referenced by parse_chunks().
Initial value:
{ .name = "wtv", .long_name = NULL_IF_CONFIG_SMALL("Windows Television (WTV)"), .priv_data_size = sizeof(WtvContext), .read_probe = read_probe, .read_header = read_header, .read_packet = read_packet, .read_seek = read_seek, .read_close = read_close, .flags = AVFMT_SHOW_IDS, }
const ff_asf_guid format_videoinfo2 [static] |
Initial value:
{0xA0,0x76,0x2A,0xF7,0x0A,0xEB,0xD0,0x11,0xAC,0xE4,0x00,0x00,0xC0,0xCC,0x16,0xBA}
Definition at line 361 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediasubtype_dtvccdata [static] |
Initial value:
{0xAA,0xDD,0x2A,0xF5,0xF0,0x36,0xF5,0x43,0x95,0xEA,0x6D,0x86,0x64,0x84,0x26,0x2A}
Definition at line 355 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediasubtype_dvb_subtitle [static] |
Initial value:
{0xC3,0xCB,0xFF,0x34,0xB3,0xD5,0x71,0x41,0x90,0x02,0xD4,0xC6,0x03,0x01,0x69,0x7F}
Definition at line 351 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediasubtype_mpeg1payload [static] |
Initial value:
{0x81,0xEB,0x36,0xE4,0x4F,0x52,0xCE,0x11,0x9F,0x53,0x00,0x20,0xAF,0x0B,0xA7,0x70}
Definition at line 341 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediasubtype_mpeg2_sections [static] |
Initial value:
{0x79,0x85,0x9F,0x4A,0xF8,0x6B,0x92,0x43,0x8A,0x6D,0xD2,0xDD,0x09,0xFA,0x78,0x61}
Definition at line 357 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediasubtype_teletext [static] |
Initial value:
{0xE3,0x76,0x2A,0xF7,0x0A,0xEB,0xD0,0x11,0xAC,0xE4,0x00,0x00,0xC0,0xCC,0x16,0xBA}
Definition at line 353 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediatype_mpeg2_pes [static] |
Initial value:
{0x20,0x80,0x6D,0xE0,0x46,0xDB,0xCF,0x11,0xB4,0xD1,0x00,0x80,0x5F,0x6C,0xBB,0xEA}
Definition at line 345 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediatype_mpeg2_sections [static] |
Initial value:
{0x6C,0x17,0x5F,0x45,0x06,0x4B,0xCE,0x47,0x9A,0xEF,0x8C,0xAE,0xF7,0x3D,0xF7,0xB5}
Definition at line 343 of file wtvdec.c.
Referenced by parse_media_type().
const ff_asf_guid mediatype_mstvcaption [static] |
Initial value:
{0x89,0x8A,0x8B,0xB8,0x49,0xB0,0x80,0x4C,0xAD,0xCF,0x58,0x98,0x98,0x5E,0x22,0xC1}
Definition at line 347 of file wtvdec.c.
Referenced by parse_media_type().