FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
electronicarts.c File Reference

Electronic Arts Multimedia file demuxer (WVE/UV2/etc.) by Robin Kay (komadori at gekkou.co.uk) More...

#include <inttypes.h>
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  VideoProperties
 
struct  EaDemuxContext
 

Macros

#define SCHl_TAG   MKTAG('S', 'C', 'H', 'l')
 
#define SEAD_TAG   MKTAG('S', 'E', 'A', 'D') /* Sxxx header */
 
#define SNDC_TAG   MKTAG('S', 'N', 'D', 'C') /* Sxxx data */
 
#define SEND_TAG   MKTAG('S', 'E', 'N', 'D') /* Sxxx end */
 
#define SHEN_TAG   MKTAG('S', 'H', 'E', 'N') /* SxEN header */
 
#define SDEN_TAG   MKTAG('S', 'D', 'E', 'N') /* SxEN data */
 
#define SEEN_TAG   MKTAG('S', 'E', 'E', 'N') /* SxEN end */
 
#define ISNh_TAG   MKTAG('1', 'S', 'N', 'h') /* 1SNx header */
 
#define EACS_TAG   MKTAG('E', 'A', 'C', 'S')
 
#define ISNd_TAG   MKTAG('1', 'S', 'N', 'd') /* 1SNx data */
 
#define ISNe_TAG   MKTAG('1', 'S', 'N', 'e') /* 1SNx end */
 
#define PT00_TAG   MKTAG('P', 'T', 0x0, 0x0)
 
#define GSTR_TAG   MKTAG('G', 'S', 'T', 'R')
 
#define SCDl_TAG   MKTAG('S', 'C', 'D', 'l')
 
#define SCEl_TAG   MKTAG('S', 'C', 'E', 'l')
 
#define kVGT_TAG   MKTAG('k', 'V', 'G', 'T') /* TGV I-frame */
 
#define fVGT_TAG   MKTAG('f', 'V', 'G', 'T') /* TGV P-frame */
 
#define mTCD_TAG   MKTAG('m', 'T', 'C', 'D') /* MDEC */
 
#define MADk_TAG   MKTAG('M', 'A', 'D', 'k') /* MAD I-frame */
 
#define MADm_TAG   MKTAG('M', 'A', 'D', 'm') /* MAD P-frame */
 
#define MADe_TAG   MKTAG('M', 'A', 'D', 'e') /* MAD lqp-frame */
 
#define MPCh_TAG   MKTAG('M', 'P', 'C', 'h') /* MPEG-2 */
 
#define TGQs_TAG   MKTAG('T', 'G', 'Q', 's') /* TGQ I-frame (appears in .TGQ files) */
 
#define pQGT_TAG   MKTAG('p', 'Q', 'G', 'T') /* TGQ I-frame (appears in .UV files) */
 
#define pIQT_TAG   MKTAG('p', 'I', 'Q', 'T') /* TQI/UV2 I-frame (.UV2/.WVE) */
 
#define MVhd_TAG   MKTAG('M', 'V', 'h', 'd')
 
#define MV0K_TAG   MKTAG('M', 'V', '0', 'K')
 
#define MV0F_TAG   MKTAG('M', 'V', '0', 'F')
 
#define AVhd_TAG   MKTAG('A', 'V', 'h', 'd')
 
#define AV0K_TAG   MKTAG('A', 'V', '0', 'K')
 
#define AV0F_TAG   MKTAG('A', 'V', '0', 'F')
 
#define MVIh_TAG   MKTAG('M', 'V', 'I', 'h') /* CMV header */
 
#define MVIf_TAG   MKTAG('M', 'V', 'I', 'f') /* CMV I-frame */
 
#define AVP6_TAG   MKTAG('A', 'V', 'P', '6')
 

Functions

static uint32_t read_arbitrary (AVIOContext *pb)
 
static int process_audio_header_elements (AVFormatContext *s)
 
static void process_audio_header_eacs (AVFormatContext *s)
 
static void process_audio_header_sead (AVFormatContext *s)
 
static void process_video_header_mdec (AVFormatContext *s, VideoProperties *video)
 
static int process_video_header_vp6 (AVFormatContext *s, VideoProperties *video)
 
static void process_video_header_cmv (AVFormatContext *s, VideoProperties *video)
 
static int process_ea_header (AVFormatContext *s)
 
static int ea_probe (AVProbeData *p)
 
