mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-24 20:15:40 +00:00
Show warning when opened SWF file has video tags and VLC is not available.
This commit is contained in:
@@ -816,7 +816,12 @@ public final class Configuration {
|
||||
@ConfigurationDefaultDouble(1.0)
|
||||
@ConfigurationCategory("display")
|
||||
@ConfigurationName("gui.scale")
|
||||
public static ConfigurationItem<Double> uiScale = null;
|
||||
public static ConfigurationItem<Double> uiScale = null;
|
||||
|
||||
@ConfigurationDefaultBoolean(true)
|
||||
@ConfigurationName("warning.video.vlc")
|
||||
@ConfigurationCategory("display")
|
||||
public static ConfigurationItem<Boolean> warningVideoVlc = null;
|
||||
|
||||
private enum OSId {
|
||||
WINDOWS, OSX, UNIX
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package com.jpexs.video;
|
||||
|
||||
import com.jpexs.decompiler.flash.configuration.Configuration;
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.lang.annotation.Native;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -11,17 +9,7 @@ import com.sun.jna.NativeLibrary;
|
||||
import com.sun.jna.Platform;
|
||||
import com.sun.jna.platform.win32.Advapi32Util;
|
||||
import com.sun.jna.platform.win32.WinReg;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javax.swing.SwingUtilities;
|
||||
import uk.co.caprica.vlcj.factory.MediaPlayerFactory;
|
||||
import uk.co.caprica.vlcj.factory.discovery.NativeDiscovery;
|
||||
import uk.co.caprica.vlcj.factory.discovery.provider.DirectoryProviderDiscoveryStrategy;
|
||||
import uk.co.caprica.vlcj.factory.discovery.strategy.NativeDiscoveryStrategy;
|
||||
import uk.co.caprica.vlcj.media.MediaRef;
|
||||
import uk.co.caprica.vlcj.medialist.MediaList;
|
||||
import uk.co.caprica.vlcj.medialist.MediaListRef;
|
||||
@@ -33,7 +21,6 @@ import uk.co.caprica.vlcj.player.embedded.videosurface.VideoSurfaceAdapters;
|
||||
import uk.co.caprica.vlcj.player.embedded.videosurface.callback.BufferFormat;
|
||||
import uk.co.caprica.vlcj.player.embedded.videosurface.callback.BufferFormatCallback;
|
||||
import uk.co.caprica.vlcj.player.embedded.videosurface.callback.RenderCallback;
|
||||
import uk.co.caprica.vlcj.player.embedded.videosurface.callback.format.RV32BufferFormat;
|
||||
import uk.co.caprica.vlcj.player.list.MediaListPlayer;
|
||||
import uk.co.caprica.vlcj.player.list.MediaListPlayerEventAdapter;
|
||||
import uk.co.caprica.vlcj.player.list.PlaybackMode;
|
||||
|
||||
@@ -52,6 +52,7 @@ import com.jpexs.decompiler.flash.gui.pipes.FirstInstance;
|
||||
import com.jpexs.decompiler.flash.gui.proxy.ProxyFrame;
|
||||
import com.jpexs.decompiler.flash.helpers.SWFDecompilerPlugin;
|
||||
import com.jpexs.decompiler.flash.tags.DefineBinaryDataTag;
|
||||
import com.jpexs.decompiler.flash.tags.DefineVideoStreamTag;
|
||||
import com.jpexs.decompiler.flash.tags.DoABC2Tag;
|
||||
import com.jpexs.decompiler.flash.tags.FileAttributesTag;
|
||||
import com.jpexs.decompiler.flash.tags.SetBackgroundColorTag;
|
||||
@@ -1164,6 +1165,8 @@ public class Main {
|
||||
}
|
||||
|
||||
result.sourceInfo = sourceInfo;
|
||||
|
||||
boolean hasVideoStreams = false;
|
||||
for (Openable openable : result) {
|
||||
|
||||
openable.setOpenableList(result);
|
||||
@@ -1178,7 +1181,13 @@ public class Main {
|
||||
int height = (int) ((swf.displayRect.Ymax - swf.displayRect.Ymin) / SWF.unitDivisor);
|
||||
logger.log(Level.INFO, "Width: {0}", width);
|
||||
logger.log(Level.INFO, "Height: {0}", height);
|
||||
|
||||
|
||||
for (Tag t: swf.getTags()) {
|
||||
if (t instanceof DefineVideoStreamTag) {
|
||||
hasVideoStreams = true;
|
||||
}
|
||||
}
|
||||
|
||||
swf.addEventListener(new EventListener() {
|
||||
@Override
|
||||
public void handleExportingEvent(String type, int index, int count, Object data) {
|
||||
@@ -1224,6 +1233,16 @@ public class Main {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (hasVideoStreams && !DefineVideoStreamTag.displayAvailable()) {
|
||||
View.execInEventDispatchLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ViewMessages.showMessageDialog(getDefaultMessagesComponent(), AppStrings.translate("message.video.installvlc").replace("%file%", sourceInfo.getFileTitleOrName()), AppStrings.translate("message.warning"), JOptionPane.WARNING_MESSAGE, Configuration.warningVideoVlc);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -623,3 +623,6 @@ config.description.flattenASPackages = Make one item per package instead of pack
|
||||
|
||||
config.name.gui.scale = UI scale factor
|
||||
config.description.gui.scale = Scaling factor of graphics interface. Set this to 2.0 on Mac retina displays. Application true exit (not just restart after asking) is required.
|
||||
|
||||
config.name.warning.video.vlc = Warn on missing VLC
|
||||
config.description.warning.video.vlc = Show warning about VLC media player required when opening SWFs with DefineVideoStream tags when VLC is not available.
|
||||
|
||||
@@ -613,3 +613,6 @@ config.description.flattenASPackages = Zobraz\u00ed bal\u00ed\u010dky jako jednu
|
||||
|
||||
config.name.gui.scale = UI faktor zv\u011bt\u0161en\u00ed
|
||||
config.description.gui.scale = Zv\u011bt\u0161ovac\u00ed faktor grafick\u00e9ho rozhran\u00ed. Nastavte toto na 2.0 na retina displej\u00edch na Macu. Je vy\u017eadov\u00e1no tvrd\u00e9 ukon\u010den\u00ed aplikace (nejen restart po dotazu).
|
||||
|
||||
config.name.warning.video.vlc = Varovat p\u0159i chyb\u011bj\u00edc\u00edm VLC
|
||||
config.description.warning.video.vlc = Zobrazovat varov\u00e1n\u00ed o vy\u017eadovan\u00e9m VLC media playeru p\u0159i otev\u00edr\u00e1n\u00ed SWF s DefineVideoStream tagy kdy\u017e je VLC nedostupn\u00fd.
|
||||
|
||||
@@ -995,3 +995,7 @@ productinfo.edition.none = None
|
||||
productinfo.version = Version:
|
||||
productinfo.build = Build:
|
||||
productinfo.compileDate = Compilation date:
|
||||
|
||||
message.video.installvlc = The file "%file%" contains video tags (DefineVideoStream).\r\n\
|
||||
To properly display them in the decompiler, VLC media player installed is required (minimum version 3.0.0).\r\n\
|
||||
You can however still export the videos to FLV file format without it.
|
||||
@@ -979,4 +979,8 @@ productinfo.edition = Edice:
|
||||
productinfo.edition.none = \u017d\u00e1dn\u00e1
|
||||
productinfo.version = Verze:
|
||||
productinfo.build = Sestaven\u00ed:
|
||||
productinfo.compileDate = Datum kompilace:
|
||||
productinfo.compileDate = Datum kompilace:
|
||||
|
||||
message.video.installvlc = Soubor "%file%" obsahuje video tagy (DefineVideoStream).\r\n\
|
||||
Pro korektn\u00ed zobrazen\u00ed v dekompil\u00e1toru je vy\u017eadov\u00e1n nainstalovan\u00fd VLC media player (v minim\u00e1ln\u00ed verzi 3.0.0).\r\n\
|
||||
St\u00e1le nicm\u00e9n\u011b m\u016f\u017eete exportovat videa do FLV form\u00e1tu i bez toho.
|
||||
Reference in New Issue
Block a user