<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xine-lib/src/libmpeg2/decode.c, branch vdr-xine-version-802</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>Move libmpeg2 inside video_dec/libmpeg2.</title>
<updated>2007-12-22T22:24:00+00:00</updated>
<author>
<name>Diego 'Flameeyes' Pettenò</name>
<email>flameeyes@gmail.com</email>
</author>
<published>2007-12-22T22:24:00+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=b7a18f2d1b7afe26d1816621178a52c527d773f4'/>
<id>b7a18f2d1b7afe26d1816621178a52c527d773f4</id>
<content type='text'>
--HG--
rename : src/libmpeg2/Makefile.am =&gt; src/video_dec/libmpeg2/Makefile.am
rename : src/libmpeg2/cpu_state.c =&gt; src/video_dec/libmpeg2/cpu_state.c
rename : src/libmpeg2/decode.c =&gt; src/video_dec/libmpeg2/decode.c
rename : src/libmpeg2/header.c =&gt; src/video_dec/libmpeg2/header.c
rename : src/libmpeg2/idct.c =&gt; src/video_dec/libmpeg2/idct.c
rename : src/libmpeg2/idct_altivec.c =&gt; src/video_dec/libmpeg2/idct_altivec.c
rename : src/libmpeg2/idct_mlib.c =&gt; src/video_dec/libmpeg2/idct_mlib.c
rename : src/libmpeg2/idct_mlib.h =&gt; src/video_dec/libmpeg2/idct_mlib.h
rename : src/libmpeg2/idct_mmx.c =&gt; src/video_dec/libmpeg2/idct_mmx.c
rename : src/libmpeg2/libmpeg2_accel.c =&gt; src/video_dec/libmpeg2/libmpeg2_accel.c
rename : src/libmpeg2/libmpeg2_accel.h =&gt; src/video_dec/libmpeg2/libmpeg2_accel.h
rename : src/libmpeg2/motion_comp.c =&gt; src/video_dec/libmpeg2/motion_comp.c
rename : src/libmpeg2/motion_comp_altivec.c =&gt; src/video_dec/libmpeg2/motion_comp_altivec.c
rename : src/libmpeg2/motion_comp_mlib.c =&gt; src/video_dec/libmpeg2/motion_comp_mlib.c
rename : src/libmpeg2/motion_comp_mmx.c =&gt; src/video_dec/libmpeg2/motion_comp_mmx.c
rename : src/libmpeg2/motion_comp_vis.c =&gt; src/video_dec/libmpeg2/motion_comp_vis.c
rename : src/libmpeg2/mpeg2.h =&gt; src/video_dec/libmpeg2/mpeg2.h
rename : src/libmpeg2/mpeg2_internal.h =&gt; src/video_dec/libmpeg2/mpeg2_internal.h
rename : src/libmpeg2/slice.c =&gt; src/video_dec/libmpeg2/slice.c
rename : src/libmpeg2/slice_xvmc.c =&gt; src/video_dec/libmpeg2/slice_xvmc.c
rename : src/libmpeg2/slice_xvmc_vld.c =&gt; src/video_dec/libmpeg2/slice_xvmc_vld.c
rename : src/libmpeg2/stats.c =&gt; src/video_dec/libmpeg2/stats.c
rename : src/libmpeg2/vis.h =&gt; src/video_dec/libmpeg2/vis.h
rename : src/libmpeg2/vlc.h =&gt; src/video_dec/libmpeg2/vlc.h
rename : src/libmpeg2/xine_mpeg2_decoder.c =&gt; src/video_dec/libmpeg2/xine_mpeg2_decoder.c
rename : src/libmpeg2/xvmc.h =&gt; src/video_dec/libmpeg2/xvmc.h
rename : src/libmpeg2/xvmc_vld.h =&gt; src/video_dec/libmpeg2/xvmc_vld.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
--HG--
rename : src/libmpeg2/Makefile.am =&gt; src/video_dec/libmpeg2/Makefile.am
rename : src/libmpeg2/cpu_state.c =&gt; src/video_dec/libmpeg2/cpu_state.c
rename : src/libmpeg2/decode.c =&gt; src/video_dec/libmpeg2/decode.c
rename : src/libmpeg2/header.c =&gt; src/video_dec/libmpeg2/header.c
rename : src/libmpeg2/idct.c =&gt; src/video_dec/libmpeg2/idct.c
rename : src/libmpeg2/idct_altivec.c =&gt; src/video_dec/libmpeg2/idct_altivec.c
rename : src/libmpeg2/idct_mlib.c =&gt; src/video_dec/libmpeg2/idct_mlib.c
rename : src/libmpeg2/idct_mlib.h =&gt; src/video_dec/libmpeg2/idct_mlib.h
rename : src/libmpeg2/idct_mmx.c =&gt; src/video_dec/libmpeg2/idct_mmx.c
rename : src/libmpeg2/libmpeg2_accel.c =&gt; src/video_dec/libmpeg2/libmpeg2_accel.c
rename : src/libmpeg2/libmpeg2_accel.h =&gt; src/video_dec/libmpeg2/libmpeg2_accel.h
rename : src/libmpeg2/motion_comp.c =&gt; src/video_dec/libmpeg2/motion_comp.c
rename : src/libmpeg2/motion_comp_altivec.c =&gt; src/video_dec/libmpeg2/motion_comp_altivec.c
rename : src/libmpeg2/motion_comp_mlib.c =&gt; src/video_dec/libmpeg2/motion_comp_mlib.c
rename : src/libmpeg2/motion_comp_mmx.c =&gt; src/video_dec/libmpeg2/motion_comp_mmx.c
rename : src/libmpeg2/motion_comp_vis.c =&gt; src/video_dec/libmpeg2/motion_comp_vis.c
rename : src/libmpeg2/mpeg2.h =&gt; src/video_dec/libmpeg2/mpeg2.h
rename : src/libmpeg2/mpeg2_internal.h =&gt; src/video_dec/libmpeg2/mpeg2_internal.h
rename : src/libmpeg2/slice.c =&gt; src/video_dec/libmpeg2/slice.c
rename : src/libmpeg2/slice_xvmc.c =&gt; src/video_dec/libmpeg2/slice_xvmc.c
rename : src/libmpeg2/slice_xvmc_vld.c =&gt; src/video_dec/libmpeg2/slice_xvmc_vld.c
rename : src/libmpeg2/stats.c =&gt; src/video_dec/libmpeg2/stats.c
rename : src/libmpeg2/vis.h =&gt; src/video_dec/libmpeg2/vis.h
rename : src/libmpeg2/vlc.h =&gt; src/video_dec/libmpeg2/vlc.h
rename : src/libmpeg2/xine_mpeg2_decoder.c =&gt; src/video_dec/libmpeg2/xine_mpeg2_decoder.c
rename : src/libmpeg2/xvmc.h =&gt; src/video_dec/libmpeg2/xvmc.h
rename : src/libmpeg2/xvmc_vld.h =&gt; src/video_dec/libmpeg2/xvmc_vld.h
</pre>
</div>
</content>
</entry>
<entry>
<title>Update all the code to the new headers layout.</title>
<updated>2007-12-19T01:59:06+00:00</updated>
<author>
<name>Diego 'Flameeyes' Pettenò</name>
<email>flameeyes@gmail.com</email>
</author>
<published>2007-12-19T01:59:06+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=9da4e2dde0da695c240cf48390217ac97cb10c1c'/>
<id>9da4e2dde0da695c240cf48390217ac97cb10c1c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Convert the "AFD changed" message into a LOG message.</title>
<updated>2007-09-19T18:44:53+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2007-09-19T18:44:53+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=11c825b340cc7ac470e32b992aa64cf3ec50b4ce'/>
<id>11c825b340cc7ac470e32b992aa64cf3ec50b4ce</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Speed up start code scanning.</title>
<updated>2007-04-11T22:02:45+00:00</updated>
<author>
<name>Reinhard Nißl</name>
<email>rnissl@gmx.de</email>
</author>
<published>2007-04-11T22:02:45+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=a76aacd69fa3512c3c566c93248bc6c41bb00e97'/>
<id>a76aacd69fa3512c3c566c93248bc6c41bb00e97</id>
<content type='text'>
The current code implements hardware (a shift register) in software
just to find the byte pattern 00 00 01 xx, which causes remarkable
CPU load on less powerful machines.
The new approach uses memchr() to find the 01 in the buffer, which
most often hits a start code. memchr() seems to be even faster then
implementing a real pattern search (i. e. by just looking at every
third byte to find 01). The new implementation causes significantly
fewer CPU load on less powerful machines.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current code implements hardware (a shift register) in software
just to find the byte pattern 00 00 01 xx, which causes remarkable
CPU load on less powerful machines.
The new approach uses memchr() to find the 01 in the buffer, which
most often hits a start code. memchr() seems to be even faster then
implementing a real pattern search (i. e. by just looking at every
third byte to find 01). The new implementation causes significantly
fewer CPU load on less powerful machines.
</pre>
</div>
</content>
</entry>
<entry>
<title>Special handling of sequence end code to improve still frames.</title>
<updated>2007-04-11T21:27:25+00:00</updated>
<author>
<name>Reinhard Nißl</name>
<email>rnissl@gmx.de</email>
</author>
<published>2007-04-11T21:27:25+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=5e58a3c2f6a02dbd198369d1132366c49f5345fe'/>
<id>5e58a3c2f6a02dbd198369d1132366c49f5345fe</id>
<content type='text'>
The current code emits a frame when a non slice start code is seen.
For still frames, this is typically a sequence end code. But the
current code doesn't call parse_chunk() immediately because it waits
for a further start code to determine the chunk of data to pass to
parse_chunk(). But there isn't such a further start code for still
frames after the sequence end code and thus, the still frame will
not be emitted.
As sequence end code is the only start code which has no data
according to the MPEG specification, let's use this information
to call parse_chunk() immediately.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current code emits a frame when a non slice start code is seen.
For still frames, this is typically a sequence end code. But the
current code doesn't call parse_chunk() immediately because it waits
for a further start code to determine the chunk of data to pass to
parse_chunk(). But there isn't such a further start code for still
frames after the sequence end code and thus, the still frame will
not be emitted.
As sequence end code is the only start code which has no data
according to the MPEG specification, let's use this information
to call parse_chunk() immediately.
</pre>
</div>
</content>
</entry>
<entry>
<title>Detect absence of AFD and report only changes.</title>
<updated>2007-04-11T21:04:11+00:00</updated>
<author>
<name>Reinhard Nißl</name>
<email>rnissl@gmx.de</email>
</author>
<published>2007-04-11T21:04:11+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=47d88e8447b5b86f7eca03d302f2d17d2a4c9c26'/>
<id>47d88e8447b5b86f7eca03d302f2d17d2a4c9c26</id>
<content type='text'>
The current code cannot detect the absence of AFD once it has been
seen in the stream. As AFD can appear in user data after sequence,
group or picture start codes, the idea is to reset the stored AFD
value when processing the sequence start code. In the case where
AFD is seen in user data, it is stored internally, to have it ready
when the first slice is processed. At least at that time, AFD data
has been seen and can be analyzed for changes. At any change, the
AFD value will then be stored into a stream property. Doing this
only for changes avoids locks while writing the same value over and
over to the stream's property.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current code cannot detect the absence of AFD once it has been
seen in the stream. As AFD can appear in user data after sequence,
group or picture start codes, the idea is to reset the stored AFD
value when processing the sequence start code. In the case where
AFD is seen in user data, it is stored internally, to have it ready
when the first slice is processed. At least at that time, AFD data
has been seen and can be analyzed for changes. At any change, the
AFD value will then be stored into a stream property. Doing this
only for changes avoids locks while writing the same value over and
over to the stream's property.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve MPEG2 detection to have it ready for correct aspect ratio</title>
<updated>2007-04-11T20:47:14+00:00</updated>
<author>
<name>Reinhard Nißl</name>
<email>rnissl@gmx.de</email>
</author>
<published>2007-04-11T20:47:14+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=70340520422bd57265c125c9114bf0804a0fcfb6'/>
<id>70340520422bd57265c125c9114bf0804a0fcfb6</id>
<content type='text'>
determination.
The current code detects MPEG2 when parsing the sequence extention
which appears only in MPEG2 streams. But this is to late for correct
aspect ratio determination which happens earlier and therefore
assumes MPEG1. The result is a totally wrong aspect ratio.
To fix this issue, the next start code (which is already available
at that time) is passed to parse_chunk() too, which can then be
used to detect a MPEG2 extension start code early enough before
the aspect ratio is determined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
determination.
The current code detects MPEG2 when parsing the sequence extention
which appears only in MPEG2 streams. But this is to late for correct
aspect ratio determination which happens earlier and therefore
assumes MPEG1. The result is a totally wrong aspect ratio.
To fix this issue, the next start code (which is already available
at that time) is passed to parse_chunk() too, which can then be
used to detect a MPEG2 extension start code early enough before
the aspect ratio is determined.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix integer/double mistake.</title>
<updated>2007-01-28T22:46:07+00:00</updated>
<author>
<name>Miguel Freitas</name>
<email>miguelfreitas@users.sourceforge.net</email>
</author>
<published>2007-01-28T22:46:07+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=37563812bfe7a5e59910ccc1274275574b8fe674'/>
<id>37563812bfe7a5e59910ccc1274275574b8fe674</id>
<content type='text'>
funny because the "more accurate" frame duration calculation actually
broke a/v sync for ntsc dvds. tsc tsc ;-)
fixes #1544349, #1589644

