Add a 'struct vo *vo' argument to the x11_common.c functions that
access the variable so it's available as vo->opts->vo_ontop. To keep
VOs using the old API working create a global vo variable that is set
to the currently used old vo. "vo_ontop" will be #defined to
"global_vo->opts->vo_ontop", and x11_common.h will add defines like
the following when it is included by old VOs:
#define vo_x11_ontop() vo_x11_ontop(global_vo)
so that they will call the function according to the new declaration.
Rename the vo_ontop() macro to vo_gl_ontop(). It caused problems with
other changes because it conflicts with a global variable name (gl2
actually called vo_ontop() as a function and used vo_ontop as an int -
this only worked because vo_ontop was defined as a function-like macro
and use without parentheses didn't trigger replacement).
Give sh_audio_t, sh_video_t and sh_sub_t which before had typedef
names only a matching struct name (without _t) too.
Change the a_streams, v_streams and s_streams demuxer fields from
void * to struct sh_audio *, struct sh_video * and struct sh_sub *.
Remove a now unnecessary cast from mplayer.c.
First part of option restructuring. The aim is to move option values
from a huge number of separate globals to a single non-global struct.
This part adds some support for parsing option values into such struct
instances, and moves one example option (fixed-vo) to the struct.
If preinit() failed after allocating some resources it didn't free
them. Also if preinit() completed but all (if any) calls to config()
failed then uninit() it not free resources. Add checks to uninit() to
make it safe with only a subset of resources allocated, then make it
execute independently of vo_config_count and also make preinit() call
it in error cases.
The previous version was not buggy, but this is easier to see correct.
Now it doesn't depend on options determining num_buffers staying
constant and on vo_config_count.
Combine code unnecessarily split in 3 #ifdef blocks into one block and
change local variables there were pointlessly declared static to
normal ones.
After this vo_xv.c no longer defines any global or static variables.
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.
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.
necessary, this should err on the side of unneeded recursion instead of
missing a necessary rebuild.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26467 b3059339-0415-0410-9bf9-f77b7e298cf2
Fix mencoder linking when the GUI is enabled.
Patch by Norman Yarvin (yarvin -at- yarchive -dot- net).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26454 b3059339-0415-0410-9bf9-f77b7e298cf2
Change (len & 3-1) to correct ((len & 3) - 1) in packet length check.
Also change "a - 1 < b" to simpler "a <= b".
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26446 b3059339-0415-0410-9bf9-f77b7e298cf2