All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olivier Langlois <olivier@trillion01.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: m.chehab@samsung.com, linux-media@vger.kernel.org,
	linux-kernel@vger.kernel.org, Stable <stable@vger.kernel.org>
Subject: Re: [PATCH] [media] uvcvideo: Fix clock param realtime setting
Date: Fri, 28 Mar 2014 22:50:52 -0400	[thread overview]
Message-ID: <1396061452.3383.42.camel@Wailaba2> (raw)
In-Reply-To: <2051908.tTlcvVaa3D@avalon>


> > > 
> > > Before applying this, I'm curious, do you have a use case for realtime
> > > time stamps ?
> > 
> > Yes. ffmpeg uses wall clock time to create timestamps for audio packets from
> > ALSA device.
> 
> OK. I suppose I shouldn't drop support for the realtime clock like I wanted to 
> then :-)
>  
> > There is a bug in ffmpeg describing problems to synchronize audio and
> > the video from a v4l2 webcam.
> > 
> > https://trac.ffmpeg.org/ticket/692
> > 
> > To workaround this issue, ffmpeg devs added a switch to convert back
> > monotonic to realtime. From ffmpeg/libavdevice/v4l2.c:
> > 
> >   -ts                <int>        .D.... set type of timestamps for
> > grabbed frames (from 0 to 2) (default 0)
> >      default                      .D.... use timestamps from the kernel
> >      abs                          .D.... use absolute timestamps (wall
> > clock)
> >      mono2abs                     .D.... force conversion from monotonic
> > to absolute timestamps
> > 
> > If the v4l2 driver is able to send realtime ts, it is easier synchronize
> > in userspace if all inputs use the same clock.
> 
> That might be a stupid question, but shouldn't ALSA use the monotonic clock 
> instead ?
> 

This isn't stupid. I had the same though after replying you.
Intuitively, I would think that monotonic clock is a better choice for
multimedia. I am just speculating but I would say that ffmpeg decided to
use realtime clock as the standard clock throughout the project for
portability purposes since it is a cross-platform project.

Now you know how I ended up trying the clock=realtime option.
IMHO, if the option is there, it should be working but just removing it
could also be a valid option.

I feel that this could bring some new problems if it stays there
because, I'll be honest and say that I didn't test the driver behavior
when the time goes backward....




  reply	other threads:[~2014-03-29  2:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-28  5:42 [PATCH] [media] uvcvideo: Fix clock param realtime setting Olivier Langlois
2014-03-28 16:20 ` Laurent Pinchart
2014-03-28 21:27   ` Olivier Langlois
2014-03-28 21:48     ` Laurent Pinchart
2014-03-29  2:50       ` Olivier Langlois [this message]
2014-03-30  4:23       ` Olivier Langlois
2014-04-01 13:49         ` Laurent Pinchart
2014-04-02  4:27           ` Olivier Langlois
2014-04-02  4:31             ` Olivier Langlois
2014-04-08 16:57             ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1396061452.3383.42.camel@Wailaba2 \
    --to=olivier@trillion01.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=m.chehab@samsung.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.