|
xine-lib
1.2.10
|
#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include "group_video.h"#include <xine/xine_internal.h>#include <xine/xineutils.h>#include <xine/demux.h>#include "bswap.h"Data Structures | |
| struct | video_index_entry_t |
| struct | audio_index_entry_t |
| struct | _avisuperindex_entry |
| struct | _avistdindex_entry |
| struct | _avistdindex_chunk |
| struct | _avisuperindex_chunk |
| struct | video_index_t |
| struct | audio_index_t |
| struct | idx_grow_t |
| struct | avi_audio_t |
| struct | avi_t |
| struct | demux_avi_s |
Macros | |
| #define | LOG_MODULE "demux_avi" |
| #define | LOG_VERBOSE |
| #define | AVIIF_KEYFRAME 0x00000010L |
| #define | MAX_AUDIO_STREAMS 8 |
| #define | NUM_PREVIEW_BUFFERS 10 |
| #define | AVI_INDEX_OF_INDEXES 0x00 /* when each entry in aIndex */ |
| #define | AVI_INDEX_OF_CHUNKS 0x01 /* when each entry in aIndex */ |
| #define | AVI_INDEX_IS_DATA 0x80 /* when each entry is aIndex is */ |
| #define | AVI_INDEX_2FIELD 0x01 /* when fields within frames */ |
| #define | AVI_ERR_SIZELIM |
| #define | AVI_ERR_OPEN |
| #define | AVI_ERR_READ 3 /* Error reading from AVI File */ |
| #define | AVI_ERR_WRITE |
| #define | AVI_ERR_WRITE_INDEX |
| #define | AVI_ERR_CLOSE |
| #define | AVI_ERR_NOT_PERM |
| #define | AVI_ERR_NO_MEM 8 /* malloc failed */ |
| #define | AVI_ERR_NO_AVI 9 /* Not an AVI file */ |
| #define | AVI_ERR_NO_HDRL |
| #define | AVI_ERR_NO_MOVI |
| #define | AVI_ERR_NO_VIDS 12 /* AVI file contains no video data */ |
| #define | AVI_ERR_NO_IDX |
| #define | AVI_ERR_BAD_SIZE 14 /* A chunk has an invalid size */ |
| #define | AVI_HEADER_UNKNOWN -1 |
| #define | AVI_HEADER_AUDIO 0 |
| #define | AVI_HEADER_VIDEO 1 |
| #define | AVI_HEADER_SIZE 8 |
| #define | WRAP_THRESHOLD 90000 |
| #define | PTS_AUDIO 0 |
| #define | PTS_VIDEO 1 |
| #define | PAD_EVEN(x) ( ((x)+1) & ~1 ) |
| #define | ERR_EXIT(x) |
Typedefs | |
| typedef struct _avisuperindex_entry | avisuperindex_entry |
| typedef struct _avistdindex_entry | avistdindex_entry |
| typedef struct _avistdindex_chunk | avistdindex_chunk |
| typedef struct _avisuperindex_chunk | avisuperindex_chunk |
| typedef struct demux_avi_s | demux_avi_t |
Functions | |
| static uint32_t | odml_len (unsigned char *str) |
| static uint32_t | odml_key (unsigned char *str) |
| static void | check_newpts (demux_avi_t *this, int64_t pts, int video) |
| static int | video_index_append (avi_t *AVI, off_t pos, uint32_t len, uint32_t flags) |
| static int | audio_index_append (avi_t *AVI, int stream, off_t pos, uint32_t len, off_t tot, uint32_t block_no) |
| static int64_t | get_audio_pts (demux_avi_t *this, int track, uint32_t posc, off_t postot, uint32_t posb) |
| static int64_t | get_video_pts (demux_avi_t *this, off_t pos) |
| static int | video_pos_stopper (demux_avi_t *this, void *data) |
| static int | audio_pos_stopper (demux_avi_t *this, void *data) |
| static int | start_pos_stopper (demux_avi_t *this, void *data) |
| static int | start_time_stopper (demux_avi_t *this, void *data) |
| static int | idx_grow (demux_avi_t *this, int(*stopper)(demux_avi_t *, void *), void *stopdata) |
| static video_index_entry_t * | video_cur_index_entry (demux_avi_t *this) |
| static audio_index_entry_t * | audio_cur_index_entry (demux_avi_t *this, avi_audio_t *AVI_A) |
| static void | free_superindex (avisuperindex_chunk **p) |
| static void | AVI_close (avi_t *AVI) |
| static void | reset_idx (demux_avi_t *this, avi_t *AVI) |
| static avi_t * | AVI_init (demux_avi_t *this) |
| static void | AVI_seek_start (avi_t *AVI) |
| static int | AVI_read_audio (demux_avi_t *this, avi_audio_t *AVI_A, char *audbuf, uint32_t bytes, int *buf_flags) |
| static int | AVI_read_video (demux_avi_t *this, avi_t *AVI, char *vidbuf, uint32_t bytes, int *buf_flags) |
| static int | demux_avi_next (demux_avi_t *this, int decoder_flags) |
| static int | get_chunk_header (demux_avi_t *this, uint32_t *len, int *audio_stream) |
| static int | demux_avi_next_streaming (demux_avi_t *this, int decoder_flags) |
| static int | demux_avi_seek_internal (demux_avi_t *this) |
| static int | demux_avi_send_chunk (demux_plugin_t *this_gen) |
| static void | demux_avi_dispose (demux_plugin_t *this_gen) |
| static int | demux_avi_get_status (demux_plugin_t *this_gen) |
| static void | demux_avi_send_headers (demux_plugin_t *this_gen) |
| static int | demux_avi_seek (demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing) |
| static int | demux_avi_get_stream_length (demux_plugin_t *this_gen) |
| static uint32_t | demux_avi_get_capabilities (demux_plugin_t *this_gen) |
| static int | demux_avi_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) |
| void * | demux_avi_init_class (xine_t *xine, const void *data) |
| #define AVI_ERR_BAD_SIZE 14 /* A chunk has an invalid size */ |
| #define AVI_ERR_CLOSE |
| #define AVI_ERR_NO_AVI 9 /* Not an AVI file */ |
| #define AVI_ERR_NO_HDRL |
| #define AVI_ERR_NO_IDX |
| #define AVI_ERR_NO_MEM 8 /* malloc failed */ |
| #define AVI_ERR_NO_MOVI |
| #define AVI_ERR_NO_VIDS 12 /* AVI file contains no video data */ |
| #define AVI_ERR_NOT_PERM |
| #define AVI_ERR_OPEN |
| #define AVI_ERR_READ 3 /* Error reading from AVI File */ |
| #define AVI_ERR_SIZELIM |
| #define AVI_ERR_WRITE |
| #define AVI_ERR_WRITE_INDEX |
| #define AVI_HEADER_AUDIO 0 |
| #define AVI_HEADER_SIZE 8 |
| #define AVI_HEADER_UNKNOWN -1 |
| #define AVI_HEADER_VIDEO 1 |
| #define AVI_INDEX_2FIELD 0x01 /* when fields within frames */ |
| #define AVI_INDEX_IS_DATA 0x80 /* when each entry is aIndex is */ |
| #define AVI_INDEX_OF_CHUNKS 0x01 /* when each entry in aIndex */ |
| #define AVI_INDEX_OF_INDEXES 0x00 /* when each entry in aIndex */ |
| #define AVIIF_KEYFRAME 0x00000010L |
| #define ERR_EXIT | ( | x | ) |
| #define LOG_MODULE "demux_avi" |
| #define LOG_VERBOSE |
| #define MAX_AUDIO_STREAMS 8 |
| #define NUM_PREVIEW_BUFFERS 10 |
| #define PAD_EVEN | ( | x | ) | ( ((x)+1) & ~1 ) |
| #define PTS_AUDIO 0 |
| #define PTS_VIDEO 1 |
| #define WRAP_THRESHOLD 90000 |
| typedef struct _avistdindex_chunk avistdindex_chunk |
| typedef struct _avistdindex_entry avistdindex_entry |
| typedef struct _avisuperindex_chunk avisuperindex_chunk |
| typedef struct _avisuperindex_entry avisuperindex_entry |
| typedef struct demux_avi_s demux_avi_t |
|
static |
|
static |
|
static |
|
static |
References NULL.
Referenced by demux_avi_send_headers().
|
static |
|
static |
|
static |
|
static |
|
static |
References _X_LE_32.
|
static |
|
static |
|
static |
References get_video_pts().
|
static |
|
static |
| void* demux_avi_init_class | ( | xine_t * | xine, |
| const void * | data | ||
| ) |
|
static |
|
static |
|
static |
|
static |
References _x_demux_flush_engine(), and DEMUX_OK.
|
static |
|
static |
References AVI_close().
|
static |
References audio_index_t::audio_chunks, avi_audio_t::audio_idx, avi_audio_t::audio_posc, and lprintf.
|
static |
|
static |
|
static |
Referenced by demux_avi_get_optional_data().
|
static |
Referenced by audio_cur_index_entry(), and AVI_init().
|
static |
|
static |
|
static |
|
static |
|
static |
References audio_index_t::audio_chunks, avi_audio_t::audio_idx, and avi_audio_t::audio_posc.
|
static |
References AVIIF_KEYFRAME.
|
static |
|
static |
|
static |
Referenced by audio_cur_index_entry().
1.8.17