encoder: update completion status only once on cancellation
Fixes the following assertion errors on encoding cancellation (android sync cancellation).
(rhythmbox:796237): Rhythmbox-WARNING **: 21:58:59.900: got encoding error Operation was cancelled, but already have one:
(rhythmbox:796237): Rhythmbox-CRITICAL **: 21:58:59.900: rb_encoder_gst_emit_completed: assertion 'encoder->priv->completion_emitted == FALSE' failed