Re: Switching input during capture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em 28-10-2011 14:42, Laurent Pinchart escreveu:
> Hi Gilles,
> 
> On Friday 28 October 2011 03:31:53 Gilles Gigan wrote:
>> Hi,
>> I would like to know what is the correct way to switch the current
>> video input during capture on a card with a single BT878 chip and 4
>> inputs
>> (http://store.bluecherry.net/products/PV%252d143-%252d-4-port-video-captur
>> e-card-%2830FPS%29-%252d-OEM.html). I tried doing it in two ways:
>> - using VIDIOC_S_INPUT to change the current input. While this works,
>> the next captured frame shows video from the old input in its top half
>> and video from the new input in the bottom half.

This is is likely easy to fix. The driver has already a logic to prevent changing
the buffer while in the middle of a buffer filling. I suspect that the BKL removal
patches might have broken it somewhat, allowing things like that. basically, it
should be as simple as not allowing changing the input at the top half.

Please try the enclosed patch.

Regards,
Mauro

-

bttv: Avoid switching the video input at the top half.

Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>

diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 3dd0660..6a3be6f 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -3978,7 +3978,7 @@ bttv_irq_switch_video(struct bttv *btv)
 	bttv_set_dma(btv, 0);
 
 	/* switch input */
-	if (UNSET != btv->new_input) {
+	if (! btv->curr.top && UNSET != btv->new_input) {
 		video_mux(btv,btv->new_input);
 		btv->new_input = UNSET;
 	}
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux