|
xine-lib
1.2.9
|
#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <zlib.h>#include "group_video.h"#include <xine/xine_internal.h>#include <xine/xineutils.h>#include <xine/demux.h>#include <xine/buffer.h>#include "bswap.h"#include "qtpalette.h"Data Structures | |
| struct | qt_frame |
| struct | edit_list_table_t |
| struct | sample_to_chunk_table_t |
| struct | reference_t |
| union | properties_t |
| struct | qt_trak |
| struct | qt_info_s |
| struct | demux_qt_s |
| struct | demux_qt_class_t |
Macros | |
| #define | LOG_MODULE "demux_qt" |
| #define | QT_ATOM BE_FOURCC |
| #define | FREE_ATOM QT_ATOM('f', 'r', 'e', 'e') |
| #define | JUNK_ATOM QT_ATOM('j', 'u', 'n', 'k') |
| #define | MDAT_ATOM QT_ATOM('m', 'd', 'a', 't') |
| #define | MOOV_ATOM QT_ATOM('m', 'o', 'o', 'v') |
| #define | PNOT_ATOM QT_ATOM('p', 'n', 'o', 't') |
| #define | SKIP_ATOM QT_ATOM('s', 'k', 'i', 'p') |
| #define | WIDE_ATOM QT_ATOM('w', 'i', 'd', 'e') |
| #define | PICT_ATOM QT_ATOM('P', 'I', 'C', 'T') |
| #define | FTYP_ATOM QT_ATOM('f', 't', 'y', 'p') |
| #define | CMOV_ATOM QT_ATOM('c', 'm', 'o', 'v') |
| #define | MVHD_ATOM QT_ATOM('m', 'v', 'h', 'd') |
| #define | VMHD_ATOM QT_ATOM('v', 'm', 'h', 'd') |
| #define | SMHD_ATOM QT_ATOM('s', 'm', 'h', 'd') |
| #define | TRAK_ATOM QT_ATOM('t', 'r', 'a', 'k') |
| #define | TKHD_ATOM QT_ATOM('t', 'k', 'h', 'd') |
| #define | MDHD_ATOM QT_ATOM('m', 'd', 'h', 'd') |
| #define | ELST_ATOM QT_ATOM('e', 'l', 's', 't') |
| #define | STSD_ATOM QT_ATOM('s', 't', 's', 'd') |
| #define | STSZ_ATOM QT_ATOM('s', 't', 's', 'z') |
| #define | STZ2_ATOM QT_ATOM('s', 't', 'z', '2') |
| #define | STSC_ATOM QT_ATOM('s', 't', 's', 'c') |
| #define | STCO_ATOM QT_ATOM('s', 't', 'c', 'o') |
| #define | STTS_ATOM QT_ATOM('s', 't', 't', 's') |
| #define | CTTS_ATOM QT_ATOM('c', 't', 't', 's') |
| #define | STSS_ATOM QT_ATOM('s', 't', 's', 's') |
| #define | CO64_ATOM QT_ATOM('c', 'o', '6', '4') |
| #define | ESDS_ATOM QT_ATOM('e', 's', 'd', 's') |
| #define | WAVE_ATOM QT_ATOM('w', 'a', 'v', 'e') |
| #define | FRMA_ATOM QT_ATOM('f', 'r', 'm', 'a') |
| #define | AVCC_ATOM QT_ATOM('a', 'v', 'c', 'C') |
| #define | HVCC_ATOM QT_ATOM('h', 'v', 'c', 'C') |
| #define | ENDA_ATOM QT_ATOM('e', 'n', 'd', 'a') |
| #define | IMA4_FOURCC ME_FOURCC('i', 'm', 'a', '4') |
| #define | MAC3_FOURCC ME_FOURCC('M', 'A', 'C', '3') |
| #define | MAC6_FOURCC ME_FOURCC('M', 'A', 'C', '6') |
| #define | ULAW_FOURCC ME_FOURCC('u', 'l', 'a', 'w') |
| #define | ALAW_FOURCC ME_FOURCC('a', 'l', 'a', 'w') |
| #define | MP4A_FOURCC ME_FOURCC('m', 'p', '4', 'a') |
| #define | SAMR_FOURCC ME_FOURCC('s', 'a', 'm', 'r') |
| #define | ALAC_FOURCC ME_FOURCC('a', 'l', 'a', 'c') |
| #define | DRMS_FOURCC ME_FOURCC('d', 'r', 'm', 's') |
| #define | TWOS_FOURCC ME_FOURCC('t', 'w', 'o', 's') |
| #define | SOWT_FOURCC ME_FOURCC('s', 'o', 'w', 't') |
| #define | RAW_FOURCC ME_FOURCC('r', 'a', 'w', ' ') |
| #define | IN24_FOURCC ME_FOURCC('i', 'n', '2', '4') |
| #define | NI42_FOURCC ME_FOURCC('4', '2', 'n', 'i') |
| #define | AVC1_FOURCC ME_FOURCC('a', 'v', 'c', '1') |
| #define | HVC1_FOURCC ME_FOURCC('h', 'v', 'c', '1') |
| #define | HEV1_FOURCC ME_FOURCC('h', 'e', 'v', '1') |
| #define | HEVC_FOURCC ME_FOURCC('h', 'e', 'v', 'c') |
| #define | AC_3_FOURCC ME_FOURCC('a', 'c', '-', '3') |
| #define | EAC3_FOURCC ME_FOURCC('e', 'c', '-', '3') |
| #define | QCLP_FOURCC ME_FOURCC('Q', 'c', 'l', 'p') |
| #define | UDTA_ATOM QT_ATOM('u', 'd', 't', 'a') |
| #define | META_ATOM QT_ATOM('m', 'e', 't', 'a') |
| #define | HDLR_ATOM QT_ATOM('h', 'd', 'l', 'r') |
| #define | ILST_ATOM QT_ATOM('i', 'l', 's', 't') |
| #define | NAM_ATOM QT_ATOM(0xA9, 'n', 'a', 'm') |
| #define | CPY_ATOM QT_ATOM(0xA9, 'c', 'p', 'y') |
| #define | DES_ATOM QT_ATOM(0xA9, 'd', 'e', 's') |
| #define | CMT_ATOM QT_ATOM(0xA9, 'c', 'm', 't') |
| #define | ALB_ATOM QT_ATOM(0xA9, 'a', 'l', 'b') |
| #define | GEN_ATOM QT_ATOM(0xA9, 'g', 'e', 'n') |
| #define | ART_ATOM QT_ATOM(0xA9, 'A', 'R', 'T') |
| #define | TOO_ATOM QT_ATOM(0xA9, 't', 'o', 'o') |
| #define | WRT_ATOM QT_ATOM(0xA9, 'w', 'r', 't') |
| #define | DAY_ATOM QT_ATOM(0xA9, 'd', 'a', 'y') |
| #define | RMRA_ATOM QT_ATOM('r', 'm', 'r', 'a') |
| #define | RMDA_ATOM QT_ATOM('r', 'm', 'd', 'a') |
| #define | RDRF_ATOM QT_ATOM('r', 'd', 'r', 'f') |
| #define | RMDR_ATOM QT_ATOM('r', 'm', 'd', 'r') |
| #define | RMVC_ATOM QT_ATOM('r', 'm', 'v', 'c') |
| #define | QTIM_ATOM QT_ATOM('q', 't', 'i', 'm') |
| #define | URL__ATOM QT_ATOM('u', 'r', 'l', ' ') |
| #define | DATA_ATOM QT_ATOM('d', 'a', 't', 'a') |
| #define | MVEX_ATOM QT_ATOM('m', 'v', 'e', 'x') |
| #define | MEHD_ATOM QT_ATOM('m', 'e', 'h', 'd') |
| #define | TREX_ATOM QT_ATOM('t', 'r', 'e', 'x') |
| #define | MOOF_ATOM QT_ATOM('m', 'o', 'o', 'f') |
| #define | MFHD_ATOM QT_ATOM('m', 'v', 'h', 'd') |
| #define | TRAF_ATOM QT_ATOM('t', 'r', 'a', 'f') |
| #define | TFHD_ATOM QT_ATOM('t', 'f', 'h', 'd') |
| #define | TRUN_ATOM QT_ATOM('t', 'r', 'u', 'n') |
| #define | ATOM_PREAMBLE_SIZE 8 |
| #define | PALETTE_COUNT 256 |
| #define | MAX_PTS_DIFF 100000 |
| #define | MAX_AUDIO_TRAKS 8 |
| #define | DEBUG_ATOM_LOAD 0 |
| #define | DEBUG_EDIT_LIST 0 |
| #define | DEBUG_FRAME_TABLE 0 |
| #define | DEBUG_VIDEO_DEMUX 0 |
| #define | DEBUG_AUDIO_DEMUX 0 |
| #define | DEBUG_META_LOAD 0 |
| #define | DEBUG_DUMP_MOOV 0 |
| #define | RAW_MOOV_FILENAME "moovatom.raw" |
| #define | WRITE_BE_32(v, p) |
| #define | KEYFRAMES_SIZE 1024 |
Typedefs | |
| typedef unsigned int | qt_atom |
| typedef struct qt_info_s | qt_info |
| typedef struct demux_qt_s | demux_qt_t |
Enumerations | |
| enum | qt_error { QT_OK, QT_FILE_READ_ERROR, QT_NO_MEMORY, QT_NOT_A_VALID_FILE, QT_NO_MOOV_ATOM, QT_NO_ZLIB, QT_ZLIB_ERROR, QT_HEADER_TROUBLE, QT_DRM_NOT_SUPPORTED } |
| enum | media_type { MEDIA_AUDIO, MEDIA_VIDEO, MEDIA_OTHER } |
Functions | |
| static void | XINE_FORMAT_PRINTF (1, 2) |
| static void | dump_moov_atom (unsigned char *moov_atom, int moov_atom_size) |
| static void | find_moov_atom (input_plugin_t *input, off_t *moov_offset, int64_t *moov_size) |
| static qt_info * | create_qt_info (demux_qt_t *demux) |
| static void | free_qt_info (qt_info *info) |
| static int | is_qt_file (input_plugin_t *qt_file) |
| static void | parse_mvhd_atom (qt_info *info, unsigned char *mvhd_atom) |
| static int | mp4_read_descr_len (unsigned char *s, uint32_t *length) |
| static unsigned char * | find_embedded_atom (unsigned char *atom, unsigned int type, unsigned int *size) |
| static int | atom_scan (unsigned char *atom, int depth, unsigned int *types, unsigned char **found, unsigned int *sizes) |
| static qt_error | parse_trak_atom (qt_trak *trak, unsigned char *trak_atom) |
| static qt_error | parse_reference_atom (qt_info *info, unsigned char *ref_atom, char *base_mrl) |
| static void | qt_keyframes_add (qt_trak *trak, qt_frame *f) |
| static qt_error | build_frame_table (qt_trak *trak, unsigned int global_timescale) |
| static qt_trak * | find_trak_by_id (qt_info *info, int id) |
| static int | parse_mvex_atom (qt_info *info, unsigned char *mvex_atom, int bufsize) |
| static int | parse_traf_atom (qt_info *info, unsigned char *traf_atom, int trafsize, off_t moofpos) |
| static int | parse_moof_atom (qt_info *info, unsigned char *moof_atom, int moofsize, off_t moofpos) |
| static int | fragment_scan (qt_info *info, input_plugin_t *input) |
| static void | info_string_from_atom (unsigned char *atom, char **target) |
| static void | parse_moov_atom (qt_info *info, unsigned char *moov_atom, int64_t bandwidth, input_plugin_t *input) |
| static qt_error | open_qt_file (qt_info *info, input_plugin_t *input, int64_t bandwidth) |
| static int | demux_qt_send_chunk (demux_plugin_t *this_gen) |
| static void | demux_qt_send_headers (demux_plugin_t *this_gen) |
| static int | binary_seek (qt_trak *trak, off_t start_pos, int start_time) |
| static int | demux_qt_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing) |
| static void | demux_qt_dispose (demux_plugin_t *this_gen) |
| static int | demux_qt_get_status (demux_plugin_t *this_gen) |
| static int | demux_qt_get_stream_length (demux_plugin_t *this_gen) |
| static uint32_t | demux_qt_get_capabilities (demux_plugin_t *this_gen) |
| static int | demux_qt_get_optional_data (demux_plugin_t *this_gen, void *data, int data_type) |
| static demux_plugin_t * | open_plugin (demux_class_t *class_gen, xine_stream_t *stream, input_plugin_t *input_gen) |
| void * | demux_qt_init_class (xine_t *xine, void *data) |
Variables | |
| static const int64_t | bandwidths [] |
| Network bandwidth, cribbed from src/input/input_mms.c. More... | |
| #define AC_3_FOURCC ME_FOURCC('a', 'c', '-', '3') |
Referenced by parse_trak_atom().
| #define ALAC_FOURCC ME_FOURCC('a', 'l', 'a', 'c') |
Referenced by parse_trak_atom().
| #define ALAW_FOURCC ME_FOURCC('a', 'l', 'a', 'w') |
Referenced by parse_trak_atom().
| #define ALB_ATOM QT_ATOM(0xA9, 'a', 'l', 'b') |
Referenced by parse_moov_atom().
| #define ART_ATOM QT_ATOM(0xA9, 'A', 'R', 'T') |
Referenced by parse_moov_atom().
| #define ATOM_PREAMBLE_SIZE 8 |
Referenced by find_moov_atom(), is_qt_file(), and open_qt_file().
| #define AVC1_FOURCC ME_FOURCC('a', 'v', 'c', '1') |
Referenced by demux_qt_send_headers().
| #define AVCC_ATOM QT_ATOM('a', 'v', 'c', 'C') |
Referenced by parse_trak_atom().
| #define CMOV_ATOM QT_ATOM('c', 'm', 'o', 'v') |
Referenced by find_moov_atom(), and open_qt_file().
| #define CMT_ATOM QT_ATOM(0xA9, 'c', 'm', 't') |
Referenced by parse_moov_atom().
| #define CO64_ATOM QT_ATOM('c', 'o', '6', '4') |
Referenced by parse_trak_atom().
| #define CPY_ATOM QT_ATOM(0xA9, 'c', 'p', 'y') |
Referenced by parse_moov_atom().
| #define CTTS_ATOM QT_ATOM('c', 't', 't', 's') |
Referenced by parse_trak_atom().
| #define DATA_ATOM QT_ATOM('d', 'a', 't', 'a') |
Referenced by info_string_from_atom().
| #define DAY_ATOM QT_ATOM(0xA9, 'd', 'a', 'y') |
Referenced by parse_moov_atom().
| #define DEBUG_ATOM_LOAD 0 |
| #define DEBUG_AUDIO_DEMUX 0 |
| #define DEBUG_DUMP_MOOV 0 |
| #define DEBUG_EDIT_LIST 0 |
| #define DEBUG_FRAME_TABLE 0 |
| #define DEBUG_META_LOAD 0 |
| #define DEBUG_VIDEO_DEMUX 0 |
| #define DES_ATOM QT_ATOM(0xA9, 'd', 'e', 's') |
Referenced by parse_moov_atom().
| #define DRMS_FOURCC ME_FOURCC('d', 'r', 'm', 's') |
Referenced by parse_trak_atom().
| #define EAC3_FOURCC ME_FOURCC('e', 'c', '-', '3') |
Referenced by parse_trak_atom().
| #define ELST_ATOM QT_ATOM('e', 'l', 's', 't') |
Referenced by parse_trak_atom().
| #define ENDA_ATOM QT_ATOM('e', 'n', 'd', 'a') |
Referenced by parse_trak_atom().
| #define ESDS_ATOM QT_ATOM('e', 's', 'd', 's') |
Referenced by parse_trak_atom().
| #define FREE_ATOM QT_ATOM('f', 'r', 'e', 'e') |
Referenced by find_moov_atom(), and parse_moov_atom().
| #define FRMA_ATOM QT_ATOM('f', 'r', 'm', 'a') |
Referenced by parse_trak_atom().
| #define FTYP_ATOM QT_ATOM('f', 't', 'y', 'p') |
Referenced by find_moov_atom(), is_qt_file(), and open_qt_file().
| #define GEN_ATOM QT_ATOM(0xA9, 'g', 'e', 'n') |
Referenced by parse_moov_atom().
| #define HDLR_ATOM QT_ATOM('h', 'd', 'l', 'r') |
| #define HEV1_FOURCC ME_FOURCC('h', 'e', 'v', '1') |
Referenced by demux_qt_send_headers().
| #define HEVC_FOURCC ME_FOURCC('h', 'e', 'v', 'c') |
Referenced by demux_qt_send_headers().
| #define HVC1_FOURCC ME_FOURCC('h', 'v', 'c', '1') |
Referenced by demux_qt_send_headers().
| #define HVCC_ATOM QT_ATOM('h', 'v', 'c', 'C') |
Referenced by parse_trak_atom().
| #define ILST_ATOM QT_ATOM('i', 'l', 's', 't') |
| #define IMA4_FOURCC ME_FOURCC('i', 'm', 'a', '4') |
Referenced by parse_trak_atom().
| #define IN24_FOURCC ME_FOURCC('i', 'n', '2', '4') |
Referenced by parse_trak_atom().
| #define JUNK_ATOM QT_ATOM('j', 'u', 'n', 'k') |
Referenced by find_moov_atom().
| #define KEYFRAMES_SIZE 1024 |
Referenced by qt_keyframes_add().
| #define LOG_MODULE "demux_qt" |
Referenced by demux_qt_send_headers().
| #define MAC3_FOURCC ME_FOURCC('M', 'A', 'C', '3') |
Referenced by parse_trak_atom().
| #define MAC6_FOURCC ME_FOURCC('M', 'A', 'C', '6') |
Referenced by parse_trak_atom().
| #define MAX_AUDIO_TRAKS 8 |
Referenced by demux_qt_send_chunk(), and demux_qt_send_headers().
| #define MAX_PTS_DIFF 100000 |
Referenced by demux_qt_send_chunk().
| #define MDAT_ATOM QT_ATOM('m', 'd', 'a', 't') |
Referenced by find_moov_atom().
| #define MDHD_ATOM QT_ATOM('m', 'd', 'h', 'd') |
Referenced by parse_trak_atom().
| #define MEHD_ATOM QT_ATOM('m', 'e', 'h', 'd') |
Referenced by parse_mvex_atom().
| #define META_ATOM QT_ATOM('m', 'e', 't', 'a') |
Referenced by atom_scan().
| #define MFHD_ATOM QT_ATOM('m', 'v', 'h', 'd') |
Referenced by parse_moof_atom().
| #define MOOF_ATOM QT_ATOM('m', 'o', 'o', 'f') |
Referenced by fragment_scan().
| #define MOOV_ATOM QT_ATOM('m', 'o', 'o', 'v') |
Referenced by find_moov_atom(), is_qt_file(), open_qt_file(), and parse_moov_atom().
| #define MP4A_FOURCC ME_FOURCC('m', 'p', '4', 'a') |
Referenced by demux_qt_send_headers(), and parse_trak_atom().
| #define MVEX_ATOM QT_ATOM('m', 'v', 'e', 'x') |
Referenced by parse_moov_atom().
| #define MVHD_ATOM QT_ATOM('m', 'v', 'h', 'd') |
Referenced by find_moov_atom(), and parse_moov_atom().
| #define NAM_ATOM QT_ATOM(0xA9, 'n', 'a', 'm') |
Referenced by parse_moov_atom().
| #define NI42_FOURCC ME_FOURCC('4', '2', 'n', 'i') |
Referenced by parse_trak_atom().
| #define PALETTE_COUNT 256 |
| #define PICT_ATOM QT_ATOM('P', 'I', 'C', 'T') |
Referenced by find_moov_atom().
| #define PNOT_ATOM QT_ATOM('p', 'n', 'o', 't') |
Referenced by find_moov_atom().
Referenced by parse_trak_atom().
| #define QT_ATOM BE_FOURCC |
| #define QTIM_ATOM QT_ATOM('q', 't', 'i', 'm') |
Referenced by parse_reference_atom().
| #define RAW_FOURCC ME_FOURCC('r', 'a', 'w', ' ') |
Referenced by parse_trak_atom().
| #define RAW_MOOV_FILENAME "moovatom.raw" |
Referenced by dump_moov_atom().
| #define RDRF_ATOM QT_ATOM('r', 'd', 'r', 'f') |
| #define RMDA_ATOM QT_ATOM('r', 'm', 'd', 'a') |
Referenced by parse_moov_atom().
| #define RMDR_ATOM QT_ATOM('r', 'm', 'd', 'r') |
Referenced by parse_reference_atom().
| #define RMRA_ATOM QT_ATOM('r', 'm', 'r', 'a') |
| #define RMVC_ATOM QT_ATOM('r', 'm', 'v', 'c') |
| #define SAMR_FOURCC ME_FOURCC('s', 'a', 'm', 'r') |
Referenced by parse_trak_atom().
| #define SKIP_ATOM QT_ATOM('s', 'k', 'i', 'p') |
Referenced by find_moov_atom().
| #define SMHD_ATOM QT_ATOM('s', 'm', 'h', 'd') |
Referenced by parse_trak_atom().
| #define SOWT_FOURCC ME_FOURCC('s', 'o', 'w', 't') |
Referenced by demux_qt_send_chunk(), and parse_trak_atom().
| #define STCO_ATOM QT_ATOM('s', 't', 'c', 'o') |
Referenced by parse_trak_atom().
| #define STSC_ATOM QT_ATOM('s', 't', 's', 'c') |
Referenced by parse_trak_atom().
| #define STSD_ATOM QT_ATOM('s', 't', 's', 'd') |
Referenced by parse_trak_atom().
| #define STSS_ATOM QT_ATOM('s', 't', 's', 's') |
Referenced by parse_trak_atom().
| #define STSZ_ATOM QT_ATOM('s', 't', 's', 'z') |
Referenced by parse_trak_atom().
| #define STTS_ATOM QT_ATOM('s', 't', 't', 's') |
Referenced by parse_trak_atom().
| #define STZ2_ATOM QT_ATOM('s', 't', 'z', '2') |
Referenced by parse_trak_atom().
| #define TFHD_ATOM QT_ATOM('t', 'f', 'h', 'd') |
Referenced by parse_traf_atom().
| #define TKHD_ATOM QT_ATOM('t', 'k', 'h', 'd') |
Referenced by parse_trak_atom().
| #define TOO_ATOM QT_ATOM(0xA9, 't', 'o', 'o') |
| #define TRAF_ATOM QT_ATOM('t', 'r', 'a', 'f') |
Referenced by parse_moof_atom().
| #define TRAK_ATOM QT_ATOM('t', 'r', 'a', 'k') |
Referenced by parse_moov_atom().
| #define TREX_ATOM QT_ATOM('t', 'r', 'e', 'x') |
Referenced by parse_mvex_atom().
| #define TRUN_ATOM QT_ATOM('t', 'r', 'u', 'n') |
Referenced by parse_traf_atom().
| #define TWOS_FOURCC ME_FOURCC('t', 'w', 'o', 's') |
Referenced by demux_qt_send_chunk(), and parse_trak_atom().
| #define UDTA_ATOM QT_ATOM('u', 'd', 't', 'a') |
| #define ULAW_FOURCC ME_FOURCC('u', 'l', 'a', 'w') |
Referenced by parse_trak_atom().
| #define URL__ATOM QT_ATOM('u', 'r', 'l', ' ') |
Referenced by parse_reference_atom().
| #define VMHD_ATOM QT_ATOM('v', 'm', 'h', 'd') |
Referenced by parse_trak_atom().
| #define WAVE_ATOM QT_ATOM('w', 'a', 'v', 'e') |
Referenced by parse_trak_atom().
| #define WIDE_ATOM QT_ATOM('w', 'i', 'd', 'e') |
Referenced by find_moov_atom().
| #define WRITE_BE_32 | ( | v, | |
| p | |||
| ) |
Referenced by atom_scan(), and find_embedded_atom().
| #define WRT_ATOM QT_ATOM(0xA9, 'w', 'r', 't') |
Referenced by parse_moov_atom().
| typedef struct demux_qt_s demux_qt_t |
| typedef unsigned int qt_atom |
| enum media_type |
| enum qt_error |
|
static |
<< list of atom sizes to fill in.
| atom | << return value: # of missing atoms. |
| depth | << the atom to parse. |
| types | << how many levels of hierarchy to examine. |
| found | << zero terminated list of interesting atom types. |
| sizes | << list of atom pointers to fill in. |
References _X_BE_32, META_ATOM, NULL, WRITE_BE_32, and xine_hexdump().
Referenced by parse_moov_atom(), parse_reference_atom(), and parse_trak_atom().
|
static |
References qt_trak::current_frame, DEMUX_OK, qt_trak::frame_count, qt_trak::frames, qt_frame::offset, and qt_frame::pts.
Referenced by demux_qt_seek().
References _X_BE_16, _X_BE_32, _X_BE_64, properties_t::audio, properties_t::bytes_per_frame, properties_t::channels, qt_trak::chunk_offset_count, qt_trak::chunk_offset_table32, qt_trak::chunk_offset_table64, qt_trak::current_frame, qt_trak::edit_list_count, qt_trak::edit_list_table, sample_to_chunk_table_t::first_chunk, qt_trak::frame_count, qt_trak::frames, qt_frame::keyframe, MEDIA_AUDIO, qt_frame::media_id, sample_to_chunk_table_t::media_id, edit_list_table_t::media_time, MEDIA_VIDEO, NULL, qt_frame::offset, qt_trak::properties, qt_frame::pts, qt_frame::ptsoffs, qt_keyframes_add(), QT_NO_MEMORY, QT_OK, qt_trak::sample_size, qt_trak::sample_size_bits, qt_trak::sample_size_count, qt_trak::sample_size_table, qt_trak::sample_to_chunk_count, qt_trak::sample_to_chunk_table, qt_trak::samples, sample_to_chunk_table_t::samples_per_chunk, properties_t::samples_per_frame, qt_frame::size, qt_trak::stsd_atoms, qt_trak::stsd_atoms_count, qt_trak::sync_sample_count, qt_trak::sync_sample_table, qt_trak::time_to_sample_count, qt_trak::time_to_sample_table, qt_trak::timeoffs_to_sample_count, qt_trak::timeoffs_to_sample_table, qt_trak::timescale, edit_list_table_t::track_duration, qt_trak::type, properties_t::vbr, and xine_xcalloc().
Referenced by parse_moov_atom().
|
static |
References qt_info_s::album, qt_info_s::artist, qt_info_s::audio_trak, qt_info_s::base_mrl, qt_info_s::chosen_reference, qt_info_s::comment, qt_info_s::composer, qt_info_s::compressed_header, qt_info_s::copyright, qt_info_s::creation_time, qt_info_s::demux, qt_info_s::description, qt_info_s::duration, qt_info_s::genre, qt_info_s::last_error, qt_info_s::modification_time, qt_info_s::name, NULL, QT_OK, qt_info_s::reference_count, qt_info_s::references, qt_info_s::timescale, qt_info_s::trak_count, qt_info_s::traks, qt_info_s::video_trak, and qt_info_s::year.
Referenced by open_plugin().
|
static |
References free_qt_info().
Referenced by open_plugin().
|
static |
References DEMUX_CAP_AUDIOLANG.
Referenced by open_plugin().
|
static |
References DEMUX_OPTIONAL_DATA_AUDIOLANG, DEMUX_OPTIONAL_SUCCESS, DEMUX_OPTIONAL_UNSUPPORTED, and NULL.
Referenced by open_plugin().
|
static |
Referenced by open_plugin().
|
static |
Referenced by open_plugin().
| void* demux_qt_init_class | ( | xine_t * | xine, |
| void * | data | ||
| ) |
References xine_s::config, default_demux_class_dispose, N_, and open_plugin().
|
static |
References _x_demux_flush_engine(), binary_seek(), qt_trak::current_frame, DEMUX_OK, qt_trak::frame_count, qt_trak::frames, input(), INPUT_CAP_SEEKABLE, qt_frame::keyframe, NULL, and qt_frame::pts.
Referenced by open_plugin().
|
static |
References _x_demux_control_newpts(), _x_demux_send_mrl_reference(), _x_stream_info_set(), properties_t::audio, qt_trak::audio_index, properties_t::bits, BUF_AUDIO_LPCM_BE, BUF_AUDIO_LPCM_LE, BUF_FLAG_FRAME_END, BUF_FLAG_FRAMERATE, BUF_FLAG_KEYFRAME, BUF_FLAG_SEEK, properties_t::codec_buftype, properties_t::codec_fourcc, buf_element_s::content, qt_trak::current_frame, buf_element_s::decoder_flags, buf_element_s::decoder_info, DEMUX_FINISHED, DEMUX_OK, properties_t::edit_list_compensation, buf_element_s::extra_info, qt_trak::frame_count, qt_trak::frames, buf_element_s::free_buffer, input(), extra_info_s::input_normpos, extra_info_s::input_time, qt_frame::keyframe, MAX_AUDIO_TRAKS, MAX_PTS_DIFF, buf_element_s::max_size, qt_frame::media_id, properties_t::media_id, MEDIA_VIDEO, NULL, qt_frame::offset, qt_trak::properties, qt_frame::pts, buf_element_s::pts, qt_frame::ptsoffs, QT_DRM_NOT_SUPPORTED, qt_frame::size, buf_element_s::size, SOWT_FOURCC, TWOS_FOURCC, qt_trak::type, buf_element_s::type, properties_t::video, XINE_STREAM_INFO_FRAME_DURATION, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by open_plugin().
|
static |
References _x_demux_control_start(), _x_formattag_to_buf_audio(), _x_fourcc_to_buf_video(), _x_meta_info_set(), _x_report_audio_format_tag(), _x_report_video_fourcc(), _x_stream_info_set(), properties_t::audio, qt_trak::audio_index, AVC1_FOURCC, properties_t::bits, BUF_AUDIO_AAC, BUF_AUDIO_MPEG, BUF_AUDIO_UNKNOWN, BUF_AUDIO_VORBIS, BUF_FLAG_FRAME_END, BUF_FLAG_HEADER, BUF_FLAG_SPECIAL, BUF_FLAG_STDHEADER, BUF_SPECIAL_DECODER_CONFIG, BUF_SPECIAL_PALETTE, BUF_SPECIAL_STSD_ATOM, BUF_VIDEO_MPEG4, BUF_VIDEO_MSMPEG4_V1, BUF_VIDEO_UNKNOWN, properties_t::bytes_per_frame, properties_t::channels, properties_t::codec_buftype, properties_t::codec_fourcc, buf_element_s::content, qt_trak::decoder_config, qt_trak::decoder_config_len, buf_element_s::decoder_flags, buf_element_s::decoder_info, buf_element_s::decoder_info_ptr, DEMUX_OK, properties_t::depth, qt_trak::frame_count, qt_trak::frames, properties_t::height, HEV1_FOURCC, HEVC_FOURCC, HVC1_FOURCC, LOG_MODULE, MAX_AUDIO_TRAKS, buf_element_s::max_size, MEDIA_AUDIO, MP4A_FOURCC, NULL, qt_trak::object_type_id, qt_frame::offset, properties_t::palette, properties_t::palette_count, qt_trak::properties, properties_t::properties_atom, properties_t::properties_atom_size, properties_t::sample_rate, properties_t::samples_per_frame, qt_frame::size, buf_element_s::size, qt_trak::type, buf_element_s::type, properties_t::vbr, properties_t::video, properties_t::wave, properties_t::wave_size, properties_t::width, XINE_META_INFO_ALBUM, XINE_META_INFO_ARTIST, XINE_META_INFO_COMMENT, XINE_META_INFO_GENRE, XINE_META_INFO_TITLE, XINE_META_INFO_YEAR, XINE_STREAM_INFO_AUDIO_BITRATE, XINE_STREAM_INFO_AUDIO_BITS, XINE_STREAM_INFO_AUDIO_CHANNELS, XINE_STREAM_INFO_AUDIO_FOURCC, XINE_STREAM_INFO_AUDIO_SAMPLERATE, XINE_STREAM_INFO_HAS_AUDIO, XINE_STREAM_INFO_HAS_VIDEO, XINE_STREAM_INFO_VIDEO_FOURCC, XINE_STREAM_INFO_VIDEO_HEIGHT, and XINE_STREAM_INFO_VIDEO_WIDTH.
Referenced by open_plugin().
|
inlinestatic |
References RAW_MOOV_FILENAME.
Referenced by open_qt_file().
|
static |
References _X_BE_32, NULL, WRITE_BE_32, and xine_hexdump().
Referenced by parse_trak_atom().
|
static |
References qt_trak::id, NULL, qt_info_s::trak_count, and qt_info_s::traks.
Referenced by parse_mvex_atom(), and parse_traf_atom().
|
static |
References _X_BE_32, _X_BE_64, qt_info_s::fragment_count, input(), INPUT_IS_SEEKABLE, MOOF_ATOM, and parse_moof_atom().
Referenced by parse_moov_atom().
|
static |
References qt_info_s::album, qt_info_s::artist, properties_t::audio, qt_info_s::base_mrl, qt_info_s::comment, qt_info_s::composer, qt_info_s::copyright, qt_trak::decoder_config, qt_info_s::description, qt_trak::edit_list_table, qt_trak::frames, qt_info_s::genre, MEDIA_AUDIO, MEDIA_VIDEO, qt_info_s::name, NULL, properties_t::properties_atom, qt_info_s::reference_count, qt_info_s::references, qt_trak::sample_to_chunk_table, qt_trak::stsd_atoms, qt_trak::stsd_atoms_count, qt_info_s::trak_count, qt_info_s::traks, qt_trak::type, reference_t::url, properties_t::video, properties_t::wave, and qt_info_s::year.
Referenced by demux_qt_dispose(), and open_plugin().
|
static |
References _X_BE_16, _X_BE_32, DATA_ATOM, NULL, and string_size.
Referenced by parse_moov_atom().
|
static |
|
static |
Referenced by parse_trak_atom().
|
static |
References _, _x_message(), bandwidths, xine_stream_s::content_detection_method, create_qt_info(), DEMUX_FINISHED, demux_qt_dispose(), demux_qt_get_capabilities(), demux_qt_get_optional_data(), demux_qt_get_status(), demux_qt_get_stream_length(), demux_qt_seek(), demux_qt_send_chunk(), demux_qt_send_headers(), free_qt_info(), input(), INPUT_CAP_BLOCK, is_qt_file(), METHOD_BY_CONTENT, METHOD_BY_MRL, METHOD_EXPLICIT, NULL, xine_cfg_entry_s::num_value, open_qt_file(), QT_DRM_NOT_SUPPORTED, QT_OK, xine_stream_s::xine, xine_config_lookup_entry(), XINE_MSG_ENCRYPTED_SOURCE, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by demux_qt_init_class().
|
static |
References _X_BE_32, ATOM_PREAMBLE_SIZE, qt_info_s::base_mrl, CMOV_ATOM, qt_info_s::compressed_header, dump_moov_atom(), find_moov_atom(), FTYP_ATOM, input(), INPUT_CAP_SEEKABLE, INPUT_OPTIONAL_DATA_PREVIEW, qt_info_s::last_error, MAX_PREVIEW_SIZE, MOOV_ATOM, qt_info_s::moov_first_offset, NULL, parse_moov_atom(), QT_FILE_READ_ERROR, QT_NO_MEMORY, QT_NO_MOOV_ATOM, QT_OK, and QT_ZLIB_ERROR.
Referenced by open_plugin().
|
static |
References _X_BE_32, MFHD_ATOM, parse_traf_atom(), and TRAF_ATOM.
Referenced by fragment_scan().
|
static |
References _X_BE_32, _x_keyframes_set(), ALB_ATOM, qt_info_s::album, ART_ATOM, qt_info_s::artist, atom_scan(), qt_info_s::audio_trak, qt_info_s::base_mrl, build_frame_table(), qt_info_s::chosen_reference, CMT_ATOM, qt_info_s::comment, qt_info_s::composer, qt_info_s::copyright, CPY_ATOM, reference_t::data_rate, DAY_ATOM, qt_info_s::demux, DES_ATOM, qt_info_s::description, fragment_scan(), qt_trak::frame_count, qt_trak::frames, FREE_ATOM, GEN_ATOM, qt_info_s::genre, qt_trak::info, info_string_from_atom(), input(), qt_frame::keyframe, qt_trak::keyframes_list, qt_trak::keyframes_size, qt_trak::keyframes_used, qt_info_s::last_error, MEDIA_AUDIO, qt_frame::media_id, MEDIA_VIDEO, MOOV_ATOM, MVEX_ATOM, MVHD_ATOM, NAM_ATOM, qt_info_s::name, NULL, qt_frame::offset, parse_mvex_atom(), parse_mvhd_atom(), parse_reference_atom(), parse_trak_atom(), qt_frame::pts, QT_NO_MOOV_ATOM, QT_OK, reference_t::qtim_version, qt_info_s::reference_count, qt_info_s::references, RMDA_ATOM, qt_frame::size, demux_qt_s::stream, qt_info_s::timescale, TRAK_ATOM, qt_info_s::trak_count, qt_info_s::traks, qt_trak::type, reference_t::url, qt_info_s::video_trak, WRT_ATOM, and qt_info_s::year.
Referenced by open_qt_file().
|
static |
References _X_BE_32, qt_trak::default_sample_description_index, qt_trak::default_sample_duration, qt_trak::default_sample_flags, qt_trak::default_sample_size, find_trak_by_id(), qt_info_s::fragment_count, qt_trak::fragment_dts, qt_trak::fragment_frames, qt_trak::frame_count, qt_trak::frames, MEHD_ATOM, qt_frame::pts, qt_trak::timescale, and TREX_ATOM.
Referenced by parse_moov_atom().
|
static |
References _X_BE_32, qt_info_s::creation_time, qt_info_s::duration, qt_info_s::modification_time, and qt_info_s::timescale.
Referenced by parse_moov_atom().
|
static |
References _X_BE_16, _X_BE_32, atom_scan(), reference_t::data_rate, NULL, QT_NOT_A_VALID_FILE, QT_OK, QTIM_ATOM, reference_t::qtim_version, qt_info_s::reference_count, qt_info_s::references, RMDR_ATOM, string_size, reference_t::url, and URL__ATOM.
Referenced by parse_moov_atom().
|
static |
References _X_BE_32, _X_BE_64, qt_trak::default_sample_description_index, qt_trak::default_sample_duration, qt_trak::default_sample_flags, qt_trak::default_sample_size, find_trak_by_id(), qt_trak::fragment_dts, qt_trak::fragment_frames, qt_trak::frame_count, qt_trak::frames, qt_frame::keyframe, qt_frame::media_id, NULL, qt_frame::offset, qt_frame::pts, qt_frame::ptsoffs, qt_keyframes_add(), qt_frame::size, TFHD_ATOM, qt_trak::timescale, and TRUN_ATOM.
Referenced by parse_moof_atom().
References _X_BE_16, _X_BE_24, _X_BE_32, _X_BE_64, _X_ME_32, _x_waveformatex_le2me(), AC_3_FOURCC, ALAC_FOURCC, ALAW_FOURCC, atom_scan(), properties_t::audio, AVCC_ATOM, palette_entry_s::b, properties_t::bits, properties_t::bytes_per_frame, properties_t::bytes_per_packet, properties_t::bytes_per_sample, properties_t::channels, qt_trak::chunk_offset_count, qt_trak::chunk_offset_table32, qt_trak::chunk_offset_table64, CO64_ATOM, properties_t::codec_fourcc, CTTS_ATOM, qt_trak::current_frame, qt_trak::decoder_config, qt_trak::decoder_config_len, properties_t::depth, DRMS_FOURCC, EAC3_FOURCC, qt_trak::edit_list_count, qt_trak::edit_list_table, ELST_ATOM, ENDA_ATOM, ESDS_ATOM, find_embedded_atom(), sample_to_chunk_table_t::first_chunk, qt_trak::flags, qt_trak::frame_count, qt_trak::frames, FRMA_ATOM, palette_entry_s::g, properties_t::height, HVCC_ATOM, qt_trak::id, IMA4_FOURCC, IN24_FOURCC, qt_trak::keyframes_list, qt_trak::keyframes_size, qt_trak::keyframes_used, qt_trak::lang, MAC3_FOURCC, MAC6_FOURCC, MDHD_ATOM, MEDIA_AUDIO, sample_to_chunk_table_t::media_id, properties_t::media_id, MEDIA_OTHER, edit_list_table_t::media_time, MEDIA_VIDEO, mp4_read_descr_len(), MP4A_FOURCC, NI42_FOURCC, NULL, qt_trak::object_type_id, properties_t::palette, properties_t::palette_count, qt_trak::properties, properties_t::properties_atom, properties_t::properties_atom_size, properties_t::properties_offset, QCLP_FOURCC, qt_default_palette_16, qt_default_palette_256, qt_default_palette_4, QT_DRM_NOT_SUPPORTED, QT_HEADER_TROUBLE, QT_NO_MEMORY, QT_NOT_A_VALID_FILE, QT_OK, palette_entry_s::r, RAW_FOURCC, properties_t::sample_rate, qt_trak::sample_size, qt_trak::sample_size_bits, qt_trak::sample_size_count, qt_trak::sample_size_table, qt_trak::sample_to_chunk_count, qt_trak::sample_to_chunk_table, qt_trak::samples, sample_to_chunk_table_t::samples_per_chunk, properties_t::samples_per_frame, properties_t::samples_per_packet, SAMR_FOURCC, SMHD_ATOM, SOWT_FOURCC, STCO_ATOM, STSC_ATOM, STSD_ATOM, qt_trak::stsd_atoms, qt_trak::stsd_atoms_count, STSS_ATOM, STSZ_ATOM, STTS_ATOM, STZ2_ATOM, qt_trak::sync_sample_count, qt_trak::sync_sample_table, qt_trak::time_to_sample_count, qt_trak::time_to_sample_table, qt_trak::timeoffs_to_sample_count, qt_trak::timeoffs_to_sample_table, qt_trak::timescale, TKHD_ATOM, edit_list_table_t::track_duration, TWOS_FOURCC, qt_trak::type, ULAW_FOURCC, properties_t::vbr, properties_t::video, VMHD_ATOM, properties_t::wave, WAVE_ATOM, properties_t::wave_size, properties_t::width, and xine_xmalloc().
Referenced by parse_moov_atom().
References demux_qt_s::data_size, qt_info_s::demux, qt_trak::info, qt_trak::keyframes_list, qt_trak::keyframes_size, KEYFRAMES_SIZE, qt_trak::keyframes_used, xine_keyframes_entry_t::msecs, xine_keyframes_entry_t::normpos, qt_frame::offset, and qt_frame::pts.
Referenced by build_frame_table(), and parse_traf_atom().
|
inlinestatic |
|
static |
Network bandwidth, cribbed from src/input/input_mms.c.
Referenced by open_plugin().
1.8.14