Mercurial > mplayer.hg
view asxparser.h @ 16318:e27998eeb54a
Fix nsv detection with new demuxer structure
With old method there was an hack to skip detection for streamed nsv,
because demuxer did the chek only on first 4 bytes and live nsv streams
starts at random place in the file. The detection code was changed to
search for nsv signature in the first 64k of the file.
The check was changed to "unsafe" and thus moved later because now is
more expensive.
author | rtognimp |
---|---|
date | Tue, 30 Aug 2005 19:06:55 +0000 |
parents | 1f6ae3d15f19 |
children | 75327b24e06f |
line wrap: on
line source
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(char* attrib,char** attribs); int asx_attrib_to_enum(char* val,char** valid_vals); #define asx_free_attribs(a) asx_list_free((void***)&a,free) ////// List utils typedef void (*ASX_FreeFunc)(void* arg); void asx_list_free(void* list_ptr,ASX_FreeFunc free_func);