JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : We have got a new blog where we post some interesting SWF internals info.

List of issuesList of issues

#1535 Interpreting XFL
Date created:
Type: question
Visibility: Everybody
Assigned to:
Labels: Sound
State: closed Help

I can't seem to find any documentation for this XFL format. Can anybody point me to some? I'm specifically trying to interpret the following XML. I believe that this plays a clip of the overall sound file. I'm interested in the beginning and end offsets, the relative or absolute volume of the sound, and whether it fades in or out. If I can export more information from an SWF using a different format, let me know. I think inPoint44 and outPoint44 corresponds to the beginning and end offsets, but don't know how to convert the values provided to milliseconds. <DOMFrame index="0" duration="8" keyMode="9728" soundName="sound431.mp3" inPoint44="24900" outPoint44="86000" soundSync="start" soundEffect="custom"> <SoundEnvelope> <SoundEnvelopePoint mark44="0" level0="0" level1="0"/> <SoundEnvelopePoint mark44="7500" level0="10037" level1="9742"/> </SoundEnvelope> <elements/> </DOMFrame>
Ok, I think I have a guess on how to convert inPoint44/outPoint44 to milliseconds. I think the 44 stands for 44kHz and the values are samples. So: Start offset: 24900 / 44000 * 1000 = ~566ms End offset: 86000 / 44000 * 1000 = ~1954ms That roughly meets my expectations for the offsets. But what are SoundEnvelopePoint, mark44, and level0/level1 trying to convey?
I didn't realize that the XML format wasn't actually XFL, but rather an XML approximation of the SWF format. I stumbled upon this very helpful documentation: https://www.adobe.com/content/dam/acom/en/devnet/pdf/swf-file-format-spec.pdf
SoundEnvelopePoints are points of sound levels of the sound. See attachment - yellow points. mark44 is position of poinz from beginning. 44 means 44KHz, if the sound is 22Khz sampled, you must double its samplesCount to get total length. level0 is left channel, level1 is right channnel. inPoint44 is delay from start, outPoint44 is position from end i guess - see red markers on the attached image.
State: new→opened
Thanks for answering. This issue can be closed. (I don't see a mechanism for me to close it myself)
P.S. You guessed that outPoint44 is the position from the end. But based on my work, it appears to be a position from the beginning at which to stop playing the sound. This produces the expected sound effects when porting to WebAudio. I don't know how to reconcile that with your image, however.
P.S. And to be pedantic, I need to correct an earlier comment I made. According to this spec, it is 44100Hz, not 44000Hz. https://www.adobe.com/content/dam/acom/en/devnet/pdf/swf-file-format-spec-v10.pdf
State: opened→closed