Hi,gstreamers.
At sender,I use appsrc for abtaining outer YUV data,and then encode and transmit via rtph265pay and udpsink. At receiver,I use udpsrc and rtph265depay to receive H265 bitstream,and then I use appsink to extract YUV data. In appsrc, I set timestamp like this: GST_BUFFER_PTS(buffer)=100; In appsink,I get the timestamp like this: timestamp=GST_BUFFER_PTS; But it comes the problem:the value of timestamp don't equal to 100(I set in appsrc). Why??? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le lun. 4 nov. 2019 15 h 40, surprised <[hidden email]> a écrit : Hi,gstreamers. Did you configure your appsrc to operate in time format ?
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Yes,I configure the "format" of my appsrc as GST_FORMAT_TIME. And
"stream-type" as 0;"is-live" as TRUE;"do-timestamp" as TRUE; "min-latency" as 0; "max-byte" as FRAME_H*FRAME_W*3/2*100; "block" as TRUE; "min-percent" as 50. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
I had the similar situation, do-timestamp actually should modify pts and dts.
Try to switch this property to FALSE -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi,givip.
I really happy that I've received your reply. But I also failed to achieve my purpose. I think I should introduce you more details so that you could have a clearer understand of what my demand. I just want to achieve this: At sender, First,I obtain YUV data via appsrc. I want to write an ID into each frame of YUV(before encoding), and then I encode,and then I transmit them into Local Area Network via rtph265pay and udpsink. At receiver, I receive them via udpsrc and rtph265depay,then I decode and get YUV data via appsink. My main purpose is: At receiver,I can get the ID of each YUV data so that I can have the knowledge that if there exists a phenomenon of lossing data when transmitting by checking the continuous ID numbers. Then I thought of a method: Using timestamp maybe can achieve my purpose.So I tried. Now, I set "do-timestamp" as FALSE in appsrc, and I found that udpsrc also has the "do-timestamp" property,so I also set "do-timestamp" as FALSE in udpsrc. The rest of operations is as same as I set in the previous posts(In appsrc, I set timestamp like this: GST_BUFFER_PTS(buffer)=100; In appsink,I get the timestamp like this: timestamp=GST_BUFFER_PTS(buffer); ). Then I output the timestamp in appsink,but it doesn't equal to 100 which I set in appsrc. Is there something else I don't realize? Please help me find the problem. Or if I set the timestamp in GstRtpBuffer(in this way,I can set timestamp as frame ID and I can get this timestamp before decoding.),how can I do? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |