1
mirror of https://github.com/mpv-player/mpv synced 2024-10-18 10:25:02 +02:00
mpv/libmpcodecs
Uoti Urpala 350fc4f5a2 core/VO: Allow VO drivers to add/modify frames
Add interfaces to allow VO drivers to add or remove frames from the
video stream and to alter timestamps. Currently this functionality
only works with in correct-pts mode. Use the new functionality in
vo_vdpau to properly support frame-adding deinterlace modes.

Frames added by the VDPAU deinterlacing code are now properly timed.
Before every second frame was always shown immediately (probably next
monitor refresh) after the previous one, even if you were watching
things in slow motion, and framestepping didn't stop at them at all.
When seeking the deinterlace algorithm is no longer fed a mix of
frames from old and new positions.

As a side effect of the changes a problem with resize events was also
fixed. Resizing calls video_to_output_surface() to render the frame at
the new resolution, but before this function also changed the list of
history frames, so resizing could give an image different from the
original one, and also corrupt next frames due to them seeing the
wrong history. Now the function has no such side effects. There are
more resize-related problems though that will be fixed in a later
commit.

The deint_mpi[] list of reserved frames is increased from 2 to 3
entries for reasons related to the above. Having 2 entries is enough
when you initially get a new frame in draw_image() because then you'll
have those two entries plus the new one for a total of 3 (the code
relied on the oldest mpi implicitly staying reserved for the duration
of the call even after usage count was decreased). However if you want
to be able to reproduce the rendering outside draw_image(), relying on
the explicitly reserved list only, then it needs to store 3 entries.
2009-09-18 17:12:53 +03:00
..
native Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_acm.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_alaw.c whitespace cosmetics: Remove all trailing whitespace. 2009-05-13 02:58:57 +00:00
ad_dk3adpcm.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_dmo.c Translation system changes part 2: replace macros by strings 2009-07-07 01:38:20 +03:00
ad_dshow.c Translation system changes part 2: replace macros by strings 2009-07-07 01:38:20 +03:00
ad_dvdpcm.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_faad.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_ffmpeg.c Merge svn changes up to r29544 2009-08-22 04:31:30 +03:00
ad_hwac3.c Merge svn changes up to r29455 2009-07-29 01:32:03 +03:00
ad_hwmpa.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_imaadpcm.c Merge svn changes up to r29412 2009-07-07 02:56:01 +03:00
ad_internal.h Make audio decoder description structs const 2008-04-26 16:51:17 +03:00
ad_liba52.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_libdca.c Merge svn changes up to r26783 2008-05-15 21:19:35 +03:00
ad_libdv.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_libmad.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_libvorbis.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_mp3lib.c whitespace cosmetics: Remove all trailing whitespace. 2009-05-13 02:58:57 +00:00
ad_mpc.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_msadpcm.c Replace libavutil internal header #includes with MPlayer copies 2009-07-26 06:16:43 +03:00
ad_msgsm.c whitespace cosmetics: Remove all trailing whitespace. 2009-05-13 02:58:57 +00:00
ad_pcm.c whitespace cosmetics: Remove all trailing whitespace. 2009-05-13 02:58:57 +00:00
ad_qtaudio.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_realaud.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_sample.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_speex.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad_twin.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ad.c Merge svn changes up to r29117 2009-04-01 02:43:47 +03:00
ad.h Make audio decoder description structs const 2008-04-26 16:51:17 +03:00
ae_faac.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ae_faac.h Add necessary header #includes to fix 'make checkheaders'. 2008-03-06 08:34:50 +00:00
ae_lame.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ae_lame.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
ae_lavc.c Merge svn changes up to r29544 2009-08-22 04:31:30 +03:00
ae_lavc.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
ae_pcm.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ae_pcm.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
ae_toolame.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ae_toolame.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
ae_twolame.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ae_twolame.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
ae.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ae.h Add necessary header #includes to fix 'make checkheaders'. 2008-03-06 08:34:50 +00:00
cmmx.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
dec_audio.c Translation system changes part 2: replace macros by strings 2009-07-07 01:38:20 +03:00
dec_audio.h Get rid of pointless 'extern' keywords. 2008-12-03 23:01:03 +00:00
dec_video.c Translation system changes part 2: replace macros by strings 2009-07-07 01:38:20 +03:00
dec_video.h OSD: Ensure that OSD content is drawn in filter-added frames 2009-01-15 01:09:21 +02:00
img_format.c Add IMGFMT_RGB48LE and IMGFMT_RGB48BE. 2009-08-11 17:51:11 +00:00
img_format.h 100l, fix compilation again and make codec-cfg.c use the predefined constants 2009-08-12 01:03:21 +00:00
mp_image.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
mp_image.h Merge svn changes up to r29117 2009-04-01 02:43:47 +03:00
mpc_info.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
pullup.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
pullup.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
vd_dmo.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_dshow.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_ffmpeg.c Merge svn changes up to r29455 2009-07-29 01:32:03 +03:00
vd_hmblck.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_ijpg.c Make various functions static 2008-08-12 14:57:12 +03:00
vd_internal.h Make video decoder description structs const 2008-04-25 07:16:32 +03:00
vd_libdv.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_libmpeg2.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_lzo.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_mpegpes.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_mpng.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_mtga.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_null.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_qtvideo.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_raw.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_realvid.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_sgi.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_theora.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_vfw.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_vfwex.c - vfwex redundancy removed 2002-09-03 21:13:48 +00:00
vd_xanim.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_xvid4.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd_zrmjpeg.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vd.c Translation system changes part 2: replace macros by strings 2009-07-07 01:38:20 +03:00
vd.h Add some "const" to mpcodecs_vd_drivers 2009-03-06 20:20:12 +00:00
ve_lavc.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ve_libdv.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ve_nuv.c Replace libavutil internal header #includes with MPlayer copies 2009-07-26 06:16:43 +03:00
ve_qtvideo.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ve_raw.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ve_vfw.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ve_x264.c Merge svn changes up to r29532 2009-08-18 02:29:37 +03:00
ve_xvid4.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
ve.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_1bpp.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_2xsai.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_ass.c Change type names to match upstream libass 2009-08-07 00:13:33 +03:00
vf_blackframe.c Merge svn changes up to r26783 2008-05-15 21:19:35 +03:00
vf_bmovl.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_boxblur.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_crop.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_cropdetect.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_decimate.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_delogo.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_denoise3d.c Merge svn changes up to r29134 2009-04-02 23:55:13 +03:00
vf_detc.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_dint.c Remove _s/_st suffix from some struct names 2008-04-25 03:34:22 +03:00
vf_divtc.c Merge svn changes up to r29277 2009-05-08 23:50:26 +03:00
vf_down3dright.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_dsize.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_dvbscale.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_eq2.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_eq.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_expand.c Merge svn changes up to r29532 2009-08-18 02:29:37 +03:00
vf_field.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_fil.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_filmdint.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_flip.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_format.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_framestep.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_fspp.c Merge svn changes up to r29412 2009-07-07 02:56:01 +03:00
vf_geq.c Merge svn changes up to 27824 2008-10-25 05:12:34 +03:00
vf_gradfun.c Replace libavutil internal header #includes with MPlayer copies 2009-07-26 06:16:43 +03:00
vf_halfpack.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_harddup.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_hqdn3d.c Merge svn changes up to r29417 2009-07-12 15:52:00 +03:00
vf_hue.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_il.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_ilpack.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_ivtc.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_kerndeint.c Merge svn changes up to r29134 2009-04-02 23:55:13 +03:00
vf_lavc.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_lavcdeint.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_mcdeint.c Remove unnecessary libavutil/internal.h includes 2009-07-26 06:15:19 +03:00
vf_mirror.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_noformat.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_noise.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_ow.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_palette.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_perspective.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_phase.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_pp7.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_pp.c vf_pp: Remove deprecated "hex mode" support 2009-07-26 20:22:48 +03:00
vf_pullup.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_qp.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_rectangle.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_remove_logo.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_rgb2bgr.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_rgbtest.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_rotate.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_sab.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_scale.c Merge svn changes up to r29532 2009-08-18 02:29:37 +03:00
vf_scale.h Add MPLAYER_ prefix to multiple inclusion guards. 2008-02-22 09:09:46 +00:00
vf_screenshot.c Merge svn changes up to r29117 2009-04-01 02:43:47 +03:00
vf_smartblur.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_softpulldown.c Remove _s/_st suffix from some struct names 2008-04-25 03:34:22 +03:00
vf_softskip.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_spp.c Remove unnecessary libavutil/internal.h includes 2009-07-26 06:15:19 +03:00
vf_swapuv.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_telecine.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_test.c Translation system changes part 2: replace macros by strings 2009-07-07 01:38:20 +03:00
vf_tfields.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_tile.c Translation system changes part 2: replace macros by strings 2009-07-07 01:38:20 +03:00
vf_tinterlace.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_unsharp.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_uspp.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_vo.c core/VO: Allow VO drivers to add/modify frames 2009-09-18 17:12:53 +03:00
vf_yadif.c Merge svn changes up to r29134 2009-04-02 23:55:13 +03:00
vf_yuvcsp.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_yuy2.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_yvu9.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf_zrmjpeg.c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
vf.c Merge svn changes up to r29455 2009-07-29 01:32:03 +03:00
vf.h core/VO: Allow VO drivers to add/modify frames 2009-09-18 17:12:53 +03:00
vfcap.h Add VOCAP_NOSLICES and use it to allow vo_vdpau to not support slices for 2009-02-18 12:30:15 +00:00
vqf.h Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00