libavformat/wtvenc.c File Reference

Windows Television (WTV) demuxer. More...

#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"
#include "avformat.h"
#include "internal.h"
#include "wtv.h"
#include "asf.h"

Go to the source code of this file.

Data Structures

struct  WtvFile
struct  WtvChunkEntry
struct  WtvContext
struct  WTVRootEntryTable

Defines

#define WTV_BIGSECTOR_SIZE   (1 << WTV_BIGSECTOR_BITS)
#define INDEX_BASE   0x2
#define MAX_NB_INDEX   10
#define _   , 0,

Typedefs

typedef int WTVHeaderWriteFunc (AVIOContext *pb)

Enumerations

enum  WtvFileIndex {
  WTV_TIMELINE_TABLE_0_HEADER_EVENTS = 0, WTV_TIMELINE_TABLE_0_ENTRIES_EVENTS, WTV_TIMELINE, WTV_TABLE_0_HEADER_LEGACY_ATTRIB,
  WTV_TABLE_0_ENTRIES_LEGACY_ATTRIB, WTV_TABLE_0_REDIRECTOR_LEGACY_ATTRIB, WTV_TABLE_0_HEADER_TIME, WTV_TABLE_0_ENTRIES_TIME,
  WTV_FILES
}

Functions

static int write_pad (AVIOContext *pb, int size)
static const ff_asf_guidget_codec_guid (enum CodecID id, const AVCodecGuid *av_guid)
static void write_chunk_header (AVFormatContext *s, const ff_asf_guid *guid, int length, int stream_id)
 Write chunk header.
static void write_chunk_header2 (AVFormatContext *s, const ff_asf_guid *guid, int stream_id)
static void finish_chunk_noindex (AVFormatContext *s)
static void write_index (AVFormatContext *s)
static void finish_chunk (AVFormatContext *s)
static int write_stream_codec_info (AVFormatContext *s, AVStream *st)
static int write_stream_codec (AVFormatContext *s, AVStream *st)
static void write_sync (AVFormatContext *s)
static void write_DSATTRIB_TRANSPORT_PROPERTIES_init (AVFormatContext *s, int stream_index)
static int write_stream_data (AVFormatContext *s, AVStream *st, int flag)
static int write_header (AVFormatContext *s)
static void write_timestamp (AVFormatContext *s, AVPacket *pkt)
static int write_packet (AVFormatContext *s, AVPacket *pkt)
static int write_table0_header_envents (AVIOContext *pb)
static int write_table0_header_legacy_attrib (AVIOContext *pb)
static int write_table0_header_time (AVIOContext *pb)
static int write_root_table (AVFormatContext *s, int64_t sector_pos)
static void write_fat (AVIOContext *pb, int start_sector, int nb_sectors, int shift)
static int write_fat_sector (AVFormatContext *s, int64_t start_pos, int nb_sectors, int sector_bits, int depth)
static void write_table_entries_events (AVFormatContext *s)
static void write_tag (AVIOContext *pb, const char *key, const char *value)
static void write_table_entries_attrib (AVFormatContext *s)
static void write_table_redirector_legacy_attrib (AVFormatContext *s)
static int finish_file (AVFormatContext *s, enum WtvFileIndex index, int64_t start_pos)
 Pad the remainder of a file Write out fat table.
static int write_trailer (AVFormatContext *s)

Variables

static const uint8_t timeline_table_0_header_events []
static const uint8_t table_0_header_legacy_attrib []
static const uint8_t table_0_redirector_legacy_attrib []
static const uint8_t table_0_header_time []
static const uint8_t legacy_attrib []
static const ff_asf_guid sub_wtv_guid
static const ff_asf_guid stream1_guid
static const ff_asf_guid sync_guid
static const ff_asf_guid index_guid
static const WTVRootEntryTable wtv_root_entry_table []
AVOutputFormat ff_wtv_muxer


Detailed Description

Windows Television (WTV) demuxer.

Author:
Zhentan Feng <spyfeng at="" gmail="" dot="" com>="">

Definition in file wtvenc.c.


Define Documentation

#define _   , 0,

Definition at line 40 of file wtvenc.c.

#define INDEX_BASE   0x2

Definition at line 36 of file wtvenc.c.

Referenced by write_header(), write_packet(), write_stream_data(), and write_timestamp().

#define MAX_NB_INDEX   10

Definition at line 37 of file wtvenc.c.

Referenced by finish_chunk(), and write_chunk_header().

#define WTV_BIGSECTOR_SIZE   (1 << WTV_BIGSECTOR_BITS)

Definition at line 35 of file wtvenc.c.

Referenced by finish_file().


Typedef Documentation

