strange pts dts when using v4l2src with raspberry pi camera module
nucleus_wind
felixjojo199 at gmail.com
Tue Oct 23 07:04:28 UTC 2018
Hi all,
My setup a raspberry pi 3 with pi camera module listed here:
https://www.amazon.com/Raspberry-Pi-Camera-Module-Megapixel/dp/B01ER2SKFS/ref=sr_1_3?ie=UTF8&qid=1540276869&sr=8-3&keywords=raspberry+pi+camera+module&dpID=41ocSRel7eL&preST=_SY300_QL70_&dpSrc=srch
My pipeline looks like following:
`gst-launch-1.0 v4l2src do-timestamp=TRUE device="/dev/video0"
extra-controls="foo,h264_profile=0" !
video/x-h264,stream-format=byte-stream,alignment=au,width=640,height=480 !
h264parse ! video/x-h264,stream-format=avc,alignment=au,profile=baseline !
appsink`
But I coded it up as a gstreamer application so that I can print out the dts
and pts for every frame.
The following is the output from my gstreamer application:
I set the "is header" and "isKey" base on GST_BUFFER_FLAG_IS_SET(buffer,
GST_BUFFER_FLAG_HEADER) and !GST_BUFFER_FLAG_IS_SET(buffer,
GST_BUFFER_FLAG_DELTA_UNIT) for each frame buffer.
My questions are:
- why are the dts greater than pts? It seems to be the effect of
do-timestamp=TRUE. If I remove do-timestamp=TRUE, the dts seems to come
straight from the driver. The dts starts at 0 and increments by 33333333 for
every frame. The pts still get synced but pts are greater than dts for all
frames.
- why aren't pts == dts for key frames? They dont equal each other whether I
set do-timestamp=TRUE or not. I think I have disabled B frames by setting
h264 profile to baseline which should enforce pts == dts for key frames.
I'm new to gstreamer and I'm trying to get an understanding of what is going
on here. Any help is really appreciated.
Thanks
--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
More information about the gstreamer-devel
mailing list