aboutsummaryrefslogtreecommitdiffhomepage
path: root/libmpcodecs/vf_vo.c
Commit message (Collapse)AuthorAge
* sub/OSD: move some related files to sub/Gravatar Uoti Urpala2011-01-26
|
* cleanup: rename ass_* functions to mp_ass_*Gravatar Uoti Urpala2011-01-26
| | | | | | | | The various ass_* functions were created when libass was part of the MPlayer tree and the distinction between MPlayer-specific and other functions was less clear. Now that libass is a clearly separate library, using the same ass_* namespace for player functions is ugly. Rename the functions to use mp_ass_ prefix instead.
* subs: use correct font aspect ratio for libass + converted subsGravatar Uoti Urpala2011-01-26
| | | | | | | | | | | | | | | | | | | | | | Rendering of ASS subtitles tries to be bug compatible with VSFilter and stretches fonts when the video is anamorphic (some scripts try to compensate for this VSFilter behavior, so trying to render them "correctly" would give the wrong result). However this behavior is not appropriate for subtitles we converted to ASS format ourselves for libass rendering, as they certainly don't have VSFilter bug workarounds. Change the code to use different behavior for "native" ASS tracks and converted ones. It's questionable whether the VSFilter-compatible behavior is appropriate for external .ass files either, as there could be anamorphic and non-anamorphic versions of the same video and the bug-compatible behavior can only be correct for one alternative at most. However it's probably better to keep it as a default at least, so that extracting a muxed subtitle track and using that does not give behavior different from the original muxed one. The aspect ratio setting is per ASS_Renderer, and changing it resets libass caches. For that reason this commit adds separate renderer instances to use for the "correct" and "VSFilter bug compatible" cases.
* cleanup: some random minor code simplification and cleanupGravatar Uoti Urpala2011-01-26
|
* vf_vo: fix EOSD change detection bugGravatar Uoti Urpala2011-01-18
| | | | | | | | | | 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.
* subtitles: move global ass_track to struct osd_stateGravatar Uoti Urpala2011-01-15
|
* video: simplify some tests with a new IMGFMT_IS_HWACCEL macroGravatar reimar2010-11-08
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32575 b3059339-0415-0410-9bf9-f77b7e298cf2
* cosmetics: "struct vf_instance* vf" -> "struct vf_instance *vf"Gravatar Uoti Urpala2010-05-29
| | | | | | | Change 'struct vf_instance' pointer arguments to more standard style as in the subject. Also some other minor formatting fixes. Patch by Diego Biurrun.
* Merge svn changes up to r30683Gravatar Uoti Urpala2010-03-10
|\
* \ Merge svn changes up to r30463Gravatar Uoti Urpala2010-03-09
|\ \ | | | | | | | | | | | | | | | 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.
| | * Rename open() vf initialization function to vf_open().Gravatar diego2010-02-21
| | | | | | | | | | | | | | | | | | | | | This avoids clashes with fcntl.h under certain circumstances. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30680 b3059339-0415-0410-9bf9-f77b7e298cf2
| | * libass: fix PAR correctionGravatar greg2010-02-09
| |/ | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30530 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Add missing license headers to all files in the libmpcodecs directory.Gravatar diego2010-01-30
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30463 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Some ugly hacks to make compiling against a newer external version of libass ↵Gravatar reimar2009-12-24
| | | | | | | | | | | | work. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30107 b3059339-0415-0410-9bf9-f77b7e298cf2
| * Remove more direct includes of libass/ass.hGravatar reimar2009-12-24
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30105 b3059339-0415-0410-9bf9-f77b7e298cf2
* | vf_vo: Use vo_seek_reset() instead of vo_control()Gravatar Uoti Urpala2009-12-02
| | | | | | | | | | | | | | | | | | 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.
* | Add yuv_colorspace property, implemented in vo_vdpau and vo_xvGravatar Uoti Urpala2009-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | vf: Remove unused VFCTRL_FLIP_PAGEGravatar Uoti Urpala2009-10-21
| | | | | | | | | | Nothing uses it under MPlayer any more, and under MEncoder it never had any effect.
* | vo_vdpau: Fix memory corruption bug with MP_IMGTYPE_NUMBEREDGravatar Uoti Urpala2009-09-18
| | | | | | | | | | | | | | | | 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.
* | core/VO: Allow VO drivers to add/modify framesGravatar Uoti Urpala2009-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Change type names to match upstream libassGravatar Grigori Goronzy2009-08-07
| |
* | Remove internal libass treeGravatar Uoti Urpala2009-07-26
| | | | | | | | | | Remove the libass/ directory and use the newest standalone version of the library instead.
* | Merge svn changes up to r28655Gravatar Uoti Urpala2009-02-19
|\|
| * Add VOCAP_NOSLICES and use it to allow vo_vdpau to not support slices forGravatar reimar2009-02-18
| | | | | | | | | | | | | | | | 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
* | Merge svn changes up to r28610Gravatar Uoti Urpala2009-02-16
|\|
| * Move direct-rendering hack from vo_xvmc to vf_vo, so it does not need toGravatar reimar2009-02-15
| | | | | | | | | | | | | | be duplicated for other systems like VDPAU or VAAPI. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28581 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Update OSD while pausedGravatar Uoti Urpala2008-12-09
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge svn changes up to r27374Gravatar Uoti Urpala2008-07-30
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * Start unifying names of internal preprocessor directives.Gravatar diego2008-07-30
| | | | | | | | | | | | | | | | 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
* | Create a context struct for OSD stateGravatar Uoti Urpala2008-06-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * cosmetics: Remove pointless parentheses from return calls.Gravatar diego2008-05-16
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26786 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Remove _s/_st suffix from some struct namesGravatar Uoti Urpala2008-04-25
| | | | | | | | | | Since the names are always used after the keyword "struct" having a suffix as in "struct demuxer_st" is almost completely pointless.
* | Move global vo_config_count to vo structGravatar Uoti Urpala2008-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Add new video driver APIGravatar Uoti Urpala2008-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Change VOCTRL_[GET|SET]_EQUALIZER argument passingGravatar Uoti Urpala2008-04-23
|/ | | | | | | | 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.
* Add global ass_force_reload flag.Gravatar eugeni2008-01-23
| | | | | | | 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
* Make all vf_info_t structs constGravatar reimar2007-12-02
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25249 b3059339-0415-0410-9bf9-f77b7e298cf2
* Mark several uses of vo_functions_t as const to stop some of the currentGravatar reimar2007-12-02
| | | | | | | hacks e.g. in vidix code from spreading. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25247 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add -ass-hinting option for setting font hinting method.Gravatar eugeni2007-04-27
| | | | | | | | | 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
* Move common vo initialization code to video_out.cGravatar reimar2007-02-17
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22250 b3059339-0415-0410-9bf9-f77b7e298cf2
* Speed up ASS subtitles display by detecting changes between two consecutiveGravatar eugeni2006-12-06
| | | | | | | rendering results. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21522 b3059339-0415-0410-9bf9-f77b7e298cf2
* Set video aspect ratio for libass in vf_vo.Gravatar eugeni2006-12-02
| | | | | | | 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
* Make compilation depending on USE_OSD unconditional.Gravatar uau2006-11-22
| | | | | | | | | 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
* Add deinterlace property, patch by Carl Eugen HoyosGravatar reimar2006-11-17
| | | | | | | | (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
* Use vf control for reading pts from vf_voGravatar uau2006-11-14
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20922 b3059339-0415-0410-9bf9-f77b7e298cf2
* Initialize fontconfig in VFCTRL_INIT_EOSD handler.Gravatar eugeni2006-11-05
| | | | | | | | | | 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
* Libass interface reworked:Gravatar eugeni2006-10-28
| | | | | | | | | - 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
* Split ass_configure() into several smaller functions.Gravatar eugeni2006-10-26
| | | | | | | 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
* Fix typo in sub_delay external specification.Gravatar eugeni2006-10-13
| | | | | | | Patch by Jindrich Makovicka <makovick a gmail d com> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20203 b3059339-0415-0410-9bf9-f77b7e298cf2
* fix build failure when ASS is disabledGravatar aurel2006-08-28
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19588 b3059339-0415-0410-9bf9-f77b7e298cf2