<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xine-lib/src/libmad, branch 1.1.19</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>Fix metronome not getting audio PTS</title>
<updated>2010-07-18T14:47:16+00:00</updated>
<author>
<name>Günter Merz</name>
<email>lotan_rm@hotmail.com</email>
</author>
<published>2010-07-18T14:47:16+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=1c9cf7069230ea1016879161d5530fbbd5721d43'/>
<id>1c9cf7069230ea1016879161d5530fbbd5721d43</id>
<content type='text'>
The xine libmad adaptor seemed not to forward the pts to the metronome: It
buffers the MPEG audio packets until a threshold is reached (MAD_MIN_SIZE:
2889 bytes) and then has libmad decode the packets which is send to audio
out. The pts of the last audio packet is forwarded on to metronome which can
then sync video with audio.

For the channel4 channels MPEG audio packets have a size of 576 bytes which
means it takes five packets to fill the buffer enough for processing. In the
stream every fifth audio packet contains a pts.

The result of this is: If after a seek, the last audio packet is the one
with the pts, video and audio are in sync. If the pts is in any of the four
previous ones no pts will reach metronome and video and audio will never be
synced before a new seek and even then there's a one in five chance that
video and audio are not synced.

Other channels did not show this behaviour because e.g. BBC One has an audio
packet size of about 750 bytes and send a pts every fifth packet as well.
This means that not every pts from the stream gets through to metronome but
some do. This also means that syncing after a seek is probably not as quick
as it could be but it will sync.

My workaround to this problem is to start decoding not only when a the
buffer has reached a threshold but also when a pts != 0 arrives. This does
mean however that the buffer isn't always filled to the theshold and
decoding might not perform as well as it could.

--HG--
extra : transplant_source : %EC%90%EB%AA%8A%C7%BD%A4%B7%EE%F5%E9%E8SY%89S%9D0s
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The xine libmad adaptor seemed not to forward the pts to the metronome: It
buffers the MPEG audio packets until a threshold is reached (MAD_MIN_SIZE:
2889 bytes) and then has libmad decode the packets which is send to audio
out. The pts of the last audio packet is forwarded on to metronome which can
then sync video with audio.

For the channel4 channels MPEG audio packets have a size of 576 bytes which
means it takes five packets to fill the buffer enough for processing. In the
stream every fifth audio packet contains a pts.

The result of this is: If after a seek, the last audio packet is the one
with the pts, video and audio are in sync. If the pts is in any of the four
previous ones no pts will reach metronome and video and audio will never be
synced before a new seek and even then there's a one in five chance that
video and audio are not synced.

Other channels did not show this behaviour because e.g. BBC One has an audio
packet size of about 750 bytes and send a pts every fifth packet as well.
This means that not every pts from the stream gets through to metronome but
some do. This also means that syncing after a seek is probably not as quick
as it could be but it will sync.

My workaround to this problem is to start decoding not only when a the
buffer has reached a threshold but also when a pts != 0 arrives. This does
mean however that the buffer isn't always filled to the theshold and
decoding might not perform as well as it could.

