1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-25 16:33:02 +00:00
mpv/video/filter
wm4 1b1771f2a7 video: support filtering hardware frames via libavfilter
Requires a bunch of hacks:
- we access AVFilterLink.hw_frames_ctx. This is not a public API in
  FFmpeg and Libav. Newer FFmpeg provides an accessor
  (av_buffersink_get_hw_frames_ctx), but it's not available in Libav or
  the current FFmpeg release or Libav. We need this value after filter
  graph creation, so We have no choice but to access this.
  One alternative is making filter creation and format negotiation
  fully lazy (i.e. delay it and do it as filters are output), but this
  would be a huge change.
  So for now, we knowingly violate FFmpeg's and Libav's ABI and API
  constraints because they don't provide anything better.
  On newer FFmpeg, we use the (quite ugly) accessor, though.
- mp_image_params doesn't (and can't) have a field for the frames
  context AVBufferRef. So we pass it via vf_set_proto_frame(), and even
  more hacks.
- if a filter needs a hw context, but we haven't created one yet
  (because normally we create them lazily), it will fail at init.
- we allow any hw format now, although this could go horrible wrong.

Why all this effort? We could move hw deinterlacing filters etc. to
FFmpeg, which is a very worthy goal.
2017-01-16 16:10:39 +01:00
..
refqueue.c vf_vavpp: get rid of mp_refqueue_is_interlaced() 2016-07-15 20:37:46 +02:00
refqueue.h vf_vavpp: get rid of mp_refqueue_is_interlaced() 2016-07-15 20:37:46 +02:00
vf_buffer.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
vf_crop.c vf_crop: support opaque hardware decoding formats 2016-05-19 22:56:11 +02:00
vf_d3d11vpp.c win32: build with -DINITGUID 2016-09-28 21:38:52 +10:00
vf_dlopen.c Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
vf_dlopen.h
vf_dsize.c video: switch from using display aspect to sample aspect 2015-12-19 20:45:36 +01:00
vf_eq.c
vf_expand.c video: switch from using display aspect to sample aspect 2015-12-19 20:45:36 +01:00
vf_flip.c
vf_format.c vo_opengl: generalize HDR tone mapping mechanism 2016-07-03 19:42:52 +02:00
vf_gradfun.c
vf_lavfi.c video: support filtering hardware frames via libavfilter 2017-01-16 16:10:39 +01:00
vf_lavfi.h
vf_mirror.c
vf_noformat.c
vf_pullup.c
vf_rotate.c vf_rotate: allow arbitrary rotation 2016-08-19 09:37:52 +02:00
vf_scale.c options: make mp_vo_opts options an actual sub-option group 2016-08-30 23:50:57 +02:00
vf_stereo3d.c vf_stereo3d: add alternating modes 2015-12-18 15:35:06 +01:00
vf_sub.c video: switch from using display aspect to sample aspect 2015-12-19 20:45:36 +01:00
vf_vapoursynth.c mp_image: split colorimetry metadata into its own struct 2016-07-03 19:42:52 +02:00
vf_vavpp.c vf_vavpp: get rid of mp_refqueue_is_interlaced() 2016-07-15 20:37:46 +02:00
vf_vdpaupp.c vo_opengl: vdpau interop without RGB conversion 2016-06-19 19:58:40 +02:00
vf_yadif.c vf_yadif: change defaults 2015-12-21 22:05:40 +01:00
vf.c video: support filtering hardware frames via libavfilter 2017-01-16 16:10:39 +01:00
vf.h video: support filtering hardware frames via libavfilter 2017-01-16 16:10:39 +01:00