view asxparser.h @ 27148:858c01b81117

r26502: Document rgbtest arguments r26057: Fix copy&paste typo in rgbtest documentation r26198: Grayscale encoding/decoding with FFmpeg is no longer enabled, remove references r26221: Try to fix the description of what mbcmp influences, please fix if I misunderstood the code. r26231: better syntax for A key r26232: added missing escapes r26260: Experimental support for -framedrop with -correct-pts. r26271: Mention that '-frames 0' is useful with -identify, closes bug #1046. r26273: add "ipod" to the list of formats handled by lavf r26297: compacted new libavformat's 'ipod' description r26402: Enable runtime control for colorful and/or module name output r26427: Restore grayscale decoding support with FFmpeg. r26449: 10L, forgot to commit the documentation for the -noconfig options. r26460: restore options alphabetical order r26650: Update documentation for the gl2 driver to make clear gl is usually preferred. r26674: add h264 to list of supported codecs r26732: Mark new options Michael committed as undocumented. r26739: Oops, remove stray .TP. r26749: -psprobe can be used in mpeg-pes streams, too r26762: Add a new suboption to -vo xv and -vo xvmc that allows selection r26763: Remove '(pass 1/2)' from some lavcopts. These options really worked on r26795: Add support for AppleIR Remote as an input under Linux systems. r26798: Document the -noar command-line option in en/fr manpages. r26806: Document x264's AQ options r26853: Update gl vo section with the new force-pbo suboption. r26909: Add a slave command to stop stream playback. r26979: small spelling/wording fixes r26986: Document VIDIXIVTVALPHA environment variable. r26997: Fix codec-specific options syntax declaration to be less confusing and wrong. r27057: Ability for specifying TV standard individually for each TV channel. r27132: Fix/restore the description of the rectangle video filter. previously applied: r27169: add missing escapes and full stops for scaletempo filter r27179: remove two trailing whitespaces
author kraymer
date Mon, 30 Jun 2008 19:35:45 +0000
parents 4129c8cfa742
children 0f1b5b68af32
line wrap: on
line source

#ifndef MPLAYER_ASXPARSER_H
#define MPLAYER_ASXPARSER_H

typedef struct ASX_Parser_t ASX_Parser_t;

typedef struct {
  char* buffer;
  int line;
} ASX_LineSave_t;

struct ASX_Parser_t {
  int line; // Curent line
  ASX_LineSave_t *ret_stack;
  int ret_stack_size;
  char* last_body;
  int deep;
};
  
ASX_Parser_t*
asx_parser_new(void);

void
asx_parser_free(ASX_Parser_t* parser);

/*
 * Return -1 on error, 0 when nothing is found, 1 on sucess
 */
int
asx_get_element(ASX_Parser_t* parser,char** _buffer,
		char** _element,char** _body,char*** _attribs);

int
asx_parse_attribs(ASX_Parser_t* parser,char* buffer,char*** _attribs);

/////// Attribs utils

char*
asx_get_attrib(const char* attrib,char** attribs);

int
asx_attrib_to_enum(const char* val,char** valid_vals);

#define asx_free_attribs(a) asx_list_free(&a,free)

////// List utils

typedef void (*ASX_FreeFunc)(void* arg);

void
asx_list_free(void* list_ptr,ASX_FreeFunc free_func);

#endif /* MPLAYER_ASXPARSER_H */