This changes the name of this project to mpv. Most user-visible mentions
of "MPlayer" and "mplayer" are changed to "mpv". The binary name and the
default config file location are changed as well.
The new default config file location is: ~/.mpv/
Remove etc/mplayer.desktop. Apparently this was for the MPlayer GUI,
which has been removed from mplayer2 ages ago.
We don't have a logo, and the MS Windows resource files sort-of require
one, so leave etc/mplayer.ico/.xpm as-is.
Remove the debian and rpm packaging scripts. These contained outdated
dependencies and likely were more harmful than useful. (Patches which
add working and well-tested packaging are welcome.)
And it never was. This property is write-only and exists only for
setting the program. Making it readable is possible, but would require
demuxer changes.
Use "-" instead of "_" in property names. The intent is that property
names and options names should be the same (if they refer to the same
thing), and options use "-" as word separator.
Rename some other properties too, e.g. "switch_audio" -> "audio".
Add a way to translate the old property names to the new ones, similar
to the input command legacy bridge.
Update input.conf. Use the new property names, and don't use legacy
commands.
When the first frame of a telecine pattern did not generate an output
frame (because it is a 0 or a 1), this could lead to the first two
output frames getting equal pts values.
When the first frame of a telecine pattern generates exactly one output
frame (i.e. when the telecine pattern starts with 2 or 3), then the
output was correct before this comment, and still is unchanged.
When the first frame of a telecine pattern generates more than one
output frame (i.e. when it starts with 4 to 9), then output pts are
still broken. This is not really solvable without knowing the frame
duration, or delaying output by one frame.
This is done by requesting a buffer from the next filter in the chain, instead
of always allocating our own. This allows the next filter to e.g. ensure its
own preferred memory layout.
There is lots of badly and inconsistently formatted code left, which
leaves us with the frequent need for cleaning up. This uncrustify
profile can be used for automatic reformatting. The author of this file
is (perhaps) uau.
It's different from mplayer-svn's TOOLS/mp-uncrustify-style.cfg. The
differences and origins of these files are unclear, but the file added
with this commit is probably more consistent with the heavily cleaned
up areas of mplayer2 and this fork.
The script was written to be able to deal with binary files, but it had
a bug corrupting some data: e.g. a byte sequence 0x1 0x37 was printed as
"\17" (0x1 = escaped as "\1", and 0x37 = kept as literal "7"), which
would be interpreted as single character 0xF.
Always pad octal literals to length 3, which makes the escape sequences
unambiguous.
Most of the scripts in TOOLS seem entirely useless. Remove them.
There were about 3 types of scripts:
- apparent developer tools (like file format dumpers, benchmarks)
=> I doubt any mplayer developer still alive even uses these
- helpers for encoding or ripping stuff
=> mencoder is gone, at least from this version of mplayer
- helpers meant for users (launching mplayer in weird ways, etc.)
=> just no, it will cause you more pain than gain
So no, there is nothing useful.
Under the scripts not deleted, these are needed for building mplayer:
file2string.py
matroska.py
vdpau_functions.py
These might have _some_ use (but still questionable):
binary_codecs.sh
checktree.sh
I have no idea what these are about, but it's probably useless outdated
crap. According to TOOLS/README, they are wrappers around
some Real binary codecs. They were added in 2003, and never touched
again (except for cosmetic changes).
The player can read codec mapping (codecs.conf) from an external file
or use embedded defaults. Before, the defaults were stored in the
player binary in the form of final already-parsed data structures.
Simplify things by storing the text of the codecs.conf file instead,
and parse that at runtime the same way an external file would be
parsed.
To create the previous parsed form, the build system first compiled a
separate binary named "codec-cfg", which parsed etc/codecs.conf and
then wrote the results as a C data structure that could be compiled
into the program. The new simple conversion of codecs.conf into a C
string is handled by the new script TOOLS/file2string.py.
After removing the codec-cfg binary, HOST_CC is no longer used for
anything. Remove the --host-cc configure option and associated logic.
Also remove the codec2html and codec-cfg-test functionality. Building
those was already broken and nobody cared.
There was a broken 3-character-long "fourcc" entry in etc/codecs.conf.
This happened to be accepted before but triggered a parse error after
the changes. Remove the broken entry and make the parsing functions
explicitly test for this error.
Some files used during build are generated with Python scripts in
TOOLS/. Before, the generated files were included in the git tree.
Start creating them at build time. This introduces a build-dependency
on python3.
The files in question are:
libvo/vdpau_template.c
libmpdemux/ebml_types.h
libmpdemux/ebml_defs.c
Fix printf format string warning
fixes this warning:
asfinfo.c: In function 'print_video_header':
asfinfo.c:158: warning: format '%.4s' expects type 'char *', but argument 3 has type 'long int *'
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32774 b3059339-0415-0410-9bf9-f77b7e298cf2
add missing fclose
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32775 b3059339-0415-0410-9bf9-f77b7e298cf2
add missing fclose()
found by cppcheck:
[avisubdump.c:199]: (error) Resource leak: f
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32776 b3059339-0415-0410-9bf9-f77b7e298cf2
* sub:
sub/OSD: move some related files to sub/
subtitles: options: enable -ass by default
subtitles: change default libass rendering style
demux_mkv, chapters: change millisecond arithmetic to ns
cleanup: rename ass_* functions to mp_ass_*
subs: use correct font aspect ratio for libass + converted subs
cleanup: some random minor code simplification and cleanup
vf_vo: fix EOSD change detection bug
sd_ass: remove subreader use, support plaintext markup
subtitles: style support for common SubRip tags and MicroDVD
core: ordered chapters: fix bad subtitle parameter
subs/demux: don't try to enable sub track when creating it
subtitles/demux: store duration instead of endpts in demux packets
subtitles: add framework for subtitle decoders
options: add special -leak-report option
subtitles: remove code trying to handle text subs with libavcodec
cleanup: move MP_NOPTS_VALUE definition to mpcommon.h
subtitles: move global ass_track to struct osd_state
core: move most mpcommon.c contents to mplayer.c
core: move global "subdata" and "vo_sub_last" to mpctx
subtitles: remove sub_last_pts hack
options: move -noconfig to option struct, simplify
Add definitions for DisplayUnit, OutputSamplingFrequency and
FileDescription in matroska.py. Regenerate the C template files to
allow using all current definitions in code.
When using the script to parse a Matroska file, the script used to
exit with an exception at EOF. Change it to exit quietly instead if
the file was parsed successfully. Keep showing an exception if EOF is
encountered in the middle of an element (truncated file).
Do not create a fake 'bestsites' if neither 'fping' nor 'netselect' is
installed.
change developed by A Mennucc <mennucc1 [at] debian [dot] org>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32485 b3059339-0415-0410-9bf9-f77b7e298cf2
Use 'dpkg --print-architecture', the option
--print-installation-architecture is deprecated.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32484 b3059339-0415-0410-9bf9-f77b7e298cf2
Work around linking failure due to unresolved reference to mplayer_version.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32328 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32181 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32182 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32183 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace some sizeof(type) by sizeof(*pointer)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32184 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32186 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32187 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32188 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace sizoef(type) by sizeof(*ptrvar).
Besides being consistent with FFmpeg style,
this reduces the size of a patch to rename these
types to not conflict with the windows.h definitions.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32189 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32191 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32192 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace sizeof(type) by sizeof(*ptrvar)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32193 b3059339-0415-0410-9bf9-f77b7e298cf2
Remove a useless cast.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32194 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace sizeof(type)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32195 b3059339-0415-0410-9bf9-f77b7e298cf2
Remove a useless cast.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32196 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace several sizeof(WAVEFORMATEX)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32197 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace one more instance of sizeof(WAVEFORMATEX); fix compilation.
patch by Clément Bœsch, ubitux gmail com
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32199 b3059339-0415-0410-9bf9-f77b7e298cf2
Avoid some pointless uses of sizeof() and one related cast.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32200 b3059339-0415-0410-9bf9-f77b7e298cf2
Merge one malloc() + memset() invocation into calloc().
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32202 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32203 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace sizeof(WAVEFORMATEX) occurrences.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32205 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace malloc+memset by calloc.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32206 b3059339-0415-0410-9bf9-f77b7e298cf2
Replace sizeof(BITMAPINFOHEADER)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32207 b3059339-0415-0410-9bf9-f77b7e298cf2
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.
These functions return void*, which is compatible with any pointer,
so there is no need for casts.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30744 b3059339-0415-0410-9bf9-f77b7e298cf2
Add a new EBML parser implementation that should allow significant
improvements to the Matroska demuxer. The new parsing code is not
actually used yet by the demuxer. The only changes to existing code in
this commit are to generate the MATROSKA_ID_* / EBML_ID_* macro
definitions from the new implementation and to rename some of them
(the new implementation uses names matching the official Matroska spec).
The main parser implementation is added in ebml.c. There are two new
generated files, ebml_defs.c and ebml_types.h, that contain
definitions of EBML elements. Those are generated by the new script
TOOLS/matroska.py. There's a new Makefile target "generated_ebml" that
run the script to refresh the content of the generated files.
Part of the code is currently under #ifdef to allow compilation with
older VDPAU library versions; that can be removed later.
Partially based on a patch by Carl Eugen Hoyos.
Main things added are custom frame dropping for VDPAU to work around
the display FPS limit, frame timing adjustment to avoid jitter when
video frame times keep falling near vsyncs, and use of VDPAU's timing
feature to keep one future frame queued in advance.
NVIDIA's VDPAU implementation refuses to change the displayed frame
more than once per vsync. This set a limit on how much video could be
sped up, and caused problems for nearly all videos on low-FPS video
projectors (playing 24 FPS video on a 24 FPS projector would not work
reliably as MPlayer may need to slightly speed up the video for AV
sync). This commit adds a framedrop mechanism that drops some frames
so that no more than one is sent for display per vsync. The code
tries to select the dropped frames smartly, selecting the best one to
show for each vsync. Because of the timing features needed the drop
functionality currently does not work if the correct-pts option is
disabled.
The code also adjusts frame timing slightly to avoid jitter. If you
for example play 24 FPS video content on a 72 FPS display then
normally a frame would be shown for 3 vsyncs, but if the frame times
happen to fall near vsyncs and change between just before and just
after then there could be frames alternating between 2 and 4
vsyncs. The code changes frame timing by up to one quarter vsync
interval to avoid this.
The above functionality depends on having reliable vsync timing
information available. The display refresh rate is not directly
provided by the VDPAU API. The current code uses information from the
XF86VidMode extension if available; I'm not sure how common cases
where that is inaccurate are. The refresh rate can be specified
manually if necessary.
After the changes in this commit MPlayer now always tries to keep one
frame queued for future display using VDPAU's internal timing
mechanism (however no more than 50 ms to the future). This should make
video playback somewhat more robust against timing inaccuracies caused
by system load.
* vdpau: (22 commits)
VO: Prefer vo_vdpau over vo_xv again
vo_vdpau: Fix X event handling bugs
vo_vdpau: Fix memory corruption bug with MP_IMGTYPE_NUMBERED
core/VO: Allow VO drivers to add/modify frames
video_out.h: Cosmetics
VO interface: Remove obsolete draw_frame() from new interface
vo_vdpau: Support recovering from VDPAU display preemption
vo_vdpau: Support updating OSD while paused
vo_vdpau.c: Reindent control() switch statement
vo_vdpau: Allocate one large surface for EOSD content
vo_vdpau.c: cosmetics
vo_vdpau: reindent after GUI code removal
vo_vpdau: Clean up uninit logic
vo_vdpau: Make CHECK_ST macro safer
vo_vdpau: Move all remaining static/global variables to context
vo_vdpau: Move things to context struct
vo_vdpau: Make info struct const
vo_vdpau: Replace global function table with context variable
vo_vdpau: Move VDPAU interface pointers into one struct
vo_vdpau: Add template file for VDPAU functions
...
Add code to reinitialize all VDPAU objects if a display preemption
condition occurs. Reinitializing them in the middle of playback will
cause video corruption at least until the next keyframe when using
hardware decoding, but decoding does seem to recover after a keyframe.
Create a single large bitmap surface for EOSD objects and pack all the
bitmap rectangles inside that. The old code created a separate bitmap
surface for every bitmap and then resized the cached surfaces when
drawing later frames. The number of surfaces could be large (at least
about 2000 for one sample subtitle script) so this was very
inefficient. The old code also used a very simple strategy for pairing
existing surfaces to new bitmaps; it could resize tiny surfaces to
hold large glyphs while using existing large surfaces to hold tiny
glyphs and as a result allocate arbitrarily much more total surface
area than was necessary.
The new code only supports using a single surface, freeing it and
allocating a larger one if necessary. It would be possible to support
multiple surfaces in case of hitting the maximum bitmap surface size,
but I'll wait to see if that is actually needed before implementing
it. NVIDIA seems to support bitmap surface sizes up to 8192x8192, so
it would take either a really pathological subtitle script rendered at
a high resolution or an implementation with lower limits before
multiple surfaces would be necessary.
The packing algorithm should successfully pack the bitmaps into a
surface of size w*h as long as the total area of the bitmaps does not
exceed 16/17 (w-max_bitmap_width)*(h-max_bitmap_height), so there
should be no totally catastrophic failure cases. The 16/17 factor
comes from approximate sorting used in the algorithm. On average
performance should be better than this minimum guaranteed level.
Add a template file that contains a single listing of various
information needed about the VDPAU interface functions, and is then
included multiple times to create required declarations and tables.
Previously some of the information needed to be duplicated for each of
those uses.
this version of the check assumes that we run on a system with apt-get
installed and configured. We should probably check that this is actually
true. Or more ideally add support for yum for fedora systems.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29227 b3059339-0415-0410-9bf9-f77b7e298cf2
This patch contains no functional changes again, only whitespace fixes
that has been misse from Part 1 have been included.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29223 b3059339-0415-0410-9bf9-f77b7e298cf2
This patch contains the OKed parts of Diego's review from 23. Apr 2009
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29222 b3059339-0415-0410-9bf9-f77b7e298cf2
This patch contains no functional changes, only whitespace fixes from
Debian.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29220 b3059339-0415-0410-9bf9-f77b7e298cf2
available memcpy variants and prints benchmark results about them.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28929 b3059339-0415-0410-9bf9-f77b7e298cf2
- Remove all tabs and trailing whitespace.
- Indent with 4 spaces.
- K&R-ify and prettyprint some parts.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28903 b3059339-0415-0410-9bf9-f77b7e298cf2
r3082 | michael | 2001-11-23 13:00:40 +0100 (Fri, 23 Nov 2001) | 2 lines
missaligned arrays, as nick requested
Reason: idiotic idea
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28890 b3059339-0415-0410-9bf9-f77b7e298cf2
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
This is what it is called in FFmpeg and more consistent with other
names for similar conditionals. This fixes a potential compilation
failure on MinGW, as described in Bugzilla #1262.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27493 b3059339-0415-0410-9bf9-f77b7e298cf2
with the ones from libmpdemux/aviheader.h, which is #included below.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26612 b3059339-0415-0410-9bf9-f77b7e298cf2
TOOLS/movinfo.c:332: warning: '0' flag used with '%s' printf format
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26506 b3059339-0415-0410-9bf9-f77b7e298cf2
warning: '0' flag ignored with precision and '%d' printf format
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26481 b3059339-0415-0410-9bf9-f77b7e298cf2
need it, it should be set from configure and the reason why it was set in
the first place has been lost in the mists of time.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26387 b3059339-0415-0410-9bf9-f77b7e298cf2
vivodump.c:213: warning: format '%08X' expects type 'unsigned int', but argument 2 has type 'long int'
vivodump.c:220: warning: format '%08X' expects type 'unsigned int', but argument 2 has type 'long int'
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25337 b3059339-0415-0410-9bf9-f77b7e298cf2
asfinfo.c: In function 'print_wave_header':
asfinfo.c:114: warning: format '%d' expects type 'int', but argument 2 has type 'long int'
asfinfo.c:115: warning: format '%d' expects type 'int', but argument 2 has type 'long int'
asfinfo.c: In function 'print_video_header':
asfinfo.c:140: warning: format '%d' expects type 'int', but argument 2 has type 'long int'
asfinfo.c:141: warning: format '%d' expects type 'int', but argument 2 has type 'long int'
asfinfo.c:142: warning: format '%d' expects type 'int', but argument 2 has type 'long int'
asfinfo.c:145: warning: format '%d' expects type 'int', but argument 2 has type 'long int'
asfinfo.c:146: warning: format '%d' expects type 'int', but argument 2 has type 'long int'
asfinfo.c: In function 'main':
asfinfo.c:174: warning: format '%X' expects type 'unsigned int', but argument 2 has type 'long int'
asfinfo.c:220: warning: format '%d' expects type 'int', but argument 6 has type 'long unsigned int'
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25336 b3059339-0415-0410-9bf9-f77b7e298cf2
but nevertheless has no specific arguments to work with. it will traverse
the tree from there, but obviously cannot find our externals.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25312 b3059339-0415-0410-9bf9-f77b7e298cf2
according to svn info
.svn might be missing (i.e. after svn export)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25309 b3059339-0415-0410-9bf9-f77b7e298cf2
but which are dangerous to use (possible race conditions, undefined filemode,
et cetera; use tmpfile(3) instead).
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25287 b3059339-0415-0410-9bf9-f77b7e298cf2
call it has made to CoInitialize or CoInitializeEx, including any call that
returns S_FALSE. Only the CoUninitialize call corresponding to the CoInitialize
or CoInitializeEx call that initialized the library can close it.
patch by Gianluigi Tiesi, mplayer netfarm it
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24596 b3059339-0415-0410-9bf9-f77b7e298cf2
warning: incompatible implicit declaration of built-in function 'memset'
warning: incompatible implicit declaration of built-in function 'memcpy'
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24230 b3059339-0415-0410-9bf9-f77b7e298cf2
fastmemcpybench.c: At top level:
fastmemcpybench.c:29: warning: 'mga_next_frame' defined but not used
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24225 b3059339-0415-0410-9bf9-f77b7e298cf2
vivodump.c: In function 'main':
vivodump.c:293: warning: control reaches end of non-void function
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24223 b3059339-0415-0410-9bf9-f77b7e298cf2
movinfo.c: In function 'video_stream_info':
movinfo.c:80: warning: control reaches end of non-void function
movinfo.c: In function 'audio_stream_info':
movinfo.c:99: warning: control reaches end of non-void function
movinfo.c: In function 'userdata_info':
movinfo.c:152: warning: control reaches end of non-void function
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24222 b3059339-0415-0410-9bf9-f77b7e298cf2
names related to the flag name, with the possibility to override it if the
variable name is not the same as the flag name. This simplifies printing of
the help message and reduces the possibility of future errors.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23971 b3059339-0415-0410-9bf9-f77b7e298cf2
Now that we have a list of all flags, we can set them to yes or no with a
for-loop.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23969 b3059339-0415-0410-9bf9-f77b7e298cf2
This removes all code duplication for setting and unsetting -(no)flags specified
on the command line
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23968 b3059339-0415-0410-9bf9-f77b7e298cf2