<div dir="ltr">mybe the issue is with rtpgst discarding the metadata?<div>the following shows zero timecode</div><div><br></div><div>gst-launch-1.0 -m -v udpsrc port=5000 caps="$cps" ! rtpgstdepay ! queue ! timeoverlay time-mode=3 halignment=right ! autovideosink<br><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 23, 2020 at 4:28 PM Yair Reshef <<a href="mailto:yair99@gmail.com">yair99@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">in launch line for PAY -  source=5 (not 0 as above.)<div><br></div><div><br><div>either way, </div><div>with GST_DEBUG=*stamper*:7 on the DEPAY i get weird messages. </div><div><br></div><div><timecodestamper0> received event qos event: 0x7f8ec4003570, time 99:99:99.999999999, seq-num 219, GstEventQOS, type=(GstQOSType)underflow, proportion=(double)0.99995626099444379, diff=(gint64)594361, timestamp=(guint64)71459716703;<br><timecodestamper0> Handling video frame with running time 0:01:12.459720896<br><timecodestamper0> Incremented internal timecode to 00:01:12:00<br><timecodestamper0> <b>Never saw an upstream timecode</b><br><timecodestamper0> Created RTC timecode 16:25:29:00 for 2020-03-23 16:25 +0200 (436905 us)<br><timecodestamper0> Incremented RTC timecode to 16:25:29:00 (+0:00:00.000000000 drift)<br><br>Got message #220 from element "timecodestamper0" (element): timecodestamper, timestamp=(guint64)72459720896, stream-time=(guint64)72459720896, running-time=(guint64)72459720896, duration=(guint64)1000000000, timecode=(GstVideoTimeCode)00:01:12:00;<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 23, 2020 at 3:12 PM Yair Reshef <<a href="mailto:yair99@gmail.com" target="_blank">yair99@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">i am looking to stamp my frames with SMTP timecode. in order to synchronize multiple streams on server.<br>but i dont get what i expect, depay overwrites the timecode with its own.  <div>PAY=       (GstVideoTimeCode)15:09:14:28</div><div>DEAPY= (GstVideoTimeCode)00:00:05:18</div><div><br><div>it might be an error in the plug or an error in my brain</div><div><div><br></div><div><br></div><div>PAY <div>timecodestamper pay is configured to <br>get the timecode from RTC - (source=5, Timecode from real time clock) <br>ALWAYS push timecode - (set=2, Always set timecode and remove upstream timecode)<br>and has post-messages enabled to show it. <br> <br>DEPAY </div><div>timecodestamper is configured to </div><div>KEEP timecode -  (set=0. Never set timecodes)  <br>and has post-messages enabled to show it. <br><br><br>#PAY<br>gst-launch-1.0 -m -v \<br>videotestsrc is-live=true ! "video/x-raw,width=720,height=480,framerate=1/1" \<br>! videoconvert ! clockoverlay ! timecodestamper post-messages=true set=2 source=0 \<br>! queue ! rtpgstpay config-interval=1 ! udpsink port=5000 host=127.0.0.1 \<br> 2>&1 | grep -o -P '(?<=timecode=).*(?=\;)'<br><br><br>#DEPAY<br>cps="application/x-rtp, media=(string)application, clock-rate=(int)90000, encoding-name=(string)X-GST, caps=(string)dmlkZW8veC1yYXcsIGZvcm1hdD0oc3RyaW5nKUk0MjAsIHdpZHRoPShpbnQpNzIwLCBoZWlnaHQ9KGludCk0ODAsIGZyYW1lcmF0ZT0oZnJhY3Rpb24pMS8xLCBtdWx0aXZpZXctbW9kZT0oc3RyaW5nKW1vbm8sIHBpeGVsLWFzcGVjdC1yYXRpbz0oZnJhY3Rpb24pMS8xLCBpbnRlcmxhY2UtbW9kZT0oc3RyaW5nKXByb2dyZXNzaXZl\0"<br><br>gst-launch-1.0 -m -v \<br>udpsrc port=5000 caps="$cps" ! rtpgstdepay \<br>! timecodestamper post-messages=true set=0 ! videoconvert ! autovideosink \<br>2>&1 | grep -o -P '(?<=timecode=).*(?=\;)'<br><div><br></div><div><br></div><div><a href="https://github.com/GStreamer/gst-plugins-bad/blob/master/gst/timecode" target="_blank">https://github.com/GStreamer/gst-plugins-bad/blob/master/gst/timecode</a> </div><div> <br></div><div><pre style="box-sizing:border-box;overflow:auto;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:13px;padding:2px;margin-top:0px;margin-bottom:10px;line-height:1.42857;color:rgb(51,51,51);word-break:break-all;background-color:rgb(245,245,245);border:1px solid rgb(136,136,136);border-radius:4px;white-space:pre-wrap"><span style="box-sizing:border-box;color:rgb(0,0,0)">  </span><span style="box-sizing:border-box;color:rgb(0,136,0)">"post-messages"</span><span style="box-sizing:border-box;color:rgb(0,0,0)">       </span><span style="box-sizing:border-box;color:rgb(102,102,0)">:</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Post</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> element message containing the current timecode
  
  </span><span style="box-sizing:border-box;color:rgb(0,136,0)">"set"</span><span style="box-sizing:border-box;color:rgb(0,0,0)">                 </span><span style="box-sizing:border-box;color:rgb(102,102,0)">:</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Choose</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> whether timecodes should be overridden </span><span style="box-sizing:border-box;color:rgb(0,0,136)">or</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">not</span><span style="box-sizing:border-box;color:rgb(0,0,0)">
                        flags</span><span style="box-sizing:border-box;color:rgb(102,102,0)">:</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> readable</span><span style="box-sizing:border-box;color:rgb(102,102,0)">,</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> writable
                        </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Enum</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,136,0)">"GstTimeCodeStamperSet"</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Default</span><span style="box-sizing:border-box;color:rgb(102,102,0)">:</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,102,102)">1</span><span style="box-sizing:border-box;color:rgb(102,102,0)">,</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,136,0)">"keep"</span><span style="box-sizing:border-box;color:rgb(0,0,0)">
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">0</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> never            </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Never</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">set</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> timecodes
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">1</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> keep             </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Keep</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> upstream timecodes </span><span style="box-sizing:border-box;color:rgb(0,0,136)">and</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> only </span><span style="box-sizing:border-box;color:rgb(0,0,136)">set</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">if</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">no</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> upstream timecode
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">2</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> always           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Always</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">set</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> timecode </span><span style="box-sizing:border-box;color:rgb(0,0,136)">and</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> remove upstream timecode

  </span><span style="box-sizing:border-box;color:rgb(0,136,0)">"source"</span><span style="box-sizing:border-box;color:rgb(0,0,0)">              </span><span style="box-sizing:border-box;color:rgb(102,102,0)">:</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Choose</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">from</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> what source the timecode should be taken
                        flags</span><span style="box-sizing:border-box;color:rgb(102,102,0)">:</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> readable</span><span style="box-sizing:border-box;color:rgb(102,102,0)">,</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> writable
                        </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Enum</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,136,0)">"GstTimeCodeStamperSource"</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Default</span><span style="box-sizing:border-box;color:rgb(102,102,0)">:</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,102,102)">0</span><span style="box-sizing:border-box;color:rgb(102,102,0)">,</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,136,0)">"internal"</span><span style="box-sizing:border-box;color:rgb(0,0,0)">
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">0</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">internal</span><span style="box-sizing:border-box;color:rgb(0,0,0)">         </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Use</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">internal</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> timecode counter</span><span style="box-sizing:border-box;color:rgb(102,102,0)">,</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> starting at zero </span><span style="box-sizing:border-box;color:rgb(0,0,136)">or</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> value </span><span style="box-sizing:border-box;color:rgb(0,0,136)">set</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">by</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">property</span><span style="box-sizing:border-box;color:rgb(0,0,0)">
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">1</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> zero             </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Always</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">use</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> zero
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">2</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">last</span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)">known       </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Count</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> up </span><span style="box-sizing:border-box;color:rgb(0,0,136)">from</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> the </span><span style="box-sizing:border-box;color:rgb(0,0,136)">last</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> known upstream timecode </span><span style="box-sizing:border-box;color:rgb(0,0,136)">or</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">internal</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">if</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> unknown
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">3</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">last</span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)">known</span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,136)">or</span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)">zero </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Count</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> up </span><span style="box-sizing:border-box;color:rgb(0,0,136)">from</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> the </span><span style="box-sizing:border-box;color:rgb(0,0,136)">last</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> known upstream timecode </span><span style="box-sizing:border-box;color:rgb(0,0,136)">or</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> zero </span><span style="box-sizing:border-box;color:rgb(0,0,136)">if</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> unknown
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">4</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> ltc              </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Linear</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> timecode </span><span style="box-sizing:border-box;color:rgb(0,0,136)">from</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> an audio device
                           </span><span style="box-sizing:border-box;color:rgb(102,102,0)">(</span><span style="box-sizing:border-box;color:rgb(0,102,102)">5</span><span style="box-sizing:border-box;color:rgb(102,102,0)">):</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> rtc              </span><span style="box-sizing:border-box;color:rgb(102,102,0)">-</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(102,0,102)">Timecode</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> </span><span style="box-sizing:border-box;color:rgb(0,0,136)">from</span><span style="box-sizing:border-box;color:rgb(0,0,0)"> real time clock</span></pre><br>btw. <br>im using RTPGSTPAY/DEPAY as i will be working with custom data, down the road</div></div></div></div></div></div>
</blockquote></div>
</blockquote></div>