typedef int WTVHeaderWriteFunc(AVIOContext *pb)

Definition at line 101 of file wtvenc.c.


Enumeration Type Documentation

Enumerator:
WTV_TIMELINE_TABLE_0_HEADER_EVENTS 
WTV_TIMELINE_TABLE_0_ENTRIES_EVENTS 
WTV_TIMELINE 
WTV_TABLE_0_HEADER_LEGACY_ATTRIB 
WTV_TABLE_0_ENTRIES_LEGACY_ATTRIB 
WTV_TABLE_0_REDIRECTOR_LEGACY_ATTRIB 
WTV_TABLE_0_HEADER_TIME 
WTV_TABLE_0_ENTRIES_TIME 
WTV_FILES 

Definition at line 62 of file wtvenc.c.


Function Documentation

static void finish_chunk ( AVFormatContext s  )  [static]

static void finish_chunk_noindex ( AVFormatContext s  )  [static]

Definition at line 161 of file wtvenc.c.

Referenced by finish_chunk(), and write_index().

static int finish_file ( AVFormatContext s,
enum WtvFileIndex  index,
int64_t  start_pos 
) [static]

Pad the remainder of a file Write out fat table.

Returns:
<0 on error

Definition at line 605 of file wtvenc.c.

Referenced by write_trailer().

static const ff_asf_guid* get_codec_guid ( enum CodecID  id,
const AVCodecGuid av_guid 
) [static]

Definition at line 116 of file wtvenc.c.

Referenced by write_stream_codec_info().

static void write_chunk_header ( AVFormatContext s,
const ff_asf_guid guid,
int  length,
int  stream_id 
) [static]

Write chunk header.

If header chunk (0x80000000 set) then add to list of header chunks

Definition at line 129 of file wtvenc.c.

Referenced by write_chunk_header2(), write_packet(), write_sync(), and write_timestamp().

static void write_chunk_header2 ( AVFormatContext s,
const ff_asf_guid guid,
int  stream_id 
) [static]

static void write_DSATTRIB_TRANSPORT_PROPERTIES_init ( AVFormatContext s,
int  stream_index 
) [static]

Definition at line 297 of file wtvenc.c.

Referenced by write_header().

static void write_fat ( AVIOContext pb,
int  start_sector,
int  nb_sectors,
int  shift 
) [static]

Definition at line 528 of file wtvenc.c.

Referenced by write_fat_sector().

static int write_fat_sector ( AVFormatContext s,
int64_t  start_pos,
int  nb_sectors,
int  sector_bits,
int  depth 
) [static]

Definition at line 538 of file wtvenc.c.

Referenced by finish_file().

static int write_header ( AVFormatContext s  )  [static]

Definition at line 335 of file wtvenc.c.

static void write_index ( AVFormatContext s  )  [static]

Definition at line 176 of file wtvenc.c.

Referenced by ffm_is_avail_data(), finish_chunk(), and write_header().

static int write_packet ( AVFormatContext s,
AVPacket pkt 
) [static]

Definition at line 425 of file wtvenc.c.

static int write_pad ( AVIOContext pb,
int  size 
) [static]

static int write_root_table ( AVFormatContext s,
int64_t  sector_pos 
) [static]

Definition at line 481 of file wtvenc.c.

Referenced by write_trailer().

static int write_stream_codec ( AVFormatContext s,
AVStream st 
) [static]

Definition at line 262 of file wtvenc.c.

Referenced by write_header().

static int write_stream_codec_info ( AVFormatContext s,
AVStream st 
) [static]

Definition at line 206 of file wtvenc.c.

Referenced by write_stream_codec(), and write_stream_data().

static int write_stream_data ( AVFormatContext s,
AVStream st,
int  flag 
) [static]

Definition at line 307 of file wtvenc.c.

Referenced by write_header().

static void write_sync ( AVFormatContext s  )  [static]

Definition at line 282 of file wtvenc.c.

Referenced by write_header().

static int write_table0_header_envents ( AVIOContext pb  )  [static]

Definition at line 442 of file wtvenc.c.

static int write_table0_header_legacy_attrib ( AVIOContext pb  )  [static]

Definition at line 450 of file wtvenc.c.

static int write_table0_header_time ( AVIOContext pb  )  [static]

Definition at line 462 of file wtvenc.c.

static void write_table_entries_attrib ( AVFormatContext s  )  [static]

Definition at line 577 of file wtvenc.c.

Referenced by write_trailer().

static void write_table_entries_events ( AVFormatContext s  )  [static]

Definition at line 558 of file wtvenc.c.

Referenced by write_trailer().

