Rewind filesrc using bytes

classic Classic list List threaded Threaded
1 message Options
uma
Reply | Threaded
Open this post in threaded view
|

Rewind filesrc using bytes

uma
Hi I am using pcapparse to play out RTP stream from a pcap file and I try to rewind it on keyframe requests but I have to do it in BYTES format otherwise pcapparse is unhappy. All of this works but when it rewinds the RTP timestamp also goes back in time

The pipeline is something like this
rtpbin name=rtpbin srtpenc name=srtpenc filesrc location=apcapfile.pcap name=vidsource ! identity single-segment=true ! pcapparse name=pcapparse update-offset=1 ! application/x-rtp,clock-rate=90000 !  rtph264depay ! video/x-h264, profile=baseline, stream-format=byte-stream,alignment=au ! rtph264pay pt=112 mtu=1500   ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! srtpenc.rtp_sink_0 srtpenc.rtp_src_0 ! multisocketudpsink name=videosink rtpbin.send_rtcp_src_0 ! rtcp_mux.sink_0 funnel name=rtcp_mux forward-sticky-events=false ! srtpenc.rtcp_sink_0 srtpenc.rtcp_src_0 ! multisocketudpsink name=rtcpsink sync=false async=false appsrc name=videortcptx_appsrc is-live=true do-timestamp=true format=time ! rtcp_mux.sink_1

The rewind is done by
element.seek(1.0, Gst.Format.BYTES, Gst.SeekFlags.FLUSH | Gst.SeekFlags.SEGMENT,
                    Gst.SeekType.SET, 0, Gst.SeekType.NONE, 0)

and the pad probe is
element.seek(1.0, Gst.Format.BYTES, Gst.SeekFlags.SEGMENT, Gst.SeekType.SET, 24, SeekType.NONE, 0)

element being filesrc

On keyframe requests I see the RTP timestamp going backwards which is causing problem

I even tried the identity element in the pipeline as suggested in http://gstreamer-devel.966125.n4.nabble.com/Problem-using-gnlcomposition-td1690011.html#a1690011

That didn't help. Any suggestions is appreciated.