From 3aa9f12aa1610314ff6db2795d61a588285f8f40 Mon Sep 17 00:00:00 2001 From: Mike S Date: Sat, 20 Apr 2013 05:31:20 +0000 Subject: [PATCH] v0.99.1 rev2602 (18 Apr 2013) - More robust and lenient XA detection and decoding - Sped up loading large indexes - Several UI bug fixes . Closes files after opening a new one . Fix description of videos with < 1 sec duration . Update and optimize tree table . Prompt to save index . File extension considered when checking for existing file . Fixed order of nested directory tree . Fixed possible UI deadlock when playing - Tim improvements . Fix gray palette transparency . Fix saving 4-bit TIM as .bmp . Prevent saving 16-bit TIM as .bmp . Improve quality of RGB -> 16-bit TIM color conversion . RGB -> 8 or 4bpp TIM CLUT colors are now sorted . Shows output file names - Output filename keeps original extension - -visualize pdf is now vertical - Slightly more correct STR video detection - Slightly optimized video decoding (STRv3) - jPSXdec version added in generated AVI metadata Internals: - Big logging redesign and cleanup - Big Tim cleanup Known Problems: - .iki encoding not implemented yet - Some .iki frame rate detection is wrong - Audio + Video playback on Linux might be choppy --- src/jpsxdec/sectors/SectorXANull.java | 96 --------------------------- 1 file changed, 96 deletions(-) delete mode 100644 src/jpsxdec/sectors/SectorXANull.java diff --git a/src/jpsxdec/sectors/SectorXANull.java b/src/jpsxdec/sectors/SectorXANull.java deleted file mode 100644 index b8af1e4..0000000 --- a/src/jpsxdec/sectors/SectorXANull.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * jPSXdec: PlayStation 1 Media Decoder/Converter in Java - * Copyright (C) 2007-2012 Michael Sabin - * All rights reserved. - * - * Redistribution and use of the jPSXdec code or any derivative works are - * permitted provided that the following conditions are met: - * - * * Redistributions may not be sold, nor may they be used in commercial - * or revenue-generating business activities. - * - * * Redistributions that are modified from the original source must - * include the complete source code, including the source code for all - * components used by a binary built from the modified sources. However, as - * a special exception, the source code distributed need not include - * anything that is normally distributed (in either source or binary form) - * with the major components (compiler, kernel, and so on) of the operating - * system on which the executable runs, unless that component itself - * accompanies the executable. - * - * * Redistributions must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER - * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package jpsxdec.sectors; - -import jpsxdec.cdreaders.CdSector; -import jpsxdec.cdreaders.CdxaSubHeader.SubMode; -import jpsxdec.util.ByteArrayFPIS; - -/** 'Null' XA sectors. - * XA files have lots of audio channels. When a channel is no longer used - * because the audio is finished, it is sometimes filled with what I call - * 'null' sectors. These sectors have absolutely no SubMode flags set, - * and are often full of zeros. */ -public class SectorXANull extends IdentifiedSector { - - public SectorXANull(CdSector cdSector) { - super(cdSector); - if (isSuperInvalidElseReset()) return; - - if (cdSector.isCdAudioSector()) return; - - // if it doesn't have a sector header, then it can't be a null sector - if (!cdSector.hasSubHeader()) return; - // if it's not a Form 2 sector, then it can't be a null sector - if (cdSector.getSubMode().getForm() != 2) return; - - // if it's not flagged as a null sector... - SubMode sm = cdSector.getSubMode(); - if (sm.getAudio() || sm.getVideo() || sm.getData()) - { - // if it's flagged as an audio sector, then it's not a null sector - if (!sm.getAudio()) return; - - // if it has a valid channel number, then it's not a null sector - if (cdSector.getSubHeaderChannel() >= 0 || cdSector.getSubHeaderChannel() < 32) { - return; - // Ace Combat 3 has several AUDIO sectors with channel 255 - // that seem to be "null" sectors - } - } - - setProbability(100); - } - - public String toString() { - return "XA Null " + super.toString(); - } - - public int getIdentifiedUserDataSize() { - return 0; - } - - public ByteArrayFPIS getIdentifiedUserDataStream() { - return null; - } - - public String getTypeName() { - return "Null"; - } - -}