Age | Commit message (Collapse) | Author |
|
|
|
This does not touch code in contrib.
|
|
|
|
According to bug 1773769, this breaks foo->open().
The fix (as used in Ville Skyttä's patch, which doesn't cover all cases) is
to replace this with (foo->open)().
This patch was generated using
sed -i -re 's/(([[:alnum:]_]+(->|\.))+open) ?\(/(\1) (/' `grep '[>.]open \?(' include -rIl`
One change (in a comment) is not committed.
|
|
The cause was that the resampling code was using only the samples in the buffer
but not really handling the transition between two buffers (which it would
handle completely independently). The new code remembers the last sample from
the previous buffer and uses it in the resampling. We therefore end up one
sample behind and without the clicks.
|
|
Remove the DVB driver installation instructions in favour of a pointer to the
"getting started" section of the LinuxTV wiki.
Add a pointer to the scan documentation (same site).
Mention the requirement for membership of group "video".
|
|
|
|
|
|
|
|
|
|
post_vdr_video is now able to always intercept any frame as XXMC
and XVMC postprocessing has been fixed.
As long as post_vdr_video's image scaling isn't requested or possible
due too unsuitable frame format, the preprocessing procs shall still
get routed as we will not draw on the frame in that situation.
--HG--
extra : transplant_source : %C4%B3%C9%AC%7C%DBJ%D8%60%E2%EF%B4z%C0%01%97%CCQX%D7
|
|
--HG--
extra : transplant_source : %E9%9C%09%7EQ%19%B6%D8%BCJ587%C5i%AF%D5R%F4%DE
|
|
Some postplugins override a frame's draw function just to get/manipulate
frame related information -- and not for drawing on the frame.
The current implementation disables any preprocessing function even if the
plugin is not going to draw on the frame. By introducing a further callback
function route_preprocessing_procs() a plugin is now able to tell that it
is not going to draw on the frame, i. e. it is ok to route the preprocessing
functions to the intercepted frame, too.
--HG--
extra : transplant_source : %170%82%B8%8F%BA%3D%25%9B%D7%EF%E5%B3%3B%EEg%A0%D1be
|
|
XXMC doesn't work well with the way how intercepting frames is implemented
for postprocessing as xxmc_do_update_frame() may change the native frame's
format after the frame has been intercepted. As intercepting XXMC frames
didn't work in the past, we can imply that postplugins which will support
XXMC do know about this special behaviour.
So the idea is to detect any changes on the native frame and propagate these
changes to all intercepted frames. At the same time, we check that all
intercepted frames still share the same data (which we are about to change)
with the native frame and abort otherwise.
--HG--
extra : transplant_source : c%D5%13%21jF%1E%D4%AB%D7%DB%22%27%0A%CB%0E%7F%CF%84v
|
|
When postprocessing is activated, the decoder will pass intercepted
frames to the video driver. The driver must nolonger assume that a
native frame will be passed from the decoder -- it's necessary to
use the supplied macros which give access to the native frame even
when an intercepted frame gets passed.
--HG--
extra : transplant_source : %19%E7%83q1%F6%FEJ%12%A4%1D%AC%CF%7F%2Cn%5BJ%92Y
|
|
--HG--
extra : transplant_source : %EA%EBm%3Exb%A5%3C%07%BC%F0%D9%E1%00%F7%D1%E0%D5%94%ED
|
|
Accelerated frames share data between decoder and video out driver.
When frames get intercepted for postprocessing the decoder will pass
intercepted frames to the video out driver, but the driver needs to
access it's native frame for accelerated decoding. Putting a pointer
to the native frame into acceleration data is an easy way to achieve
this. Some additional macros simplify accessing the native frame.
--HG--
extra : transplant_source : 0%FB%1B4A%D9%27%92z%A5E%C1%1F%81nB%00y%17%9E
|
|
--HG--
extra : transplant_source : y%93%01Dn%EE%9B%DA%60%84%F0%DAT%B7%99%AD%F9%90%03%B0
|
|
--HG--
extra : transplant_source : IsD%AB%2Ci%A1%0F%AE%21%16eg%F2%98%D5%DD%87%DE%3F
|
|
|
|
|
|
to connections list
|
|
Without copying stream up, _x_post_restore_video_frame() will reset the
native frame's stream to the value at _x_post_intercept_video_frame(),
which is typically NULL. This behaviour differs from normal frame
processing, i. e. without postprocessing.
Copying the stream up reveals that stream refcounting was missing
in several postprocessing functions, which is hereby added.
--HG--
extra : transplant_source : I%F1%0B%86%B5%5E%5D%10_6%BC%B6%BCPZ%11%04y%83/
|
|
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().
|
|
|
|
|
|
Thanks to Harald Sitter from Amarok team for reporting a testcase.
|
|
|
|
|
|
If there's no signal, the tuner never goes to FE_TIMEDOUT. Add a separate
timeout, to prevent xine waiting forever in these situations.
|
|
We have seen input_rtp lock up in use, and traced the problem to the separate
tail/head locks on the input buffer. Reduce to a single lock, increasing lock
contention between the reader and the writer, but removing the previous
deadlock risk.
Also use select() before recv(), to ensure that we never wait forever for
packets (e.g. if we're trying to receive a multicast stream, but an
administrator has blocked all multicast packets to the device - iptables -A
INPUT --dst 224.0.0.0/4 -j DROP induces this failure for testing).
|
|
show() in osd.c uses realloc in an effort to minimise the amount of
memory actually used for rle objects. In practice, this caused xine to
fragment memory, and gradually use more and more RAM (measured over a
period of 24 to 72 hours).
Change osd.c to allocate the maximum amount of memory it could need;
because it touches this memory in a linear fashion, lazy page allocation
will ensure that most of the memory used is needed. Further, because
this makes the per-drawing allocations the same size, it avoids virtual
address space fragmentation.
|
|
When leaving xine playing DVB with subtitles for a long period of time,
I noticed a gradual increase in memory use, caused by it creating more
and more timeout threads. In addition, the existing thread was not safe
w.r.t destruction of the decoder, and would occasionally segfault xine.
Further, EN 300 743 states that the timeout should be sent by the
broadcaster; the existing thread had a constant 6 second timeout,
whereas (e.g.) BBC NEWS 24 subtitles are broadcast with a 15 second
timeout. In theory, this could result in subtitles being hidden in error.
This rework changes the thread to pick up a timeout set by
draw_subtitles; in addition, it uses pthread condition variables to
avoid any need to kill and recreate the thread.
|
|
When running DVB subtitles for a long period of time (over 24 hours), we
noticed a slow leak of memory. This patch removes one cause of leakage
for us.
|
|
When using DVB subtitles on an SMP machine, we see occasional lockups, which
appear to be caused by one thread acquiring the same ticket twice. Fix this,
by preventing acquire() and release() from blocking if the current thread has
already acquired the ticket.
Code sequences like the following can still block in all acquires and
releases:
ticket->acquire(...)
/* Do something */
ticket->release(...)
However, code sequences like the following, which used to deadlock if ticket
was revoked at just the wrong moment, now succeed:
ticket->acquire(...)
/* Do something */
ticket->acquire(...) /* This acquire cannot block */
/* Do something */
ticket->release(...) /* This release cannot block */
/* Do something */
ticket->release(...)
Without this patch, the inner acquire() and release() calls could block if
ticket was revoked at the wrong time. revoke() would not unblock the blocking
acquire until there have been as many release()s as acquire()s, which cannot
happen.
|
|
|
|
Add a configuration option, to let input_v4l users select their local TV
standard.
|
|
Make the DVB GUI configurable by config entry, for kiosk applications
|
|
|
|
(Workaround, avoiding the build-indep target. Needs to be fixed properly.)
--HG--
rename : debian/libxine2-doc.manpages => debian/libxine2-doc.install
|
|
--HG--
rename : debian/libxine2-dev.install => debian/libxine-dev.install
|
|
|
|
Breakage was due to the removal of the ARTS plugin.
|
|
|
|
|
|
|
|
Attached is a little patch that allows using ffmpegvideo w/o direct rendering
to play mpeg2 ts.
It works for both mpeg2 and h264.
|
|
|
|
|
|
|