From: Simon F. <sim...@on...> - 2008-07-28 16:23:13
|
These patches fix input_v4l. One's a long term bug in the way tuning and baseband inputs interact, while the other's a buffer overflow introduced in 3ef0bb3bf2bc. |
From: Simon F. <sim...@on...> - 2008-07-28 16:23:12
|
# HG changeset patch # User Simon Farnsworth <sim...@on...> # Date 1217261681 -3600 # Node ID ff0318fba1b6edc6637743af6e9ecae8eaeb6c0c # Parent c8bb4681eaa452f038f282703da716594db04ac7 Preallocate after we know how large the frames will be - cures a buffer overrun bug diff -r c8bb4681eaa4 -r ff0318fba1b6 ChangeLog --- a/ChangeLog Wed Jul 23 11:13:20 2008 +0100 +++ b/ChangeLog Mon Jul 28 17:14:41 2008 +0100 @@ -6,6 +6,8 @@ xine-lib (1.1.15) 2008-??-?? * Xv deinterlacing didn't take the size of the deinterlaced image into account; on some chipsets, this would cause image corruption, while on others, there would be no problem + * V4L changes: + - Delay preallocating video frames until we know how large they'll be xine-lib (1.1.14) 2008-06-29 * DVB changes: diff -r c8bb4681eaa4 -r ff0318fba1b6 src/input/input_v4l.c --- a/src/input/input_v4l.c Wed Jul 23 11:13:20 2008 +0100 +++ b/src/input/input_v4l.c Mon Jul 28 17:14:41 2008 +0100 @@ -892,10 +892,6 @@ static int open_video_capture_device(v4l _x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1); _x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_VIDEO, 1); - /* Pre-allocate some frames for audio and video so it doesn't have to be - * done during capture */ - allocate_frames(this, 1); - /* Unmute audio off video capture device */ unmute_audio(this); @@ -1004,7 +1000,11 @@ static int open_video_capture_device(v4l xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_X, 103); xine_set_param(this->stream, XINE_PARAM_VO_ZOOM_Y, 103); - + + /* Pre-allocate some frames for audio and video so it doesn't have to be + * done during capture */ + allocate_frames(this, 1); + /* If we made it here, everything went ok */ this->audio_only = 0; if (tuner_found) |
From: Darren S. <li...@yo...> - 2008-07-28 16:35:45
|
I demand that Simon Farnsworth may or may not have written... > # HG changeset patch > # User Simon Farnsworth <sim...@on...> > # Date 1217261681 -3600 > # Node ID ff0318fba1b6edc6637743af6e9ecae8eaeb6c0c > # Parent c8bb4681eaa452f038f282703da716594db04ac7 > Preallocate after we know how large the frames will be - cures a ^ Summary line. > buffer overrun bug ^ Description. There's something wrong here. (This also applies to your two other uncommitted patches.) [snip] -- | Darren Salt | linux or ds at | nr. Ashington, | Toon | RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army | + Use more efficient products. Use less. BE MORE ENERGY EFFICIENT. Consider your reputation. Try changing your name and moving to a new town. |
From: Simon F. <sim...@on...> - 2008-07-28 16:42:49
|
Darren Salt wrote: > I demand that Simon Farnsworth may or may not have written... > >> # HG changeset patch >> # User Simon Farnsworth <sim...@on...> >> # Date 1217261681 -3600 >> # Node ID ff0318fba1b6edc6637743af6e9ecae8eaeb6c0c >> # Parent c8bb4681eaa452f038f282703da716594db04ac7 >> Preallocate after we know how large the frames will be - cures a > > ^ Summary line. > >> buffer overrun bug > > ^ Description. > > There's something wrong here. (This also applies to your two other > uncommitted patches.) > Sorry - wasn't thinking straight when I ran hg commit. Should I regenerate these, or are you happy to hand-edit them into shape? -- Simon Farnsworth |
From: Simon F. <sim...@on...> - 2008-07-28 16:23:12
|
# HG changeset patch # User Simon Farnsworth <sim...@on...> # Date 1217261859 -3600 # Node ID cb209989c44d1a21579ed338334d67b0a2295157 # Parent ff0318fba1b6edc6637743af6e9ecae8eaeb6c0c Only set the tuner if we're going to use it - this fixes baseband video inputs diff -r ff0318fba1b6 -r cb209989c44d ChangeLog --- a/ChangeLog Mon Jul 28 17:14:41 2008 +0100 +++ b/ChangeLog Mon Jul 28 17:17:39 2008 +0100 @@ -8,6 +8,8 @@ xine-lib (1.1.15) 2008-??-?? others, there would be no problem * V4L changes: - Delay preallocating video frames until we know how large they'll be + - Only try and set the tuner if we're going to use it. Setting the tuner + when using baseband video (CVBS, S-Video) breaks the input. xine-lib (1.1.14) 2008-06-29 * DVB changes: diff -r ff0318fba1b6 -r cb209989c44d src/input/input_v4l.c --- a/src/input/input_v4l.c Mon Jul 28 17:14:41 2008 +0100 +++ b/src/input/input_v4l.c Mon Jul 28 17:17:39 2008 +0100 @@ -549,6 +549,12 @@ static int set_frequency(v4l_input_plugi fd = this->radio_fd; if (frequency != 0) { + /* FIXME: Don't assume tuner 0 ? */ + this->tuner = 0; + ret = ioctl(fd, VIDIOCSTUNER, &this->tuner); + lprintf("(%d) Response on set tuner to %d\n", ret, this->tuner); + this->video_tuner.tuner = this->tuner; + if (this->video_tuner.flags & VIDEO_TUNER_LOW) { this->calc_frequency = frequency * 16; } else { @@ -683,16 +689,6 @@ static int search_by_channel(v4l_input_p ret = ioctl(fd, VIDIOCSCHAN, &this->input); lprintf("(%d) Set channel to %d\n", ret, this->input); - - /* FIXME: Don't assume tuner 0 ? */ - - this->tuner = 0; - - ret = ioctl(fd, VIDIOCSTUNER, &this->tuner); - - lprintf("(%d) Response on set tuner to %d\n", ret, this->tuner); - - this->video_tuner.tuner = this->tuner; } else { xprintf(this->stream->xine, XINE_VERBOSITY_LOG, "input_v4l: Not setting video source. No source given\n"); |