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/mpeg4audio.h"
#include "libavcodec/mpegaudiodata.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

Defines

#define MP4ESDescrTag   0x03
#define MP4DecConfigDescrTag   0x04
#define MP4DecSpecificDescrTag   0x05

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_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_mp4_read_descr_len (ByteIOContext *pb)
static int mp4_read_descr (AVFormatContext *fc, ByteIOContext *pb, int *tag)
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_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 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.
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_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 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]
static const AVCodecTag mp4_audio_types []
AVInputFormat mov_demuxer


Define Documentation

#define MP4DecConfigDescrTag   0x04

Definition at line 452 of file mov.c.

Referenced by ff_mov_read_esds().

#define MP4DecSpecificDescrTag   0x05

Definition at line 453 of file mov.c.

Referenced by ff_mov_read_esds().

#define MP4ESDescrTag   0x03

Definition at line 451 of file mov.c.

Referenced by ff_mov_read_esds().


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

Referenced by mov_read_stsd(), and read_desc_chunk().

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

Definition at line 464 of file mov.c.

Referenced by mov_read_esds(), and read_kuki_chunk().

int ff_mp4_read_descr_len ( ByteIOContext pb  ) 

Definition at line 429 of file mov.c.

Referenced by mp4_read_descr(), and read_pakt_chunk().

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

Definition at line 1496 of file mov.c.

Referenced by mov_read_trak().

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

Definition at line 2286 of file mov.c.

Referenced by mov_read_packet().

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

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

Referenced by mov_read_trak().

static int mov_probe ( AVProbeData p  )  [static]

Definition at line 2213 of file mov.c.

static int mov_read_close ( AVFormatContext s  )  [static]

Definition at line 2442 of file mov.c.

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

Definition at line 2075 of file mov.c.

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

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

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

Definition at line 2127 of file mov.c.

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

Definition at line 706 of file mov.c.

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

Definition at line 523 of file mov.c.

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

Definition at line 739 of file mov.c.

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

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

Referenced by mov_read_stsd().

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

Definition at line 392 of file mov.c.

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

Definition at line 2258 of file mov.c.

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

Definition at line 1815 of file mov.c.

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

Definition at line 115 of file mov.c.

Referenced by mov_read_stsd(), and mov_read_udta_string().

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

Definition at line 551 of file mov.c.

Referenced by mov_read_wide().

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

Definition at line 609 of file mov.c.

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

Definition at line 1824 of file mov.c.

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

Definition at line 602 of file mov.c.

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

Definition at line 592 of file mov.c.

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

Definition at line 646 of file mov.c.

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

Definition at line 2312 of file mov.c.

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

Definition at line 528 of file mov.c.

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

Definition at line 2411 of file mov.c.

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

Definition at line 682 of file mov.c.

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

Definition at line 842 of file mov.c.

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

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

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

Definition at line 1248 of file mov.c.

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

Definition at line 913 of file mov.c.

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

Definition at line 1310 of file mov.c.

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

Definition at line 1342 of file mov.c.

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

Definition at line 1410 of file mov.c.

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

Definition at line 1921 of file mov.c.

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

Definition at line 1838 of file mov.c.

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

Definition at line 1717 of file mov.c.

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

Definition at line 1956 of file mov.c.

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

Definition at line 1977 of file mov.c.

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

Definition at line 133 of file mov.c.

Referenced by mov_read_default().

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

Definition at line 763 of file mov.c.

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

Definition at line 2055 of file mov.c.

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

Definition at line 2383 of file mov.c.

Referenced by mov_read_seek().

static int mp4_read_descr ( AVFormatContext fc,
ByteIOContext pb,
int *  tag 
) [static]

Definition at line 442 of file mov.c.

Referenced by ff_mov_read_esds().


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

Referenced by mov_read_mac_string().

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

const AVCodecTag mp4_audio_types[] [static]

Initial value:

Definition at line 455 of file mov.c.


Generated on Tue Apr 20 17:39:51 2010 for FFmpeg by  doxygen 1.5.6