Age | Commit message (Collapse) | Author |
|
in 1.2 series.
|
|
|
|
|
|
close the driver on a return value <0
|
|
|
|
Hi, the next bug that has been annoying me is as follows.
I have some streams recorded from BBC4 on UK DVB-T. BBC4 only actually
starts transmitting at about 7pm; prior to that there is a static
picture saying it is not playing just now. With these streams and
xine, I would get audio, but no picture.
Looking at the PMT table during the static picture, all the streams
have type 0x0b. However there IS a video stream in there, but there
are also several streams of binary data.
Xine's current video PID auto-detection code was locking on to one of
these streams of binary data because it contained the magic sequence
00 00 01 e0 at one of the PUS. *HOWEVER* it is NOT a PES stream; this
sequence is just an accident. The other problem is that xine can only
handle one video stream; so once it was misdetected once, it was stuck
at that PID.
The attached patch changes the corrupted_pes flag into a counter. If a
video stream has more than CORRUPT_PES_THRESHOLD corrupt PES packets
in a row, then it is deselected as the video stream, and
auto-detection is kicked off again. Auto-detection will now also
ignore any streams seen previously which have a nonzero corrupted_pes
count. This works very well; I can now see the video fine.
One possible issue might be that if you get a lot of corrupt PES in a
stream which really IS the video stream, it will be deselected.
However, this is not actually a problem: once the corruption goes
away, the corrupted_pes counter will be reset to 0, and the stream
will once again be autodetected as the video stream (and playback will
continue from there).
|
|
|
|
|
|
Hi, I've been tracking down a very odd bug this afternoon. As it turns
out it is caused by enabling xine's mmap() support for the input_file.c.
I'm running 32 bit linux 2.6.21. The file in question is 0x10e4da000
bytes long (you can probably guess what kind of bug this is by now :)
Anyway, the issue stems from the definition of mmap():
void *mmap(void *start, size_t length, int prot, int flags, int fd,
off_t offset);
compare this to the definition of st_size in struct stat:
off_t st_size; /* total size, in bytes */
On my machine (in input_file.c) sizeof(size_t) ==4, whilst
sizeof(off_t) == 8. However the compiler doesn't generate a warning
when the following is done in xine's code:
if ( (this->mmap_base = mmap(NULL, sbuf.st_size, PROT_READ,
MAP_SHARED, this->fh, 0)) != (void*)-1
So it silently truncates the upper part of the length. Obviously you
cannot mmap() a file that large into (32 bit) memory anyway, but as it turns
out, mmapping() 0xe4da000 succeeds, which causes... problems.
The patch (against xine-lib 1.1.6) does two things:
* Check that the length will not be truncated, while still allowing
for mmap()s of large files under 64 bit OSes.
* A correctness fix: if mmap() fails, this->mmap_base will be set to
0xffffffff. Later on when the file is closed, this means it was
attempting to do munmap(0xffffffff).
|
|
|
|
|
|
|
|
|
|
misfire and report a good file as unplayable.
|
|
|
|
external libmad.
|
|
The attached patch fixes a problem with embedded references in recent
versions of quicktime's movie formats.
Apparently there is an additional atom (RMRA) before the RMDA atom: it
works like a container for all subsequent atoms, so it can be safely
skipped.
You can test yourself what I'm saying by watching some trailers at
apple.com (http://www.apple.com/trailers).
--
Regards,
Claudio Ciccani
klan@users.sf.net
http://directfb.org
http://sf.net/projects/php-directfb
|
|
makes little sense, move BE_*_synchsafe functions from id3.c to id3.h and declare them inline, then BE_32_synchsafe can be replaced to id3v2_tagsize as drop in.
|
|
iteration over the decoded frames to transform them to integer, and also avoids an improper saturation.
|
|
|
|
|
|
|
|
(was used by demux_flac only).
|
|
reduces again the amount of troublesome FLAC files.
|
|
|
|
function static.
|
|
|
|
development branche
Am Samstag, 26. Mai 2007 17:48 schrieb Darren Salt:
> Could you also try not reverting that and instead applying one or
> both of the attached patches? Both playback and eject need to be
> tested. You should use the drive's eject button, though there's no
> harm in also checking xine-lib's eject code.
Ok, here's a modified patch, a combination of your two patches, with a
little fix. It works fine here, pressing the vcd button on xine-ui
starts playing vcd's directly and when pressing the stop button, I can
eject the CD by pressing the eject button on the cd drive.
I hope it's ok for you.
--
Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/
| http://packman.links2linux.de/
Manfred | http://www.knightsoft-net.de
|
|
|
|
|
|
|
|
Add and adjust comments appropriately.
|
|
|
|
|
|
The current input_v4l in xine-lib 1.1.6 is inherently buggy (it will
deference an invalid pointer in extract_mrl if the MRL contains a V4L input
name or frequency).
|
|
The attached patch applies after my logging patches (I can regenerate if
needed).
demux_ts attempted to read packets from the input 200 times before
giving up. When playing a local file, this is harmless, as it will hit
EOF 200 times; however, input_dvb waits 5 seconds for packets on each
call to read, resulting in a 1000 second delay if tuning fails.
Remove the counting of input packets, and add a comment to read() in
input_plugin.h, to indicate that we expect inputs to try and return some
data when read() is called. This fixes the delay, and makes it clear to
future maintainers that they shouldn't expect to loop like this.
--
Simon Farnsworth
|
|
The three attached patches (against 1.1.6) each increase the amount of
debug logging in their respective components. We've found the extra
logging useful when trying to track down faults.
I've split this into three patches to make it easier to apply only some
of our changes.
--
Comments welcome,
Simon Farnsworth
|
|
Add documentation for dvba: MRLs.
Mention that the service ID is required for dvbs:, dvbc: and dvbt:.
Replace _ with - in the DVB tuning info descriptions (for formatting reasons).
|
|
|
|
Patch from Dmitri Fedortchenko <dimo <at> angelhill.net>, required
for upstream Totem bug:
http://bugzilla.gnome.org/show_bug.cgi?id=418316
|
|
Xv drivers are permitted to return a bigger image than we asked for, to
work around hardware constraints. If this happens, 1.1.6's video_out_xv
cannot deinterlace properly. Fix this by deinterlacing based on the
width of the Xv image; the Xv driver will discard the extra horizontal data.
Without this patch, you get a barber-pole effect if the input video is
interlaced *and* the Xv driver chooses to round up the width of the
requested image.
--
Simon Farnsworth
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
when we want to run until the timeout has occurred, partially fixes
Totem's browser plugin playing back browser streams with the xine-lib
backend
See http://bugzilla.gnome.org/show_bug.cgi?id=375866 for details
|
|
|