Commit Graph

64 Commits

Author SHA1 Message Date
Uoti Urpala 48237126ae cosmetics: remove "_s" prefix from "struct vf_info_s" 2010-11-02 04:16:45 +02:00
Uoti Urpala 1888e57af7 cosmetics: "struct vf_instance* vf" -> "struct vf_instance *vf"
Change 'struct vf_instance' pointer arguments to more standard style
as in the subject. Also some other minor formatting fixes.

Patch by Diego Biurrun.
2010-05-29 17:20:44 +03:00
Uoti Urpala 5099b1458d Merge svn changes up to r30683 2010-03-10 00:52:17 +02:00
Uoti Urpala b0986b3760 Merge svn changes up to r30463
Note that r30455 is wrong, that commit does not in fact change the
default behavior as claimed in the commit message. It only breaks
"-af-adv force=0", which was already pretty much useless though.
2010-03-09 18:59:15 +02:00
diego 28cf6ea2be Rename open() vf initialization function to vf_open().
This avoids clashes with fcntl.h under certain circumstances.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30680 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-21 13:40:49 +00:00
diego 23db422c3d Add missing license headers to all files in the libmpcodecs directory.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30463 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-30 16:57:40 +00:00
reimar 1cf12c2492 Support more qscale types in most post-processing filters.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30454 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-01-29 19:13:07 +00:00
Uoti Urpala 1f126fc60c Avoid misleading error "ASS: cannot add video filter"
When using libass with a VO that has direct EOSD support the vf_ass
video filter is unnecessary and is not added automatically, but the
code that adds the filter when it is needed produced misleading output
messages in this case. The following two messages were printed at
MSGL_ERR level, making it look like an error condition:
Couldn't open video filter 'ass'.
ASS: cannot add video filter

Add a version of vf_open_plugin() called vf_open_plugin_noerr() that
does not itself print an error message if opening a vf fails and that
returns the exact status code returned by the vf open() function. Make
vf_ass return a different status code depending on whether there was
an actual error or if it determined a filter would be redundant. Use
the _noerr function in the code adding the filter to avoid the first
message and check the status code to avoid the second.
2010-01-16 20:37:13 +02:00
Uoti Urpala 98ee8dd159 Add yuv_colorspace property, implemented in vo_vdpau and vo_xv
Add a property to select YUV colorspace. Currently implemented only in
vo_vdpau and vo_xv. Allows switching between BT.601, BT.709 and
SMPTE-240M (vdpau only).

The xv support uses the "XV_ITURBT_709" attribute. At least my NVIDIA
card supports that; I don't know whether other xv implementations do.

Bind the colorspace switch to the 'c' key by default. 'c' is currently
used by vo_sdl for some fullscreen mode change thing, but at the moment
that does not conflict and if it will in the future then vo_sdl can
change.

VDPAU part based on a patch from Lauri Mylläri <lauri.myllari@gmail.com>
2009-11-15 17:03:41 +02:00
Uoti Urpala fa7983b236 vf: Remove unused VFCTRL_FLIP_PAGE
Nothing uses it under MPlayer any more, and under MEncoder it never
had any effect.
2009-10-21 07:35:22 +03:00
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
Uoti Urpala 0eb321bf2c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
diego 6e9cbdc104 whitespace cosmetics: Remove all trailing whitespace.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-13 02:58:57 +00:00
Uoti Urpala 0bf2bd91ec Merge svn changes up to r28610 2009-02-16 02:39:58 +02:00
reimar f78c49e030 Add MP_IMGTYPE_NUMBERED which gives access to the kind of mp_image_t that
are numbered and have a "in use" flag which is necessary for proper
buffer management as e.g. H.264 direct-rendering needs and is already used
successfully for the -vo vdpau work-in-progress.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28550 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-14 08:22:49 +00:00
reimar 5904de25e3 Avoid flickering OSD with -vf yadif=1
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28209 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-12-30 10:38:29 +00:00
Uoti Urpala 02efad79a2 Update OSD while paused
When OSD contents change while paused, try to change the OSD drawn in
the currently visible frame. If such OSD updates are not supported
then advance by one frame and draw the OSD normally. Add some support
for OSD redrawing to vo xv.

