appsrc does not negotiate caps and start stream until data is pushed
If you have multiple appsrc elements - one for video and one for KLV - and you push a video frame first, everything works properly. But if you push a KLV buffer first, you get the following errors:
- Sink pad caps were not set before pushing
- Could not create handler for stream
- Sticky event misordering, got 'segment' before 'stream-start'
- Sticky event misordering, got 'segment' before 'caps'
This can be worked-around in some cases by pushing a buffer of size 0 through the video appsrc first