Initially, corrupted video's lead me to investigate this problem. The videos were failing in inspection, and couldn't be played in any other program.
Currently, and since 1.0, we have been sending EOS messages to the pipeline bus directly. unforatuntely, this seems to end the stream without flushing the buffers and writing the file correctly.
See these manual pages for more info:
The solution seems to be sending an EOSEvent directly to each source element. This will bubble the event downstream to the sink, where an EOS Message will be emitted on the Pipeline BUS.