static int init_video_stream (AVFormatContext *s, VideoProperties *video)
 
static int ea_read_header (AVFormatContext *s)
 
static int ea_read_packet (AVFormatContext *s, AVPacket *pkt)
 

Variables

AVInputFormat ff_ea_demuxer
 

Detailed Description

Electronic Arts Multimedia file demuxer (WVE/UV2/etc.) by Robin Kay (komadori at gekkou.co.uk)

Definition in file electronicarts.c.

Macro Definition Documentation

#define SCHl_TAG   MKTAG('S', 'C', 'H', 'l')

Definition at line 34 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define SEAD_TAG   MKTAG('S', 'E', 'A', 'D') /* Sxxx header */

Definition at line 35 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define SNDC_TAG   MKTAG('S', 'N', 'D', 'C') /* Sxxx data */

Definition at line 36 of file electronicarts.c.

Referenced by ea_read_packet().

#define SEND_TAG   MKTAG('S', 'E', 'N', 'D') /* Sxxx end */

Definition at line 37 of file electronicarts.c.

Referenced by ea_read_packet().

#define SHEN_TAG   MKTAG('S', 'H', 'E', 'N') /* SxEN header */

Definition at line 38 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define SDEN_TAG   MKTAG('S', 'D', 'E', 'N') /* SxEN data */

Definition at line 39 of file electronicarts.c.

Referenced by ea_read_packet().

#define SEEN_TAG   MKTAG('S', 'E', 'E', 'N') /* SxEN end */

Definition at line 40 of file electronicarts.c.

Referenced by ea_read_packet().

#define ISNh_TAG   MKTAG('1', 'S', 'N', 'h') /* 1SNx header */

Definition at line 41 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define EACS_TAG   MKTAG('E', 'A', 'C', 'S')

Definition at line 42 of file electronicarts.c.

Referenced by process_ea_header().

#define ISNd_TAG   MKTAG('1', 'S', 'N', 'd') /* 1SNx data */

Definition at line 43 of file electronicarts.c.

Referenced by ea_read_packet().

#define ISNe_TAG   MKTAG('1', 'S', 'N', 'e') /* 1SNx end */

Definition at line 44 of file electronicarts.c.

Referenced by ea_read_packet().

#define PT00_TAG   MKTAG('P', 'T', 0x0, 0x0)

Definition at line 45 of file electronicarts.c.

Referenced by process_ea_header().

#define GSTR_TAG   MKTAG('G', 'S', 'T', 'R')

Definition at line 46 of file electronicarts.c.

Referenced by process_ea_header().

#define SCDl_TAG   MKTAG('S', 'C', 'D', 'l')

Definition at line 47 of file electronicarts.c.

Referenced by ea_read_packet().

#define SCEl_TAG   MKTAG('S', 'C', 'E', 'l')

Definition at line 48 of file electronicarts.c.

Referenced by ea_read_packet().

#define kVGT_TAG   MKTAG('k', 'V', 'G', 'T') /* TGV I-frame */

Definition at line 49 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define fVGT_TAG   MKTAG('f', 'V', 'G', 'T') /* TGV P-frame */

Definition at line 50 of file electronicarts.c.

Referenced by ea_read_packet().

#define mTCD_TAG   MKTAG('m', 'T', 'C', 'D') /* MDEC */

Definition at line 51 of file electronicarts.c.

Referenced by ea_read_packet(), and process_ea_header().

#define MADk_TAG   MKTAG('M', 'A', 'D', 'k') /* MAD I-frame */

Definition at line 52 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define MADm_TAG   MKTAG('M', 'A', 'D', 'm') /* MAD P-frame */

Definition at line 53 of file electronicarts.c.

Referenced by ea_read_packet().

#define MADe_TAG   MKTAG('M', 'A', 'D', 'e') /* MAD lqp-frame */

Definition at line 54 of file electronicarts.c.

Referenced by ea_read_packet().

#define MPCh_TAG   MKTAG('M', 'P', 'C', 'h') /* MPEG-2 */

Definition at line 55 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define TGQs_TAG   MKTAG('T', 'G', 'Q', 's') /* TGQ I-frame (appears in .TGQ files) */

Definition at line 56 of file electronicarts.c.

Referenced by ea_read_packet(), and process_ea_header().

#define pQGT_TAG   MKTAG('p', 'Q', 'G', 'T') /* TGQ I-frame (appears in .UV files) */

