xine-lib Log


Commit Date  
[28a33b] by Darren Salt Darren Salt

Merge.

2012-01-01 17:53:50 Tree
[d81549] by Darren Salt Darren Salt

Added tag 1.1.20.1 for changeset dde68fe11b97

2012-01-01 17:31:24 Tree
[dde68f] (1.1.20.1) by Darren Salt Darren Salt

1.1.20.1.

2012-01-01 17:31:15 Tree
[00a71a] by Darren Salt Darren Salt

Merge.

2011-12-31 16:25:34 Tree
[0bdab8] by "Torsten Jager" "Torsten Jager"

Fixes nasty mpeg2 on ts A/V lag when using ff.

2011-12-27 14:11:28 Tree
[21467d] by Roland Scheidegger Roland Scheidegger

Use proper chroma upsampling for yv12 to yuy2 conversion

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).

2011-12-22 00:40:22 Tree
2011-12-16 10:27:30 Tree
[d6183d] by Petri Hintukainen Petri Hintukainen

flac decoder: int -> size_t

2011-12-16 10:25:20 Tree
[18978e] by Petri Hintukainen Petri Hintukainen

Fixed flac_read_callback() signature for flac 1.1.3+ (when sizeof(size_t) != sizeof(unsigned))

2011-12-16 10:21:59 Tree
[a1965a] by Petri Hintukainen Petri Hintukainen

Hide aliasing problems in xcb plugins

2011-12-16 09:58:59 Tree
[bc6a85] by Petri Hintukainen Petri Hintukainen

Silenced warning

2011-12-16 09:52:15 Tree
2011-12-16 09:45:23 Tree
[8eb4b8] by Petri Hintukainen Petri Hintukainen

Removed write-only variables

2011-12-16 09:15:58 Tree
[c85f17] by Petri Hintukainen Petri Hintukainen

Fixed osd_hide() return value

2011-12-16 07:56:23 Tree
[cb2993] by Petri Hintukainen Petri Hintukainen

Fixed using uninitialized data

2011-12-15 22:45:03 Tree
[cf9da6] by Petri Hintukainen Petri Hintukainen

define _XOPEN_SOURCE before including any system headers

2011-12-15 22:40:21 Tree
[709c97] by Petri Hintukainen Petri Hintukainen

Fixed pointer type

2011-12-15 22:18:56 Tree
[19c09e] by Petri Hintukainen Petri Hintukainen

Added missing const

2011-12-15 22:03:41 Tree
[2ae451] by Petri Hintukainen Petri Hintukainen

Fixed printf format

2011-12-15 21:34:51 Tree
[323d6c] by Petri Hintukainen Petri Hintukainen

xvmc: Fixed using uninitialized data and resource leak (from 9456)

2011-12-15 21:29:50 Tree
[a699c2] by Petri Hintukainen Petri Hintukainen

Fixed printf format

2011-12-15 21:28:25 Tree
[e5a35f] by Petri Hintukainen Petri Hintukainen

Marked _x_is_fourcc() arguments const

2011-12-15 14:04:09 Tree
[8fc653] by Petri Hintukainen Petri Hintukainen

Added BluRay input plugin

2011-12-15 12:09:57 Tree
[105c21] by Petri Hintukainen Petri Hintukainen

demux_ts: make sure old pts is not passed to metronom after seek / changed pids

2011-12-14 12:36:00 Tree
[79634d] by Petri Hintukainen Petri Hintukainen

demux_ts: Retry read few times after failure. Allow handling events and checking for demux_action_pending flag before retry.
Input can return -1 with errno set to EAGAIN or EINTR.

2011-12-14 08:54:59 Tree
Older >