summaryrefslogtreecommitdiff
path: root/src/video_out
AgeCommit message (Collapse)Author
2008-05-03Remove unused variables, as reported by GCC 4.3.Diego 'Flameeyes' Pettenò
2008-04-21Fix Xv driver debug build.Darren Salt
2008-04-19Replace xine_xcalloc usage with calloc, for the revisions transplanted from ↵Diego 'Flameeyes' Pettenò
1.2 series.
2007-04-14Use xine_xcalloc instead of xine_xmalloc when mutiplying the number of ↵Diego 'Flameeyes' Pettenò
elements by the size of the single element. (transplanted from 512894f517c423fed0cadeca0d46c6d909403106) --HG-- extra : transplant_source : Q%28%94%F5%17%C4%23%FE%D0%CA%DE%CA%0DF%C6%D9%09%401%06
2008-04-08New video out plugin ("raw")Christophe Thommeret
Here is a new video output plugin that passes raw data to the front end through supplied callbacks. --HG-- extra : transplant_source : -AT%2A%0A%EB%F5%1Eu4%9E%12%C4%B8%0B%87%13%A5%9D%CA
2008-04-08Fix YUY2 Video Output on Mac OS X XineOpenGLViewMatthias Ringwald
For YUY2, twice the amount of data was copied into texture_buffer leading to a segfault. The crash happened with visualizers such as GOOM and oscope but not for normal video.
2008-02-17nvidia driver uses XV_SYNC_TO_VBLANK attribute, not XV_DOUBLE_BUFFER as xine ↵Miguel Freitas
expected. add code to set this attribute from xine and mention nvidia-settings, since the user may need to select a sync device as well.
2008-02-04Fix a few remaining and apparently harmless linkage order issues.Darren Salt
2008-01-11XineOpenViewGL bug on PPC/DarwinMatthias Ringwald
Typo of WORDS_BIGENDIAN in in /src/video_out/macosx/XineVOpenGLView.m. It only affects big-endian systems (PowerPC) as it defaults to little-endian.
2008-01-04Pass $(X_CFLAGS) when compiling syncfb.Darren Salt
Noticed by Thomas Koeller <tkoeller@users.sourceforge.net>.
2008-01-01Avoid potential install-time mislinkage against libxine.so.2.Darren Salt
2007-07-26report unsupported frame format when blending overlayReinhard Nißl
(transplanted from ce2ba83d5b347bb670e4aaa17a9fbcf21d87a811) --HG-- extra : transplant_source : %CE%2B%A8%3D%5B4%7B%B6p%E4%AA%A1z%9F%BC%F2%1D%87%A8%11
2007-07-26report unsupported frame format and abortReinhard Nißl
(transplanted from 65ffd061414c05cbc368e130d1783a2efdc5b75e) --HG-- extra : transplant_source : e%FF%D0aAL%05%CB%C3h%E10%D1x%3A.%FD%C5%B7%5E
2007-10-08Revert cheating invalid frame sizes after fixed frame allocation (continued).Reinhard Nißl
These cheats where hiding a frame allocation bug in FFmpeg decoder which was previously fixed. (transplanted from c7cc5ff1e184791683ba13bdc54c53b5887e6587) --HG-- extra : transplant_source : %C7%CC_%F1%E1%84y%16%83%BA%13%BD%C5LS%B5%88%7Ee%87
2007-12-31Build fix: back out the SSA subtitles change from the DirectFB video-out plugin.Darren Salt
2007-12-27Add VO_PROP_OUTPUT_* to some other video output drivers (where trivial).Darren Salt
2007-12-27[Subtitles] SSA-tags patchDubois Nicolas
I watch a lot of movies with subtitles and I need "vobsub subtitles" work in xine, then I decide to write this patch. It may support SSA tags for all text subtiles (ssa, ass, srt, ...) This patch : 1. Remove all SSA tags from stream (they are ugly : {\a6}) 2. Handle some of them (b, i, a, an, pos). The other ones control colours, shadow, animation, ... I can't make them work in an easy way. 3. Correct wrap algorithm which have minors bugs (we can see them only with SSA patch...) Modified files : libsputext/demux_sputext.c just remove unneeded code (which remove some of SSA-tags) libsputext/xine_sputext_decoder.c the main modified file. video_out/video_out_xshm.c video_out/video_out_xv.c xine-engine/video_out.h get video output (position and size). See below. 1. Removing SSA tags is done in ogm_render_line_internal() like for html-like tags. (this was done in the previous version of xine) 2. b(bold) and i(italic) are implemented like html-ones, in ogm_render_line_internal(). The other tags this patch support are : aX : alignment in SSA-code anX : alignment in numpad code pos(X,Y) : position, depend on alignment For those ones, I need in first a full-screen OSD, not a five lines one. Then, I need to remember where the last subtitle was drawn, in order to erase it. At last, I need a translation function to convert subtitle coordinates in screen coordinates. For this last point, I first write a full-screen translation (don't care about blacks borders), but it's not really good: the 'pos' tag is sometime used to point out something in the video. (Moreover, ASS spec say we have to draw subtitle on the video) For doing this, I need the real video output size and position, which are only know by the video output driver! Then I had 4 VO properties (in xine-engine/video_out.h) for video driver could give us those informations. I implement it only in xshm and xv drivers (I can't test other ones). If video driver can't give us those informations, the patch fallback in a full-screen translation. 3. there was 3 problem with the wrap algorithm : 1. It was in double: exactly the same, twice. Look like a merge problem. I remove one and all work fine. 2. It want to cut string in equivalent display length but it cut it in equivalent byte length. In most cases, this is the same, but if we have UTF-8 chars or long SSA-tags (which will not be displayed) the result is strange. 3. If we have a too-long part (in bytes) of the string without spaces (bad subtitle file or long SSA-code), the algorithm don't know what to do. (this case is not handled) I re-write the wrap algorithm to correct those problems. Note that my version is slower than previous one : working with bytes is really faster than computing text-length. Maybe I should had to propose an other patch for this part...
2007-12-26Correct another color→colour change to a struct member name.Darren Salt
2007-12-26Correct a color→colour change to a struct member name.Darren Salt
2007-12-24Consistently use "colour", "colour key", "colour space" in output.Darren Salt
Some instances of "key colour" remain; ffmpeg is unmodified. This change has caused two strings with two translations to collide (the strings have become identical since some instances already used "colour"). I have therefore arbitrarily dropped the first of the differing translations, the one for the string at src/video_out/video_out_directfb.c:1365.
2007-11-19add support for GNU/kFreeBSDPetr Salinger ext:(%20)
It changes some "defined (__FreeBSD__)" into "defined (__FreeBSD_kernel__)" and "__FreeBSD_version" into "__FreeBSD_kernel_version". The changes are performed on places, where feature of kernel is tested. On some other places, feature of userland/libc is tested, on them "defined (__FreeBSD__)" remains. As proposed, include/configure.h cause __FreeBSD_kernel__ be defined if __FreeBSD__ is defined. --HG-- extra : transplant_source : %25%96K%05%E4Y%B15%94%60%15%FE1%8Ah%26Xy%8C/
2007-11-11Merge transplanted patches.Darren Salt
2007-11-11Reset the previous screen resolution after switching to fullscreen.Claudio Ciccani
This is because, while in shared mode the default resolution is taken from directfb config, in fullscreen mode the default resolution comes from fbdev configuration. (transplanted from 2ce76206b5c10b6f9cfc55a9edb0d883bfb446a2) --HG-- extra : transplant_source : %2C%E7b%06%B5%C1%0Bo%9C%FCU%A9%ED%B0%D8%83%BF%B4F%A2
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-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-10-01Revert cheating invalid frame sizes after fixed frame allocation.Reinhard Nißl
These cheats where hiding a frame allocation bug in FFmpeg decoder which was previously fixed.
2007-08-26Protect previously shown frame from immediate reuse by decoder.Reinhard Nißl
It happend that the previously shown frame was still on screen while the decoder reused it already and the result was a mixed picture on screen. Protection is easy: just keep a reference to previously shown frame and it cannot be reused by the decoder until a frame duration has passed which should be sufficient to see the current frame on screen. Such referencing has already been implemented although it was not used for deinterlacing. Therefore it had been disabled to get an additional frame for decoding in coping with dropped frames. The change reenables referencing the previously shown frame.
2007-08-26Provide options to control ondemand disabling of bob deinterlacing.Reinhard Nißl
While disabling for progressive frames was ment to improve DVD playback, it turned out that many TV broadcasters set this flag too, although their content is not progressive. Adding an option allows the user now to enable this feature when the watched streams make correct use of this flag. Another option allows to disable bob deinterlacing when a scaled OSD is on screen. As bobbing adds some noise to horizontal lines the OSD quality might be improved by enabling this option.
2007-08-26Protect drawable from beeing changed while drawing.Reinhard Nißl
When xine-ui switches to fullscreen mode or back again, it will change the drawable by sending XINE_GUI_SEND_DRAWABLE_CHANGED. This may lead to BadDrawable X Errors when the video out thread is still using the old drawable for drawing. The changes below block XINE_GUI_SEND_DRAWABLE_CHANGED from changing the drawable while it is used for drawing.
2007-08-12Add a few missing "\n"s.Darren Salt
2007-07-26clip overlay against sub image when calling XvMCCompositeSubpicture()Reinhard Nißl
Blending functions like _x_blend_xx44() take care to clip the overlay against the destination bitmap. The same clipping must be applied to determine the relevant area in the destination bitmap for the call to XvMCCompositeSubpicture().
2007-06-15fix possible crash in xcbxv output plugin"Christoph Pfister"
A null pointer dereference happens if reading a xv port attribute (which has been reported as readable) fails. This issue exists for example with proprietary (and a bit buggy ...) ati drivers; nevertheless it shouldn't cause a segmentation fault (the non-xcb version simply stores an unitialised value). This patches solves the issue in a clean way for both branches. Fixes debian bug #428612 :-)
2007-06-13pgx32/64 need SUNDGA_CFLAGSAlbert Lee
2007-06-13Avoid name collison (don't redefine TRANSPARENT).Albert Lee
2007-06-09Add $(LTLIBINTL) for a few plugins which I'd missed.Darren Salt
2007-06-09Add $(LTLIBINTL) wherever objdump -R shows a dependency on gettext functions.Darren Salt
Some plugins may have been missed due to them not being built here.
2007-06-08Added $(LTLIBINTL) to several targetsBen Taylor
2007-06-06[PATCH] video_out_fb crashSteve Freeland
I discovered some problems with the framebuffer output driver. The first problem I had was a segfault when trying to play a 480x360 clip on a 640x480 display. I traced it to the yuv420_rgb16() color conversion function, which was overrunning the input buffer (the "y" part of the image). The reason was that it was being called downstack from fb_frame_proc_slice(), multiple times for each 16-pixel high horizontal slice of the image. When it got to the last slice, only 8 pixels were left to the bottom but it still tried to process a 16-pixel high slice. Nosing around a bit, I compared the configuration of the color converter as used by the fb driver to the xshm driver and found some oddities: 1) The color converter was configured with a "source height" of 16 pixels no matter what the size of the image, and a "dest height" based on what was referred to within video_out_fb.c as a "stripe" -- essentially an input slice scaled up or down as required by the output size. 2) Apparently to prevent the above from causing problems, the position in the output buffer was managed by special code -- see the "stripe_incr" variable. 3) The xshm driver calls yuv2rgb_next_slice() with a NULL argument at the beginning of each frame to allow the color converter to reset its tracking of the slice-by-slice progress through the image; the fb driver does not. I'm not sure exactly why it was done that way, but my best guess would be that whoever coded it didn't know about the need to call yuv2rgb_next_slice() with a NULL argument, and the rest was built up to get it to mostly work without that. The attached patch changes the behaviour to match that of the xshm driver, and also removes the reset_dest_pointers() function, replacing its single invocation with one to fb_frame_field(), which is identical after removing the "stripe" management. It fixed my crash. Can anyone see if I've misunderstood what was going on? If not, it should probably be applied to the official version.
2007-06-01Port Simon Farnsworth's xv deinterlacing fix to xcbxv.Darren Salt
2007-05-17Convert comments (and the occasional string where it doesn't matter) to UTF-8.Darren Salt
2007-05-02[PATCH] Enhance logging in demux_ts, input_dvb and video_out_xvSimon Farnsworth
The three attached patches (against 1.1.6) each increase the amount of debug logging in their respective components. We've found the extra logging useful when trying to track down faults. I've split this into three patches to make it easier to apply only some of our changes. -- Comments welcome, Simon Farnsworth
2007-05-04[PATCH] Fix deinterlacing in video_out_xv.cSimon Farnsworth
Xv drivers are permitted to return a bigger image than we asked for, to work around hardware constraints. If this happens, 1.1.6's video_out_xv cannot deinterlace properly. Fix this by deinterlacing based on the width of the Xv image; the Xv driver will discard the extra horizontal data. Without this patch, you get a barber-pole effect if the input video is interlaced *and* the Xv driver chooses to round up the width of the requested image. -- Simon Farnsworth
2007-05-06Merge Reinhard Nissl's xxmc fixes and related changes.Darren Salt
2007-04-14Remove #ifdef wrappers from the Xv & XcbXv plugins. Allows XcbXv to be built.Darren Salt
2007-04-13Disable bob deinterlacing on a per frame decision (continued).Reinhard Nißl
One can assume that a still frame is to show when there are no more frames left to display. The changed code uses _x_query_buffer_usage() to retrieve the number of frames waiting to be displayed to integrate this information into the decision.
2007-04-12Disable bob deinterlacing on a per frame decision.Reinhard Nißl
There are some situations where bob deinterlacing doesn't make much sense, as the effect doesn't work for example for slow motion. And in fast motion mode, the sleep between displaying the two fields lowers the reachable fast motion frame rate. Another annoying effect is the reduction in vertical resolution for still images. The changed code tries to detect such issues and disables bob deinterlacing for such frames. The detection of still images is still to come.
2007-04-12Make bob deinterlacing more precisely and skip it on demand.Reinhard Nißl
Bob deinterlacing is implemented as showing the top field, sleeping for half the frame duration and showing the bottom field. Most drivers tend to synchronize displaying a field on the VBI and thus displaying a field may take up to half the frame duration in certain cases. According to the original code, the sleep took always half the frame duration and therefore the second field could get displayed too late. As a result, the driver was syncing to VBI most often, so that things got even worse. The changed code now calculates the sleep time in a way that the second field gets displayed half the frame duration after the first field. Moreover, it monitors how much time was spent to display the first field and when this time exceeds 75 % of the field time (= half the frame time), it skips displaying the second field, as usually this is an indicator that the driver has no more frame buffers left. So displaying the second field would just make things go worse.
2007-04-12Avoid keeping frames referenced which are nolonger used.Reinhard Nißl
The current implementation keeps references to VO_NUM_RECENT_FRAMES frames (for deinterlacing), but doesn't make any use of them. As many XXMC capable devices only supply 8 frames at all, keeping fewer frames referenced makes more available for decoding and thus avoids frame drops by keeping the number of frames which are ready for display more often above frame_drop_limit.
2007-04-12Let xxmc switch back to an unaccelerated context.Reinhard Nißl
The current code misses the ability to switch back to an unaccelerated context, e. g. when previously MPEG2 material was displayed which is then followed by H.264 material. As the latter is not handled as XINE_IMGFMT_XXMC there was no way to leave the accelerated context and therefore the images did not appear on screen.
2007-04-11Merge Matt Messier video output for Mac OS X.Diego 'Flameeyes' Pettenò