Definition at line 57 of file electronicarts.c.

Referenced by ea_read_packet(), and process_ea_header().

#define pIQT_TAG   MKTAG('p', 'I', 'Q', 'T') /* TQI/UV2 I-frame (.UV2/.WVE) */

Definition at line 58 of file electronicarts.c.

Referenced by ea_read_packet(), and process_ea_header().

#define MVhd_TAG   MKTAG('M', 'V', 'h', 'd')

Definition at line 59 of file electronicarts.c.

Referenced by ea_probe(), and process_ea_header().

#define MV0K_TAG   MKTAG('M', 'V', '0', 'K')

Definition at line 60 of file electronicarts.c.

Referenced by ea_read_packet().

#define MV0F_TAG   MKTAG('M', 'V', '0', 'F')

Definition at line 61 of file electronicarts.c.

Referenced by ea_read_packet().

#define AVhd_TAG   MKTAG('A', 'V', 'h', 'd')

Definition at line 62 of file electronicarts.c.

Referenced by process_ea_header().

#define AV0K_TAG   MKTAG('A', 'V', '0', 'K')

Definition at line 63 of file electronicarts.c.

Referenced by ea_read_packet().

#define AV0F_TAG   MKTAG('A', 'V', '0', 'F')

Definition at line 64 of file electronicarts.c.

Referenced by ea_read_packet().

#define MVIh_TAG   MKTAG('M', 'V', 'I', 'h') /* CMV header */

Definition at line 65 of file electronicarts.c.

Referenced by ea_probe(), ea_read_packet(), and process_ea_header().

#define MVIf_TAG   MKTAG('M', 'V', 'I', 'f') /* CMV I-frame */

Definition at line 66 of file electronicarts.c.

Referenced by ea_read_packet().

#define AVP6_TAG   MKTAG('A', 'V', 'P', '6')

Definition at line 67 of file electronicarts.c.

Referenced by ea_probe().

Function Documentation

static uint32_t read_arbitrary ( AVIOContext pb)
static

Definition at line 93 of file electronicarts.c.

Referenced by process_audio_header_elements().

static int process_audio_header_elements ( AVFormatContext s)
static

Definition at line 111 of file electronicarts.c.

Referenced by process_ea_header().

static void process_audio_header_eacs ( AVFormatContext s)
static

Definition at line 269 of file electronicarts.c.

Referenced by process_ea_header().

static void process_audio_header_sead ( AVFormatContext s)
static

Definition at line 306 of file electronicarts.c.

Referenced by process_ea_header().

static void process_video_header_mdec ( AVFormatContext s,
VideoProperties video 
)
static

Definition at line 317 of file electronicarts.c.

Referenced by process_ea_header().

static int process_video_header_vp6 ( AVFormatContext s,
VideoProperties video 
)
static

Definition at line 327 of file electronicarts.c.

Referenced by process_ea_header().

static void process_video_header_cmv ( AVFormatContext s,
VideoProperties video 
)
static

Definition at line 345 of file electronicarts.c.

Referenced by process_ea_header().

static int process_ea_header ( AVFormatContext s)
static

Definition at line 358 of file electronicarts.c.

Referenced by ea_read_header().

static int ea_probe ( AVProbeData p)
static

Definition at line 461 of file electronicarts.c.

static int init_video_stream ( AVFormatContext s,
VideoProperties video 
)
static

Definition at line 490 of file electronicarts.c.

Referenced by ea_read_header().

static int ea_read_header ( AVFormatContext s)
static

Definition at line 518 of file electronicarts.c.

static int ea_read_packet ( AVFormatContext s,
AVPacket pkt 
)
static

Definition at line 572 of file electronicarts.c.

Variable Documentation

AVInputFormat ff_ea_demuxer
Initial value:
= {
.name = "ea",
.long_name = NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia"),
.priv_data_size = sizeof(EaDemuxContext),
}
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
static int read_probe(AVProbeData *pd)
Definition: jvdec.c:55
static int ea_read_header(AVFormatContext *s)
static int read_header(FFV1Context *f)
Definition: ffv1dec.c:530
static int read_packet(void *opaque, uint8_t *buf, int buf_size)
Definition: avio_reading.c:42
static int ea_probe(AVProbeData *p)
static int ea_read_packet(AVFormatContext *s, AVPacket *pkt)

Definition at line 743 of file electronicarts.c.