[Back to Index]

  
[00:35] --> GitHub9 joined #scummvm.
[00:35] <GitHub9> [scummvm] dreammaster opened pull request #839: VIDEO: AVIDecoder changes for Titanic videos (master...video) https://git.io/vPm3m
[00:35] GitHub9 (GitHub9@192.30.252.45) left #scummvm.
[00:38] <-- edheldil left irc: Ping timeout: 265 seconds
[00:40] <dreammaster> LOL.. Like Sev, I am at awe with Chewy's sophisticated encryption
[00:44] Action: Lightkey hits F5 repeatedly
[00:46] <dreammaster> Heh, always good to save ;)
[00:46] <-- Henke37 left irc: Quit: ERR_SHUTDOWN
[00:56] <Lightkey> with the PR open in the browser, F5 is reload :-P
[01:01] <dreammaster> Ah. More less the exact opposite of saving.
[01:03] --> DominusExult joined #scummvm.
[01:03] <-- DominusExult left irc: Changing host
[01:03] --> DominusExult joined #scummvm.
[01:08] <-- Dominus left irc: Ping timeout: 265 seconds
[01:08] Nick change: DominusExult -> Dominus
[01:15] --> Vampire0_ joined #scummvm.
[01:19] <-- Vampire0 left irc: Ping timeout: 272 seconds
[01:21] <-- TMM left irc: Ping timeout: 248 seconds
[01:22] --> TMM joined #scummvm.
[01:40] <-- sluicebox left irc: Remote host closed the connection
[01:45] <-- NuSuey left irc: Quit: Connection closed for inactivity
[01:59] <-- timofonic2 left irc: Ping timeout: 252 seconds
[02:00] <-- Axy left irc: Quit: Leaving
[02:02] #scummvm: mode change '+o Endy' by ChanServ!ChanServ@services.
[02:11] <-- snover left irc: Quit: Leaving.
[02:15] --> timofonic2 joined #scummvm.
[02:30] --> omer_mor_ joined #scummvm.
[02:31] <-- omer_mor left irc: Ping timeout: 264 seconds
[02:50] <-- timofonic2 left irc: Ping timeout: 265 seconds
[03:14] [md5] <-- (~md5@unaffiliated/md5/x-729473) left irc: Ping timeout: 248 seconds
[03:15] <-- marcus_c left irc: Ping timeout: 272 seconds
[03:15] --> marcus_c joined #scummvm.
[04:01] --> Poly-C joined #scummvm.
[04:04] <-- Polynomial-C left irc: Ping timeout: 264 seconds
[04:05] <-- dreammaster left irc:
[04:28] --> NuSuey joined #scummvm.
[04:45] <-- Littleboy left irc: Read error: Connection reset by peer
[04:55] --> timofonic2 joined #scummvm.
[05:48] --> GitHub138 joined #scummvm.
[05:48] <GitHub138> [scummvm] bgK pushed 1 new commit to branch-1-9: https://git.io/vPm85
[05:48] <GitHub138> scummvm/branch-1-9 f801e07 Bastien Bouclet: SDL: Switch to full screen updates when the OSD is transparent...
[05:48] GitHub138 (GitHub138@192.30.252.45) left #scummvm.
[05:48] --> GitHub185 joined #scummvm.
[05:48] <GitHub185> [scummvm] bgK pushed 1 new commit to master: https://git.io/vPm8d
[05:48] <GitHub185> scummvm/master 7941e5d Bastien Bouclet: SDL: Switch to full screen updates when the OSD is transparent...
[05:48] GitHub185 (GitHub185@192.30.252.45) left #scummvm.
[06:02] <-- LittleToonCat left irc: Remote host closed the connection
[06:18] --> ny00123 joined #scummvm.
[06:32] --> waltervn joined #scummvm.
[06:32] #scummvm: mode change '+o waltervn' by ChanServ!ChanServ@services.
[06:33] <waltervn> morning
[06:47] <-- omer_mor_ left irc: Read error: Connection reset by peer
[06:48] --> omer_mor joined #scummvm.
[06:51] --> salty-horse joined #scummvm.
[06:51] <-- salty-horse left irc: Changing host
[06:51] --> salty-horse joined #scummvm.
[06:51] #scummvm: mode change '+o salty-horse' by ChanServ!ChanServ@services.
[07:23] --> ajax16384 joined #scummvm.
[07:23] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[07:49] [md5] --> (~md5@unaffiliated/md5/x-729473) joined #scummvm.
[07:49] #scummvm: mode change '+o [md5]' by ChanServ!ChanServ@services.
[07:54] <-- TMM left irc: Quit: Ex-Chat
[08:07] <-- Harekiet left irc: Read error: Connection reset by peer
[08:08] --> m_kiewitz joined #scummvm.
[08:08] #scummvm: mode change '+o m_kiewitz' by ChanServ!ChanServ@services.
[08:14] --> Harekiet joined #scummvm.
[08:14] <-- waltervn left irc: Ping timeout: 248 seconds
[09:04] --> TMM joined #scummvm.
[09:27] --> omer_mor_ joined #scummvm.
[09:29] <-- omer_mor left irc: Ping timeout: 265 seconds
[09:37] --> frankyboy_ joined #scummvm.
[09:50] <m_kiewitz> [md5]: do you know if the VMD decoder was written for SCI only?
[09:50] <m_kiewitz> i just noticed that at least the intro video of chapter 6 is quite a bit weird
[09:51] <m_kiewitz> it has 3382 video frames, but 3417 audio frames, which could explain the bad lip sync in the end of the video
[09:52] <m_kiewitz> right now we calculculate a straight 10 frames per seconds for that video and it seems thats wrong
[09:56] <m_kiewitz> each audio chunk is 2205, while the sample rate is 22050, which means 10 audio chunks per second as well, but that should mean that we would have to get the same amount of audio chunks and video frames, but we don't
[10:02] Nick change: Vampire0_ -> Vampire0
[10:03] <madmoose> m_kiewitz: How are the audio and video frames ordered? Are the extra audo frames at the beginning or the end?
[10:03] <m_kiewitz> it seems there are a few extra ones at the start, but i don't have a detailed view on that atm, i would have to write a bit of code to see it
[10:04] <m_kiewitz> the extra ones at the start make sense to have enough inside the buffer
[10:04] <m_kiewitz> snover said yesterday that FFMpeg would detect a framerate of 10.03 for that video
[10:04] <m_kiewitz> which probably could make sense
[10:04] <madmoose> Does ffmpeg play it properly synced?
[10:06] <m_kiewitz> im not sure if he checked that
[10:07] <m_kiewitz> we are currently just calculating frame rate based on audio sample rate and audio chunk size, which results in 10 frames per second
[10:08] <m_kiewitz> he also said that the lip sync even on youtube in one let's play is not perfect, but in ScummVM its way worse
[10:14] <madmoose> is the framerate hardcoded in the original engine?
[10:17] <m_kiewitz> i doubt that, snover checked all videos yesterday and some had frame rate of 10, others 10.03, others even 10.09
[10:18] <m_kiewitz> it seems videos without audio use 12 frames per second (in case our code is correct on that)
[10:19] <m_kiewitz> and all sorts of videos actually play fine, it's just a few (probably those, that ffmpeg detects as 10.03, 10.09 etc.)
[10:19] <m_kiewitz> my guess is all of those do not have the same amount of video frames + audio frames
[10:28] --> Henke37 joined #scummvm.
[10:52] --> omer_mor joined #scummvm.
[10:55] <-- omer_mor_ left irc: Ping timeout: 264 seconds
[11:15] --> waltervn joined #scummvm.
[11:15] #scummvm: mode change '+o waltervn' by ChanServ!ChanServ@services.
[12:38] <-- ajax16384 left irc: Read error: Connection reset by peer
[12:39] --> ajax16384 joined #scummvm.
[12:39] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[12:39] <-- timofonic2 left irc: Ping timeout: 248 seconds
[12:40] --> h00ligan joined #scummvm.
[12:40] #scummvm: mode change '+o h00ligan' by ChanServ!ChanServ@services.
[12:43] <-- ajax16384 left irc: Ping timeout: 265 seconds
[13:25] --> Littleboy joined #scummvm.
[13:25] #scummvm: mode change '+o Littleboy' by ChanServ!ChanServ@services.
[13:46] <m_kiewitz> madmoose: i just found out that the video following immediately afterwards is just a few seconds but also totally out-of-sync in ScummVM
[13:47] <m_kiewitz> i also tried to adjust framerate according to total audio duration divided by video frame count, but that also doesn't give proper results
[13:47] <m_kiewitz> maybe VMDs are actually dynamic framerate
[14:09] --> rootfather joined #scummvm.
[14:09] #scummvm: mode change '+o rootfather' by ChanServ!ChanServ@services.
[14:28] --> snover joined #scummvm.
[14:28] #scummvm: mode change '+o snover' by ChanServ!ChanServ@services.
[14:43] <-- aquadran left irc: Ping timeout: 240 seconds
[15:00] --> omer_mor_ joined #scummvm.
[15:03] <-- omer_mor left irc: Ping timeout: 272 seconds
[15:07] --> LittleToonCat joined #scummvm.
[15:10] --> omer_mor joined #scummvm.
[15:12] <-- omer_mor_ left irc: Ping timeout: 244 seconds
[15:23] <-- h00ligan left irc: Quit: Leaving
[15:34] <-- TMM left irc: Quit: Ex-Chat
[16:08] --> GitHub161 joined #scummvm.
[16:08] <GitHub161> [scummvm] rootfather pushed 2 new commits to master: https://git.io/vPYz8
[16:08] <GitHub161> scummvm/master 66912e9 Lothar Serra Mari: I18N: Update Hungarian translation...
[16:08] <GitHub161> scummvm/master 84ea02e Lothar Serra Mari: I18N: Regenerate translations.dat
[16:08] GitHub161 (GitHub161@192.30.252.34) left #scummvm.
[16:09] <-- eriktorbjorn1 left irc: Quit: Leaving.
[16:27] --> TMM joined #scummvm.
[16:28] --> GitHub146 joined #scummvm.
[16:28] <GitHub146> [scummvm] rootfather pushed 2 new commits to branch-1-9: https://git.io/vPYah
[16:28] <GitHub146> scummvm/branch-1-9 e336118 Lothar Serra Mari: I18N: Update Hungarian translation...
[16:28] <GitHub146> scummvm/branch-1-9 952eb0b Lothar Serra Mari: I18N: Regenerate translations.dat
[16:28] GitHub146 (GitHub146@192.30.252.46) left #scummvm.
[16:38] <-- snover left irc: Quit: Leaving.
[16:41] --> tdgpew joined #scummvm.
[16:59] --> ajax16384 joined #scummvm.
[16:59] #scummvm: mode change '+o ajax16384' by ChanServ!ChanServ@services.
[17:09] <-- tdgpew left irc: Read error: Connection reset by peer
[17:21] --> omer_mor_ joined #scummvm.
[17:23] <-- omer_mor left irc: Ping timeout: 263 seconds
[17:43] --> girafe joined #scummvm.
[17:53] <-- salty-horse left irc: Ping timeout: 248 seconds
[18:07] --> salty-horse joined #scummvm.
[18:07] <-- salty-horse left irc: Changing host
[18:07] --> salty-horse joined #scummvm.
[18:07] #scummvm: mode change '+o salty-horse' by ChanServ!ChanServ@services.
[18:24] <-- Littleboy left irc: Ping timeout: 248 seconds
[18:29] --> Littleboy joined #scummvm.
[18:29] #scummvm: mode change '+o Littleboy' by ChanServ!ChanServ@services.
[18:53] <[md5]> m_kiewitz: the VMD decoder was initially written for the gob engine
[18:53] <m_kiewitz> [md5] yes, i found that out a few hours ago
[18:53] <[md5]> :)
[18:53] <m_kiewitz> is it used in GOB for really long videos?
[18:53] <[md5]> um
[18:53] <m_kiewitz> like 3-4 minutes or more?
[18:54] <[md5]> no idea what you mean with "long"
[18:54] <[md5]> oh
[18:54] <[md5]> yes, in Urban Runner
[18:54] <m_kiewitz> because it seems the current code calculates an incorrect frame rate
[18:54] <m_kiewitz> and Urban Runner works properly? no lip sync issues?
[18:55] <m_kiewitz> even some short videos of gk2 have issues, which is really weird. others work fine
[18:56] <[md5]> um
[18:56] <[md5]> I don't remember any lip sync issues in Urban Runner
[18:57] <DrMcCoy> No audio sync issues in the long intro movie in Urban Runner
[18:57] <m_kiewitz> hmmm really weird
[18:58] <m_kiewitz> gk2 was released 1995, urban runner 1 year later
[18:59] <[md5]> do these videos play OK in FFmpeg?
[18:59] <DrMcCoy> Urban Runner uses Indeo3'd video frames, though, and I think GK2 doesn't
[18:59] <m_kiewitz> ah, gk2 is about VMDs
[18:59] <DrMcCoy> But last I checked (which is some years ago), there weren't any sync issues in GK2 videos either
[18:59] <DrMcCoy> m_kiewitz: No, you misunderstand
[18:59] <m_kiewitz> chapter 6 intro
[18:59] <DrMcCoy> m_kiewitz: Urban Runner uses VMD
[18:59] <m_kiewitz> both of the intro videos have issues
[18:59] <m_kiewitz> ah ok
[19:00] <DrMcCoy> m_kiewitz: But the VMDs have Indeo3 video frame data inside
[19:00] <m_kiewitz> can you please check if the amount of video frames and audio frames is the same for the intro of urban runner?
[19:00] --> WooShell joined #scummvm.
[19:00] <DrMcCoy> Everything else is still the same (and there's also videos in Urban Runner without Indeo3 video frames), just that the video data is pushed through an Indeo3 decoder first
[19:00] <m_kiewitz> because for those gk2 videos it isn't
[19:00] <m_kiewitz> we got more audio frames than video frames
[19:01] <DrMcCoy> No, they're not the same usually
[19:01] <WooShell> meow =^.^=
[19:01] <m_kiewitz> WooShell!
[19:01] <DrMcCoy> You have an initial buffer of frames at the start, then one audio frame per video frame, which often continues until the end, so you have an extra amount of audio at the end
[19:01] <DrMcCoy> That extra amount is silent
[19:02] <m_kiewitz> in GK2 I see one larger audio chunk for the first frame followed by a video frame
[19:02] <DrMcCoy> Yes
[19:02] <[md5]> Also, perhaps you could try playing these videos via the console? Snover changed VMD playing to be handled via the SCI engine
[19:02] <[md5]> there's also this bit:
[19:02] <[md5]> // causes the VMD decoder to freak out for some reason and video output
[19:02] <[md5]> // starts jittering horribly. This problem does not happen if audio sync
[19:02] <[md5]> // is disabled, but this causes some audible clicking between frames
[19:02] <[md5]> // of audio (and, presumably, will cause some AV sync problems). Still,
[19:02] <[md5]> // that's better than really bad jitter.
[19:02] <[md5]> _decoder->setAudioSync(!(flags & kEventFlagYieldToVM));
[19:02] <[md5]> sorry
[19:02] <[md5]> // HACK: When VMD playback is allowed to yield back to the VM, this
[19:02] <DrMcCoy> m_kiewitz: That larger chunk is the initial buffer of frames at the start
[19:02] <m_kiewitz> [md5] and no FFmpeg has the same issue according to snover. doesn't surprise me, because they use the same code to calculate frame rate
[19:02] <m_kiewitz> yes i know
[19:03] <m_kiewitz> but it still get more audio frames (not size related but count of those)
[19:03] <DrMcCoy> Yes
[19:03] <DrMcCoy> There usually is an extra bit of audio at the end
[19:03] <DrMcCoy> It's silent
[19:03] <m_kiewitz> [md5] i get no clicking, the sync is just completely off
[19:03] <DrMcCoy> You can ignore it
[19:03] <m_kiewitz> especially for the 2nd video, that is like 10 seconds only
[19:03] <[md5]> hm... perhaps these videos have some sort of still frames with audio? Sort of what happens in Broken Sword's intro?
[19:03] <m_kiewitz> the one before that is the main one, and that's quite long
[19:04] <m_kiewitz> ah yeah, i saw something about that in the documentation
[19:04] <[md5]> (the intro in BS1 starts with a black screen and a voiceover)
[19:04] <m_kiewitz> that could explain it, do we support silence in audio?
[19:06] <m_kiewitz> hmm it seems we do, but maybe that code has some issue
[19:06] <DrMcCoy> Well, I see no audio sync issues in the GK2 intro here in ScummVM
[19:06] <m_kiewitz> DrMcCoy: create a file called "CLASSES" inside the gk2 directory
[19:06] <m_kiewitz> then start the game, warp to chapter 6
[19:06] <m_kiewitz> and then watch that video
[19:06] <-- ajax16384 left irc: Read error: Connection reset by peer
[19:06] <m_kiewitz> there is a second video immediately afterwards and that has bad sync too
[19:08] <m_kiewitz> the 2nd video is really short as i said - and she says "You have a visitor" but way too late
[19:09] <m_kiewitz> and it seems as if there is actual silence inbetween, so maybe we create too much silence for those parts
[19:10] <m_kiewitz> yes, silence code is called during that video
[19:13] <DrMcCoy> The Chapter Six Opening Movie is perfectly in sync for me
[19:13] <DrMcCoy> The "you have a visitor" one is slightly late, but that *could* be "normal". How does it look in the original
[19:14] <m_kiewitz> slightly?
[19:14] <m_kiewitz> for me she starts talking and audio occurs when she is almost done
[19:15] <m_kiewitz> this here is a let's play video https://www.youtube.com/watch?v=DdyiJlYw7HA
[19:15] <m_kiewitz> second video at 5:45
[19:15] <DrMcCoy> Yup, that's exactly what I see
[19:15] <DrMcCoy> Slightly, like a few ms late
[19:15] <m_kiewitz> that's not perfectly in sync, but in ScummVM it's playing way too late
[19:16] <DrMcCoy> Nope, I see exactly what's in that youtube video there
[19:16] <m_kiewitz> let me check to make sure none of my testing code is still active
[19:17] <DrMcCoy> That's with 8cced5766fadc804f924dc2664f564bca4dde15c , though, so I'm a few days behind
[19:17] <DrMcCoy> I can pull and try again
[19:18] <m_kiewitz> nah, still broken
[19:18] <DrMcCoy> Then that's probably your system
[19:18] <m_kiewitz> well it's for snover like that as well, and he's on MacOS
[19:18] <DrMcCoy> Do you have any scaling active?
[19:19] <m_kiewitz> and you got gk2 English, version well no version file, from december 1995?
[19:19] <DrMcCoy> The ScummVM video/audio sync code in general is...flakey
[19:19] <m_kiewitz> i have 2x scaling active
[19:19] --> Vampire0_ joined #scummvm.
[19:19] <DrMcCoy> Try with -g1x
[19:19] <m_kiewitz> but for me her mouth is going "you have a" and then the audio starts
[19:19] <m_kiewitz> so it's not just a bit late but way too late
[19:20] <m_kiewitz> it seems scaling setting is ignored for me
[19:20] <DrMcCoy> Keep in mind that the videos run at what, 12 fps?
[19:20] <m_kiewitz> 10 fps
[19:20] <m_kiewitz> but it's really completely off
[19:20] <-- Vampire0 left irc: Ping timeout: 264 seconds
[19:20] <m_kiewitz> and on youtube it looks fine
[19:21] <m_kiewitz> so i guess i didn't have scaling actually enabled, well I had but it was ignored. im getting the same resolution with 1x
[19:23] <m_kiewitz> DrMcCoy: please update to latest commit, just to make sure
[19:23] <m_kiewitz> although i doubt anything was changed with VMD decoder
[19:24] <DrMcCoy> What's the name of the "visitor" video?
[19:24] <m_kiewitz> 7510.VMD
[19:25] <m_kiewitz> snover said that FFmpeg would play the intro incorrectly as well
[19:25] <m_kiewitz> he could check if he gets the same mess for the visitor video as I do
[19:26] <m_kiewitz> i could check in dos-box to make sure
[19:26] <m_kiewitz> my gk2 is from the Gabriel Knight Limited Edition
[19:26] <m_kiewitz> my 7510.vmd is 2.036.115 bytes
[19:27] <DrMcCoy> Ditto
[19:27] <DrMcCoy> md5 is 9a4b07e9af9ca1b4d7ca66af845d7679
[19:27] <m_kiewitz> ah I'm on SDL1 btw
[19:27] <m_kiewitz> you are using SDL2 I guess?
[19:28] <m_kiewitz> just to make sure that we aren't using different ones
[19:28] <m_kiewitz> not sure what snover is using
[19:28] <m_kiewitz> although i would assume SDL2
[19:29] <DrMcCoy> You can use https://drmccoy.de/zeugs/coktelplayer to play the video standalone with ScummVM (need to change the "scummvmGIT" line, though)
[19:30] <m_kiewitz> 818 bytes?
[19:30] <m_kiewitz> ah im on Windows
[19:31] <DrMcCoy> msys
[19:31] <DrMcCoy> cygwin
[19:31] <DrMcCoy> Whatever
[19:31] <m_kiewitz> don't have those :P
[19:32] <m_kiewitz> which options shall I use on ScummVM?
[19:32] <m_kiewitz> -d2 --debugflags=Demo?
[19:33] <DrMcCoy> You need to create a temporary directory with a coktelplayer.scn file in it
[19:33] <-- girafe left irc: Read error: Connection reset by peer
[19:33] <m_kiewitz> and "REBASE0:ON\nVIDEO:AUTO" in it I guess
[19:33] <DrMcCoy> The \n is a line break, but yes
[19:33] <DrMcCoy> then CLEAR
[19:34] <DrMcCoy> then on the next line, IMD_PRELOAD followed by a space and the file name of the video
[19:34] <m_kiewitz> and then "IMD_PRELOAD" + vmd file?
[19:34] <m_kiewitz> yes
[19:35] <DrMcCoy> And then you need to call ScummVM with the game "gob" on that directory
[19:36] <m_kiewitz> same problem
[19:37] <DrMcCoy> It *is* maybe one frame later, I dunno
[19:37] <-- salty-horse left irc: Ping timeout: 272 seconds
[19:38] <DrMcCoy> Watching and comparing it for like 1000 times now, I can't tell
[19:38] <DrMcCoy> It's not "way" later, though
[19:39] <-- Vampire0_ left irc: Ping timeout: 248 seconds
[19:40] --> Vampire0 joined #scummvm.
[19:43] <m_kiewitz> for me I really see her saying "you have a" and then audio starts
[19:43] <m_kiewitz> it's really way too late and absolutely obvious. Maybe it's also platform dependent
[19:43] <m_kiewitz> wjp: you at home now?
[19:44] <m_kiewitz> we need someone else to test this out
[19:46] <DrMcCoy> In either case, don't go willy-nilly changing coktel_decoder.cpp. That thing is (too) complex and there's a lot of corner cases and videos/games that need testing afterwards
[19:46] <m_kiewitz> i wouldn't. I tried around with the frame rate locally to see if that would fix it
[19:47] <m_kiewitz> and i wouldn't commit anything directly in such a case anyway, would do a pull request instead of course
[19:48] <DrMcCoy> There's a slight silent bit before she says "you have a visitor". If that's done by emptySoundSlice(), it's possible that the calculation of the empty sound is off for this particular audio format
[19:48] <m_kiewitz> maybe it's really only bad on some platforms. Is it syncing itself like other video decoders do? I can't remember having the same issue anywhere else
[19:48] <m_kiewitz> yes, i want to look into this in any case.
[19:48] <DrMcCoy> In case you haven't seen, there's like three distinct ways for VMD to have sound: 8bit Raw PCM, 16bit DPCM, 16bit ADPCM
[19:50] <m_kiewitz> i have definitely seen 16-bit something in debugger
[19:50] <DrMcCoy> This video is 16bit DPCM, maybe the size of the empty sound slice needs to be halfed here?
[19:50] <DrMcCoy> If we're unlucky, it's even something Gabriel Knight 2 specific
[19:51] --> salty-horse joined #scummvm.
[19:51] #scummvm: mode change '+o salty-horse' by ChanServ!ChanServ@services.
[19:51] <-- salty-horse left irc: Client Quit
[19:51] <m_kiewitz> you don't know if silence is used in another game, that also uses DPCM I guess?
[19:52] <DrMcCoy> By now, I have completely forgotten which games use which sound format, unfortunately
[19:52] <m_kiewitz> i guess we should add comments for that decoder saying which game uses which combination. That could help out quite a bit
[19:52] <DrMcCoy> I don't think I have documented it either
[19:52] <DrMcCoy> Or if I did, I can't remember
[19:52] <m_kiewitz> we'll sure have to test it out
[19:52] <DrMcCoy> Which, yes, was a mistake on my part
[19:52] <m_kiewitz> you know which games use VMDs?
[19:52] <m_kiewitz> is it just GOB + SCI?
[19:52] <m_kiewitz> engine-wise?
[19:53] <DrMcCoy> AFAIK, yes
[19:54] <wjp> m_kiewitz: no, still not home. Will take a while
[19:55] <m_kiewitz> kk thx
[19:55] <DrMcCoy> As for the Gob games, that would be Woodruff, Urban Runner, the Playtoons and later Adi/Addy/Adibou/AddyJunior titles
[19:56] <DrMcCoy> Especially the Addy games have a lot of new features and varieties
[19:57] <DrMcCoy> And Urban Runner has many different varients too, but I don't think sound-vise
[19:57] <m_kiewitz> i don't own any of those sadly
[19:58] <m_kiewitz> i only own "Ween" Goblins 1-3
[19:58] <m_kiewitz> and lost in time
[19:58] <DrMcCoy> Those are all IMD
[19:59] <DrMcCoy> (Which is a precursor to the VMD format)
[19:59] <m_kiewitz> dang
[20:00] <m_kiewitz> SCI-wise I think I own every game that uses VMD
[20:04] <DrMcCoy> Urban Runner seems to be the same audio format
[20:04] <DrMcCoy> The problem with Urban Runner is that there's barely any direct speech in it
[20:04] <DrMcCoy> It's all narration
[20:04] <DrMcCoy> Also, since they're French actors, they'd be dubbed anyway
[20:09] <DrMcCoy> m_kiewitz: Could you add "size = (size / 2) & ~((uint32)1);" (the fiddly thing to make sure it's still even) as the first line in VMDDecoder::emptySoundSlice() and see if that looks better for you?
[20:10] <m_kiewitz> sure
[20:12] <m_kiewitz> it's still too late, but not nearly as badly as before
[20:12] --> SylvainTV joined #scummvm.
[20:12] #scummvm: mode change '+o SylvainTV' by ChanServ!ChanServ@services.
[20:12] <m_kiewitz> looks like she says "You" and after that the audio starts
[20:13] <m_kiewitz> i guess i should look what the original interpreter was doing
[20:16] <m_kiewitz> great, original interpreter complains about missing 999.pal :(
[20:16] <DrMcCoy> With that halved wait, 3550.vmd is out of sync in the other direction for me, though. Sound too early
[20:17] <DrMcCoy> Just slightly
[20:17] <DrMcCoy> I think
[20:17] <DrMcCoy> Dunno
[20:18] --> snover joined #scummvm.
[20:18] #scummvm: mode change '+o snover' by ChanServ!ChanServ@services.
[20:19] <m_kiewitz> DrMcCoy: so it looks as if audio sync is not behaving the same on all platforms then
[20:19] <m_kiewitz> snover: can you please check that 2nd intro video in gk2 of chapter 6?
[20:19] <DrMcCoy> I really don't think the ScummVM videodecoder code in general is super accurate when it comes to sync
[20:20] <m_kiewitz> For DrMcCoy it plays sort of fine, for me the audio "You have a visitor" is played way too late
[20:20] <m_kiewitz> DrMcCoy: sure, but this is not just a few milliseconds off. And I wonder how this is even possible when both platforms use SDL
[20:21] <m_kiewitz> how does audio-sync work for that decoder? for the ones that i wrote, I always wait for the audio to catch up and then show the next frame
[20:21] <m_kiewitz> so it's fully audio-playback controlled
[20:22] <m_kiewitz> of course I don't think that I had videos that were that long, still the "visitor" video is really short, there is something really weird going on
[20:24] <DrMcCoy> Also fully audio-controlled in VMDecoder. _frameRate = Common::Rational(_soundFreq, _soundSliceSize)
[20:25] <m_kiewitz> i mean the actual syncing process
[20:25] <m_kiewitz> it plays audio and then shows frames depending on audio position, yes?
[20:25] --> Strangerke joined #scummvm.
[20:25] #scummvm: mode change '+o Strangerke' by ChanServ!ChanServ@services.
[20:25] <Strangerke> hi guys
[20:26] <DrMcCoy> Audio starts playing, the first frame is decoded and shown, _vm->_util->delay(getTimeToNextFrame())
[20:26] <m_kiewitz> hey Strangerke
[20:26] <DrMcCoy> getTimeToNextFrame() takes the audio start time and the current time into account
[20:27] <m_kiewitz> hm, that could get inaccurate depending on the system
[20:27] <m_kiewitz> i think i'm doing short delays and then check audio position
[20:27] <DrMcCoy> Well, yes, it's inaccurate
[20:27] <DrMcCoy> Short delays don't make it better
[20:27] <DrMcCoy> It depends on the granularity of your system timer
[20:27] <m_kiewitz> yes, sure
[20:28] <DrMcCoy> You can't get better than that short of busy-waiting
[20:32] --> WinterGrascph joined #scummvm.
[20:32] #scummvm: mode change '+o WinterGrascph' by ChanServ!ChanServ@services.
[20:32] <-- WinterGrascph left irc: Client Quit
[20:35] <snover> m_kiewitz: reading backlog.
[20:37] <snover> m_kiewitz: the visitor video is out of sync as well
[20:37] <snover> i am using sdl2
[20:38] <m_kiewitz> snover: for you it's also that her mouth is saying "You have a" and audio starts right then (way too late)?
[20:42] <snover> that sounds right, but give me a minute
[20:42] <DrMcCoy> Hmm, the filled sound slices are exactly half the size of an empty sound slice in both Urban Runner and Gabriel Knight 2
[20:44] <-- ny00123 left irc: Quit: Leaving
[20:45] <snover> m_kiewitz: yeah, it is as you say here
[20:46] <m_kiewitz> really weird, b/c for DrMcCoy it's almost perfect.
[20:46] <m_kiewitz> the video is using silence right before that, and we halfed the amount of bytes, which made it way better for me - almost perfect, but then it's quite broken for McCoy
[20:46] <DrMcCoy> Or wait, no
[20:46] <DrMcCoy> I'm counting wrong
[20:47] <m_kiewitz> snover: is FFMpeg playing it back in the exact same manner as ScummVM?
[20:48] <snover> no, on this one ffmpeg seems to be more OK
[20:48] <snover> still not perfect, but better. and i do hear at least two blocks of silent audio
[20:49] <m_kiewitz> snover: are you able to start gk2 in dos-box?
[20:50] <m_kiewitz> i wanted to check what the original interpreter is doing, but I'm getting the infamous "999.pal not found" error message
[20:50] <snover> maybe. lets see.
[20:50] <snover> do you have the correct cd inserted? :)
[20:50] <m_kiewitz> i got everything on harddrive :P
[20:51] <m_kiewitz> and 999.pal is inside some resource file, so it makes no sense. the same error message happens for space quest 6 and king's quest 7, but i found workarounds against that
[20:51] <m_kiewitz> those don't work for gk2
[20:52] <snover> `sierra.exe resource.cfg` or `sierra.exe -o resource.cfg`?
[20:53] <snover> oops. someone (me) deleted the cd images for most of GK2 after extracting the data. id need to go retrieve disc 6 again
[20:54] <m_kiewitz> i tried, but didn't work
[20:54] <snover> do you think the Lets Play is not good enough for reference at the moment?
[20:54] <m_kiewitz> those were my workarounds
[20:54] <m_kiewitz> well i would like to see it directly
[20:54] <m_kiewitz> to figure out how accurate it is
[20:55] <m_kiewitz> I don't trust youtube videos that much. on youtube it looks sort of fine, but i would have to see it locally to figure out if lip sync is perfect or still a bit off
[20:55] <DrMcCoy> Does that make it better? https://gist.github.com/DrMcCoy/9521536c0e7224f7e3b2233b80737bc3
[20:55] <DrMcCoy> Err
[20:56] <DrMcCoy> Reload, updated
[20:57] <m_kiewitz> that ruins it for you though?
[20:57] <-- criezy left irc: Quit: criezy
[20:57] <DrMcCoy> m_kiewitz: Don't think so
[21:00] <m_kiewitz> not perfect, but way way better
[21:00] <m_kiewitz> i would have to really check with the original interpreter
[21:01] <m_kiewitz> snover: can you try that too?
[21:01] <m_kiewitz> will just check the longer video too, moment pls
[21:04] <snover> im a little slow today but i will get to it in a few moments.
[21:07] <m_kiewitz> DrMcCoy: long video seems to be way better too
[21:26] <DrMcCoy> Hmm, I *think* it messes with Urban Runner videos now though
[21:28] <DrMcCoy> mxramcal.vmd in Urban Runner is out of sync then. The area with the rooms with the pump, when taking the page of the pump manual from under the bench
[21:30] <m_kiewitz> :(
[21:30] <m_kiewitz> maybe they really changed something inbetween?!
[21:30] <snover> its better, but still wrong
[21:31] <DrMcCoy> That has parts with sound and parts without sound, i.e. some filled sound slices, then some empty ones, then some filled, etc.
[21:31] <DrMcCoy> He takes the foled page from under the bench, sound. Then a bit of a pause, then unfold (sound), then pause while he looks at the page, then folds it up again
[21:32] <DrMcCoy> You can clearly hear where the sound has to go
[21:32] <DrMcCoy> And it's correct with the current code and very obviously broken with that patch
[21:32] <m_kiewitz> maybe the silence is dynamic in some way? is there some size field left, that we don't use in those cases?
[21:35] <DrMcCoy> Part::size == 0 on empty sound slices
[21:37] <m_kiewitz> dang
[21:37] <snover> there is a second way of generating silence
[21:37] <snover> but i dont understand it yet
[21:38] <DrMcCoy> ?
[21:38] <m_kiewitz> i guess i could also check VMDs of other games. maybe Sierra really changed something internally inbetween
[21:40] <snover> in VMDDecoder::filledSoundSlices it reads this 32-bit mask that says whether or not to write silence
[21:40] <-- frankyboy_ left irc: Quit: #E>6C O >B 20A
[21:42] <DrMcCoy> snover: That's the initial buffer at the start of the video
[21:43] <DrMcCoy> At the start of the video, there's an initial buffer of n sound slices, which can be filled or empty, in sequence
[21:43] <snover> ok, yes. i am not functioning today.
[21:44] Nick change: somaen_ -> somaen
[21:44] <-- somaen left irc: Changing host
[21:44] --> somaen joined #scummvm.
[21:44] #scummvm: mode change '+o somaen' by ChanServ!ChanServ@services.
[21:51] --> dreammaster joined #scummvm.
[21:51] #scummvm: mode change '+o dreammaster' by ChanServ!ChanServ@services.
[21:52] <DrMcCoy> m_kiewitz: Looking at the disasm, the current code is correct for Urban Runner
[21:52] <m_kiewitz> uh oh
[21:53] <m_kiewitz> was there a gob game that uses VMDs before Urban Runner?
[21:53] <DrMcCoy> Woodruff
[21:53] <DrMcCoy> But that uses 8bit audio
[21:54] <DrMcCoy> And the code is correct there too. empty sound slice size = data size * bytes per sample
[21:56] <m_kiewitz> hmm 1994
[21:56] <m_kiewitz> so maybe some difference in the code base then between GOB and SCI?
[21:56] <DrMcCoy> Possible
[21:56] <m_kiewitz> wth is wrong in there...
[21:58] <_sev> ugh, awesome demo: https://www.youtube.com/watch?v=PaNYOzwlVC8
[22:04] <Strangerke> 65Kb... wow
[22:05] <DrMcCoy> Oh, right, I saw that on the Revision 2015 live stream
[22:05] <DrMcCoy> Great idea to "hide" greetings, too
[22:06] <m_kiewitz> fascinating
[22:18] <-- waltervn left irc: Quit: Leaving
[22:19] <-- marcus_c left irc: Ping timeout: 265 seconds
[22:20] <_sev> DrMcCoy: you mean on the raytraced ball?
[22:21] <_sev> ...and og course this: https://www.youtube.com/watch?v=qRVTI2y0BBg
[22:22] <_sev> 64kb intros got changed forever for me
[22:22] <_sev> sometimes it was so difficult to understand it is a render
[22:22] <DrMcCoy> _sev: No, I mean, the "place" names are greetings, in case that's not clear. Mercury Station, Mercury is another demogroup. Same with Fairlight Habitat, where Fairlight is another group. And so on
[22:23] <_sev> DrMcCoy: ah, right. that too
[22:23] <madmoose> Lots of good references.
[22:24] <DrMcCoy> Yeah, Conspiracy are pretty wild
[22:24] <madmoose> Blade Runner and 2001: A Space Odyssey
[22:25] <DrMcCoy> Saw a presentation (in German) from Mercury members, where they basically showed 2016 demos for 2+ hours
[22:25] <DrMcCoy> And they said they had a little competition going on with Conspiracy about the 64k demo entry for the Revision 2016
[22:26] <madmoose> _sev: Thank you for reviewing the code!
[22:26] <DrMcCoy> In the end, Mercury's entry beat Conspiracy's entry by only a handful of votes
[22:27] <DrMcCoy> Mercury placed 1st, Conspiracy (with Darkness Lay Your Eyes Upon Me) 2nd
[22:27] <DrMcCoy> That was Mercury's entry: https://www.youtube.com/watch?v=JZ6ZzJeWgpY
[22:29] <-- WooShell left irc: Quit: Zu gotdy od mpy nrmy stpimf. Zu drvpmf zrsmd aogy jrt iq pt viy jrt yp yjr htpimf.
[22:36] <-- Harekiet left irc: Read error: Connection reset by peer
[22:39] <-- m_kiewitz left irc: Quit: technology isn't intrinsically good or evil. It's how it's used. Like the Death Ray.
[22:45] --> Harekiet joined #scummvm.
[22:52] --> Strangerke_ joined #scummvm.
[22:55] <-- Strangerke left irc: Ping timeout: 248 seconds
[22:55] Nick change: Strangerke_ -> Strangerke
[22:57] <-- Henke37 left irc: Quit: ERR_SHUTDOWN
[23:10] --> omer_mor joined #scummvm.
[23:12] <-- omer_mor_ left irc: Ping timeout: 244 seconds
[23:57] <-- SylvainTV left irc: Read error: Connection reset by peer
[23:59] --> omer_mor_ joined #scummvm.
[00:00] --- Tue Oct 4 2016