Hi,
I used gstreamer and EGL to get video frames. My gstreamer pipeline is like:
rtspsrc location = "" protocols = 4 ! decodebin ! nvvidcov ! nvvideosink
and I used EGLstream in FIFO mode.
I implemented it in project testEGLStream. When I started with
GST_DEBUG=nvvideosink:7 ./testEGLStream
in terminal.
the log show like below
0:00:10.258565334 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:10.270946783 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.270981471 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.271102303 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 142903300 nsec
0:00:10.271138622 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84763461539300
0:00:10.298552900 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3800000.
0:00:10.321062720 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.321098944 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.321227903 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 233029300 nsec
0:00:10.321264767 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84763551665300
0:00:10.338585714 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 2800000.
0:00:10.371405280 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.371443232 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.371567743 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 323369300 nsec
0:00:10.371603679 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84763642005300
0:00:10.378572384 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 2c00000.
<../testEGLStream/main.cpp, 34>: frames array address is 3000000.
0:00:10.423814903 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.423850615 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.423983446 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 415784300 nsec
0:00:10.424018262 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84763734420300
0:00:10.424148661 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:10.427257607 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.427279847 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.427372263 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 459173300 nsec
0:00:10.427398151 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84763777809300
<../testEGLStream/main.cpp, 34>: frames array address is 3400000.
0:00:10.458583420 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:10.481432438 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.481472950 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.481647285 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 553447300 nsec
0:00:10.481687125 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84763872083300
0:00:10.498563114 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3800000.
0:00:10.530790362 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.530833146 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.530970202 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 642771300 nsec
0:00:10.531006233 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84763961407300
0:00:10.538578616 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 2800000.
<../testEGLStream/main.cpp, 34>: frames array address is 2c00000.
0:00:10.580867931 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.580907067 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.581038939 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 732839300 nsec
0:00:10.581074395 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764051475300
0:00:10.581208666 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:10.584048493 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.584071533 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.584169101 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 776970300 nsec
0:00:10.584194253 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764095606300
<../testEGLStream/main.cpp, 34>: frames array address is 3c00000.
0:00:10.618572692 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:10.630572254 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.630610142 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.630737021 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 863537300 nsec
0:00:10.630774749 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764182173300
0:00:10.658561474 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3000000.
0:00:10.681193149 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.681233373 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.681372028 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411054 sec, 954173300 nsec
0:00:10.681409404 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764272809300
0:00:10.698560655 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3400000.
0:00:10.730938495 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.730978015 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.731109247 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 43909300 nsec
0:00:10.731145502 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764362545300
0:00:10.738651485 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3800000.
<../testEGLStream/main.cpp, 34>: frames array address is 2800000.
0:00:10.782662969 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.782715097 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.782895512 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 135695300 nsec
0:00:10.782952120 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764454331300
0:00:10.783112791 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:10.785942474 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.785980330 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.786133482 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 178933300 nsec
0:00:10.786170889 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764497569300
0:00:10.818558329 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 2c00000.
0:00:10.830794499 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.830874402 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.831110081 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 263911300 nsec
0:00:10.831157601 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764582547300
0:00:10.858590119 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3000000.
0:00:10.881224738 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.881296898 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.881482465 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 354283300 nsec
0:00:10.881521537 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764672919300
0:00:10.898557109 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3400000.
0:00:10.931071684 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.931115236 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.931246851 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 444047300 nsec
0:00:10.931282851 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764762683300
0:00:10.938549827 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 3800000.
<../testEGLStream/main.cpp, 34>: frames array address is 3c00000.
0:00:10.980999366 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.981037734 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.981165797 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 533966300 nsec
0:00:10.981198245 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764852602300
0:00:10.981329028 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:10.984185464 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:10.984207384 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:10.984304471 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 577106300 nsec
0:00:10.984328951 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764895742300
<../testEGLStream/main.cpp, 34>: frames array address is 2800000.
0:00:11.018586111 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
0:00:11.031550469 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:11.031586309 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:11.031713476 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 664514300 nsec
0:00:11.031747716 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84764983150300
0:00:11.058565869 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:386:gst_nv_video_sink_show_frame:<nvvideosink0> OUT: gst_nv_video_sink_show_frame: SUCCESSFUL
<../testEGLStream/main.cpp, 34>: frames array address is 2c00000.
0:00:11.081289863 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:287:gst_nv_video_sink_show_frame:<nvvideosink0> IN: gst_nv_video_sink_show_frame:
0:00:11.081323111 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:288:gst_nv_video_sink_show_frame:<nvvideosink0> Received the frame
0:00:11.081450759 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:354:gst_nv_video_sink_show_frame: Presentation Time: 1523411055 sec, 754250300 nsec
0:00:11.081482503 15767 0x7f60035280 DEBUG nvvideosink gstnvvideosink.c:374:gst_nv_video_sink_show_frame:<nvvideosink0> eglTimeStamp=84765072886300
My video frame rate is 25fps. and I found the timestamp in log Presentation Time and eglTimeStamp seems not 40ms interval between two frames, if it is a bug ?