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
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
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
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
demux_mf.c
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
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
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
demux_rawdv.c
demux_rawvideo.c
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
demux_rtp.cpp demux_rtp.cpp: Add missing #include 2008-12-02 23:09:07 +02:00
demux_rtp.h
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_smjpeg.c
demux_ts.c Fix mp_msg call with too few arguments. 2009-03-04 08:11:42 +00:00
demux_ty.c Get rid of pointless 'extern' keywords. 2008-12-03 23:01:03 +00:00
demux_ty_osd.c Correctly place second const in declaration. 2008-10-05 23:16:49 +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.c WORDS_BIGENDIAN is defined/undefined, not 0/1. 2009-01-26 09:56:27 +00:00
demux_xmms_plugin.h
demux_y4m.c
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
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
mf.c
mf.h
mp3_hdr.c Make various functions static 2008-08-12 14:57:12 +03:00
mp3_hdr.h
mp_taglists.c support E-AC-3 decoding using ffmpeg 2008-09-01 22:37:50 +00:00
mp_taglists.h
mpeg_hdr.c
mpeg_hdr.h
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
ms_hdr.h
muxer.c Start unifying names of internal preprocessor directives. 2008-07-30 12:01:30 +00:00
muxer.h
muxer_avi.c
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
muxer_rawvideo.c
parse_es.c
parse_es.h
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
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.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
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