view codec-cfg.h @ 27145:44ceb8c35dbc

r25385: Add new audio filter for encoding multi-channel audio into ac3 at runtime. r25389: Support using unrar executable to access rar-compressed vobsub files. r25440: Fix the expand text's format by the source. r25455: (previously applied) typo noticed by Paul TT r25529: Support ?(!NAME:TEXT) format for expanding string by property. r25566: update copyright year to 2008 r25585: Add an example for dvdnav:// usage with path. r25587: when {v|a}_o_mpegpes:card isn't specified by the user [...] r25607: documented angle commands r25610: Allow overriding [Script Info] parameters with -ass-force-style option. r25639: Add heartbeat-cmd option r25656: dvd-device can specify iso files too r25657: dumpstream is NOT a better way to copy a dvd title r25665: updated english manpage with protocol/extension profile loading feature r25671: document vo.* and ao.* playback profiles r25751: Extend heartbeat-cmd man page entry r25752: Seems that all - should be escaped in the man page r25762: added missing escapes r25763: added missing "&"
author kraymer
date Mon, 30 Jun 2008 19:35:32 +0000
parents 4129c8cfa742
children a0fe67fe194b
line wrap: on
line source

#ifndef MPLAYER_CODEC_CFG_H
#define MPLAYER_CODEC_CFG_H

#define CODEC_CFG_MIN	20070407

#define CODECS_MAX_FOURCC	32
#define CODECS_MAX_OUTFMT	16
#define CODECS_MAX_INFMT	16

// Global flags:
#define CODECS_FLAG_SEEKABLE	(1<<0)
#define CODECS_FLAG_ALIGN16	(1<<1)

// Outfmt flags:
#define CODECS_FLAG_FLIP	(1<<0)
#define CODECS_FLAG_NOFLIP	(1<<1)
#define CODECS_FLAG_YUVHACK	(1<<2)
#define CODECS_FLAG_QUERY	(1<<3)
#define CODECS_FLAG_STATIC	(1<<4)

#define CODECS_STATUS__MIN		0
#define CODECS_STATUS_NOT_WORKING	-1
#define CODECS_STATUS_PROBLEMS		0
#define CODECS_STATUS_WORKING		1
#define CODECS_STATUS_UNTESTED		2
#define CODECS_STATUS__MAX		2


#if !defined(GUID_TYPE) && !defined(GUID_DEFINED)
#define GUID_TYPE 1
#define GUID_DEFINED 1
typedef struct {
	unsigned long f1;
	unsigned short f2;
	unsigned short f3;
	unsigned char f4[8];
} GUID;
#endif


typedef struct codecs_st {
	unsigned int fourcc[CODECS_MAX_FOURCC];
	unsigned int fourccmap[CODECS_MAX_FOURCC];
	unsigned int outfmt[CODECS_MAX_OUTFMT];
	unsigned char outflags[CODECS_MAX_OUTFMT];
	unsigned int infmt[CODECS_MAX_INFMT];
	unsigned char inflags[CODECS_MAX_INFMT];
	char *name;
	char *info;
	char *comment;
	char *dll;
	char* drv;
	GUID guid;
//	short driver;
	short flags;
	short status;
	short cpuflags;
} codecs_t;

int parse_codec_cfg(const char *cfgfile);
codecs_t* find_video_codec(unsigned int fourcc, unsigned int *fourccmap,
                           codecs_t *start, int force);
codecs_t* find_audio_codec(unsigned int fourcc, unsigned int *fourccmap,
                           codecs_t *start, int force);
codecs_t* find_codec(unsigned int fourcc, unsigned int *fourccmap,
                     codecs_t *start, int audioflag, int force);
void list_codecs(int audioflag);
void codecs_uninit_free(void);

typedef char ** stringset_t;
void stringset_init(stringset_t *set);
void stringset_free(stringset_t *set);
void stringset_add(stringset_t *set, const char *str);
int stringset_test(stringset_t *set, const char *str);

#endif /* MPLAYER_CODEC_CFG_H */