Libav 0.7.1
Data Structures | Typedefs | Functions | Variables
libavformat/mov.c File Reference
#include <limits.h>
#include "libavutil/intreadwrite.h"
#include "libavutil/avstring.h"
#include "libavutil/dict.h"
#include "avformat.h"
#include "avio_internal.h"
#include "riff.h"
#include "isom.h"
#include "libavcodec/get_bits.h"
#include "qtpalette.h"
#include <assert.h>

Go to the source code of this file.

Data Structures

struct  MOVParseTableEntry

Typedefs

typedef struct MOVParseTableEntry MOVParseTableEntry

Functions

static int mov_metadata_trkn (MOVContext *c, AVIOContext *pb, unsigned len)
static int mov_read_mac_string (MOVContext *c, AVIOContext *pb, int len, char *dst, int dstlen)
static int mov_read_udta_string (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_chpl (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_default (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_dref (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_hdlr (MOVContext *c, AVIOContext *pb, MOVAtom atom)
int ff_mov_read_esds (AVFormatContext *fc, AVIOContext *pb, MOVAtom atom)
static int mov_read_esds (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_dac3 (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_wfex (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_pasp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_mdat (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_ftyp (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_moov (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_moof (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static void mov_metadata_creation_time (AVDictionary **metadata, time_t time)
static int mov_read_mdhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_mvhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_smi (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_enda (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_extradata (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_wave (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_glbl (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 This function reads atom content and puts data in extradata without tag nor size unlike mov_read_extradata.
static int mov_read_strf (MOVContext *c, AVIOContext *pb, MOVAtom atom)
 An strf atom is a BITMAPINFOHEADER struct.
static int mov_read_stco (MOVContext *c, AVIOContext *pb, MOVAtom atom)
enum CodecID ff_mov_get_lpcm_codec_id (int bps, int flags)
 Compute codec id for 'lpcm' tag.
int ff_mov_read_stsd_entries (MOVContext *c, AVIOContext *pb, int entries)
static int mov_read_stsd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_stsc (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_stps (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_stss (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_stsz (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_stts (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_ctts (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static void mov_build_index (MOVContext *mov, AVStream *st)
static int mov_open_dref (AVIOContext **pb, char *src, MOVDref *ref)
static int mov_read_trak (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_ilst (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_meta (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_tkhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_tfhd (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_chap (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_trex (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_trun (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_wide (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_cmov (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_read_elst (MOVContext *c, AVIOContext *pb, MOVAtom atom)
static int mov_probe (AVProbeData *p)
static void mov_read_chapters (AVFormatContext *s)
static int mov_read_header (AVFormatContext *s, AVFormatParameters *ap)
static AVIndexEntry * mov_find_next_sample (AVFormatContext *s, AVStream **st)
static int mov_read_packet (AVFormatContext *s, AVPacket *pkt)
static int mov_seek_stream (AVFormatContext *s, AVStream *st, int64_t timestamp, int flags)
static int mov_read_seek (AVFormatContext *s, int stream_index, int64_t sample_time, int flags)
static int mov_read_close (AVFormatContext *s)

Variables

static const MOVParseTableEntry mov_default_parse_table []
static const uint32_t mac_to_unicode [128]
AVInputFormat ff_mov_demuxer

Typedef Documentation


Function Documentation

enum CodecID ff_mov_get_lpcm_codec_id ( int  bps,
int  flags 
)

Compute codec id for 'lpcm' tag.

See CoreAudioTypes and AudioStreamBasicDescription at Apple.

Definition at line 896 of file mov.c.

Referenced by ff_mov_read_stsd_entries(), and read_desc_chunk().

int ff_mov_read_esds ( AVFormatContext *  fc,
AVIOContext *  pb,
MOVAtom  atom 
)

Definition at line 462 of file mov.c.

Referenced by mov_read_esds(), and read_kuki_chunk().

int ff_mov_read_stsd_entries ( MOVContext *  c,
AVIOContext *  pb,
int  entries 
)

Definition at line 927 of file mov.c.

Referenced by mov_read_stsd(), and qt_rtp_parse_packet().

static void mov_build_index ( MOVContext *  mov,
AVStream *  st 
) [static]

Definition at line 1521 of file mov.c.

Referenced by mov_read_trak().

static AVIndexEntry* mov_find_next_sample ( AVFormatContext *  s,
AVStream **  st 
) [static]

Definition at line 2408 of file mov.c.

Referenced by mov_read_packet().

static void mov_metadata_creation_time ( AVDictionary **  metadata,
time_t  time 
) [static]

Definition at line 606 of file mov.c.

Referenced by mov_read_mdhd(), and mov_read_mvhd().

static int mov_metadata_trkn ( MOVContext *  c,
AVIOContext *  pb,
unsigned  len 
) [static]

Definition at line 82 of file mov.c.

Referenced by mov_read_udta_string().

static int mov_open_dref ( AVIOContext **  pb,
char *  src,
MOVDref *  ref 
) [static]

Definition at line 1701 of file mov.c.

Referenced by mov_read_trak().

static int mov_probe ( AVProbeData *  p) [static]

Definition at line 2269 of file mov.c.

static int mov_read_chap ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1984 of file mov.c.

static void mov_read_chapters ( AVFormatContext *  s) [static]

Definition at line 2315 of file mov.c.

Referenced by mov_read_header().

static int mov_read_chpl ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 220 of file mov.c.

static int mov_read_close ( AVFormatContext *  s) [static]

Definition at line 2577 of file mov.c.

static int mov_read_cmov ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 2123 of file mov.c.

static int mov_read_ctts ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1482 of file mov.c.

static int mov_read_dac3 ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 490 of file mov.c.

static int mov_read_default ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]
static int mov_read_dref ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 321 of file mov.c.

static int mov_read_elst ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 2172 of file mov.c.

static int mov_read_enda ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 720 of file mov.c.

static int mov_read_esds ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 485 of file mov.c.

static int mov_read_extradata ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 753 of file mov.c.

static int mov_read_ftyp ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 557 of file mov.c.

static int mov_read_glbl ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

This function reads atom content and puts data in extradata without tag nor size unlike mov_read_extradata.

Definition at line 808 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

static int mov_read_hdlr ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 425 of file mov.c.

static int mov_read_header ( AVFormatContext *  s,
AVFormatParameters *  ap 
) [static]

Definition at line 2377 of file mov.c.

static int mov_read_ilst ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1843 of file mov.c.

static int mov_read_mac_string ( MOVContext *  c,
AVIOContext *  pb,
int  len,
char *  dst,
int  dstlen 
) [static]

Definition at line 114 of file mov.c.

Referenced by ff_mov_read_stsd_entries(), and mov_read_udta_string().

static int mov_read_mdat ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 548 of file mov.c.

Referenced by mov_read_wide().

static int mov_read_mdhd ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 619 of file mov.c.

static int mov_read_meta ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1852 of file mov.c.

static int mov_read_moof ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 599 of file mov.c.

static int mov_read_moov ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 589 of file mov.c.

static int mov_read_mvhd ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 658 of file mov.c.

static int mov_read_packet ( AVFormatContext *  s,
AVPacket *  pkt 
) [static]

Definition at line 2434 of file mov.c.

static int mov_read_pasp ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 524 of file mov.c.

static int mov_read_seek ( AVFormatContext *  s,
int  stream_index,
int64_t  sample_time,
int  flags 
) [static]

Definition at line 2546 of file mov.c.

static int mov_read_smi ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 696 of file mov.c.

static int mov_read_stco ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 856 of file mov.c.

static int mov_read_stps ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1306 of file mov.c.

static int mov_read_strf ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

An strf atom is a BITMAPINFOHEADER struct.

This struct is 40 bytes itself, but can have extradata appended at the end after the 40 bytes belonging to the struct.

Definition at line 833 of file mov.c.

static int mov_read_stsc ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1273 of file mov.c.

static int mov_read_stsd ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1262 of file mov.c.

static int mov_read_stss ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1335 of file mov.c.

static int mov_read_stsz ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1367 of file mov.c.

static int mov_read_stts ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1435 of file mov.c.

static int mov_read_tfhd ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1949 of file mov.c.

static int mov_read_tkhd ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1866 of file mov.c.

static int mov_read_trak ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1744 of file mov.c.

static int mov_read_trex ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 1990 of file mov.c.

static int mov_read_trun ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 2011 of file mov.c.

static int mov_read_udta_string ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 132 of file mov.c.

Referenced by mov_read_default().

static int mov_read_wave ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 777 of file mov.c.

static int mov_read_wfex ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 511 of file mov.c.

static int mov_read_wide ( MOVContext *  c,
AVIOContext *  pb,
MOVAtom  atom 
) [static]

Definition at line 2103 of file mov.c.

static int mov_seek_stream ( AVFormatContext *  s,
AVStream *  st,
int64_t  timestamp,
int  flags 
) [static]

Definition at line 2516 of file mov.c.

Referenced by mov_read_seek().


Variable Documentation

Initial value:
 {
    "mov,mp4,m4a,3gp,3g2,mj2",
    NULL_IF_CONFIG_SMALL("QuickTime/MPEG-4/Motion JPEG 2000 format"),
    sizeof(MOVContext),
    mov_probe,
    mov_read_header,
    mov_read_packet,
    mov_read_close,
    mov_read_seek,
}

Definition at line 2612 of file mov.c.

const uint32_t mac_to_unicode[128] [static]
Initial value:
 {
    0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1,
    0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8,
    0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3,
    0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC,
    0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
    0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8,
    0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211,
    0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8,
    0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB,
    0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153,
    0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
    0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02,
    0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1,
    0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4,
    0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC,
    0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7,
}

Definition at line 95 of file mov.c.

Referenced by mov_read_mac_string().

Definition at line 80 of file mov.c.