static void write_table_redirector_legacy_attrib ( AVFormatContext s  )  [static]

Definition at line 587 of file wtvenc.c.

Referenced by write_trailer().

static void write_tag ( AVIOContext pb,
const char *  key,
const char *  value 
) [static]

Definition at line 568 of file wtvenc.c.

Referenced by write_table_entries_attrib().

static void write_timestamp ( AVFormatContext s,
AVPacket pkt 
) [static]

Definition at line 401 of file wtvenc.c.

Referenced by write_packet().

static int write_trailer ( AVFormatContext s  )  [static]

Definition at line 663 of file wtvenc.c.


Variable Documentation

Initial value:

 {
    .name           = "wtv",
    .long_name      = NULL_IF_CONFIG_SMALL("Windows Television (WTV)"),
    .extensions     = "wtv",
    .priv_data_size = sizeof(WtvContext),
    .audio_codec    = CODEC_ID_AC3,
    .video_codec    = CODEC_ID_MPEG2VIDEO,
    .write_header   = write_header,
    .write_packet   = write_packet,
    .write_trailer  = write_trailer,
    .codec_tag      = (const AVCodecTag* const []){ ff_codec_bmp_tags,
                                                    ff_codec_wav_tags, 0 },
}

Definition at line 711 of file wtvenc.c.

const ff_asf_guid index_guid [static]

Initial value:

    {0x96,0xc3,0xd2,0xc2,0x7e,0x9a,0xda,0x11,0x8b,0xf7,0x00,0x07,0xe9,0x5e,0xad,0x8d}

Definition at line 59 of file wtvenc.c.

const uint8_t legacy_attrib[] [static]

Initial value:

    {'l'_'e'_'g'_'a'_'c'_'y'_'_'_'a'_'t'_'t'_'r'_'i'_'b', 0}

Definition at line 49 of file wtvenc.c.

Referenced by write_table0_header_legacy_attrib().

const ff_asf_guid stream1_guid [static]

Initial value:

    {0xA1,0xC3,0xD2,0xC2,0x7E,0x9A,0xDA,0x11,0x8B,0xF7,0x00,0x07,0xE9,0x5E,0xAD,0x8D}

Definition at line 55 of file wtvenc.c.

Referenced by write_stream_codec().

const ff_asf_guid sub_wtv_guid [static]

Initial value:

    {0x8C,0xC3,0xD2,0xC2,0x7E,0x9A,0xDA,0x11,0x8B,0xF7,0x00,0x07,0xE9,0x5E,0xAD,0x8D}

Definition at line 53 of file wtvenc.c.

Referenced by write_header().

const ff_asf_guid sync_guid [static]

Initial value:

    {0x97,0xC3,0xD2,0xC2,0x7E,0x9A,0xDA,0x11,0x8B,0xF7,0x00,0x07,0xE9,0x5E,0xAD,0x8D}

Definition at line 57 of file wtvenc.c.

Referenced by write_sync().

const uint8_t table_0_header_legacy_attrib[] [static]

Initial value:

    {'t'_'a'_'b'_'l'_'e'_'.'_'0'_'.'_'h'_'e'_'a'_'d'_'e'_'r'_'.'_'l'_'e'_'g'_'a'_'c'_'y'_'_'_'a'_'t'_'t'_'r'_'i'_'b', 0}

Definition at line 43 of file wtvenc.c.

const uint8_t table_0_header_time[] [static]

Initial value:

    {'t'_'a'_'b'_'l'_'e'_'.'_'0'_'.'_'h'_'e'_'a'_'d'_'e'_'r'_'.'_'t'_'i'_'m'_'e', 0}

Definition at line 47 of file wtvenc.c.

const uint8_t table_0_redirector_legacy_attrib[] [static]

Initial value:

    {'t'_'a'_'b'_'l'_'e'_'.'_'0'_'.'_'r'_'e'_'d'_'i'_'r'_'e'_'c'_'t'_'o'_'r'_'.'_'l'_'e'_'g'_'a'_'c'_'y'_'_'_'a'_'t'_'t'_'r'_'i'_'b', 0}

Definition at line 45 of file wtvenc.c.

const uint8_t timeline_table_0_header_events[] [static]

Initial value:

    {'t'_'i'_'m'_'e'_'l'_'i'_'n'_'e'_'.'_'t'_'a'_'b'_'l'_'e'_'.'_'0'_'.'_'h'_'e'_'a'_'d'_'e'_'r'_'.'_'E'_'v'_'e'_'n'_'t'_'s', 0}

Definition at line 41 of file wtvenc.c.


Generated on Fri Oct 26 02:43:53 2012 for FFmpeg by  doxygen 1.5.8