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 "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_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_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_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]
static const AVCodecTag mp4_audio_types []
AVInputFormat mov_demuxer


Define Documentation

#define MP4DecConfigDescrTag   0x04

Definition at line 482 of file mov.c.

Referenced by ff_mov_read_esds().

#define MP4DecSpecificDescrTag   0x05

Definition at line 483 of file mov.c.

Referenced by ff_mov_read_esds().

#define MP4ESDescrTag   0x03

Definition at line 481 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 912 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 494 of file mov.c.

Referenced by mov_read_esds(), and read_kuki_chunk().

int ff_mp4_read_descr_len ( ByteIOContext pb  ) 

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

Referenced by mov_read_trak().

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

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

Referenced by mov_read_trak().

static int mov_probe ( AVProbeData p  )  [static]

Definition at line 2249 of file mov.c.

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

Definition at line 1983 of file mov.c.

static void mov_read_chapters ( AVFormatContext s  )  [static]

Definition at line 2295 of file mov.c.

Referenced by mov_read_header().

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

Definition at line 222 of file mov.c.

static int mov_read_close ( AVFormatContext s  )  [static]

Definition at line 2548 of file mov.c.

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

Definition at line 2108 of file mov.c.

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

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

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

Definition at line 2160 of file mov.c.

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

Definition at line 736 of file mov.c.

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

Definition at line 553 of file mov.c.

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

Definition at line 769 of file mov.c.

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

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

Referenced by mov_read_stsd().

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

Definition at line 422 of file mov.c.

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

Definition at line 2361 of file mov.c.

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

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

Referenced by mov_read_wide().

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

Definition at line 639 of file mov.c.

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

Definition at line 1851 of file mov.c.

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

Definition at line 632 of file mov.c.

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

Definition at line 622 of file mov.c.

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

Definition at line 676 of file mov.c.

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

Definition at line 2418 of file mov.c.

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

Definition at line 558 of file mov.c.

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

Definition at line 2517 of file mov.c.

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

Definition at line 712 of file mov.c.

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

Definition at line 872 of file mov.c.

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

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

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

Definition at line 1278 of file mov.c.

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

Definition at line 943 of file mov.c.

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

Definition at line 1340 of file mov.c.

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

Definition at line 1372 of file mov.c.

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

Definition at line 1440 of file mov.c.

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

Definition at line 1948 of file mov.c.

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

Definition at line 1865 of file mov.c.

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

Definition at line 1747 of file mov.c.

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

Definition at line 1989 of file mov.c.

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

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

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

Definition at line 2088 of file mov.c.

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

Definition at line 2489 of file mov.c.

Referenced by mov_read_seek().

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

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

const AVCodecTag mp4_audio_types[] [static]

Initial value:

Definition at line 485 of file mov.c.


Generated on Fri Oct 26 02:36:54 2012 for FFmpeg by  doxygen 1.5.8