summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/dec_video.h
Commit message (Collapse)AuthorAgeFilesLines
* vf_rectangle: remove as it is very dirty and we have a replacement nowRudolf Polzer2012-09-181-1/+0
|
* Remove dead codewm42012-08-011-1/+0
| | | | | | | | | | | | | This was done with the help of callcatcher [1]. Only functions which are statically known to be unused are removed. Some unused functions are not removed yet, because they might be needed in the near future (such as open_output_stream for the encode branch). There is one user visible change: the --subcc option did nothing, and is removed with this commit. [1] http://www.skynet.ie/~caolan/Packages/callcatcher.html
* core, vo: modify OSD redraw architecture, support EOSDUoti Urpala2011-12-061-1/+0
| | | | | | | | | | | | | | | | Previously the core sent VFCTRL_REDRAW_OSD to change OSD contents over the current frame. Change this to VFCTRL_REDRAW_FRAME followed by normal EOSD and OSD drawing calls, then vo_flip_page(). The new version supports changing EOSD contents for libass-rendered subtitles and simplifies the redraw support code needed per VO. vo_xv doesn't support EOSD changes because it relies on vf_ass to render EOSD contents earlier in the filter chain. vo_xv logic is additionally simplified because the previous commit removed the need to track the status of current and next images separately (now each frame is guaranteed to become "visible" soon after we receive it as "next", with no VO code running in the interval between).
* commands, vd_ffmpeg: fix switch_ratio slave commandUoti Urpala2011-11-141-0/+1
| | | | | | | | | The implementation of the switch_ratio command was hacky and called mpcodecs_config_vo() to reconfigure the filter/VO chain from under an existing decoder. This call no longer worked properly with vd_ffmpeg after that started using mpcodec_config_vo2(). Add new video decoder control command VDCTRL_RESET_ASPECT and use this to tell vd_ffmpeg to reinitialize the output chain properly.
* video, options: implement better YUV->RGB conversion controlwm42011-10-161-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite control of the colorspace and input/output level parameters used in YUV-RGB conversions, replacing VO-specific suboptions with new common options and adding configuration support to more cases. Add new option --colormatrix which selects the colorspace the original video is assumed to have in YUV->RGB conversions. The default behavior changes from assuming BT.601 to colorspace autoselection between BT.601 and BT.709 using a simple heuristic based on video size. Add new options --colormatrix-input-range and --colormatrix-output-range which select input YUV and output RGB range. Disable the previously existing VO-specific colorspace and level conversion suboptions in vo_gl and vo_vdpau. Remove the "yuv_colorspace" property and replace it with one named "colormatrix" and semantics matching the new option. Add new properties matching the options for level conversion. Colorspace selection is currently supported by vo_gl, vo_vdpau, vo_xv and vf_scale, and all can change it at runtime (previously only vo_vdpau and vo_xv could). vo_vdpau now uses the same conversion matrix generation as vo_gl instead of libvdpau functionality; the main functional difference is that the "contrast" equalizer control behaves somewhat differently (it scales the Y component around 1/2 instead of around 0, so that contrast 0 makes the image gray rather than black). vo_xv does not support level conversion. vf_scale supports range setting for input, but always outputs full-range RGB. The value of the slave properties is the policy setting used for conversions. This means they can be set to any value regardless of whether the current VO supports that value or whether there currently even is any video. Possibly separate properties could be added to query the conversion actually used at the moment, if any. Because the colorspace and level settings are now set with a single VF/VO control call, the return value of that is no longer used to signal whether all the settings are actually supported. Instead code should set all the details it can support, and ignore the rest. The core will use GET_YUV_COLORSPACE to check which colorspace details have been set and which not. In other words, the return value for SET_YUV_COLORSPACE only signals whether any kind of YUV colorspace conversion handling exists at all, and VOs have to take care to return the actual state with GET_YUV_COLORSPACE instead. To be changed in later commits: add missing option documentation.
* core, demux, vd_ffmpeg: pass side data from demux_lavf to vd_ffmpegUoti Urpala2011-08-201-1/+4
| | | | | | | | | | | | Pass the libavformat packet side_data field from demux_lavf to vd_ffmpeg. Libavcodec/libavformat use this field for palette data, and passing it is required for the playback of some paletted video codecs. The implementation works by giving vd_ffmpeg a copy of the struct demux_packet used to store the video packet (from which it can access the avpacket field). The definition of struct demux_packet is moved to new file demux_packet.h so that vd_ffmpeg.c can use it without including all of demuxer.h.
* Merge svn changes up to r30463Uoti Urpala2010-03-091-0/+18
|\ | | | | | | | | | | 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.
| * Add missing license headers to all files in the libmpcodecs directory.diego2010-01-301-0/+18
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30463 b3059339-0415-0410-9bf9-f77b7e298cf2
* | OSD: Ensure that OSD content is drawn in filter-added framesUoti Urpala2009-01-151-2/+1
| | | | | | | | | | | | Move the OSD drawing calls from filter_video() to higher-level code to ensure that VOs will draw the OSD also in filter-added frames, which are displayed without a separate call to filter_video().
* | Update OSD while pausedUoti Urpala2008-12-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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 r28087Uoti Urpala2008-12-041-13/+13
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: command.c libao2/ao_ivtv.c libao2/ao_v4l2.c libmpcodecs/dec_video.h libvo/aspect.h libvo/sub.c libvo/sub.h libvo/vo_directx.c libvo/vo_macosx.m libvo/vo_quartz.c mp_core.h mplayer.c mplayer.h osdep/getch2.h osdep/timer.h
| * Get rid of pointless 'extern' keywords.diego2008-12-031-12/+12
| | | | | | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28085 b3059339-0415-0410-9bf9-f77b7e298cf2
* | Create a context struct for OSD stateUoti Urpala2008-06-241-1/+4
|/ | | | | | | | | | | | | | 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.
* Add necessary header #includes to fix 'make checkheaders'.diego2008-03-061-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26179 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add MPLAYER_ prefix to multiple inclusion guards.diego2008-02-221-3/+3
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26061 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add multiple inclusion guards to all header files that lack them.diego2008-01-011-0/+4
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25581 b3059339-0415-0410-9bf9-f77b7e298cf2
* Make init_video function in dec_video static, it is not used outside that file.reimar2007-12-111-3/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25354 b3059339-0415-0410-9bf9-f77b7e298cf2
* get/set video colors string is constantreimar2007-12-021-2/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25252 b3059339-0415-0410-9bf9-f77b7e298cf2
* Remove redundant variable declaration.diego2007-08-251-2/+0
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24168 b3059339-0415-0410-9bf9-f77b7e298cf2
* Update OSD contents only after the correct values for the frame are known.uau2006-11-141-1/+2
| | | | | | | | | | | The most visible inaccuracy caused by the previous update location was that the OSD always showed position 0 after seeking with demux_mkv. Split frame decoding and filtering because with -correct-pts the pts value that should be displayed for the frame is only known after decoding but is needed before filtering (during which the OSD is drawn). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20918 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add a new video pts tracking mode, enabled by option -correct-pts.uau2006-07-061-0/+1
| | | | | | | | | | | | | | 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
* feed something (hopefully correct timestamps) into the video filter chainmichael2006-03-211-1/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17911 b3059339-0415-0410-9bf9-f77b7e298cf2
* Patch by Stefan Huehner / stefan % huehner ! org \rathann2006-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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
* flushing stuff after seeking (finally we can view MPEG without thouse blocks ↵michael2004-02-181-0/+1
| | | | | | after seeking with -vc ffmpeg12) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11978 b3059339-0415-0410-9bf9-f77b7e298cf2
* compiler warning fixesarpi2002-10-131-1/+1
| | | | | | | patch by Dominik Mierzejewski <dominik@rangers.eu.org> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7732 b3059339-0415-0410-9bf9-f77b7e298cf2
* -vc/-vfm accepts codec/driver _list_ now. empty list element for -vc meansarpi2002-09-261-1/+1
| | | | | | | *, ie search all codecs. codec name starting with - disables the codec. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7507 b3059339-0415-0410-9bf9-f77b7e298cf2
* best audio/video codec selection & init moved to libmpcodecsarpi2002-09-251-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7503 b3059339-0415-0410-9bf9-f77b7e298cf2
* tons of warning fixes, also some 10l bugfixes, including Dominik's PVA bugarpi2002-09-221-0/+1
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7473 b3059339-0415-0410-9bf9-f77b7e298cf2
* -afm/-vfm help implemenetd, some cosmetics of ad/vd codec names/commentsarpi2002-08-311-0/+2
| | | | git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7192 b3059339-0415-0410-9bf9-f77b7e298cf2
* -afm/-vfm migration from ID (int) to NAME (string) - simplifies code and ↵arpi2002-08-301-1/+1
| | | | | | makes dlopen()'ing possible git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7181 b3059339-0415-0410-9bf9-f77b7e298cf2
* Add the control VFCTRL_CHANGE_RECTANGLEkmkaplan2002-08-041-0/+1
| | | | | | | | print the rectangle boundaries. vf_rectangle accepts stride. Is this correct? git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6888 b3059339-0415-0410-9bf9-f77b7e298cf2
* mp_image moved to libmpcodecsarpi2002-04-131-0/+16
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5610 b3059339-0415-0410-9bf9-f77b7e298cf2