summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2012-04-12Use proper device paths for the Blu-ray and VCD input plugins on OpenBSDBrad Smith
2012-02-28Made demux_ts send pts not dts even for reordered (b-framed) video.Torsten Jager
This fixes a very old bug causing more or less unpredictable a/v lag. --HG-- extra : rebase_source : 094ca332b98500f3c10bec492c0003c83ff3152d
2012-02-27Fixed race in metronom_get_option(): reading int64 is not atomic in 32-bit ↵Petri Hintukainen
systems
2012-02-15Improved RGB→YUV conversion v2 (use MPEG range instead of full range)Darren Salt
Video-out plugins expect MPEG range Y'CbCr data (Y'=16..235, Cb,Cr=16..240). RGB sources (still images and audio visualisation effects) need to be converted first. This patch fixes up the range calculations and corrects an off-by-one in the range for Cb and Cr over commit 68fcd69fb3b6 (which was reverted due to API change). It should also provide a little more accuracy: I've gone back to the source (http://www.itu.int/rec/R-REC-BT.601/) for the conversion information. (We should use float or double here, but that would be an ABI change.)
2012-02-14Backed out RGB→YUV patch – API change.Darren Salt
Anything which uses the COMPUTE_* macros would need to be recompiled because of the use of new tables. This change needs to be conditional somehow, at least externally.
2012-02-14Improved RGB->YUV conversion (use mpeg range instead of full range)Torsten Jager
Video out plugins expect mpeg range yuv data (y=16..235, uv=16..239). RGB sources (still images and audio visualisation effects) need to be converted first.
2012-02-14Fix video driver crash when accessing unsupported propertiesTorsten Jager
2012-02-14Fixed asx demuxerTorsten Jager
2012-02-09Make the “PMT scan timed out” message a lot less scary.Darren Salt
2012-02-09Kill a memory leak in the DVB tuning code.Darren Salt
2012-01-29fix compile against recent ffmpegEdgar Hucek
2012-02-03Merge.Darren Salt
2012-02-02vo_opengl: quick-fix to enable OSD when using fragment shader for YUV ↵Petri Hintukainen
conversion. Proper (HW-accelerated) implementation would use OpenGL texture to blend the OSD directly to RGB video texture.
2012-02-01Remove ALSA resampler bypassDavid Flater
In 2005, xine-lib 1.1.1 added the following change: xine-lib (1.1.1) 2005-11-15 * Improve sound quality when using alsa 1.0.9 or above. When playing a 44.1khz stream on a 48khz only capable sound card. It bypasses alsa-lib resampler and uses xine's That made sense when Alsa's resampling was the worst thing ever. But now, if one installs alsa-plugins-1.0.25 and puts this in ~/.asoundrc: defaults.pcm.rate_converter "samplerate_best" Alsa then does markedly better resampling (using libsamplerate) than xine-lib (using its own algorithm). The bypass added in 2005 is therefore preventing the use of a higher-quality algorithm and blocking the ability to tune that algorithm in ~/.asoundrc, and no longer seems to have any redeeming value. --HG-- extra : transplant_source : %AE%96zte%B0%ED%B6C%BC%89%02%1F%05%21%BD%ED%D6%8C6
2012-01-31frame garbage collector in ff_resetEdgar Hucek
2012-01-30Compile failure in osd.c with sys-libs/zlib-1.2.6Ulrich Müller
2012-01-18Hack to avoid xine-list-* causing catalog.cache to be written.Darren Salt
2012-01-18Fixed pp_context and pp_modePetri Hintukainen
2012-01-18avcodec_init(), avcodec_alloc_context() and avcodec_open() are depreatedPetri Hintukainen
2012-01-18Moved ffmpeg API version checks to single headerPetri Hintukainen
2012-01-18SimplifyPetri Hintukainen
2012-01-16MergePetri Hintukainen
2012-01-16Fixed using uninitialized dataPetri Hintukainen
--HG-- branch : point-release
2012-01-16Fixed matroska header compression when using lacing (ex. multiple audio ↵Petri Hintukainen
frames in one block) --HG-- branch : point-release
2012-01-16Fixed using uninitialized dataPetri Hintukainen
--HG-- branch : point-release
2012-01-16Removed unused variables and codePetri Hintukainen
2012-01-16Copy to buf->contentPetri Hintukainen
2012-01-16Removed write-only variables and unused codePetri Hintukainen
2012-01-16Check for failed writePetri Hintukainen
2012-01-12Added constPetri Hintukainen
2012-01-12Hide "warning: cast from pointer to integer of different size"Petri Hintukainen
2012-01-12Fixed pointer typePetri Hintukainen
2012-01-12Fixed pointer castPetri Hintukainen
2012-01-12Fixed leakPetri Hintukainen
2012-01-11Fixed pointer castsPetri Hintukainen
* * * Fixed pointer cast
2012-01-11Fixed #includePetri Hintukainen
2012-01-10Added constPetri Hintukainen
2011-12-31Merge.Darren Salt
2011-12-27Fixes nasty mpeg2 on ts A/V lag when using ff."Torsten Jager"
--HG-- branch : point-release extra : rebase_source : 6e059c732a63d40b65b09f4ef725ec5ca45c4c1c
2011-12-22Use proper chroma upsampling for yv12 to yuy2 conversionRoland Scheidegger
The old code did some "averaging" which, while cheap, lead to serious chroma shift because the weighting factors turned out to be pretty random (arguably no averaging likely would have been given more correct results). It also in fact lead to chroma ghosts. To see why this was wrong read the following and then do the math. http://www.hometheaterhifi.com/the-dvd-benchmark/179-the-chroma-upsampling-error-and-the-420-interlaced-chroma-problem.html http://avisynth.org/mediawiki/Sampling As an example, let's look what happens at line 4 for interlaced content (where the code would have averaged chroma from chroma line 2 and 4): Chroma line 2 contains chroma values for line 2 (25%) and 4 (75%) while chroma line 4 contains chroma values for line 6 (25%) and 8 (75%) of the original (prior to subsampling) frame. Average these together and you get something quite wrong. Most importantly the center of these weights will be at 5.5 instead of 4 (hence chroma shift). For odd lines it is different (better but still wrong). So, fix this by using the correct weights for reconstruction of the chroma values (which is averaging for the progressive case for all pixels since the samples are defined to be between the lines, and use different weighting factors for odd/even/"upper"/"lower" lines). This runs more than twice the instructions (for the mmx case), but I measured only a performance impact of roughly 5% (on a Athlon64 X2) - seriously bound by memory access (by comparison the sort-of-pointless post-deinterlace chroma filter is nearly twice as slow hence if you don't need it because the values are correct this will be a lot faster). Note: this is only correct for codecs which use the same chroma positions as mpeg2 (dv is definitely different, mpeg1 is also different but only for horizontal positioning, which doesn't matter here). "yv12" as such seems underspecified wrt chroma positioning. On another note, while this algorithm may be correct, it is inherently suboptimal doing this pre-deinterlace (and a post-deinterlace chroma filter is not going to help much neither except it can blur the mess). This NEEDS to be part of deinterlace (which btw would also be quite a bit faster when handling planar directly due to saving one pass of going through all memory). The reason is while line 4 will now use the correct weighting factors, the fact remains it will use chroma values originating from lines 2, 4, 6 and 8 of the original image. However, if the deinterlacer decides to weave because there is no motion, it CAN and most likely wants to use chroma values from the other field (hence values originating from line 2, 3, 4, 5 in this case when using a very simple filter, with appropriate weighting). --HG-- branch : point-release extra : rebase_source : 808bb5785ca398970324bea6b391a9e24c576d2f
2011-12-16MergePetri Hintukainen
2011-12-16flac decoder: int -> size_tPetri Hintukainen
--HG-- branch : point-release
2011-12-16Fixed flac_read_callback() signature for flac 1.1.3+ (when sizeof(size_t) != ↵Petri Hintukainen
sizeof(unsigned)) --HG-- branch : point-release
2011-12-16Hide aliasing problems in xcb pluginsPetri Hintukainen
--HG-- branch : point-release
2011-12-16Silenced warningPetri Hintukainen
--HG-- branch : point-release
2011-12-16MergePetri Hintukainen
2011-12-16Removed write-only variablesPetri Hintukainen
--HG-- branch : point-release
2011-12-16Fixed osd_hide() return valuePetri Hintukainen
--HG-- branch : point-release
2011-12-16Fixed using uninitialized dataPetri Hintukainen
--HG-- branch : point-release
2011-12-16define _XOPEN_SOURCE before including any system headersPetri Hintukainen
--HG-- branch : point-release