summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-01-01Update version no.Darren Salt
2012-01-01Merge.Darren Salt
2012-01-01Added tag 1.1.20.1 for changeset dde68fe11b97Darren Salt
--HG-- branch : point-release
2012-01-011.1.20.1.1.1.20.1Darren Salt
--HG-- branch : point-release
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-21Fix multithreaded initialization with API changeRoland Scheidegger
thread count needs to be set before avcodec_open otherwise it will be stuck with a single thread at least for h264 (might also want to use avcodec_open2 instead?)
2012-04-17Improved mmx_yuv2rgb()Torsten Jager
yuv2rgb_mmx.c scales YUV and rounds them down to 8 bits individually before the addition. That causes red and blue to be off by up to 2, green even off by 3. This little patch does the stuff using 10 bits per component, plus correct rounding. There seems to be no noticable impact on performance, but color gradients come out much smoother now.
2012-04-15simplify greedy2frame deinterlacer a bitRoland Scheidegger
Cuts roughly 10% of the instructions (with sse), results should be identical. Not sure why it was that complicated in the first place, the simplification is possible because the code gave a score of 1 to top and bottom comparisons, and 2 for the middle one, and weaved when all scores added together were more than 2. This is equivalent to weave when (cmp(m) AND (cmp(b) OR cmp(t))) which is a much better match for the available hw instructions. This also reduces the number of constant loads a lot, and the patch moves up some memory loads a bit which can never hurt.
2012-04-04xine_mmx.h: Added pmaddubsw (SSSE3)Petri Hintukainen
2012-04-11Added MMXEXT version of yv12_to_yuy2()Roland Scheidegger
2012-04-11Removed incorrect .align directives from asm codePetri Hintukainen
2012-04-11MMX version of yv12_to_yuy2()Roland Scheidegger
2012-04-11Fixed warningsPetri Hintukainen
2012-04-11Check read() return valuePetri Hintukainen
2012-04-11Fixed warningsPetri Hintukainen
2012-04-11Use proper device paths for the Blu-ray and VCD input plugins on OpenBSDBrad Smith
2012-04-10yv12_to_yuy2: use the same macros for both odd and even linesRoland Scheidegger
(as a simple argument swap is all that's needed).
2012-04-04Fixed pmovmskb() and added a version that can be actually used.Petri Hintukainen
2012-03-30CosmeticsPetri Hintukainen
2012-03-29Detect CPU/OS support for SSE3, SSSE3, SSE4, SSE42 and AVXPetri Hintukainen
2012-03-29Added some SSE2 instructionsPetri Hintukainen
2012-03-29Added integer types to sse_t unionPetri Hintukainen
2012-03-29Added macros for loading 32-bit value to mmx/sse register from memory or GP ↵Petri Hintukainen
register (mmx_a2r)
2012-03-28add access to audio engine gapLACARRIERE Jerome
2012-02-29Merge from 1.1Petri Hintukainen
2012-02-26Added signatures for release tags for 1.2.0 and 1.2.1.Darren Salt
2012-02-15Merge from 1.1.Darren Salt
--HG-- rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
2012-02-14Merge from 1.1Petri Hintukainen
--HG-- rename : src/xine-utils/xineutils.h => include/xine/xineutils.h
2012-02-09Merge from 1.1, dropping the README change.Darren Salt
--HG-- rename : debian/dh_xine => debian/dh_xine.in
2012-02-08Merge from 1.2.1-branch.Darren Salt
2012-02-08Fix DVB CRC checking (was wrong endianness).Darren Salt
--HG-- branch : 1.2.1-branch
2012-02-06vdpau: Consider displayed window coordinates when scaling osd overlay objectsAndreas Auras
2012-02-05Merge.Darren Salt
--HG-- branch : 1.2.1-branch
2012-02-05Merge from 1.1.Darren Salt
--HG-- branch : 1.2.1-branch
2012-02-05Ignore debian/libxine2-dev/.Darren Salt
--HG-- branch : 1.2
2012-02-05Fix xinerama & libcdio/libvcdinfo tests: didn't soft-fail properly.Darren Salt
--HG-- branch : 1.2.1-branch
2012-02-05Fix musepack decoder compilation if libmpcdec headers aren't available.Darren Salt
--HG-- branch : 1.2.1-branch
2012-02-04Fix dependencies generated by dh_xine.Darren Salt
2012-02-04Added tag 1.2.1 for changeset ac2c5ea4bc52Darren Salt
2012-02-04Release.1.2.1Darren Salt
2012-02-04Pass distcheck.Darren Salt
2012-02-04Merge.Darren Salt
2012-02-04Distribute ffmpeg_compat.h.Darren Salt
2012-02-03Fixed overlay surface reuse issue for raw rgba overlays within vdpau output ↵Andreas Auras
driver.
2012-02-01Merge from 1.1.Darren Salt
2012-02-01Quieten documentation building a bit more.Darren Salt
2012-01-31Make some variables const and/or static; tidy LOCKDISPLAY (stmt/block).Darren Salt
2012-01-25Rename libxine-dev → libxine2-dev; fix dh_xine debhelper sequencing install.Darren Salt
--HG-- rename : debian/libxine-dev.install => debian/libxine2-dev.install