baseparse: drains data when handle_frame() does nothing
I'm trying to dump video from rtsp session, here's my cmd line:
/opt/gstreamer/gst-uninstalled.py gst-launch-1.0 -v filesrc location=dump.pcap ! pcapparse src-ip=1.2.3.4. src-port=554 ! irtspparse channel_id=0...
It works in most cases, but in one case it fails inside irstpparse in assertion that supposes that when we do nothing in handle_frame() and just return GST_FLOW_OK, we get at least the same or bigger buffer next time. As I understand it, baseparse should accumulate data until we skip it or call gst_base_parse_finish_frame(). And in good case it works in that way, but in bad case it removes data from frame that passed to hadle_frame(). I add more logs into baseparse and found difference between 'good' and 'bad' .pcap files, gst_base_parse_drain (parse) is called here more frequently, in good case log file is about 7MB and has 4 calls, in bad case it has 3 calls for the first 4-5 packets. Where to look? Maybe it is a problem in pcapparse, but I don't see any code that deals with DISCONT flag there?