0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 12:02:23 +02:00
mpv/libmpdemux
Uoti Urpala 73fb23c1cf Add improved relative seek mode
When the new mode is active relative seeks are converted to absolute
ones (current video pts + relative seek amount) and forward/backward
flag before being sent to the demuxer. This mode is used if the
demuxer has set the accurate_seek field in the demuxer struct and
there is a video stream. At the moment the mkv and lavf demuxers
enable the flag.

This change is useful for later Matroska ordered chapter support (and
for more general timelime editing), but also fixes problems in
existing functionality. The main problem with the old mode, where
relative seeks are passed directly to the demuxer, is that the user
wants to seek relative to the currently displayed position but the
demuxer does not know what that position is. There can be an arbitrary
amount of buffering between the demuxer read position and what is
displayed on the screen. In some situations this makes small seeks
fail to move backward at all (especially visible at high playback
speed, when audio needs to be demuxed and decoded further ahead to
fill the output buffers after resampling).

Some container formats that can be used with the lavf demuxer do not
always have reliable timestamps that could be used for unambiguous
absolute seeking. However I made the demuxer always enable the new
mode because it already converted all seeks to absolute ones before
sending them to libavformat, so cases without reliable absolute seeks
were failing already and this should only improve the working cases.
2009-03-24 04:05:04 +02:00
..
aac_hdr.c Split the aac header parsing out of aac demuxer to allow using libmpmux 2008-04-09 00:43:19 +00:00
asf.h Remove unused GUID_t definition that also incorrectly defined GUID_DEFINED 2008-08-31 11:21:29 +00:00
asfguid.h Lots and lots of #ifdef ARCH_... -> #if ARCH_... 2009-01-16 09:21:21 +00:00
asfheader.c Move find_backwards_asf_guid asfguid.h to asfheader.c, the only place where 2008-10-05 21:44:42 +00:00
aviheader.c Mark some functions static 2008-04-23 13:48:38 +03:00
aviheader.h Add missing #includes that are required for things used in the header. 2008-06-17 09:09:36 +00:00
aviprint.c Code simplification 2009-01-01 11:41:09 +00:00
demux_aac.c Split the aac header parsing out of aac demuxer to allow using libmpmux 2008-04-09 00:43:19 +00:00
demux_asf.c Get rid of pointless 'extern' keywords. 2008-12-03 23:01:03 +00:00
demux_audio.c Get rid of pointless 'extern' keywords. 2008-12-03 23:01:03 +00:00
demux_avi.c Merge svn changes up to r28310 2009-01-15 05:57:31 +02:00
demux_avs.c Merge svn changes up to r27649 2008-09-20 16:13:33 +03:00
demux_avs.h Upgrade license of LGPL 2 or later files to LGPL 2.1 or later. 2008-09-15 05:40:29 +00:00
demux_demuxers.c Allocate struct demuxer with talloc 2009-03-21 05:42:41 +02:00
demux_film.c cosmetics: Remove pointless parentheses from return statements. 2008-05-16 09:41:00 +00:00
demux_fli.c cosmetics: Remove pointless parentheses from return statements. 2008-05-16 09:41:00 +00:00
demux_gif.c Rename preprocessor directives related to image libraries. 2008-08-05 08:47:51 +00:00
demux_lavf.c Add improved relative seek mode 2009-03-24 04:05:04 +02:00
demux_lmlm4.c Make all demuxer_desc_t const, thus moving them to .rodata 2008-01-13 16:00:39 +00:00
demux_mf.c add ffptx , works on ptx samples 2008-05-12 02:09:47 +00:00
demux_mkv.c Add improved relative seek mode 2009-03-24 04:05:04 +02:00
demux_mng.c MNG demuxer by Stefan Schuermans, stefan blinkenarea org 2008-11-30 13:22:34 +00:00
demux_mov.c Merge svn changes up to r28951 2009-03-14 23:52:45 +02:00
demux_mpc.c Use defines to give names to the different seek flags. 2008-01-29 15:11:38 +00:00
demux_mpg.c Merge svn changes up to r28087 2008-12-04 01:55:52 +02:00
demux_nemesi.c Merge svn changes up to r27092 2008-06-17 05:04:32 +03:00
demux_nsv.c Set demuxer->audio->id to avoid breakage due to r26301 2008-04-05 09:19:55 +00:00
demux_nut.c Warning fixes for demux_nut 2008-12-12 05:08:28 +00:00
demux_ogg.c Merge svn changes up to r28087 2008-12-04 01:55:52 +02:00
demux_pva.c Make various functions static 2008-08-12 14:57:12 +03:00
demux_rawaudio.c Remove global demuxer_type 2008-04-12 15:51:05 +00:00
demux_rawdv.c Fix lots and lots of other demuxers broken by r26301 2008-04-05 14:11:48 +00:00
demux_rawvideo.c Remove global demuxer_type 2008-04-12 15:51:05 +00:00
demux_real.c Be more robust against corrupted RM files that contain invalid packet length 2009-02-19 11:42:05 +00:00
demux_realaud.c Get rid of pointless 'extern' keywords. 2008-12-03 23:01:03 +00:00
demux_roq.c Fix lots and lots of other demuxers broken by r26301 2008-04-05 14:11:48 +00:00
demux_rtp_codec.cpp fix audio in some rtsp streams, ok'd by lu_zero 2008-08-11 17:32:31 +00:00
demux_rtp_internal.h Start unifying names of internal preprocessor directives. 2008-07-30 12:01:30 +00:00
demux_rtp.cpp demux_rtp.cpp: Add missing #include 2008-12-02 23:09:07 +02:00
demux_rtp.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
demux_smjpeg.c Fix lots and lots of other demuxers broken by r26301 2008-04-05 14:11:48 +00:00
demux_ts.c Fix mp_msg call with too few arguments. 2009-03-04 08:11:42 +00:00
demux_ty_osd.c Correctly place second const in declaration. 2008-10-05 23:16:49 +00:00
demux_ty.c Get rid of pointless 'extern' keywords. 2008-12-03 23:01:03 +00:00
demux_viv.c Avoid including avcodec.h in demuxer.h (and thus many other files) just to get 2008-07-17 17:14:12 +00:00
demux_vqf.c Add extra checks to avoid crashes with broken vqf files 2008-12-14 15:17:18 +00:00
demux_xmms_plugin.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
demux_xmms.c WORDS_BIGENDIAN is defined/undefined, not 0/1. 2009-01-26 09:56:27 +00:00
demux_y4m.c Make all demuxer_desc_t const, thus moving them to .rodata 2008-01-13 16:00:39 +00:00
demuxer.c Allocate struct demuxer with talloc 2009-03-21 05:42:41 +02:00
demuxer.h Add improved relative seek mode 2009-03-24 04:05:04 +02:00
ebml.c Add explicit location for headers from the stream/ directory. 2007-03-15 18:36:36 +00:00
ebml.h demux_mkv: Parse ordered chapter information 2009-03-22 04:42:25 +02:00
extension.c support E-AC-3 decoding using ffmpeg 2008-09-01 22:37:50 +00:00
genres.h Rearrange genres between numbers 53 and 63 into the correct order. 2009-01-09 10:14:03 +00:00
matroska.h Remove unnecessary includes 2008-04-01 15:24:53 +00:00
mf.c Change mf_fps to double 2008-02-14 14:44:52 +00:00
mf.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
mp3_hdr.c Make various functions static 2008-08-12 14:57:12 +03:00
mp3_hdr.h Add missing header #includes to fix 'make checkheaders'. 2008-03-05 23:32:01 +00:00
mp_taglists.c support E-AC-3 decoding using ffmpeg 2008-09-01 22:37:50 +00:00
mp_taglists.h Split the lavf taglists out of the lavf muxer to allow using libmpmux 2008-04-09 00:46:21 +00:00
mpeg_hdr.c Mark constant argument of mp_header_process_sequence_header as such. 2007-10-19 10:08:02 +00:00
mpeg_hdr.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
mpeg_packetizer.c Use correct PRIu64 length modifier for uint64_t value, fixes the warning: 2008-07-08 08:17:50 +00:00
mpeg_packetizer.h Use standard license headers with standard formatting. 2008-05-14 18:01:51 +00:00
ms_hdr.h Revert fixing illegal identifiers to fix compilation on MinGW. Unfortunately 2008-03-02 19:38:50 +00:00
muxer_avi.c Add explicit location for headers from the stream/ directory. 2007-03-15 18:36:36 +00:00
muxer_lavf.c fix compilation w/ FFmpeg r15533 2008-10-03 14:54:22 +00:00
muxer_mpeg.c Replace double semicolon by single semicolon. 2009-02-16 02:00:29 +00:00
muxer_rawaudio.c Add explicit location for headers from the stream/ directory. 2007-03-15 18:36:36 +00:00
muxer_rawvideo.c Remove unnecessary version.h #includes. 2008-04-30 11:03:41 +00:00
muxer.c Start unifying names of internal preprocessor directives. 2008-07-30 12:01:30 +00:00
muxer.h Add missing header #includes to fix 'make checkheaders'. 2008-03-05 23:32:01 +00:00
parse_es.c Remove unused parameter for mp_msg 2007-06-03 08:48:44 +00:00
parse_es.h Add missing header #includes to fix 'make checkheaders'. 2008-03-05 23:32:01 +00:00
parse_mp4.c Merge svn changes up to r28641 2009-02-18 01:45:36 +02:00
parse_mp4.h license header consistency cosmetics 2008-12-13 12:31:07 +00:00
qtpalette.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
stheader.h Merge svn changes up to r27841 2008-10-28 04:12:18 +02:00
video.c Convert HAVE_MALLOC_H into a 0/1 definition, fixes the warning: 2009-02-17 11:16:19 +00:00
yuv4mpeg_intern.h Mark files that were imported from the MJPEG Tools suite as such. 2008-05-14 18:16:38 +00:00
yuv4mpeg_ratio.c Mark files that were imported from the MJPEG Tools suite as such. 2008-05-14 18:16:38 +00:00
yuv4mpeg.c Mark files that were imported from the MJPEG Tools suite as such. 2008-05-14 18:16:38 +00:00
yuv4mpeg.h Mark files that were imported from the MJPEG Tools suite as such. 2008-05-14 18:16:38 +00:00