I'm playing back MP4 videos on iMX.6 with a gstreamer pipeline like this:
filesrc location=%s typefind=true ! aiurdemux ! vpudec ! mfw_v4lsink
This pipeline works for play, pause, and fast-forward, but in rewind moving objects leave a trail of corrupted macro-blocks. I enter rewind like this (rate == -2.0, ms == current position in ms):
gst_element_seek ((GstElement*)pipeline, rate, GST_FORMAT_TIME,
(GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT | GST_SEEK_FLAG_SKIP),
GST_SEEK_TYPE_SET, ms * 1000000);
I'd be satisfied if I could work around this by only showing key frames during rewind.