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().
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.
vo gl generates bitmaps for EOSD content (libass subtitles) when
DRAW_EOSD is called but actual drawing of both EOSD and OSD is done in
draw_osd(). Since draw_osd() was called first it drew the EOSD content
from the previous frame, so the subtitles were always one frame late.
As a simple workaround update EOSD content first, then normal OSD.
This makes vo gl work correctly and should have no effect on anything
else.
We were using an inconsistent mix of the three variants and 'volatile' should
be the most correct and portable variant.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27791 b3059339-0415-0410-9bf9-f77b7e298cf2
Neither variant is valid C99 syntax, but __asm__ is the most portable variant.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27788 b3059339-0415-0410-9bf9-f77b7e298cf2
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
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.
Remove the global variable mpvdec and move the video decoder pointer
to struct sh_video field vd_driver. Audio already had a similar
ad_driver field from before.
"indent -kr -l79 -nut dec_video.c --ignore-newlines dec_video.c", fix
some "unknown_typedef * arg" in parameter lists by hand to
"unrecognized_typedef *arg".
an almost-trivial implementation.
This allows making the builtin codec structs const, and it also makes
clearer that this "selected" status is not used outside the init functions.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25689 b3059339-0415-0410-9bf9-f77b7e298cf2
against instead of directly #including the C file and replace the many extern
declarations by a proper header file.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24262 b3059339-0415-0410-9bf9-f77b7e298cf2
as long as there are enough pts values for frames that the decoder
returns.
This should allow passing NAL units individually.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22516 b3059339-0415-0410-9bf9-f77b7e298cf2
Avoids an incorrect "FATAL: Could not initialize video filters (-vf) or video output (-vo)."
message in some rare cases.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22423 b3059339-0415-0410-9bf9-f77b7e298cf2
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
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
Make the "normal" color controls fallback on the tv ones
if not available from vf/vo.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18191 b3059339-0415-0410-9bf9-f77b7e298cf2
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
patch by Paul TT < paultt == at == hackerjournal == dot == it >
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16794 b3059339-0415-0410-9bf9-f77b7e298cf2