libavformat/mov.c File Reference

#include <limits.h>
#include "libavutil/intreadwrite.h"
#include "libavutil/avstring.h"
#include "avformat.h"
#include "riff.h"
#include "isom.h"
#include "libavcodec/get_bits.h"
#include <zlib.h>
#include "qtpalette.h"
#include <assert.h>

Go to the source code of this file.

Data Structures

struct  MOVParseTableEntry

Functions

static int mov_metadata_trkn (MOVContext *c, ByteIOContext *pb, unsigned len)
static int mov_read_mac_string (MOVContext *c, ByteIOContext *pb, int len, char *dst, int dstlen)
static int mov_read_udta_string (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_chpl (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_default (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_dref (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_hdlr (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
int ff_mov_read_esds (AVFormatContext *fc, ByteIOContext *pb, MOVAtom atom)
static int mov_read_esds (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_dac3 (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_pasp (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_mdat (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_ftyp (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_moov (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_moof (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static void mov_metadata_creation_time (AVMetadata **metadata, time_t time)
static int mov_read_mdhd (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_mvhd (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_smi (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_enda (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_extradata (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_wave (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_glbl (MOVContext *c, ByteIOContext *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, ByteIOContext *pb, MOVAtom atom)
 An strf atom is a BITMAPINFOHEADER struct.
static int mov_read_stco (MOVContext *c, ByteIOContext *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, ByteIOContext *pb, int entries)
static int mov_read_stsd (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_stsc (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_stps (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_stss (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_stsz (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_stts (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_ctts (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static void mov_build_index (MOVContext *mov, AVStream *st)
static int mov_open_dref (ByteIOContext **pb, char *src, MOVDref *ref)
static int mov_read_trak (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_ilst (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_meta (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_tkhd (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_tfhd (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_chap (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_trex (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_trun (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_wide (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_cmov (MOVContext *c, ByteIOContext *pb, MOVAtom atom)
static int mov_read_elst (MOVContext *c, ByteIOContext *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 AVIndexEntrymov_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 mov_demuxer


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 880 of file mov.c.

Referenced by ff_mov_read_stsd_entries(), and read_desc_chunk().

int ff_mov_read_esds ( AVFormatContext fc,
ByteIOContext pb,
MOVAtom  atom 
)

Definition at line 463 of file mov.c.

Referenced by mov_read_esds(), and read_kuki_chunk().

int ff_mov_read_stsd_entries ( MOVContext c,
ByteIOContext pb,
int  entries 
)

Definition at line 911 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 1505 of file mov.c.

Referenced by mov_read_trak().

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

Definition at line 2377 of file mov.c.

Referenced by mov_read_packet().

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

Definition at line 590 of file mov.c.

Referenced by mov_read_mdhd(), and mov_read_mvhd().

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

Definition at line 81 of file mov.c.

Referenced by mov_read_udta_string().

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

Definition at line 1684 of file mov.c.

Referenced by mov_read_trak().

static int mov_probe ( AVProbeData p  )  [static]

Definition at line 2234 of file mov.c.

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

Definition at line 1967 of file mov.c.

static void mov_read_chapters ( AVFormatContext s  )  [static]

Definition at line 2280 of file mov.c.

Referenced by mov_read_header().

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

Definition at line 221 of file mov.c.

static int mov_read_close ( AVFormatContext s  )  [static]

Definition at line 2535 of file mov.c.

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

Definition at line 2092 of file mov.c.

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

Definition at line 1466 of file mov.c.

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

Definition at line 491 of file mov.c.

static int mov_read_default ( MOVContext c,
ByteIOContext pb,
MOVAtom  atom 
) [static]

static int mov_read_dref ( MOVContext c,
ByteIOContext pb,
MOVAtom  atom 
) [static]

Definition at line 322 of file mov.c.

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

Definition at line 2144 of file mov.c.

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

Definition at line 704 of file mov.c.

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

Definition at line 486 of file mov.c.

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

Definition at line 737 of file mov.c.

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

Definition at line 541 of file mov.c.

static int mov_read_glbl ( MOVContext c,
ByteIOContext 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 792 of file mov.c.

Referenced by ff_mov_read_stsd_entries().

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

Definition at line 426 of file mov.c.

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

Definition at line 2346 of file mov.c.

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

Definition at line 1826 of file mov.c.

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

Definition at line 113 of file mov.c.

Referenced by ff_mov_read_stsd_entries(), and mov_read_udta_string().

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

Definition at line 532 of file mov.c.

Referenced by mov_read_wide().

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

Definition at line 603 of file mov.c.

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

Definition at line 1835 of file mov.c.

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

Definition at line 583 of file mov.c.

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

Definition at line 573 of file mov.c.

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

Definition at line 642 of file mov.c.

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

Definition at line 2403 of file mov.c.

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

Definition at line 508 of file mov.c.

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

Definition at line 2504 of file mov.c.

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

Definition at line 680 of file mov.c.

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

Definition at line 840 of file mov.c.

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

Definition at line 1290 of file mov.c.

static int mov_read_strf ( MOVContext c,
ByteIOContext 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 817 of file mov.c.

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

Definition at line 1257 of file mov.c.

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

Definition at line 1246 of file mov.c.

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

Definition at line 1319 of file mov.c.

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

Definition at line 1351 of file mov.c.

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

Definition at line 1419 of file mov.c.

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

Definition at line 1932 of file mov.c.

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

Definition at line 1849 of file mov.c.

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

Definition at line 1727 of file mov.c.

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

Definition at line 1973 of file mov.c.

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

Definition at line 1994 of file mov.c.

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

Definition at line 131 of file mov.c.

Referenced by mov_read_default().

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

Definition at line 761 of file mov.c.

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

Definition at line 2072 of file mov.c.

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

Definition at line 2474 of file mov.c.

Referenced by mov_read_seek().


Variable Documentation

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 94 of file mov.c.

Referenced by mov_read_mac_string().

Definition at line 79 of file mov.c.

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 2570 of file mov.c.


Generated on Wed Jan 19 23:49:50 2011 for FFmpeg by  doxygen 1.5.6