Mercurial > mplayer.hg
view asxparser.h @ 29734:54145563612e
Find and take into account stream start time for ogg files.
This also makes the demuxing function set the keyframe flag for
vorbis packets that aren't header packets and have a time stamp,
even if we do not have vorbis_info struct yet.
The reason for this is that header packets always have 0 as time stamp.
Fixes bug #1585
author | reimar |
---|---|
date | Fri, 16 Oct 2009 08:42:00 +0000 |
parents | 0f1b5b68af32 |
children | c1a3f1bbba26 |
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 */