Mercurial > mplayer.hg
view edl.h @ 22616:09dc129234a0
Matroska seeking fixes
If a relative seek forward went past the last index position the
Matroska demuxer did not seek to any index position. It did however set
the mkv_d->skip_to_timecode variable which meant that the next
fill_buffer() call would read from the current position until the target
position (probably the end of the file). Fix this by changing the code
to seek to the last index position if that is between the current and
target positions.
Also change backwards relative seek to accept an exactly matching index
position (<= vs <) and reorganize the seeking conditionals to allow
making the above change without turning the code into a complete mess.
author | uau |
---|---|
date | Fri, 16 Mar 2007 14:55:41 +0000 |
parents | f580a7755ac5 |
children | 8338eda7af28 |
line wrap: on
line source
// EDL version 0.6 #ifndef EDLH #define EDLH #define EDL_SKIP 0 #define EDL_MUTE 1 #define EDL_MUTE_START 1 #define EDL_MUTE_END 0 struct edl_record { float start_sec; float stop_sec; float length_sec; short action; struct edl_record* next; struct edl_record* prev; }; typedef struct edl_record* edl_record_ptr; extern char *edl_filename; // file to extract EDL entries from (-edl) extern char *edl_output_filename; // file to put EDL entries in (-edlout) void free_edl(edl_record_ptr next_edl_record); // free's entire EDL list. edl_record_ptr edl_parse_file(void); // fills EDL stack #endif