Correction:

On 10/29/2015 11:27, Hans Verkuil wrote:
>> diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
>> index 647ebfe..f1e7169 100644
>> --- a/include/media/videobuf2-core.h
>> +++ b/include/media/videobuf2-core.h
>> @@ -211,6 +211,7 @@ struct vb2_queue;
>>   * @num_planes:             number of planes in the buffer
>>   *                  on an internal driver queue
>>   * @planes:         private per-plane information; do not change
>> + * @timestamp:              frame timestamp
>>   */
>>  struct vb2_buffer {
>>      struct vb2_queue        *vb2_queue;
>> @@ -219,6 +220,7 @@ struct vb2_buffer {
>>      unsigned int            memory;
>>      unsigned int            num_planes;
>>      struct vb2_plane        planes[VB2_MAX_PLANES];
>> +    struct timeval          timestamp;
> 
> This should become a u64 timestamp that's filled using ktime_get_ns().
> In the v4l2 code this should be converted to a timeval when v4l2_buffer
> is filled. Using ktime_get_ns() is the recommended method to do timestamping
> without having to worry about the y2038 problem and this should be used in
> vb2 core.
> 
> v4l2_set_timestamp should be updated accordingly.

This can't be done since v4l2_set_timestamp is also used by non-vb2 drivers.
Instead vb2 drivers should just call ktime_get_ns() directly instead of calling
v4l2_set_timestamp().

Sorry for the confusion.

        Hans

> 
> Regards,
> 
>       Hans
> 
>>  
>>      /* private: internal use only
>>       *
>> diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h
>> index 5abab1e..110062e 100644
>> --- a/include/media/videobuf2-v4l2.h
>> +++ b/include/media/videobuf2-v4l2.h
>> @@ -28,7 +28,6 @@
>>   * @vb2_buf:        video buffer 2
>>   * @flags:  buffer informational flags
>>   * @field:  enum v4l2_field; field order of the image in the buffer
>> - * @timestamp:      frame timestamp
>>   * @timecode:       frame timecode
>>   * @sequence:       sequence count of this frame
>>   * Should contain enough information to be able to cover all the fields
>> @@ -39,7 +38,6 @@ struct vb2_v4l2_buffer {
>>  
>>      __u32                   flags;
>>      __u32                   field;
>> -    struct timeval          timestamp;
>>      struct v4l2_timecode    timecode;
>>      __u32                   sequence;
>>  };
>> diff --git a/include/trace/events/v4l2.h b/include/trace/events/v4l2.h
>> index 04ef89b..5b57d0a 100644
>> --- a/include/trace/events/v4l2.h
>> +++ b/include/trace/events/v4l2.h
>> @@ -204,7 +204,7 @@ DECLARE_EVENT_CLASS(vb2_v4l2_event_class,
>>              __entry->minor = owner ? owner->vdev->minor : -1;
>>              __entry->flags = vbuf->flags;
>>              __entry->field = vbuf->field;
>> -            __entry->timestamp = timeval_to_ns(&vbuf->timestamp);
>> +            __entry->timestamp = timeval_to_ns(&vb->timestamp);
>>              __entry->timecode_type = vbuf->timecode.type;
>>              __entry->timecode_flags = vbuf->timecode.flags;
>>              __entry->timecode_frames = vbuf->timecode.frames;
>> diff --git a/include/trace/events/vb2.h b/include/trace/events/vb2.h
>> index bfeceeb..35c1589 100644
>> --- a/include/trace/events/vb2.h
>> +++ b/include/trace/events/vb2.h
>> @@ -18,6 +18,7 @@ DECLARE_EVENT_CLASS(vb2_event_class,
>>              __field(u32, index)
>>              __field(u32, type)
>>              __field(u32, bytesused)
>> +            __field(s64, timestamp)
>>      ),
>>  
>>      TP_fast_assign(
>> @@ -28,14 +29,16 @@ DECLARE_EVENT_CLASS(vb2_event_class,
>>              __entry->index = vb->index;
>>              __entry->type = vb->type;
>>              __entry->bytesused = vb->planes[0].bytesused;
>> +            __entry->timestamp = timeval_to_ns(&vb->timestamp);
>>      ),
>>  
>>      TP_printk("owner = %p, queued = %u, owned_by_drv = %d, index = %u, "
>> -              "type = %u, bytesused = %u", __entry->owner,
>> +              "type = %u, bytesused = %u, timestamp = %llu", __entry->owner,
>>                __entry->queued_count,
>>                __entry->owned_by_drv_count,
>>                __entry->index, __entry->type,
>> -              __entry->bytesused
>> +              __entry->bytesused,
>> +              __entry->timestamp
>>      )
>>  )
>>  
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to