When testing these changes with FFmpeg as the demuxer, I found FFmpeg can produce negative PTS and DTS. And then on testing Windows, I discovered that Windows supports negative PTS and DTS, however, gstreamer does not.
So I've made some adjustments to this MR: 1. To add tests for negative PTS and DTS; and 2. To convert PTS and DTS to be zero or above on input to gstreamer and then convert back the output so that our MFTs can support negative values