• Hans Verkuil's avatar
    media: videodev2.h: add v4l2_timeval_to_ns inline function · c2eb8eff
    Hans Verkuil authored
    We want to be able to uniquely identify buffers for stateless
    codecs. The internal timestamp (a u64) as stored internally in the
    kernel is a suitable candidate for that, but in struct v4l2_buffer
    it is represented as a struct timeval.
    
    Add a v4l2_timeval_to_ns() function that converts the struct timeval
    into a u64 in the same way that the kernel does. This makes it possible
    to use this u64 elsewhere as a unique identifier of the buffer.
    
    Since timestamps are also copied from the output buffer to the
    corresponding capture buffer(s) by M2M devices, the u64 can be
    used to refer to both output and capture buffers.
    
    The plan is that in the future we redesign struct v4l2_buffer and use
    u64 for the timestamp instead of a struct timeval (which has lots of
    problems with 32 vs 64 bit and y2038 layout changes), and then there
    is no more need to use this function.
    Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
    c2eb8eff
videodev2.h 87.1 KB