On Wed May 13 11:49:25 2026 +0000, Ricardo Ribalda wrote:
> There is no need to calculate the current time if the sample is going to
> be filtered.
> 
> Move the assignment close to uvc_video_clock_add_sample().
> 
> Suggested-by: Hans de Goede <[email protected]>
> Signed-off-by: Ricardo Ribalda <[email protected]>
> Tested-by: Yunke Cao <[email protected]>
> Reviewed-by: Hans de Goede <[email protected]>
> Link: 
> https://patch.msgid.link/[email protected]
> Signed-off-by: Hans de Goede <[email protected]>
> Signed-off-by: Hans Verkuil <[email protected]>

Patch committed.

Thanks,
Hans Verkuil

 drivers/media/usb/uvc/uvc_video.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/usb/uvc/uvc_video.c 
b/drivers/media/usb/uvc/uvc_video.c
index c104ffe3b3c1..fc3536a4399f 100644
--- a/drivers/media/usb/uvc/uvc_video.c
+++ b/drivers/media/usb/uvc/uvc_video.c
@@ -645,8 +645,6 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct 
uvc_buffer *buf,
        if (stream->dev->quirks & UVC_QUIRK_INVALID_DEVICE_SOF)
                sample.dev_sof = sample.host_sof;
 
-       sample.host_time = uvc_video_get_time();
-
        /*
         * The UVC specification allows device implementations that can't obtain
         * the USB frame number to keep their own frame counters as long as they
@@ -687,6 +685,9 @@ uvc_video_clock_decode(struct uvc_streaming *stream, struct 
uvc_buffer *buf,
            (UVC_MIN_HW_TIMESTAMP_DIFF / stream->clock.size))
                return;
 
+       /* This is expensive, only do it if the sample will be added. */
+       sample.host_time = uvc_video_get_time();
+
        uvc_video_clock_add_sample(&stream->clock, &sample);
        stream->clock.last_sof_processed = sample.dev_sof;
 }
_______________________________________________
linuxtv-commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to