The new xv code makes a copy of the original frame contents before
drawing the OSD if MPlayer is already paused when the frame is drawn.
If such a copy of the current frame exists then the frame contents can
be restored and a different OSD drawn on top of the same frame.
2008-12-09 04:31:07 +02:00
Uoti Urpala a232f564d3 Create a context struct for OSD state
This commit creates the struct and passes it to some functions that
needs to access OSD state but does not yet move much data from globals
to it.

vf_expand accesses the OSD state for rendering purposes outside of the
normal OSD draw time. The way this currently works is suboptimal, but
I did not attempt to clean it up now. To keep things working the same
way vf_expand needs to know the address of the state object to be able
to access the data even in the functions that should normally not need
it. For that purpose this commit adds a VFCTRL to tell vf_expand the
address of the object.
2008-06-24 01:53:58 +03:00
Uoti Urpala 0885f4e5b5 Move vf_settings to options struct 2008-04-26 01:19:29 +03:00
Uoti Urpala 0e757bf9da Remove _s/_st suffix from some struct names
Since the names are always used after the keyword "struct" having a
suffix as in "struct demuxer_st" is almost completely pointless.
2008-04-25 03:34:22 +03:00
Uoti Urpala 0d59f81e54 Add option pointer to vf struct 2008-04-23 13:41:05 +03:00
diego db85806a9c Add necessary header #includes to fix 'make checkheaders'.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26179 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-03-06 08:34:50 +00:00
diego 8efb2fa21c Add MPLAYER_ prefix to multiple inclusion guards.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-02-22 09:09:46 +00:00
diego 2b6af2000b Add multiple inclusion guards to all header files that lack them.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25581 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-01 21:35:58 +00:00
reimar eff331a805 vf_equalizer_t string is constant
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25251 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-02 15:22:06 +00:00
rfelker 549d3be0c7 stage 1 of applying const to vf structs
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24996 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-11-09 06:57:24 +00:00
diego 60a8769850 Remove long-deprecated -vop option.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21446 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-02 17:32:53 +00:00
uau bd1989db0e Fix incorrect function pointer definition.
No call was made using this prototype directly so this just fixes
compiler warnings.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21179 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-22 19:33:30 +00:00
reimar 7b25afd742 Add deinterlace property, patch by Carl Eugen Hoyos
(cehoyos [at] rainbow studorg tuwien ac at) with small modifications
by me.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20989 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-17 18:16:21 +00:00
uau 45200bc6df Use vf control for reading pts from vf_vo
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20922 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-14 14:02:55 +00:00
eugeni 2ddfdc85b3 Add VFCTRL_DRAW_EOSD.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19527 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-24 22:10:43 +00:00
reynaldo 4728357b58 Marks several string parameters as const when they are not modified in the function, Patch by Stefan Huehner, stefan AT huehner-org
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18985 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-07-09 17:45:36 +00:00
eugeni e15ae9a600 Initial libass release (without mencoder support).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18942 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-07-07 18:26:51 +00:00
uau e2727ec797 Add a new video pts tracking mode, enabled by option -correct-pts.
This mode has the following differences:
- Video timing is correct for streams with B frames, at least with some
  demuxers.
- Video filters can modify frame timestamps and insert new frames, and
  removing frames is handled better than before.
- Some things are known to break, it's not usable as the default yet.

