* [RFC PATCH 0/2] vivid: reduced fps support @ 2015-08-23 14:09 Prashant Laddha 2015-08-23 14:09 ` [RFC PATCH 1/2] vivid: add support for reduced fps in video out Prashant Laddha 2015-08-23 14:09 ` [RFC PATCH 2/2] vivid: add support for reduced fps in video capture Prashant Laddha 0 siblings, 2 replies; 5+ messages in thread From: Prashant Laddha @ 2015-08-23 14:09 UTC (permalink / raw) To: linux-media Hi, Following patches add reduced fps support in vivid video transmit and capture. Please review and share your comments. Regards, Prashant Prashant Laddha (2): vivid: add support for reduced fps in video out. vivid: add support for reduced fps in video capture drivers/media/platform/vivid/vivid-core.h | 1 + drivers/media/platform/vivid/vivid-ctrls.c | 15 ++++++++++++++ drivers/media/platform/vivid/vivid-vid-cap.c | 7 ++++++- drivers/media/platform/vivid/vivid-vid-out.c | 30 +++++++++++++++++++++++++++- drivers/media/v4l2-core/v4l2-dv-timings.c | 5 +++++ 5 files changed, 56 insertions(+), 2 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [RFC PATCH 1/2] vivid: add support for reduced fps in video out. 2015-08-23 14:09 [RFC PATCH 0/2] vivid: reduced fps support Prashant Laddha @ 2015-08-23 14:09 ` Prashant Laddha 2015-09-04 13:04 ` Hans Verkuil 2015-08-23 14:09 ` [RFC PATCH 2/2] vivid: add support for reduced fps in video capture Prashant Laddha 1 sibling, 1 reply; 5+ messages in thread From: Prashant Laddha @ 2015-08-23 14:09 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil, Prashant Laddha If bt timing has REDUCED_FPS flag set, then reduce the frame rate by factor of 1000 / 1001. For vivid, timeperframe_vid_out indicates the frame timings used by video out thread. The timeperframe_vid_out is derived from pixel clock. Adjusting the timeperframe_vid_out by scaling down pixel clock with factor of 1000 / 1001. The reduced fps is supported for CVT timings if reduced blanking v2 (indicated by vsync = 8) is true. For CEA861 timings, reduced fps is supported if V4L2_DV_FL_CAN_REDUCE_FPS flag is true. For GTF timings, reduced fps is not supported. The reduced fps will allow refresh rates like 29.97, 59.94 etc. Cc: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Prashant Laddha <prladdha@cisco.com> --- drivers/media/platform/vivid/vivid-vid-out.c | 30 +++++++++++++++++++++++++++- drivers/media/v4l2-core/v4l2-dv-timings.c | 5 +++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/vivid/vivid-vid-out.c b/drivers/media/platform/vivid/vivid-vid-out.c index c404e27..ca6ec78 100644 --- a/drivers/media/platform/vivid/vivid-vid-out.c +++ b/drivers/media/platform/vivid/vivid-vid-out.c @@ -213,6 +213,27 @@ const struct vb2_ops vivid_vid_out_qops = { }; /* + * Called to check conditions for reduced fps. For CVT timings, reduced + * fps is allowed only with reduced blanking v2 (vsync == 8). For CEA861 + * timings, reduced fps is allowed if V4L2_DV_FL_CAN_REDUCE_FPS flag is + * true. + */ +static bool reduce_fps(struct v4l2_bt_timings *bt) +{ + if (!(bt->flags & V4L2_DV_FL_REDUCED_FPS)) + return false; + + if ((bt->standards & V4L2_DV_BT_STD_CVT) && (bt->vsync == 8)) + return true; + + if ((bt->standards & V4L2_DV_BT_STD_CEA861) && + (bt->flags & V4L2_DV_FL_CAN_REDUCE_FPS)) + return true; + + return false; +} + +/* * Called whenever the format has to be reset which can occur when * changing outputs, standard, timings, etc. */ @@ -220,6 +241,7 @@ void vivid_update_format_out(struct vivid_dev *dev) { struct v4l2_bt_timings *bt = &dev->dv_timings_out.bt; unsigned size, p; + u64 pixelclock; switch (dev->output_type[dev->output]) { case SVID: @@ -241,8 +263,14 @@ void vivid_update_format_out(struct vivid_dev *dev) dev->sink_rect.width = bt->width; dev->sink_rect.height = bt->height; size = V4L2_DV_BT_FRAME_WIDTH(bt) * V4L2_DV_BT_FRAME_HEIGHT(bt); + + if (reduce_fps(bt)) + pixelclock = div_u64((bt->pixelclock * 1000), 1001); + else + pixelclock = bt->pixelclock; + dev->timeperframe_vid_out = (struct v4l2_fract) { - size / 100, (u32)bt->pixelclock / 100 + size / 100, (u32)pixelclock / 100 }; if (bt->interlaced) dev->field_out = V4L2_FIELD_ALTERNATE; diff --git a/drivers/media/v4l2-core/v4l2-dv-timings.c b/drivers/media/v4l2-core/v4l2-dv-timings.c index 6a83d61..adc03bd 100644 --- a/drivers/media/v4l2-core/v4l2-dv-timings.c +++ b/drivers/media/v4l2-core/v4l2-dv-timings.c @@ -210,7 +210,12 @@ bool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *t, fnc, fnc_handle) && v4l2_match_dv_timings(t, v4l2_dv_timings_presets + i, pclock_delta)) { + u32 flags = t->bt.flags & V4L2_DV_FL_REDUCED_FPS; + *t = v4l2_dv_timings_presets[i]; + if (t->bt.flags & V4L2_DV_FL_CAN_REDUCE_FPS) + t->bt.flags |= flags; + return true; } } -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [RFC PATCH 1/2] vivid: add support for reduced fps in video out. 2015-08-23 14:09 ` [RFC PATCH 1/2] vivid: add support for reduced fps in video out Prashant Laddha @ 2015-09-04 13:04 ` Hans Verkuil 0 siblings, 0 replies; 5+ messages in thread From: Hans Verkuil @ 2015-09-04 13:04 UTC (permalink / raw) To: Prashant Laddha, linux-media; +Cc: Hans Verkuil Hi Prashant, Sorry for the late review, but here it is (finally): On 08/23/2015 04:09 PM, Prashant Laddha wrote: > If bt timing has REDUCED_FPS flag set, then reduce the frame rate > by factor of 1000 / 1001. For vivid, timeperframe_vid_out indicates > the frame timings used by video out thread. The timeperframe_vid_out > is derived from pixel clock. Adjusting the timeperframe_vid_out by > scaling down pixel clock with factor of 1000 / 1001. > > The reduced fps is supported for CVT timings if reduced blanking v2 > (indicated by vsync = 8) is true. For CEA861 timings, reduced fps is > supported if V4L2_DV_FL_CAN_REDUCE_FPS flag is true. For GTF timings, > reduced fps is not supported. > > The reduced fps will allow refresh rates like 29.97, 59.94 etc. > > Cc: Hans Verkuil <hans.verkuil@cisco.com> > Signed-off-by: Prashant Laddha <prladdha@cisco.com> > --- > drivers/media/platform/vivid/vivid-vid-out.c | 30 +++++++++++++++++++++++++++- > drivers/media/v4l2-core/v4l2-dv-timings.c | 5 +++++ > 2 files changed, 34 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/vivid/vivid-vid-out.c b/drivers/media/platform/vivid/vivid-vid-out.c > index c404e27..ca6ec78 100644 > --- a/drivers/media/platform/vivid/vivid-vid-out.c > +++ b/drivers/media/platform/vivid/vivid-vid-out.c > @@ -213,6 +213,27 @@ const struct vb2_ops vivid_vid_out_qops = { > }; > > /* > + * Called to check conditions for reduced fps. For CVT timings, reduced > + * fps is allowed only with reduced blanking v2 (vsync == 8). For CEA861 > + * timings, reduced fps is allowed if V4L2_DV_FL_CAN_REDUCE_FPS flag is > + * true. > + */ > +static bool reduce_fps(struct v4l2_bt_timings *bt) > +{ > + if (!(bt->flags & V4L2_DV_FL_REDUCED_FPS)) > + return false; > + > + if ((bt->standards & V4L2_DV_BT_STD_CVT) && (bt->vsync == 8)) I propose that you add a static inline helper function to v4l2-dv-timings.h to test for reduced blanking v2. This condition is way too magical... If you add such a helper, then you should check if there is existing code that could switch to this helper. > + return true; Bad indentation (one tab too far to the right). > + > + if ((bt->standards & V4L2_DV_BT_STD_CEA861) && > + (bt->flags & V4L2_DV_FL_CAN_REDUCE_FPS)) > + return true; Ditto. > + > + return false; > +} > + > +/* > * Called whenever the format has to be reset which can occur when > * changing outputs, standard, timings, etc. > */ > @@ -220,6 +241,7 @@ void vivid_update_format_out(struct vivid_dev *dev) > { > struct v4l2_bt_timings *bt = &dev->dv_timings_out.bt; > unsigned size, p; > + u64 pixelclock; > > switch (dev->output_type[dev->output]) { > case SVID: > @@ -241,8 +263,14 @@ void vivid_update_format_out(struct vivid_dev *dev) > dev->sink_rect.width = bt->width; > dev->sink_rect.height = bt->height; > size = V4L2_DV_BT_FRAME_WIDTH(bt) * V4L2_DV_BT_FRAME_HEIGHT(bt); > + > + if (reduce_fps(bt)) > + pixelclock = div_u64((bt->pixelclock * 1000), 1001); No need for the parenthesis around bt->pixelclock * 1000. > + else > + pixelclock = bt->pixelclock; > + > dev->timeperframe_vid_out = (struct v4l2_fract) { > - size / 100, (u32)bt->pixelclock / 100 > + size / 100, (u32)pixelclock / 100 > }; > if (bt->interlaced) > dev->field_out = V4L2_FIELD_ALTERNATE; > diff --git a/drivers/media/v4l2-core/v4l2-dv-timings.c b/drivers/media/v4l2-core/v4l2-dv-timings.c > index 6a83d61..adc03bd 100644 > --- a/drivers/media/v4l2-core/v4l2-dv-timings.c > +++ b/drivers/media/v4l2-core/v4l2-dv-timings.c > @@ -210,7 +210,12 @@ bool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *t, > fnc, fnc_handle) && > v4l2_match_dv_timings(t, v4l2_dv_timings_presets + i, > pclock_delta)) { > + u32 flags = t->bt.flags & V4L2_DV_FL_REDUCED_FPS; > + > *t = v4l2_dv_timings_presets[i]; > + if (t->bt.flags & V4L2_DV_FL_CAN_REDUCE_FPS) > + t->bt.flags |= flags; > + This isn't quite right. This doesn't support V4L2_DV_BT_DMT_4096X2160P60_RB which is a CVT format with reduced blanking v2 and so it should support reduced fps. In theory the 'if' above should check for both the V4L2_DV_FL_CAN_REDUCE_FPS and for CVT RB v2 (using the helper function I've proposed). However, that would cause weird behavior with the V4L2_DV_BT_DMT_4096X2160P59_94_RB timings since these are already reduced fps. I think the best approach is to add V4L2_DV_FL_CAN_REDUCE_FPS to the V4L2_DV_BT_DMT_4096X2160P60_RB definition in v4l2-dv-timings.h. That way the code above is unchanged, and it will work as expected with V4L2_DV_BT_DMT_4096X2160P60_RB. Regards, Hans ^ permalink raw reply [flat|nested] 5+ messages in thread
* [RFC PATCH 2/2] vivid: add support for reduced fps in video capture 2015-08-23 14:09 [RFC PATCH 0/2] vivid: reduced fps support Prashant Laddha 2015-08-23 14:09 ` [RFC PATCH 1/2] vivid: add support for reduced fps in video out Prashant Laddha @ 2015-08-23 14:09 ` Prashant Laddha 2015-09-04 13:24 ` Hans Verkuil 1 sibling, 1 reply; 5+ messages in thread From: Prashant Laddha @ 2015-08-23 14:09 UTC (permalink / raw) To: linux-media; +Cc: Hans Verkuil, Prashant Laddha With this patch, vivid capture thread can now generate reduced fps by factor of 1000 / 1001. This is controlled using a boolean VIVID_CID_REDUCED_FPS added in vivid control. For reduced fps, capture time is controlled by scaling down timeperframe_vid_cap with a factor of 1000 / 1001 if VIVID_CID_REDUCED_FPS is true. Cc: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Prashant Laddha <prladdha@cisco.com> --- drivers/media/platform/vivid/vivid-core.h | 1 + drivers/media/platform/vivid/vivid-ctrls.c | 15 +++++++++++++++ drivers/media/platform/vivid/vivid-vid-cap.c | 7 ++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/vivid/vivid-core.h b/drivers/media/platform/vivid/vivid-core.h index c72349c..4a2c8b7 100644 --- a/drivers/media/platform/vivid/vivid-core.h +++ b/drivers/media/platform/vivid/vivid-core.h @@ -263,6 +263,7 @@ struct vivid_dev { bool vflip; bool vbi_cap_interlaced; bool loop_video; + bool reduced_fps; /* Framebuffer */ unsigned long video_pbase; diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c index 339c8b7..6becdfe 100644 --- a/drivers/media/platform/vivid/vivid-ctrls.c +++ b/drivers/media/platform/vivid/vivid-ctrls.c @@ -78,6 +78,7 @@ #define VIVID_CID_TIME_WRAP (VIVID_CID_VIVID_BASE + 39) #define VIVID_CID_MAX_EDID_BLOCKS (VIVID_CID_VIVID_BASE + 40) #define VIVID_CID_PERCENTAGE_FILL (VIVID_CID_VIVID_BASE + 41) +#define VIVID_CID_REDUCED_FPS (VIVID_CID_VIVID_BASE + 42) #define VIVID_CID_STD_SIGNAL_MODE (VIVID_CID_VIVID_BASE + 60) #define VIVID_CID_STANDARD (VIVID_CID_VIVID_BASE + 61) @@ -422,6 +423,10 @@ static int vivid_vid_cap_s_ctrl(struct v4l2_ctrl *ctrl) dev->sensor_vflip = ctrl->val; tpg_s_vflip(&dev->tpg, dev->sensor_vflip ^ dev->vflip); break; + case VIVID_CID_REDUCED_FPS: + dev->reduced_fps = ctrl->val; + vivid_update_format_cap(dev, true); + break; case VIVID_CID_HAS_CROP_CAP: dev->has_crop_cap = ctrl->val; vivid_update_format_cap(dev, true); @@ -599,6 +604,15 @@ static const struct v4l2_ctrl_config vivid_ctrl_vflip = { .step = 1, }; +static const struct v4l2_ctrl_config vivid_ctrl_reduced_fps = { + .ops = &vivid_vid_cap_ctrl_ops, + .id = VIVID_CID_REDUCED_FPS, + .name = "Reduced fps", + .type = V4L2_CTRL_TYPE_BOOLEAN, + .max = 1, + .step = 1, +}; + static const struct v4l2_ctrl_config vivid_ctrl_has_crop_cap = { .ops = &vivid_vid_cap_ctrl_ops, .id = VIVID_CID_HAS_CROP_CAP, @@ -1379,6 +1393,7 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap, v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_vflip, NULL); v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_insert_sav, NULL); v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_insert_eav, NULL); + v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_reduced_fps, NULL); if (show_ccs_cap) { dev->ctrl_has_crop_cap = v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_has_crop_cap, NULL); diff --git a/drivers/media/platform/vivid/vivid-vid-cap.c b/drivers/media/platform/vivid/vivid-vid-cap.c index ed0b878..2b26059 100644 --- a/drivers/media/platform/vivid/vivid-vid-cap.c +++ b/drivers/media/platform/vivid/vivid-vid-cap.c @@ -401,6 +401,7 @@ void vivid_update_format_cap(struct vivid_dev *dev, bool keep_controls) { struct v4l2_bt_timings *bt = &dev->dv_timings_cap.bt; unsigned size; + u64 pixelclock; switch (dev->input_type[dev->input]) { case WEBCAM: @@ -430,8 +431,12 @@ void vivid_update_format_cap(struct vivid_dev *dev, bool keep_controls) dev->src_rect.width = bt->width; dev->src_rect.height = bt->height; size = V4L2_DV_BT_FRAME_WIDTH(bt) * V4L2_DV_BT_FRAME_HEIGHT(bt); + if (dev->reduced_fps) + pixelclock = div_u64((bt->pixelclock * 1000), 1001); + else + pixelclock = bt->pixelclock; dev->timeperframe_vid_cap = (struct v4l2_fract) { - size / 100, (u32)bt->pixelclock / 100 + size / 100, (u32)pixelclock / 100 }; if (bt->interlaced) dev->field_cap = V4L2_FIELD_ALTERNATE; -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [RFC PATCH 2/2] vivid: add support for reduced fps in video capture 2015-08-23 14:09 ` [RFC PATCH 2/2] vivid: add support for reduced fps in video capture Prashant Laddha @ 2015-09-04 13:24 ` Hans Verkuil 0 siblings, 0 replies; 5+ messages in thread From: Hans Verkuil @ 2015-09-04 13:24 UTC (permalink / raw) To: Prashant Laddha, linux-media; +Cc: Hans Verkuil On 08/23/2015 04:09 PM, Prashant Laddha wrote: > With this patch, vivid capture thread can now generate reduced > fps by factor of 1000 / 1001. This is controlled using a boolean > VIVID_CID_REDUCED_FPS added in vivid control. For reduced fps, > capture time is controlled by scaling down timeperframe_vid_cap > with a factor of 1000 / 1001 if VIVID_CID_REDUCED_FPS is true. > > Cc: Hans Verkuil <hans.verkuil@cisco.com> > Signed-off-by: Prashant Laddha <prladdha@cisco.com> > --- > drivers/media/platform/vivid/vivid-core.h | 1 + > drivers/media/platform/vivid/vivid-ctrls.c | 15 +++++++++++++++ > drivers/media/platform/vivid/vivid-vid-cap.c | 7 ++++++- > 3 files changed, 22 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/vivid/vivid-core.h b/drivers/media/platform/vivid/vivid-core.h > index c72349c..4a2c8b7 100644 > --- a/drivers/media/platform/vivid/vivid-core.h > +++ b/drivers/media/platform/vivid/vivid-core.h > @@ -263,6 +263,7 @@ struct vivid_dev { > bool vflip; > bool vbi_cap_interlaced; > bool loop_video; > + bool reduced_fps; > > /* Framebuffer */ > unsigned long video_pbase; > diff --git a/drivers/media/platform/vivid/vivid-ctrls.c b/drivers/media/platform/vivid/vivid-ctrls.c > index 339c8b7..6becdfe 100644 > --- a/drivers/media/platform/vivid/vivid-ctrls.c > +++ b/drivers/media/platform/vivid/vivid-ctrls.c > @@ -78,6 +78,7 @@ > #define VIVID_CID_TIME_WRAP (VIVID_CID_VIVID_BASE + 39) > #define VIVID_CID_MAX_EDID_BLOCKS (VIVID_CID_VIVID_BASE + 40) > #define VIVID_CID_PERCENTAGE_FILL (VIVID_CID_VIVID_BASE + 41) > +#define VIVID_CID_REDUCED_FPS (VIVID_CID_VIVID_BASE + 42) > > #define VIVID_CID_STD_SIGNAL_MODE (VIVID_CID_VIVID_BASE + 60) > #define VIVID_CID_STANDARD (VIVID_CID_VIVID_BASE + 61) > @@ -422,6 +423,10 @@ static int vivid_vid_cap_s_ctrl(struct v4l2_ctrl *ctrl) > dev->sensor_vflip = ctrl->val; > tpg_s_vflip(&dev->tpg, dev->sensor_vflip ^ dev->vflip); > break; > + case VIVID_CID_REDUCED_FPS: > + dev->reduced_fps = ctrl->val; > + vivid_update_format_cap(dev, true); > + break; > case VIVID_CID_HAS_CROP_CAP: > dev->has_crop_cap = ctrl->val; > vivid_update_format_cap(dev, true); > @@ -599,6 +604,15 @@ static const struct v4l2_ctrl_config vivid_ctrl_vflip = { > .step = 1, > }; > > +static const struct v4l2_ctrl_config vivid_ctrl_reduced_fps = { > + .ops = &vivid_vid_cap_ctrl_ops, > + .id = VIVID_CID_REDUCED_FPS, > + .name = "Reduced fps", I think "Reduced Framerate" is a better description. > + .type = V4L2_CTRL_TYPE_BOOLEAN, > + .max = 1, > + .step = 1, > +}; > + > static const struct v4l2_ctrl_config vivid_ctrl_has_crop_cap = { > .ops = &vivid_vid_cap_ctrl_ops, > .id = VIVID_CID_HAS_CROP_CAP, > @@ -1379,6 +1393,7 @@ int vivid_create_controls(struct vivid_dev *dev, bool show_ccs_cap, > v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_vflip, NULL); > v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_insert_sav, NULL); > v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_insert_eav, NULL); > + v4l2_ctrl_new_custom(hdl_vid_cap, &vivid_ctrl_reduced_fps, NULL); > if (show_ccs_cap) { > dev->ctrl_has_crop_cap = v4l2_ctrl_new_custom(hdl_vid_cap, > &vivid_ctrl_has_crop_cap, NULL); > diff --git a/drivers/media/platform/vivid/vivid-vid-cap.c b/drivers/media/platform/vivid/vivid-vid-cap.c > index ed0b878..2b26059 100644 > --- a/drivers/media/platform/vivid/vivid-vid-cap.c > +++ b/drivers/media/platform/vivid/vivid-vid-cap.c > @@ -401,6 +401,7 @@ void vivid_update_format_cap(struct vivid_dev *dev, bool keep_controls) > { > struct v4l2_bt_timings *bt = &dev->dv_timings_cap.bt; > unsigned size; > + u64 pixelclock; > > switch (dev->input_type[dev->input]) { > case WEBCAM: > @@ -430,8 +431,12 @@ void vivid_update_format_cap(struct vivid_dev *dev, bool keep_controls) > dev->src_rect.width = bt->width; > dev->src_rect.height = bt->height; > size = V4L2_DV_BT_FRAME_WIDTH(bt) * V4L2_DV_BT_FRAME_HEIGHT(bt); > + if (dev->reduced_fps) This needs a check similar to reduce_fps() in patch 1/2. Except for the fact that the bt->flags & V4L2_DV_FL_REDUCED_FPS check is invalid for receivers. Perhaps that check should be moved out of reduce_fps() so that that function can be shared between capture and output. The reduced_fps flag should only be honored for timings that allow it. > + pixelclock = div_u64((bt->pixelclock * 1000), 1001); No parenthesis needed around bt->pixelclock * 1000. > + else > + pixelclock = bt->pixelclock; > dev->timeperframe_vid_cap = (struct v4l2_fract) { > - size / 100, (u32)bt->pixelclock / 100 > + size / 100, (u32)pixelclock / 100 > }; > if (bt->interlaced) > dev->field_cap = V4L2_FIELD_ALTERNATE; > Regards, Hans ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-09-04 13:25 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-08-23 14:09 [RFC PATCH 0/2] vivid: reduced fps support Prashant Laddha 2015-08-23 14:09 ` [RFC PATCH 1/2] vivid: add support for reduced fps in video out Prashant Laddha 2015-09-04 13:04 ` Hans Verkuil 2015-08-23 14:09 ` [RFC PATCH 2/2] vivid: add support for reduced fps in video capture Prashant Laddha 2015-09-04 13:24 ` Hans Verkuil
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.