1
mirror of https://github.com/mpv-player/mpv synced 2024-09-09 01:16:56 +02:00
Commit Graph

77 Commits

Author SHA1 Message Date
Uoti Urpala
8612c771fc cleanup: some random minor code simplification and cleanup 2011-01-26 13:04:17 +02:00
Uoti Urpala
6d65f6889a vf_vo: fix EOSD change detection bug
vf_vo had code setting its prev_visibility variable correctly, then a
line that overrode the value just set with an incorrect one. Remove
the wrong extra line. As a result of the bug the "contents changed"
indicator wasn't forced to true when switching from a subtitle track
to "no track" and then back. A visible effect was at least that a
currently visible static subtitle disappeared when doing that switch
back and forth.
2011-01-18 16:54:52 +02:00
Uoti Urpala
adedee4285 subtitles: move global ass_track to struct osd_state 2011-01-15 18:45:43 +02:00
reimar
98a6088a20 video: simplify some tests with a new IMGFMT_IS_HWACCEL macro
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32575 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-11-08 18:03:35 +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
greg
5cbce43341 libass: fix PAR correction
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30530 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-09 17:36:24 +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
6023874828 Some ugly hacks to make compiling against a newer external version of libass work.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30107 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-24 10:51:24 +00:00
reimar
2908957147 Remove more direct includes of libass/ass.h
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30105 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-12-24 10:26:29 +00:00
Uoti Urpala
7044965988 vf_vo: Use vo_seek_reset() instead of vo_control()
Change the vo_control(vo, VOCTRL_RESET, NULL) call done when the vf_vo
filter is uninited to vo_seek_reset(vo). The latter also sets
vo->frame_loaded to false.

Remove the vo->config_ok check from vo_seek_reset(). The reset call
should be doable even if config failed.
2009-12-02 12:50:56 +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
56088ff4dc vo_vdpau: Fix memory corruption bug with MP_IMGTYPE_NUMBERED
The way vo_vdpau kept references to vf mpi objects was unsafe; with
fixed-vo enabled the vf object could be destroyed and a new one
created, but vo_vdpau would still keep the now stale references and
modify memory through them to adjust usage counts. Send a VOCTRL_RESET
from vf_vo uninit() to allow vo_vdpau to erase such references.
2009-09-18 17:13:35 +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
Grigori Goronzy
1e98ef7789 Change type names to match upstream libass 2009-08-07 00:13:33 +03:00
Uoti Urpala
546c3fb53c Remove internal libass tree
Remove the libass/ directory and use the newest standalone version of
the library instead.
2009-07-26 20:22:43 +03:00
Uoti Urpala
e46317a1db Merge svn changes up to r28655 2009-02-19 03:23:50 +02:00
reimar
60fa5a134d Add VOCAP_NOSLICES and use it to allow vo_vdpau to not support slices for
YV12 - since VDPAU only has functions to upload the full frame at once
there is no sense in supporting draw_slice for that.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28646 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-18 12:30:15 +00:00
Uoti Urpala
0bf2bd91ec Merge svn changes up to r28610 2009-02-16 02:39:58 +02:00
reimar
078091e5de Move direct-rendering hack from vo_xvmc to vf_vo, so it does not need to
be duplicated for other systems like VDPAU or VAAPI.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28581 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-02-15 08:07:36 +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
04f3909a72 Merge svn changes up to r27374
Conflicts:

	cfg-common-opts.h
	cfg-mplayer.h
	command.c
	configure
	libmpcodecs/dec_video.c
	libmpcodecs/vd.c
	libmpcodecs/vf_vo.c
	libmpdemux/demuxer.h
	libmpdemux/stheader.h
	mp_core.h
	mplayer.c
	stream/stream_radio.c
2008-07-30 16:39:24 +03:00
diego
4b141479da Start unifying names of internal preprocessor directives.
Replace all USE_ prefixes by CONFIG_ prefixes to indicate
options which are configurable.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27373 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-07-30 12:01:30 +00: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
diego
c1f5c9bd3f cosmetics: Remove pointless parentheses from return calls.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26786 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-16 00:23:02 +00: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
7521aac665 Move global vo_config_count to vo struct
Remove the global and Add a corresponding field to the vo struct, plus
another which tells whether the LAST config call was successful.The
latter value which tells whether the VO should be properly configured
at the moment seems a better match for the semantics actually needed
in most places where the old value was used. The 'count' field with
the old semantics is not currently used by anything, but I'm leaving
it there for vo drivers which would need those semantics if converted
to use the struct.

Existing uses of the global outside old vo drivers are either converted
to use the struct field or moved inside the vo_xyz() calls (instead of
"if (vo_config_count) vo_flip_page(..." just call vo_flip_page which
will now do nothing if not configured). The removal of the check in
mpcommon.c/update_subtitles() is less trivial than the others, but I
think it shouldn't cause problems.
2008-04-23 13:46:39 +03:00
Uoti Urpala
2bcfe1e077 Add new video driver API
Create new video driver API that has a per-instance context structure
and does not rely on keeping status in global or static variables.
Existing drivers are not yet converted to this API; instead there is a
wrapper which translates calls to them.

In the new API, an old API call vo_functions->xyz(args) is generally
replaced by vo_xyz(vo_instance, args).

The changes to keep the vesa, dxr2 and xover drivers compiling have
not been tested.
2008-04-23 13:41:04 +03:00
Uoti Urpala
dbe080ec9f Change VOCTRL_[GET|SET]_EQUALIZER argument passing
These were the only voctrl types with more than one argument. The
second argument was passed using variable arguments. Change them to
use a single argument (address of a struct containing both old
arguments). This makes forwarding the arguments to other functions
easier and allows simplifying code.
2008-04-23 13:41:03 +03:00
eugeni
00cce8eb30 Add global ass_force_reload flag.
If it is set, renderer is reconfigured before the next frame.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25841 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-23 21:18:30 +00:00
reimar
b95c80ca86 Make all vf_info_t structs const
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25249 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-02 14:57:15 +00:00
reimar
844c8ffc48 Mark several uses of vo_functions_t as const to stop some of the current
hacks e.g. in vidix code from spreading.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25247 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-02 14:24:23 +00:00
eugeni
c67220c86f Add -ass-hinting option for setting font hinting method.
It is possible to separately configure hinting for scaled and unscaled osd.
The default is native hinter for unscaled osd (only vo_gl at this point),
no hinting for vf_ass.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23152 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-04-27 14:25:36 +00:00
reimar
0fe4207dfb Move common vo initialization code to video_out.c
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22250 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-02-17 20:58:55 +00:00
eugeni
e15d11c89e Speed up ASS subtitles display by detecting changes between two consecutive
rendering results.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21522 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-06 18:44:26 +00:00
eugeni
ac93dafe54 Set video aspect ratio for libass in vf_vo.
This was lost when ass_configure was split into smaller functions.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21443 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-02 17:04:01 +00:00
uau
544233bded Make compilation depending on USE_OSD unconditional.
USE_OSD was hardcoded to true in configure, manually turning it off
would break compilation, and most OSD-related code wasn't affected by it
anyway so it did nothing useful.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21177 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-22 19:21:16 +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
aca2396794 Initialize fontconfig in VFCTRL_INIT_EOSD handler.
Recent libass api changes moved fontconfig initialization to filter's
config() function. It is bad, because cache update can take a long time,
resulting in unpleasant sound effects. This change restores the original
behaviour.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20722 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-05 18:56:31 +00:00
eugeni
efea99c2c9 Libass interface reworked:
- ass_instance_t renamed to ass_renderer_t
- ass_library_t introduced
- use of mplayer-specific global variables limited to ass_mp.c


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20493 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-28 15:07:18 +00:00
eugeni
e8733cbf9d Split ass_configure() into several smaller functions.
FontConfig initialization moved from ass_init() to ass_set_fonts().


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20462 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-26 20:08:46 +00:00
eugeni
cb3292b17d Fix typo in sub_delay external specification.
Patch by Jindrich Makovicka <makovick a gmail d com>


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20203 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-10-13 20:28:07 +00:00
aurel
b127df8645 fix build failure when ASS is disabled
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19588 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-28 23:32:24 +00:00
eugeni
cc6a66766d Add EOSD support to vf_vo.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19582 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-28 19:10:11 +00:00
reimar
c8007742e7 Get rid of useless vf->priv casts
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19469 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-08-20 22:48:36 +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