CVS patchset: 8574
CVS date: 2007/01/28 22:46:07

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
funny because the "more accurate" frame duration calculation actually
broke a/v sync for ntsc dvds. tsc tsc ;-)
fixes #1544349, #1589644

CVS patchset: 8574
CVS date: 2007/01/28 22:46:07

</pre>
</div>
</content>
</entry>
<entry>
<title>Frame duration calculation cleanups; more accurate calculation.</title>
<updated>2006-06-23T18:22:19+00:00</updated>
<author>
<name>Darren Salt</name>
<email>linux@youmustbejoking.demon.co.uk</email>
</author>
<published>2006-06-23T18:22:19+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=5ba0560dad4cc01ec8560dcf41d2395357b3063b'/>
<id>5ba0560dad4cc01ec8560dcf41d2395357b3063b</id>
<content type='text'>
CVS patchset: 8072
CVS date: 2006/06/23 18:22:19

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CVS patchset: 8072
CVS date: 2006/06/23 18:22:19

</pre>
</div>
</content>
</entry>
<entry>
<title>Fix strict aliasing rules breakages where possible, enable -fno-strict-aliasing where the breakage is unresolvable, and not enable it globally (decreases performances).</title>
<updated>2006-06-17T15:20:56+00:00</updated>
<author>
<name>Diego 'Flameeyes' Pettenò</name>
<email>flameeyes@gmail.com</email>
</author>
<published>2006-06-17T15:20:56+00:00</published>
<link rel='alternate' type='text/html' href='https://vdr-projects.e-tobi.net/git/xine-lib/commit/?id=31eee779c6802eb127e5a529410a61b719a30694'/>
<id>31eee779c6802eb127e5a529410a61b719a30694</id>
<content type='text'>
CVS patchset: 8048
CVS date: 2006/06/17 15:20:56

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CVS patchset: 8048
CVS date: 2006/06/17 15:20:56

</pre>
</div>
</content>
</entry>
</feed>
