Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
CVS patchset: 8072
CVS date: 2006/06/23 18:22:19
|
|
-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
|
|
case where display_height (240) is less than coded_picture_height (256)
CVS patchset: 7903
CVS date: 2006/02/19 15:05:07
|
|
CVS patchset: 7883
CVS date: 2006/02/06 12:54:17
|
|
to front-ends. (Reinhard Nissl)
gxine (CVS HEAD) is aware of this information.
CVS patchset: 7628
CVS date: 2005/06/17 22:33:01
|
|
improve xxmc cpu-usage for IDCT / MOCOMP acceleration through better locking
[bug #1195282]
CVS patchset: 7524
CVS date: 2005/05/06 07:42:20
|
|
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
|
|
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
|
|
* 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
|
|
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
|
|
(costly conversion is not necessary, because ASCII is a subset of UTF-8)
CVS patchset: 7264
CVS date: 2004/12/16 13:58:57
|
|
files with IDCT / mocomp XvMC acceleration.
Cleaned up some ugly xvmc / xxmc naming.
CVS patchset: 7122
CVS date: 2004/11/13 19:32:51
|
|
CVS patchset: 7078
CVS date: 2004/10/27 14:14:20
|
|
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
|
|
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
|
|
- some vo drivers support cropping natively.
(only xv and xvmc have been tested)
- add software crop fallback to video_out.c
- skip yuv2rgb processing at xshm for not yet cropped frames
(these frames are never shown)
- libmpeg2 and ffmpeg now may use crop support
- bump vo api. (changes to xvmc/xxmc will follow)
CVS patchset: 6991
CVS date: 2004/09/22 20:29:13
|
|
fixes sailor_moon_op_frag.mpg duration problem (wrong duration for
frames marked as progressive)
CVS patchset: 6794
CVS date: 2004/07/14 22:27:10
|
|
CVS patchset: 6251
CVS date: 2004/03/14 20:40:39
|
|
CVS patchset: 6055
CVS date: 2004/01/19 19:23:18
|
|
CVS patchset: 5942
CVS date: 2003/12/24 13:34:17
|
|
CVS patchset: 5796
CVS date: 2003/11/26 19:43:26
|
|
BIG NOTE: use helpers to access to these informations (get/set/reset):
_x_{stream,meta}_info_{get,set,reset}()
are for internal use, don't use *_public() ones from inside the beast ;-)
Some wrongly names "xine_" fonction renaming.
CVS patchset: 5757
CVS date: 2003/11/16 23:33:42
|
|
(we should finish this before rc3.)
- stream_info and meta_info variables are private now.
obs: everything must be recompiled due xine_stream_t changes
CVS patchset: 5733
CVS date: 2003/11/15 14:54:30
|
|
CVS patchset: 5731
CVS date: 2003/11/15 13:01:00
|
|
CVS patchset: 5721
CVS date: 2003/11/11 18:44:50
|
|
- bump vo and post interface versions
obs: video_out_xvmc.c needs some more work, see todo.
CVS patchset: 5459
CVS date: 2003/10/06 21:52:42
|
|
CVS patchset: 5328
CVS date: 2003/09/01 20:12:36
|
|
CVS patchset: 5250
CVS date: 2003/08/05 15:09:23
|
|
patch by Philip Jgenstedt
CVS patchset: 5243
CVS date: 2003/08/04 03:47:09
|
|
- do not trust progressive_frame for detecting NTSC 3:2, quote:
'the alternating progressive_frame encoding problem. This is a problem where the progressive_frame flag alternates between true and false every frame, when it really should have been set to "true" all the time.'
'There is a lot of content that is affected by this issue, because it's caused by a dumb decision by a very big company that made a very popular MPEG encoder. They've since fixed the encoder, but there are apparently still authoring companies that use it, because the problem is on a lot of high-profile current discs, like Disney's "Monsters Inc." and "Beauty and the Beast".'
http://www.hometheaterhifi.com/volume_8_2/dvd-benchmark-special-report-chroma-bug-4-2001.html
CVS patchset: 5025
CVS date: 2003/06/11 23:08:54
|
|
CVS patchset: 5003
CVS date: 2003/06/03 03:33:15
|
|
time ago
CVS patchset: 4904
CVS date: 2003/05/23 10:52:40
|
|
CVS patchset: 4759
CVS date: 2003/05/04 00:56:51
|
|
mark them as bad so that doesn't happen
obs: i'm aware this is a delicate code, please report if this change
causes any problems (like with dvd menus). i hope it won't.
CVS patchset: 4706
CVS date: 2003/04/29 13:47:48
|
|
CVS patchset: 4543
CVS date: 2003/04/06 01:17:10
|
|
stream
but just do not output any frames
some DVD menus, where is_frame_needed seems to skip something important for decoding
should work now, while we should still see no artifacts on seeking
CVS patchset: 4470
CVS date: 2003/03/23 14:58:33
|
|
reference
frames, we have to evaluate the frame types earlier, because on some DVDs with
interlaced NTSC material, the fields of the frames are interwoven in a way that
would overwrite the frame type with a new value before we evaluate it, this leads to
xine endlessly waiting for I or P frames.
enabling seek_mode on decoder reset also fixes some seeking artifacts
CVS patchset: 4437
CVS date: 2003/03/17 15:25:10
|
|
CVS patchset: 4287
CVS date: 2003/02/26 06:49:23
|
|
for more information see message on xine-devel
CVS patchset: 3818
CVS date: 2003/01/08 01:02:27
|
|
CVS patchset: 3811
CVS date: 2003/01/07 16:48:57
|
|
CVS patchset: 3809
CVS date: 2003/01/07 16:27:26
|
|
CVS patchset: 3794
CVS date: 2003/01/05 21:40:37
|
|
- fix UI_PLAYBACK_FINISHED rifle
CVS patchset: 3686
CVS date: 2002/12/26 21:53:41
|