Things should work as before when the -correct-pts option is not used.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18922 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-07-06 06:58:17 +00:00
michael 02b199e5e9 passing pts through the filter layer (lets see if pts or cola comes out at the end)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17907 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-03-21 21:26:42 +00:00
rathann e7db4ccf1a Patch by Stefan Huehner / stefan % huehner ! org \
patch replaces '()' for the correct '(void)' in function
declarations/prototypes which have no parameters. The '()' syntax tell
thats there is a variable list of arguments, so that the compiler cannot
check this. The extra CFLAG '-Wstrict-declarations' shows those cases.

Comments about a similar patch applied to ffmpeg:

That in C++ these mean the same, but in ANSI C the semantics are
different; function() is an (obsolete) K&R C style forward declaration,
it basically means that the function can have any number and any types
of parameters, effectively completely preventing the compiler from doing
any sort of type checking. -- Erik Slagter

Defining functions with unspecified arguments is allowed but bad.
With arguments unspecified the compiler can't report an error/warning
if the function is called with incorrect arguments. -- Måns Rullgård


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17567 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-02-09 14:08:03 +00:00
henry b88ca0cd1a screenshot filter
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16447 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-09-11 06:42:32 +00:00
henry 18abbb69a1 fixes for encoding of multiple files
- do not uninitialize video encoder between files
- checks for image size & format change moved from mencoder.c to vfilters

by Oded Shimon <ods15@ods15.dyndns.org>


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14879 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-03-01 20:21:58 +00:00
reimar c632e897a8 add the flip filter at the end of the filter chain.
Fixes -vf pp -flip and the flip option in the Gui.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14184 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-12-18 14:06:35 +00:00
henry 5caa6d592b fix image dimensions at filter config time
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14074 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-12-01 09:30:11 +00:00
iive e5b4b495c3 add new control message, that is send after end of stream, to flush all remaining frames in the video system
required by xvid4 encoder.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13594 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-10-09 13:07:18 +00:00
rfelker 46ca153401 soft skipping for mencoder. rather than skipping decoding/filtering
frames that will be skipped, mencoded tells vf_softskip (if present)
that it should drop the next frame. this allows filters that need to
see every input frame (inverse telecine, denoise3d, ...) to see
skipped frames before they get dropped.

in principle, a smarter softskip filter could be written that would
buffer frames and choose to drop the one with least change, rather
than strictly dropping the next one.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12338 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-04-28 04:29:17 +00:00
rfelker a02009a05a forgot this, needed for vf_harddup
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12336 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-04-28 04:07:07 +00:00
rfelker 8b0fe12840 fix segfaults with slices. support slice rendering into a filter even
when the following filter/vo doesn't support slices. also use unified
vf->dmpi rather than having vf->priv->dmpi duplicated in every filter.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10141 b3059339-0415-0410-9bf9-f77b7e298cf2
2003-05-20 17:42:33 +00:00
rfelker 63df4eb781 sort of a hack, but at least this lets the framerate-increasing
filters work in mplayer, albeit without proper timing...


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10053 b3059339-0415-0410-9bf9-f77b7e298cf2
2003-05-03 05:59:29 +00:00
michael f0626e2f8d vf_clone_mpi_attributes()
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9935 b3059339-0415-0410-9bf9-f77b7e298cf2
2003-04-19 02:48:53 +00:00
albeu 33b62af947 Add the new -vf option wich is the same as vop in reverse order.
Syntax is we decided, so you can give the nomes or not with both
vop and vf. vf take precedence over vop.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9594 b3059339-0415-0410-9bf9-f77b7e298cf2
2003-03-15 18:01:02 +00:00
arpi 0020d4b05c start_slice() added - similar to get_image(), but is called when using slices
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9491 b3059339-0415-0410-9bf9-f77b7e298cf2
2003-02-23 20:40:21 +00:00
arpi ceb31765ba Fix draw_slice() in passthrough mode.
patch by Balatoni Denes <pnis@coder.hu>


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8368 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-12-05 00:22:37 +00:00
arpi c7944423a3 changing return type of put_image void->int
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7369 b3059339-0415-0410-9bf9-f77b7e298cf2
2002-09-10 22:18:32 +00:00