When I synchronize multiple media files using Media Synchronization Mode, save the EAF file, close and reopen it, the synchronization is gone. Opening the EAF file in a text editor, there are indeed no offsets stored in the file. Is this expected behavior, i.e. do I have to enter the offsets manually via the Linked Files window if I want them to be persistent, or is it a bug?
(I’m using ELAN 5.4 on Linux.)
In principle setting the offset should work both via synchronization mode and by typing the offset in the Linked Files window.
Do I understand it correctly that synchronizing works in synchronization mode (the offset of audio and/or video players changes)? Is the change visible in the Linked Files window (the offsets are not 0)?
> Do I understand it correctly that synchronizing works in synchronization mode (the offset of audio and/or video players changes)?
Yes, and it even percolates into Annotation Mode, i.e. I can add annotations, because for the duration of the session, the synchronization is retained across modes. But as soon as I close and reopen the transcript, it’s gone.
> Is the change visible in the Linked Files window (the offsets are not 0)?
No, it’s not, the offsets in the Linked Files window remain 0 even though they’ve been set to different values and these values are actually used by the players in Annotation Mode within the given session, as mentioned above.
All of this happens irrespective of whether I’m using Absolute or Relative offsets.
Let me know if I can provide further debugging info! I can also build ELAN from source and add some logging to narrow down the source of the problem if necessary, though I’d appreciate some pointers on where to look in that case 
I did a little digging and as far as I can see, the applyChanges() method of MediaFilesPanel updates the linked files via a command created with ELANCommandFactory.CHANGE_LINKED_FILES.
By contrast, the setRelativeOffsets() and setAbsoluteOffsets() methods of SyncManager only seem to be manipulating the currently instantiated players.
Since I didn’t see the effect of the offsets in Linked Files remaining 0, I just had a quick look in the code of the media players. I notice that the implementation of setOffset() of the VLCJMediaPlayer is different from that of the other players, in that it does not update the MediaDescriptor’s offset field. This would make it a Linux specific issue and would explain why I’m not able to reproduce the problem on Windows.
I’ll try to check this when I have my Linux laptop around. (If you have the code set up such that you can compile the elan.jar, than you could have a look at the setOfsset() implementation of e.g. JMMFMediaPlayer and see what parts of it apply to VLCJMediaPlayer as well.)
Right you are! I can confirm that with the following change, the offset is then visible in the Linked Files dialog and also included in the EAF file on save 
diff -ru a/src/main/java/mpi/eudico/client/annotator/player/VLCJMediaPlayer.java b/src/main/java/mpi/eudico/client/annotator/player/VLCJMediaPlayer.java
--- a/src/main/java/mpi/eudico/client/annotator/player/VLCJMediaPlayer.java 2016-01-14 16:44:42.000000000 +0100
+++ b/src/main/java/mpi/eudico/client/annotator/player/VLCJMediaPlayer.java 2019-04-08 16:39:56.894874290 +02001
@@ -597,6 +597,7 @@
public void setOffset(long offset) {
logger.log(Level.FINE, "set offset {0}", offset);
this.timeOffset = offset;
+ mediaDescriptor.timeOrigin = offset;
}
/**
Uh-oh, that diff doesn’t format nicely at all… Here’s a link to a gist: https://gist.github.com/dlukes/1c327cd2f7eae77303fa2c02c64f8a23
Good, thanks! Will be in the next release.
FYI, I did some more testing using ELAN 5.4 both with and without JavaFX on Linux. As far as I can see, when I manipulate the synchronization via Media Synchronization Mode, the offsets in the Linked Files dialog don’t get updated even when I use the Java Media Framework or the JavaFX Media Framework. In other words, the same issue manifests as with the VLC Player Library.
By contrast, when I use either Java Media Framework or JavaFX Media Framework in ELAN 5.4 FX on Windows, the offsets in the Linked Files dialog do get updated in the same situation. Not sure what’s going on here, but I thought I’d better report it as a follow-up.