summaryrefslogtreecommitdiff
path: root/src/xine-engine/video_out.h
AgeCommit message (Collapse)Author
2007-12-19Consolidate all public include files into include/xine directory.Diego 'Flameeyes' Pettenò
--HG-- rename : src/xine-engine/alphablend.h => include/xine/alphablend.h rename : src/xine-utils/array.h => include/xine/array.h rename : src/xine-utils/attributes.h => include/xine/attributes.h rename : src/xine-engine/audio_decoder.h => include/xine/audio_decoder.h rename : src/xine-engine/audio_out.h => include/xine/audio_out.h rename : src/xine-engine/broadcaster.h => include/xine/broadcaster.h rename : src/xine-engine/buffer.h => include/xine/buffer.h rename : src/xine-utils/compat.h => include/xine/compat.h rename : src/xine-engine/configfile.h => include/xine/configfile.h rename : src/demuxers/demux.h => include/xine/demux.h rename : src/xine-engine/info_helper.h => include/xine/info_helper.h rename : src/input/input_plugin.h => include/xine/input_plugin.h rename : src/xine-engine/io_helper.h => include/xine/io_helper.h rename : src/xine-utils/list.h => include/xine/list.h rename : src/xine-engine/metronom.h => include/xine/metronom.h rename : src/xine-engine/osd.h => include/xine/osd.h rename : src/xine-engine/plugin_catalog.h => include/xine/plugin_catalog.h rename : src/xine-utils/pool.h => include/xine/pool.h rename : src/xine-engine/post.h => include/xine/post.h rename : src/xine-engine/refcounter.h => include/xine/refcounter.h rename : src/xine-engine/resample.h => include/xine/resample.h rename : src/xine-utils/ring_buffer.h => include/xine/ring_buffer.h rename : src/xine-engine/scratch.h => include/xine/scratch.h rename : src/xine-utils/sorted_array.h => include/xine/sorted_array.h rename : src/xine-engine/spu.h => include/xine/spu.h rename : src/xine-engine/spu_decoder.h => include/xine/spu_decoder.h rename : src/xine-engine/video_decoder.h => include/xine/video_decoder.h rename : src/xine-engine/video_out.h => include/xine/video_out.h rename : src/xine-engine/video_overlay.h => include/xine/video_overlay.h rename : src/xine-engine/vo_scale.h => include/xine/vo_scale.h rename : src/xine-utils/xine_buffer.h => include/xine/xine_buffer.h rename : src/xine-engine/xine_internal.h => include/xine/xine_internal.h rename : src/xine-engine/xine_plugin.h => include/xine/xine_plugin.h rename : src/xine-engine/xineintl.h => include/xine/xineintl.h rename : src/xine-utils/xineutils.h => include/xine/xineutils.h rename : src/xine-utils/xmllexer.h => include/xine/xmllexer.h rename : src/xine-utils/xmlparser.h => include/xine/xmlparser.h
2007-12-11Bump the interface version for video output plugins.Diego 'Flameeyes' Pettenò
2007-12-11Define free() as the default dispose function for plugin classes.Diego 'Flameeyes' Pettenò
Most plugin classes in xine define a dispose function simply to call free(), but free() is ABI-compatible with our dispose functions, so add a macro that allows to pass free() directly as dispose function. It's an opt-in so that no extra conditional is needed, and plugin authors won't forget about providing a dispose function (if they need to).
2007-12-11Add a textdomain field to allow using a different i18n catalog for the ↵Diego 'Flameeyes' Pettenò
description translation.
2007-12-11Replace get_identifier/get_description functions with strings.Diego 'Flameeyes' Pettenò
This is the start of a new experimental branch, with the first objective being the replacement of the get_description and get_identifier functions with direct-access strings. The reason for this change is to reduce code size and time of execution. By replacing the functions with direct-access strings there is one less call to be done in those cases where the description has to be fetched. The solution is not yet definitive though, there are a couple of problems to take care of: - the use of N_() still makes it easy to internationalise the strings, but it requires for the string to be found on libxine2 catalog, which is not exactly a nice solution for external plugins; - it would be simpler to re-use the id field in plugin_info_t, and then move description there; it should reduce memory usage for the class structures; - I'm not really aware of any reason why get_description and get_identifier were used beside the idea of making i18n simpler. This probably would break a couple of frontends, especially if they have some internal plugins (like post-plugins), so it needs to be reviewed carefully before merging in 1.2 branch. My current goal is to get this in before 1.2 though, rather than waiting for 1.3.
2007-11-10Merge from 1.1.Darren Salt
--HG-- rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.c => src/combined/wavpack_combined.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmad/xine_mad_decoder.c => src/libxineadec/xine_mad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-09Merge FSF address changes from 1.1 branch.Diego 'Flameeyes' Pettenò
--HG-- rename : src/combined/decoder_flac.c => src/combined/flac_decoder.c rename : src/combined/demux_flac.c => src/combined/flac_demuxer.c rename : src/libxineadec/nsf.c => src/combined/nsf_decoder.c rename : src/demuxers/demux_nsf.c => src/combined/nsf_demuxer.c rename : src/combined/combined_wavpack.c => src/combined/wavpack_combined.c rename : src/combined/combined_wavpack.h => src/combined/wavpack_combined.h rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c rename : src/combined/demux_wavpack.c => src/combined/wavpack_demuxer.c rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c rename : src/libxineadec/xine_speex_decoder.c => src/combined/xine_speex_decoder.c rename : src/libxinevdec/xine_theora_decoder.c => src/combined/xine_theora_decoder.c rename : src/libxineadec/xine_vorbis_decoder.c => src/combined/xine_vorbis_decoder.c rename : src/liba52/xine_a52_decoder.c => src/libxineadec/xine_a52_decoder.c rename : src/libdts/xine_dts_decoder.c => src/libxineadec/xine_dts_decoder.c rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c rename : src/libmusepack/xine_musepack_decoder.c => src/libxineadec/xine_musepack_decoder.c
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-04-18Alphablending optimizations:Petri Hintukainen
- validate palette alpha values in overlay manager (one check / overlay / palette index) instead of checking every alpha value twice for every blended pixel in every frame - remove unneeded calculations - approximiate expensive integer divisions with multiplication and shift
2007-05-08Merge Reinhard Nissl's engine changes.Darren Salt
2007-04-25Merge from 1.1.Darren Salt
2007-04-19Mark _x_[av]o_new_port functions as internal function, both in doxygen and ↵Diego 'Flameeyes' Pettenò
by not exporting them.
2007-04-15Make sleeps in video out loops interruptable for immediate OSDReinhard Nißl
redrawing. The video out loop sleeps up to 20 ms (and the paused loop 20 ms) which means that pending OSD events are delayed too from beeing processed. When an OSD is used for example to scroll through a list of VDR recordings, this delay may slow down scrolling unnecessarily. Especially when the OSD manager is able to render the OSD content indepently from drawing a frame to screen, this change will allow the fastest OSD update possible.
2007-04-04Reorder and change public structures (breaking ABI).Diego 'Flameeyes' Pettenò
With this changes, almost all the structures are now consolidated without holes. For xine_stream_s, transform a set of (internal) integers used as booleans into a bitmask, this reduces the size of the structure by about 36 bytes.
2006-09-26Use protected visibility for all the functions exported by libxine.so, so ↵Diego 'Flameeyes' Pettenò
that their binding is local to the library (has a similar effect to -Bsymbolic, but will work better with hidden visibility enabled, that is step two). CVS patchset: 8289 CVS date: 2006/09/26 05:19:47
2005-09-24- rename all clip_top, clip_left, clip_color... to hili_xxxx. thatMiguel Freitas
"clip" thing has caused too much confusion already since these variables define a highlight area. - add overlay offset support to video_out.c/alphablend/vo drivers - use overlay offset to implement proper croping of frames when vo driver doesn't support it - add clipping checks to alphablend to avoid buffer overflow, buffer "underflow" and wrapping. - increase vo api number - note: dxr3 support is incomplete about overlay offset CVS patchset: 7739 CVS date: 2005/09/24 19:08:26
2004-10-08change variable logic slightly to make it more clear that Miguel is a geniusMichael Roitzsch
and this code is correctly understood by me ;) also fall back to old behaviour (no cropping at all), if the image cannot be cropped due to an unknown frame format CVS patchset: 7024 CVS date: 2004/10/08 21:08:26
2004-09-28xxmc patch by Thomas Hellstrom (with some changes)Miguel Freitas
there is still some work to do, please report any breakages. note: new xxmc driver tested with both nvidia and via libraries. CVS patchset: 7007 CVS date: 2004/09/28 18:49:38
2004-09-26 - almost finalize headers refactoring needed for MSVC frontends (and for otherFrantišek Dvořák
poor platforms, of course) - fix a bug in generated xine-config for WIN32 and make it relocateable under Windows - MSVC port: update, fix some warnings, remove old unneeded files - improve function for getting runtime directory, it will need next fix yet (bug probably due to active volume drives) CVS patchset: 7001 CVS date: 2004/09/26 22:54:51
2004-09-22- added cropping capability (thanks James Stembridge)Miguel Freitas
- some vo drivers support cropping natively. (only xv and xvmc have been tested) - add software crop fallback to video_out.c - skip yuv2rgb processing at xshm for not yet cropped frames (these frames are never shown) - libmpeg2 and ffmpeg now may use crop support - bump vo api. (changes to xvmc/xxmc will follow) CVS patchset: 6991 CVS date: 2004/09/22 20:29:13
2004-07-06fix a long standing bug: streams were not played till their very end, becauseMiguel Freitas
finished event was sent to frontend before the output fifos were empty. add a test for the number of streams attached to the output port. this will prevent deadlocking on multi-streams scenarios where fifos don't ever get empty. CVS patchset: 6777 CVS date: 2004/07/06 22:53:22
2004-06-19modified patch from Reinhard Nissl to report the length of the out fifosMichael Roitzsch
CVS patchset: 6713 CVS date: 2004/06/19 20:07:15
2004-05-29separate the two semantics of querying a port's status with a NULL stream;Michael Roitzsch
before, NULL could mean two things: no stream at all or a stream that does not want to be addressed; now the latter is represented by the new XINE_ANON_STREAM resulting changes: * the status() functions now behave differently for NULL and XINE_ANON_STREAM (as the commentary always implied, but this was not the case, so post plugin rewiring went wrong, because it relies on the status() function) * the NULL_STREAM defines in audio_out and video_out are obsolete * update the function comments in the headers * update the post plugin rewire functions to use the status() functions to check, if the old port was opened and handle the new one accordingly; this makes open_count obsolete * change all post plugins accordingly (mostly using XINE_ANON_STREAM instead of NULL) additional change: * the status() function of audio port now returns the bits/rate/mode values of the input and not the output; this is more likely to be what a post plugin wants * the reimplementation of status() in the upmix plugin is obsolete CVS patchset: 6603 CVS date: 2004/05/29 14:45:25
2004-01-07the new, refined post plugin architectureMichael Roitzsch
* post plugins are now much safer (fewer races/inconsistencies) and easier to write * all post plugins are ported to the new architecture (and should work) * ports can now be opened and closed with a NULL stream CVS patchset: 6007 CVS date: 2004/01/07 19:52:42
2003-12-14API version bounceSiggi Langauf
CVS patchset: 5912 CVS date: 2003/12/14 22:13:22
2003-11-26* new unscaled overlay feature (using XShape extension)Miguel Freitas
text subtitles may now be rendered at full screen resolution * load xine fonts on demand - faster startup note: support added to xv, xshm and vidix CVS patchset: 5780 CVS date: 2003/11/26 01:03:31
2003-11-15start xine_stream_t separation (public/private).Miguel Freitas
(we should finish this before rc3.) - stream_info and meta_info variables are private now. obs: everything must be recompiled due xine_stream_t changes CVS patchset: 5733 CVS date: 2003/11/15 14:54:30
2003-11-11rename internal API function (_x_<function>).Daniel Caujolle-Bert
CVS patchset: 5721 CVS date: 2003/11/11 18:44:50
2003-10-30* modify the engine slightly, so that the stream member in a video frame orMichael Roitzsch
audio buffer can be NULL; this should be used to indicate that the frame/ buffer does not come directly from a stream, but was generated otherwise (the most important result is that frames/buffers with stream NULL will not be passed through metronom) * modify visualization post plugins so they set the stream on the generated frames to NULL, this avoids cluttering metronom, when playing a stream with audio AND video AND a visualization post * this also means modifying the way post plugins provide vpts values: they have to calculate them themselves for now CVS patchset: 5647 CVS date: 2003/10/30 22:40:53
2003-10-23cleanup in video_out.hMichael Roitzsch
* some obsolete VO_CAP_* constants removed * VO_ZOOM_* constants replaced by their XINE_VO_ZOOM_* equivalents from xine.h * moved some bits around * proc_frame() needs only one parameter: the frame * renamed copy_called to proc_called * changed logic in video_out.c to call proc_* functions a bit (call proc_frame() first, then call proc_slice() if proc_frame() has not set proc_called, this allows video out plugins to have both hooks called) CVS patchset: 5576 CVS date: 2003/10/23 15:17:06
2003-10-22Replace copy member in vo_frame_t with proc_frame and proc_slice. Increase ↵Robin KAY
video_out API version to 18. CVS patchset: 5574 CVS date: 2003/10/22 20:38:09
2003-10-06- add XvMC supportMiguel Freitas
- bump vo and post interface versions obs: video_out_xvmc.c needs some more work, see todo. CVS patchset: 5459 CVS date: 2003/10/06 21:52:42
2003-08-15I am using the latest internal API increase to rename video_overlay_instace toMichael Roitzsch
video_overlay_manager, because a) this thing is called "overlay manager" by everyone b) the term "instance" is misleading, since it suggests that you would not share the outcome of a get_instance() with others CVS patchset: 5288 CVS date: 2003/08/15 14:35:09
2003-08-12add a flags member to frame struct (the relevant API versions have already beenMichael Roitzsch
increased lately), store flags in video out loop and catch some wrong ratios CVS patchset: 5275 CVS date: 2003/08/12 13:53:30
2003-08-05recycle the unused VO_PREDICTION_FLAG as a new VO_PAN_SCAN_FLAG which is usedMichael Roitzsch
minimal implementation of DVD pan&scan as needed by the dxr3 CVS patchset: 5246 CVS date: 2003/08/05 15:03:14
2003-08-04support for arbitrary aspect ratiosMiguel Freitas
patch by Philip Jgenstedt CVS patchset: 5243 CVS date: 2003/08/04 03:47:09
2003-06-27these functions actually have (void) parameters, not (), which is equal to (...)Michael Roitzsch
CVS patchset: 5105 CVS date: 2003/06/27 13:40:51
2003-06-11- add VO_INTERLACED_FLAG to get_frameMiguel Freitas
- do not trust progressive_frame for detecting NTSC 3:2, quote: 'the alternating progressive_frame encoding problem. This is a problem where the progressive_frame flag alternates between true and false every frame, when it really should have been set to "true" all the time.' 'There is a lot of content that is affected by this issue, because it's caused by a dumb decision by a very big company that made a very popular MPEG encoder. They've since fixed the encoder, but there are apparently still authoring companies that use it, because the problem is on a lot of high-profile current discs, like Disney's "Monsters Inc." and "Beauty and the Beast".' http://www.hometheaterhifi.com/volume_8_2/dvd-benchmark-special-report-chroma-bug-4-2001.html CVS patchset: 5025 CVS date: 2003/06/11 23:08:54
2003-06-06initial ideas for automatic enabling/disabling deinterlacerMiguel Freitas
fixes, comments, suggestions are welcome CVS patchset: 5011 CVS date: 2003/06/06 19:42:04
2003-06-03progressive_frame flag may be used to select how to convert yv12->yuy2Miguel Freitas
CVS patchset: 5003 CVS date: 2003/06/03 03:33:15
2003-05-31update video out api to allow better frame management (explicit locking)Miguel Freitas
img->displayed is obsolete now, drivers should use img->free. CVS patchset: 4994 CVS date: 2003/05/31 18:33:28
2003-05-20public header cleanup:Michael Roitzsch
* regulate mutual inclusion based on XINE_COMPILE * src/xine-engine/spu_decoder.h was unused -> make it the spu decoder API header and remove src/libspudec/spu_decoder_api.h * mark some xine_stream_t members as unused for next cleanup CVS patchset: 4883 CVS date: 2003/05/20 13:50:55
2003-04-25header beautificationMichael Roitzsch
CVS patchset: 4675 CVS date: 2003/04/25 15:34:44
2003-04-23faster seeking (heavily based on Thibaut's patch)Miguel Freitas
rework xine_play_internal, wait for first frame after seek CVS patchset: 4660 CVS date: 2003/04/23 14:33:01
2003-04-20merging in win32 portGuenter Bartsch
CVS patchset: 4643 CVS date: 2003/04/20 21:13:21
2003-02-07add consistency warningsMichael Roitzsch
CVS patchset: 4114 CVS date: 2003/02/07 17:28:10
2003-02-06first pass on cleaning up ao/vo properties and flush stuffMiguel Freitas
CVS patchset: 4110 CVS date: 2003/02/06 00:09:19
2003-02-01adding flush-mode so seek() and play() work for video processing (enix)Guenter Bartsch
CVS patchset: 4080 CVS date: 2003/02/01 19:22:30
2003-01-11introducing a new, very low-impact aproach on implementing a video ↵Guenter Bartsch
processing api CVS patchset: 3875 CVS date: 2003/01/11 19:06:52