<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xine-lib/src/xine-engine, branch 1.1.8</title>
<subtitle>xine-lib git mirror
</subtitle>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/'/>
<entry>
<title>xine_stream audio_track_map order fix</title>
<updated>2007-08-17T18:42:22+00:00</updated>
<author>
<name>Christophe Thommeret</name>
<email>hftom@free.fr</email>
</author>
<published>2007-08-17T18:42:22+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=a875b2f17a011350d2284003170efdab94741e6d'/>
<id>a875b2f17a011350d2284003170efdab94741e6d</id>
<content type='text'>
Actually, audio_decoder_loop stores audio streams in ascending buffer type
order. So, for example a stream with buffer type BUF_AUDIO_A52|channel_num
will always be stored in audio_track_map array before any mpegaudio stream.
This breaks the stream order known by TS demuxer and so a user can get a52
french audio when selecting "deu" ! Bad again. This patch fixes that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Actually, audio_decoder_loop stores audio streams in ascending buffer type
order. So, for example a stream with buffer type BUF_AUDIO_A52|channel_num
will always be stored in audio_track_map array before any mpegaudio stream.
This breaks the stream order known by TS demuxer and so a user can get a52
french audio when selecting "deu" ! Bad again. This patch fixes that.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix C++ breakage introduced in cset 290f0d28f8fc.</title>
<updated>2007-08-17T12:54:29+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2007-08-17T12:54:29+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=c3d5043378e87dce4eaa027607ff1da492f77346'/>
<id>c3d5043378e87dce4eaa027607ff1da492f77346</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Workaround for recent glibc &amp; -D_FORTIFY_SOURCE=2 (defines open() as a macro).</title>
<updated>2007-08-15T15:38:46+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2007-08-15T15:38:46+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=5bd10cf74df979e611d69db0d5563b9d0854f884'/>
<id>5bd10cf74df979e611d69db0d5563b9d0854f884</id>
<content type='text'>
According to bug 1773769, this breaks foo-&gt;open().
The fix (as used in Ville Skyttä's patch, which doesn't cover all cases) is
to replace this with (foo-&gt;open)().

This patch was generated using
sed -i -re 's/(([[:alnum:]_]+(-&gt;|\.))+open) ?\(/(\1) (/' `grep '[&gt;.]open \?(' include -rIl`
One change (in a comment) is not committed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
According to bug 1773769, this breaks foo-&gt;open().
The fix (as used in Ville Skyttä's patch, which doesn't cover all cases) is
to replace this with (foo-&gt;open)().

This patch was generated using
sed -i -re 's/(([[:alnum:]_]+(-&gt;|\.))+open) ?\(/(\1) (/' `grep '[&gt;.]open \?(' include -rIl`
One change (in a comment) is not committed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix an audio resampling problem which was causing regular clicking.</title>
<updated>2007-08-15T12:42:38+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2007-08-15T12:42:38+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=7047d9e5acf97c91a523c99ccc4b008a35a3e094'/>
<id>7047d9e5acf97c91a523c99ccc4b008a35a3e094</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Extend config key translation to allow front ends to provide an additional list.</title>
<updated>2007-08-12T19:54:03+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2007-08-12T19:54:03+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=90bfed2c4c86e943ad850a023a28df31c558d75f'/>
<id>90bfed2c4c86e943ad850a023a28df31c558d75f</id>
<content type='text'>
Intent is to allow front ends to rename their old, badly-named, config items.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Intent is to allow front ends to rename their old, badly-named, config items.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed race, reordered broadcaster shutdown sequence to avoid multiple access to connections list</title>
<updated>2007-07-27T19:24:01+00:00</updated>
<author>
<name>Kirill Belokurov</name>
<email>kirill.belokurov@gmail.com</email>
</author>
<published>2007-07-27T19:24:01+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=7c671e1d523f7707ddaa1d7d7111ffca58772bf4'/>
<id>7c671e1d523f7707ddaa1d7d7111ffca58772bf4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>copy stream in _x_post_frame_copy_up() and add refcounting</title>
<updated>2007-07-26T21:54:24+00:00</updated>
<author>
<name>Reinhard Nißl</name>
<email>rnissl@gmx.de</email>
</author>
<published>2007-07-26T21:54:24+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=d27eb600c51ce69d45468865f3fa3c3fd84df05c'/>
<id>d27eb600c51ce69d45468865f3fa3c3fd84df05c</id>
<content type='text'>
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/
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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/
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove realloc from osd.c to prevent memory leak due to fragmentation</title>
<updated>2007-07-12T10:28:43+00:00</updated>
<author>
<name>Simon Farnsworth</name>
<email>simon.farnsworth@onelan.co.uk</email>
</author>
<published>2007-07-12T10:28:43+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=198fa979f89ba74743a301816d38b46a73770856'/>
<id>198fa979f89ba74743a301816d38b46a73770856</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix memory leak in video_overlay.c</title>
<updated>2007-07-12T10:30:14+00:00</updated>
<author>
<name>Simon Farnsworth</name>
<email>simon.farnsworth@onelan.co.uk</email>
</author>
<published>2007-07-12T10:30:14+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=7cb04769574d9ef849ca7a7bd4da45671639eb77'/>
<id>7cb04769574d9ef849ca7a7bd4da45671639eb77</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Prevent ticket system deadlock when using DVB subtitles</title>
<updated>2007-07-13T14:41:12+00:00</updated>
<author>
<name>Simon Farnsworth</name>
<email>simon.farnsworth@onelan.co.uk</email>
</author>
<published>2007-07-13T14:41:12+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=c29f5163db85b1b4097a791ca1ba96f2b52f1f04'/>
<id>c29f5163db85b1b4097a791ca1ba96f2b52f1f04</id>
<content type='text'>
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-&gt;acquire(...)
/* Do something */
ticket-&gt;release(...)

However, code sequences like the following, which used to deadlock if ticket
was revoked at just the wrong moment, now succeed:

ticket-&gt;acquire(...)
/* Do something */
ticket-&gt;acquire(...) /* This acquire cannot block */
/* Do something */
ticket-&gt;release(...) /* This release cannot block */
/* Do something */
ticket-&gt;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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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-&gt;acquire(...)
/* Do something */
ticket-&gt;release(...)

However, code sequences like the following, which used to deadlock if ticket
was revoked at just the wrong moment, now succeed:

ticket-&gt;acquire(...)
/* Do something */
ticket-&gt;acquire(...) /* This acquire cannot block */
/* Do something */
ticket-&gt;release(...) /* This release cannot block */
/* Do something */
ticket-&gt;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.
</pre>
</div>
</content>
</entry>
</feed>
