Age | Commit message (Collapse) | Author |
|
The deadlock was caused by the unprotected use of
stream->demux_action_pending internal variable from play_internal() and from
within the demuxer loop.
Direct access to demux_action_pending is replaced with _x_action_raise() and
_x_action_lower(), which use a mutex for thread safety.
|
|
This fixes a segfault which may occur when playing an MPEG4 stream.
|
|
|
|
|
|
If a decoded_pic was locally cached, because it is the first half of a reference picture it would not get freed in case of a reset/flush/dispose.
|
|
In case of an empty nal_buffer the free method would run into a NULL pointer. Check for this.
|
|
--HG--
rename : src/combined/decoder_wavpack.c => src/combined/wavpack_decoder.c
rename : src/demuxers/demux_ogg.c => src/combined/xine_ogg_demuxer.c
|
|
|
|
|
|
When the parser was reset it did not forget about the last pts, which might cause metronom to freeze.
On flush the cached vo_frame_t was kept in case the previously decode produced a 1st field and the decoder was waiting for 2nd field now. As on flush all images are released after drawing this could point to a invalid vo_frame_t
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
some minor cleanups
|
|
This is less than ideal. Really, we want DocBook 5.
|
|
|
|
|
|
This is probably still wrong, but at least works properly with BBC subtitling.
|
|
|
|
Decoding fixed (nybble extraction was broken, and some filling was wrong).
Default colour tables added.
The following is untested:
* Support for 2-bit and 8-bit images.
* Support for expansion from 2→4, 2→8 and 4→8 bits.
* Support for expansion tables.
* Handling of stuffing chunks (not expected to be seen).
* Copying of the top field into the bottom field.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
--HG--
branch : v4l
|
|
This bug appears to be a variety of aliasing bug, caused by the compiler not
knowing that buffer is written to by ...->read(). On i386, the bug shows up
because buffer[0] has to be re-read when extracting the sample rate etc.; on
amd64, it works fine because the value was cached in a register.
The problem is avoided by not read()ing into any storage more than once
while it remains in scope.
|
|
|
|
|
|
|
|
--HG--
branch : v4l
|
|
--HG--
branch : v4l
|
|
|
|
|
|
|
|
|
|
This reduces requirements of plugins etc., hopefully where possible and without
breakage. (Works on Linux.)
|
|
|
|
|
|
|
|
|
|
|
|
There's a rendering bug when using the opengl fragment program if the width
of the video is not a multiple of 16.
U and V channels will have padding on each row because they always have
pitches which are a multiple of 8, glTexSubImage2D will copy the padding
data to the texture and the U & V channels will be skewed. The same also
applies to the Y channel when width is not a multiple of 8. Fixed by
passing pitch to glTexSubImage2D instead of width.
The U & V channels also have to be outlined in grey on the texture and if
there's padding then we need to add the line on the right to every frame
before calling glTexSubImage.
It also looks like the location of the V channel in the texture was off by
one pixel in the call to glProgramEnvParameter4fARB.
--HG--
extra : rebase_source : 1984e493f77e80081e55b7c3b816d3baea965e4e
|
|
Plasma TV users have the problem that black border pixels age differently
compared to active image pixel in the center of the screen. Changing the
background color for example to gray makes the border pixels age almost
equally like the image pixels. As a result image brightness will change
more equally over TV's lifetime.
|
|
Without resetting the buffered PTS it happens that the same PTS gets
attached to multiple images which is wrong.
|