Age | Commit message (Collapse) | Author |
|
Patch from Dmitri Fedortchenko <dimo <at> angelhill.net>, required
for upstream Totem bug:
http://bugzilla.gnome.org/show_bug.cgi?id=418316
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
when we want to run until the timeout has occurred, partially fixes
Totem's browser plugin playing back browser streams with the xine-lib
backend
See http://bugzilla.gnome.org/show_bug.cgi?id=375866 for details
|
|
|
|
sys/scsiio.h is not present on FreeBSD.
|
|
|
|
Thanks to Jeff Mitchell for reporting and testing the fix.
This change reverses the meaning of _x_use_proxy() function to be the one
expected by human logic (1 -> use proxy, 0 -> don't use proxy), this way
a failure in hostname resolution would result in the proxy being used
rather than discarded.
Basically now you can use xine behind a proxy when you can't get out to
the DNS servers (or where the DNS servers don't resolve Internet hosts
that you are not allowed to connect to).
|
|
|
|
xine-lib 1.1.6 ends up looking for real codecs eg. in /usr/locallib/win32,
/usr/locallib/codecs etc, there's a missing slash. The attached patch
should fix it.
More info: https://bugzilla.redhat.com/237743
|
|
|
|
Remove unused x_odd parameter from blend_???_exact functions
|
|
|
|
|
|
|
|
|
|
This fixes reported alignment issues on ARM.
(We could require correct alignment on some architectures, but this is easier.)
|
|
To build against this, we need to make sure that the system dts.h header is
used instead of the internal copy of it, as the internal copy will declare
the functions with the old names, while libdca's system header will create
macro aliases between the old names and the new ones.
Better fix will be implemented in 1.2 series.
--HG--
rename : src/libdts/dts.h => src/libdts/internal-dts.h
|
|
|
|
- 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
|
|
|
|
|
|
This may have side-effects wrt other streams; CDDA is fine, though.
|
|
|
|
When BUF_FLAG_FRAME_END is sent before the first frame, decoding
fails as there is no data and a "bad" frame of size 0x0 will be
allocated, which is really bad as such as frame is simply invalid.
|
|
Will break if one reaches 100 :-)
|
|
uninitalized.
|
|
|
|
|
|
|
|
|
|
Previously, with junk content, the plugin could potentially consume lots of
memory (possibly causing a local DoS).
Also, a few small memory leaks have been eliminated.
|
|
|
|
|
|
instance yet.
|
|
|
|
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
This function shall be used to poll the number of remaining frames
from a certain point in time on until the reported numbers are all
0. At that point in time, the content on screen is identical to a
certain state of the stream, at which for example, a hardcopy may
be taken.
|