--HG--
extra : transplant_source : %EC%90%EB%AA%8A%C7%BD%A4%B7%EE%F5%E9%E8SY%89S%9D0s
</pre>
</div>
</content>
</entry>
<entry>
<title>Trim trailing space &amp; reduce space+tab.</title>
<updated>2009-11-30T21:24:21+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2009-11-30T21:24:21+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=add0bcc4c9191cb8980d0b6935ca5d51a9928d82'/>
<id>add0bcc4c9191cb8980d0b6935ca5d51a9928d82</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge -gapless branch.</title>
<updated>2009-04-25T19:32:03+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2009-04-25T19:32:03+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=8c3fd22df0ca058d6acd94772d79cd1550627b4d'/>
<id>8c3fd22df0ca058d6acd94772d79cd1550627b4d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove '#include "config.h"' from all public header files.</title>
<updated>2009-01-18T00:21:47+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2009-01-18T00:21:47+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=c8f8261d199af4956aeaf387b2fde41baf905f83'/>
<id>c8f8261d199af4956aeaf387b2fde41baf905f83</id>
<content type='text'>
This requires that many other files include config.h themselves.
Also convert &lt;config.h&gt; to "config.h".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This requires that many other files include config.h themselves.
Also convert &lt;config.h&gt; to "config.h".
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid libtool running ldconfig (where not needed) at install time.</title>
<updated>2009-01-17T14:30:50+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2009-01-17T14:30:50+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=d462ef0ce04d5ca91cd008efecc37c2c1fa39bbb'/>
<id>d462ef0ce04d5ca91cd008efecc37c2c1fa39bbb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Some warning fixes: XINE_FORMAT_SCANF, statics in headers, consts, ...</title>
<updated>2008-11-20T19:56:19+00:00</updated>
<author>
<name>František Dvořák</name>
<email>valtri@civ.zcu.cz</email>
</author>
<published>2008-11-20T19:56:19+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=ea2b5508e35f5125fd65730822b30bb8895ad87d'/>
<id>ea2b5508e35f5125fd65730822b30bb8895ad87d</id>
<content type='text'>
Add warning flags to the DEBUG_CFLAGS too.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add warning flags to the DEBUG_CFLAGS too.
</pre>
</div>
</content>
</entry>
<entry>
<title>xine_xmalloc() deprecation: replace its use with static and non-zero size.</title>
<updated>2008-05-07T14:59:00+00:00</updated>
<author>
<name>Diego 'Flameeyes' Pettenò</name>
<email>flameeyes@gmail.com</email>
</author>
<published>2008-05-07T14:59:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=88d23a2dbabf419ab4014b449be119a741aa54f5'/>
<id>88d23a2dbabf419ab4014b449be119a741aa54f5</id>
<content type='text'>
The xine_xmalloc() function is going to be deprecated, as its
behaviour is rarely needed as such, and it's thus misused.

With this, almost all uses of xine_xmalloc() with static size (for
instance the value returned by sizeof()) or with a size that is
guaranteed not to be zero (like strlen()+1) are replaced with calls to
either calloc(1, ...) or malloc().

malloc() is used whenever the allocated memory is going to be
immediately overwritten, while calloc() is used in every other case,
as it sets the whole memory area to zero.

--HG--
extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The xine_xmalloc() function is going to be deprecated, as its
behaviour is rarely needed as such, and it's thus misused.

With this, almost all uses of xine_xmalloc() with static size (for
instance the value returned by sizeof()) or with a size that is
guaranteed not to be zero (like strlen()+1) are replaced with calls to
either calloc(1, ...) or malloc().

malloc() is used whenever the allocated memory is going to be
immediately overwritten, while calloc() is used in every other case,
as it sets the whole memory area to zero.

--HG--
extra : transplant_source : %8F%98%EC%02%1E%83%F0s%06X%83C%205Y%80%B12%CC%E1
</pre>
</div>
</content>
</entry>
<entry>
<title>Added audio padding handling.</title>
<updated>2008-01-09T23:05:14+00:00</updated>
<author>
<name>Thibaut Mattern</name>
<email>thibaut.mattern@gmail.com</email>
</author>
<published>2008-01-09T23:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=9a73bf70505fabfa0e96dec07f20337286270385'/>
<id>9a73bf70505fabfa0e96dec07f20337286270385</id>
<content type='text'>
Fixed pts handling.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed pts handling.
</pre>
</div>
</content>
</entry>
<entry>
<title>Delete most of the CVS $Id$/$Log$ lines.</title>
<updated>2007-11-10T22:06:10+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2007-11-10T22:06:10+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=3c175fd21df04c5c0afa160f81aea0c305f69dc5'/>
<id>3c175fd21df04c5c0afa160f81aea0c305f69dc5</id>
<content type='text'>
--HG--
extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
--HG--
extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
</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>
</feed>
