summaryrefslogtreecommitdiff
path: root/src/libmpeg2
AgeCommit message (Collapse)Author
2008-11-20Some warning fixes: XINE_FORMAT_SCANF, statics in headers, consts, ...František Dvořák
Add warning flags to the DEBUG_CFLAGS too.
2008-05-07xine_xmalloc() deprecation: replace its use with static and non-zero size.Diego 'Flameeyes' Pettenò
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
2008-03-02Push out current frame when seeing the sequence end code 0xb7.Reinhard Nißl
2008-01-01Avoid potential install-time mislinkage against libxine.so.2.Darren Salt
2008-01-01Use signed data type for pan&scan center offset components.Reinhard Nißl
According to specification the center offset components are signed integers.
2007-11-10Delete most of the CVS $Id$/$Log$ lines.Darren Salt
--HG-- extra : transplant_source : %E0%D0%C5%8B%BEU%DD%24%5D7%1F%ADV%AD%EB%23%CBU%80%EB
2007-11-09Update FSF address on non-contributed code and COPYING files.Diego 'Flameeyes' Pettenò
For contributed code, leave whatever the version we last synced for is using to make simpler future syncs.
2007-09-19Convert the "AFD changed" message into a LOG message.Darren Salt
2007-08-15Workaround for recent glibc & -D_FORTIFY_SOURCE=2 (defines open() as a macro).Darren Salt
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.
2007-05-17Convert comments (and the occasional string where it doesn't matter) to UTF-8.Darren Salt
2007-04-12Speed up start code scanning.Reinhard Nißl
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.
2007-04-11Special handling of sequence end code to improve still frames.Reinhard Nißl
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.
2007-04-11Detect absence of AFD and report only changes.Reinhard Nißl
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.
2007-04-11Improve MPEG2 detection to have it ready for correct aspect ratioReinhard Nißl
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.
2007-04-08Beside the name, constants can't be marked const or gcc miscompiles the ↵Diego 'Flameeyes' Pettenò
Altivec code.
2007-04-08Mark various private arrays, structs & fn parameters as static and/or const.Darren Salt
Two of the modified files are headers, but each contains definitions as well as declarations and is only ever used once.
2007-04-04Rename xine_decoder.c to xine_mpeg2_decoder.c.Diego 'Flameeyes' Pettenò
Use xineplug_LTLIBRARIES. --HG-- rename : src/libmpeg2/xine_decoder.c => src/libmpeg2/xine_mpeg2_decoder.c
2007-04-03Rationalise use of .hgignore, removes a bunch of files that only ignored ↵Diego 'Flameeyes' Pettenò
automake-related files.
2007-04-02Migrate all .cvsignore files to .hgignore.Diego 'Flameeyes' Pettenò
--HG-- rename : .cvsignore => .hgignore rename : doc/.cvsignore => doc/.hgignore rename : doc/faq/.cvsignore => doc/faq/.hgignore rename : doc/hackersguide/.cvsignore => doc/hackersguide/.hgignore rename : doc/man/.cvsignore => doc/man/.hgignore rename : doc/man/en/.cvsignore => doc/man/en/.hgignore rename : include/.cvsignore => include/.hgignore rename : intl/.cvsignore => intl/.hgignore rename : lib/.cvsignore => lib/.hgignore rename : m4/.cvsignore => m4/.hgignore rename : misc/.cvsignore => misc/.hgignore rename : misc/fonts/.cvsignore => misc/fonts/.hgignore rename : po/.cvsignore => po/.hgignore rename : src/.cvsignore => src/.hgignore rename : src/audio_out/.cvsignore => src/audio_out/.hgignore rename : src/combined/.cvsignore => src/combined/.hgignore rename : src/demuxers/.cvsignore => src/demuxers/.hgignore rename : src/dxr3/.cvsignore => src/dxr3/.hgignore rename : src/input/.cvsignore => src/input/.hgignore rename : src/input/dvb/.cvsignore => src/input/dvb/.hgignore rename : src/input/libdvdnav/.cvsignore => src/input/libdvdnav/.hgignore rename : src/input/libreal/.cvsignore => src/input/libreal/.hgignore rename : src/input/librtsp/.cvsignore => src/input/librtsp/.hgignore rename : src/input/vcd/.cvsignore => src/input/vcd/.hgignore rename : src/input/vcd/libcdio/.cvsignore => src/input/vcd/libcdio/.hgignore rename : src/input/vcd/libcdio/MSWindows/.cvsignore => src/input/vcd/libcdio/MSWindows/.hgignore rename : src/input/vcd/libcdio/cdio/.cvsignore => src/input/vcd/libcdio/cdio/.hgignore rename : src/input/vcd/libcdio/image/.cvsignore => src/input/vcd/libcdio/image/.hgignore rename : src/input/vcd/libvcd/.cvsignore => src/input/vcd/libvcd/.hgignore rename : src/input/vcd/libvcd/libvcd/.cvsignore => src/input/vcd/libvcd/libvcd/.hgignore rename : src/liba52/.cvsignore => src/liba52/.hgignore rename : src/libdts/.cvsignore => src/libdts/.hgignore rename : src/libfaad/.cvsignore => src/libfaad/.hgignore rename : src/libfaad/codebook/.cvsignore => src/libfaad/codebook/.hgignore rename : src/libffmpeg/.cvsignore => src/libffmpeg/.hgignore rename : src/libffmpeg/libavcodec/.cvsignore => src/libffmpeg/libavcodec/.hgignore rename : src/libffmpeg/libavcodec/alpha/.cvsignore => src/libffmpeg/libavcodec/alpha/.hgignore rename : src/libffmpeg/libavcodec/armv4l/.cvsignore => src/libffmpeg/libavcodec/armv4l/.hgignore rename : src/libffmpeg/libavcodec/i386/.cvsignore => src/libffmpeg/libavcodec/i386/.hgignore rename : src/libffmpeg/libavcodec/libpostproc/.cvsignore => src/libffmpeg/libavcodec/libpostproc/.hgignore rename : src/libffmpeg/libavcodec/mlib/.cvsignore => src/libffmpeg/libavcodec/mlib/.hgignore rename : src/libffmpeg/libavcodec/ppc/.cvsignore => src/libffmpeg/libavcodec/ppc/.hgignore rename : src/libffmpeg/libavcodec/sparc/.cvsignore => src/libffmpeg/libavcodec/sparc/.hgignore rename : src/libffmpeg/libavutil/.cvsignore => src/libffmpeg/libavutil/.hgignore rename : src/libflac/.cvsignore => src/libflac/.hgignore rename : src/liblpcm/.cvsignore => src/liblpcm/.hgignore rename : src/libmad/.cvsignore => src/libmad/.hgignore rename : src/libmpeg2/.cvsignore => src/libmpeg2/.hgignore rename : src/libmpeg2new/.cvsignore => src/libmpeg2new/.hgignore rename : src/libmpeg2new/include/.cvsignore => src/libmpeg2new/include/.hgignore rename : src/libmpeg2new/libmpeg2/.cvsignore => src/libmpeg2new/libmpeg2/.hgignore rename : src/libmusepack/.cvsignore => src/libmusepack/.hgignore rename : src/libmusepack/musepack/.cvsignore => src/libmusepack/musepack/.hgignore rename : src/libreal/.cvsignore => src/libreal/.hgignore rename : src/libspeex/.cvsignore => src/libspeex/.hgignore rename : src/libspucc/.cvsignore => src/libspucc/.hgignore rename : src/libspucmml/.cvsignore => src/libspucmml/.hgignore rename : src/libspudec/.cvsignore => src/libspudec/.hgignore rename : src/libspudvb/.cvsignore => src/libspudvb/.hgignore rename : src/libsputext/.cvsignore => src/libsputext/.hgignore rename : src/libtheora/.cvsignore => src/libtheora/.hgignore rename : src/libvorbis/.cvsignore => src/libvorbis/.hgignore rename : src/libw32dll/.cvsignore => src/libw32dll/.hgignore rename : src/libw32dll/DirectShow/.cvsignore => src/libw32dll/DirectShow/.hgignore rename : src/libw32dll/dmo/.cvsignore => src/libw32dll/dmo/.hgignore rename : src/libw32dll/qtx/.cvsignore => src/libw32dll/qtx/.hgignore rename : src/libw32dll/qtx/qtxsdk/.cvsignore => src/libw32dll/qtx/qtxsdk/.hgignore rename : src/libw32dll/wine/.cvsignore => src/libw32dll/wine/.hgignore rename : src/libxineadec/.cvsignore => src/libxineadec/.hgignore rename : src/libxineadec/gsm610/.cvsignore => src/libxineadec/gsm610/.hgignore rename : src/libxineadec/nosefart/.cvsignore => src/libxineadec/nosefart/.hgignore rename : src/libxinevdec/.cvsignore => src/libxinevdec/.hgignore rename : src/post/.cvsignore => src/post/.hgignore rename : src/post/audio/.cvsignore => src/post/audio/.hgignore rename : src/post/deinterlace/.cvsignore => src/post/deinterlace/.hgignore rename : src/post/deinterlace/plugins/.cvsignore => src/post/deinterlace/plugins/.hgignore rename : src/post/goom/.cvsignore => src/post/goom/.hgignore rename : src/post/mosaico/.cvsignore => src/post/mosaico/.hgignore rename : src/post/planar/.cvsignore => src/post/planar/.hgignore rename : src/post/visualizations/.cvsignore => src/post/visualizations/.hgignore rename : src/video_out/.cvsignore => src/video_out/.hgignore rename : src/video_out/libdha/.cvsignore => src/video_out/libdha/.hgignore rename : src/video_out/libdha/bin/.cvsignore => src/video_out/libdha/bin/.hgignore rename : src/video_out/libdha/kernelhelper/.cvsignore => src/video_out/libdha/kernelhelper/.hgignore rename : src/video_out/libdha/oth/.cvsignore => src/video_out/libdha/oth/.hgignore rename : src/video_out/libdha/sysdep/.cvsignore => src/video_out/libdha/sysdep/.hgignore rename : src/video_out/macosx/.cvsignore => src/video_out/macosx/.hgignore rename : src/video_out/vidix/.cvsignore => src/video_out/vidix/.hgignore rename : src/video_out/vidix/drivers/.cvsignore => src/video_out/vidix/drivers/.hgignore rename : src/xine-engine/.cvsignore => src/xine-engine/.hgignore rename : src/xine-utils/.cvsignore => src/xine-utils/.hgignore rename : win32/.cvsignore => win32/.hgignore rename : win32/include/.cvsignore => win32/include/.hgignore
2007-01-28fix integer/double mistake.Miguel Freitas
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
2007-01-19Make iterator variables constant when used with constant tables.Diego 'Flameeyes' Pettenò
CVS patchset: 8525 CVS date: 2007/01/19 01:14:19
2006-12-25The mpeg2 decoding plugin uses ceil(), so link it to libm.Diego 'Flameeyes' Pettenò
CVS patchset: 8448 CVS date: 2006/12/25 18:35:53
2006-07-10Implement visibility support, available on GCC 4.0 and later and on some 3.4 ↵Diego 'Flameeyes' Pettenò
(through backports), to avoid exporting unneeded internal symbols, making plugins' loading faster and use of internal copies of libraries more solid. It should automatically fall back to the old way in GCCs that does not support -fvisibility=hidden, but has to be tested carefully. No issues were found in the months of testing in Gentoo, but this requires special attention anyway. CVS patchset: 8101 CVS date: 2006/07/10 22:08:12
2006-06-23Frame duration calculation cleanups; more accurate calculation.Darren Salt
CVS patchset: 8072 CVS date: 2006/06/23 18:22:19
2006-06-17Fix strict aliasing rules breakages where possible, enable ↵Diego 'Flameeyes' Pettenò
-fno-strict-aliasing where the breakage is unresolvable, and not enable it globally (decreases performances). CVS patchset: 8048 CVS date: 2006/06/17 15:20:56
2006-06-17Fix Altivec libmpeg2 decoding, thanks to Luca Barbato (lu_zero@gentoo.org) ↵Diego 'Flameeyes' Pettenò
and Christer Palm (palm@nogui.se). CVS patchset: 8045 CVS date: 2006/06/17 12:45:51
2006-06-02Various static/const fixes from Gentoo.Darren Salt
CVS patchset: 8009 CVS date: 2006/06/02 22:18:56
2006-05-22Fixed undefined symbol [SUSE #173413] (Andreas Schwab).Matthias Hopf
CVS patchset: 7995 CVS date: 2006/05/22 17:04:35
2006-05-03Make various arrays and structures (mainly xine_plugin_info) const.Darren Salt
(Diego Pettenò) CVS patchset: 7985 CVS date: 2006/05/03 19:46:06
2006-02-19fix playing SIF DVDsMiguel Freitas
case where display_height (240) is less than coded_picture_height (256) CVS patchset: 7903 CVS date: 2006/02/19 15:05:07
2006-02-06PATCH: detect aspect ratio changes in MPEG2 videoMiguel Freitas
CVS patchset: 7883 CVS date: 2006/02/06 12:54:17
2006-02-04Enable AMD64 mmx/sse support in some plugins (tvtime, libmpeg2, goom...)Miguel Freitas
patch by dani3l CVS patchset: 7867 CVS date: 2006/02/04 14:06:29
2005-06-17Detect AFD information in MPEG2 streams and make the information availableDarren Salt
to front-ends. (Reinhard Nissl) gxine (CVS HEAD) is aware of this information. CVS patchset: 7628 CVS date: 2005/06/17 22:33:01
2005-05-26**BUGFIX**Thomas Hellström
Fixx xxmc bob deinterlacing for field-coded interlaced streams. CVS patchset: 7561 CVS date: 2005/05/26 07:49:14
2005-05-06**BUGFIX**Thomas Hellström
improve xxmc cpu-usage for IDCT / MOCOMP acceleration through better locking [bug #1195282] CVS patchset: 7524 CVS date: 2005/05/06 07:42:20
2005-05-04**BUGFIX**Thomas Hellström
stop libmpeg2 XvMC IDCT / MOCOMP attempting software motion compensation [bug #1194754] CVS patchset: 7520 CVS date: 2005/05/04 12:50:09
2005-05-03**BUGFIX**Thomas Hellström
Fixed xvmc plugin segfault when it tried software blending on nonexistant xv image. Cleaned up libmpeg2 behaviour on xxmc plugin abrupt software fallback. CVS patchset: 7516 CVS date: 2005/05/03 19:25:10
2005-04-26**BUGFIX**Thomas Hellström
Fix IDCT / Mocomp rendering errors in xxmc and xvmc modules caused by them not resetting the macroblock counter when a frame is created. Fixed libmpeg2 Mocomp XvMC forgetting to handle the signed / usigned intra flag, resulting in a purple screen on Nvidia when XvMC Mocomp only is used. CVS patchset: 7500 CVS date: 2005/04/26 09:02:55
2005-04-25**BUGFIX**Michael Roitzsch
Gotcha! Unfortunately, this disrupted make distcheck, so it is a showstopper for the release. I am too tired to wait another hour for the compilation, so things will have to wait until tomorrow morning. CVS patchset: 7498 CVS date: 2005/04/25 22:44:22
2005-04-09**BUGFIX**Thomas Hellström
Multiple slice-per-rows (HDTV) fixes in the libmpeg2 code, particularly regarding VLD XvMC. Cleaned up hardware acceleration hooks in libmpeg2. Fixed X include path searching while configure detects XvMC support. CVS patchset: 7449 CVS date: 2005/04/09 11:22:14
2005-02-22XvMC update largely courtesy of Kendall Bennet, Scitechsoft:Thomas Hellström
* Fix surface flushing and syncing (xxmc / xvmc) * Fix clearing of macro block lists (xxmc / xvmc) * Remove floating point operations from mpeg demuxer. Degrades performance on non-fp capable hardware. * Remove unnecessary software MC step * Fix Quantization matrix ordering which caused bad picture quality (KB/TH) * Minor optimizations in the libmpeg2 code * Fix VLD flushing at video discontinuity (TH) CVS patchset: 7424 CVS date: 2005/02/22 18:31:33
2005-01-30**BUGFIX**Thomas Hellström
Bug 1092411 Makes XvMC handle cases where each slice is split into more than two parts. This got broken on IDCT / MOCOMP with a previous commit to fix a search segfault. Has never worked before with VLD. Still IDCT / MOCOMP exhibit bad picture quality in this case but not worse than before it got broken. CVS patchset: 7375 CVS date: 2005/01/30 18:01:25
2004-12-16use UTF-8 meta info setting, where we know the string is ASCIIMichael Roitzsch
(costly conversion is not necessary, because ASCII is a subset of UTF-8) CVS patchset: 7264 CVS date: 2004/12/16 13:58:57
2004-11-13Fixed segfault when seeking with the "xvmc" and "xxmc" plugins playingThomas Hellström
files with IDCT / mocomp XvMC acceleration. Cleaned up some ugly xvmc / xxmc naming. CVS patchset: 7122 CVS date: 2004/11/13 19:32:51
2004-11-08Fix compilation on Mac OS X with --disable-altivec (warning: compilation has ↵Andre Pang
been tested, whether it works hasn't been tested ...) CVS patchset: 7109 CVS date: 2004/11/08 05:39:54
2004-11-06libmpeg2 compilation fixes for Mac OS XAndre Pang
CVS patchset: 7105 CVS date: 2004/11/06 09:23:15
2004-10-27old commentMiguel Freitas
CVS patchset: 7078 CVS date: 2004/10/27 14:14:20
2004-10-12xxmc driver updates:Thomas Hellström
Updated software fallback mechanism to be compatible with post plugin deinterlacing. A decoder using the plugin can now request a software fallback format to be used if acceleration fails. Removed the software deinterlacer that was inherited from the xv plugin. Made idct/mocomp fall back to software decoding for interlaced streams, since these are not rendered correctly either with the xvmc or the xxmc plugin. CVS patchset: 7029 CVS date: 2004/10/12 07:40:07
2004-09-28xxmc patch by Thomas Hellstrom (with some changes)Miguel Freitas
there is still some work to do, please report any breakages. note: new xxmc driver tested with both nvidia and via libraries. CVS patchset: 7007 CVS date: 2004/09/28 18:49:38
2004-09-27make it compile on sparc32 (without VIS) again...Siggi Langauf
CVS patchset: 7003 CVS date: 2004/09/27 23:28:59