Ignore:
Timestamp:
10/26/07 17:54:04 (4 years ago)
Author:
sys
Message:

swf2props : parsing des formats FLV et SWF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Jav_CO/com/scenari/s/co/transform/swf/HTransformerSwfHeader.java

    r9867 r9878  
    4949import java.io.Writer; 
    5050 
    51 import com.scenari.ext.swf.FSHeader; 
     51import com.scenari.ext.swf.FlashHeader; 
     52import com.scenari.ext.swf.FlvHeader; 
     53import com.scenari.ext.swf.SwfHeader; 
    5254import com.scenari.s.co.transform.HTransformParams; 
    5355import com.scenari.s.co.transform.HTransformer; 
     
    8082         */ 
    8183        public void hTransform(Object pSrc, Object pRes, HTransformParams pParams) throws Exception { 
    82                 byte[] vData; 
    83                 FSHeader vHeader; 
     84                FlashHeader vHeader; 
    8485                InputStream vIn = null; 
    8586                 
     
    8990 
    9091                try { 
     92                        byte[] vData; 
     93                        InputStream vStream; 
    9194                        if (pSrc instanceof InputStream) { 
    9295                                vData = new byte[4096]; 
    93                                 ((InputStream) pSrc).read(vData); 
    94                                 vHeader = new FSHeader(vData, (InputStream)pSrc ); 
     96                                vStream = (InputStream) pSrc; 
    9597                        } else { 
    9698                                vData = new byte[Math.min((int)((File) pSrc).length(), 4096)]; 
     99                                //vIn sera clos dans la clause finally 
    97100                                vIn = new FileInputStream((File) pSrc); 
    98                                 vIn.read(vData); 
    99                                 vHeader = new FSHeader(vData, vIn); 
    100                         } 
     101                                vStream = vIn; 
     102                        } 
     103                        int vRead = vStream.read(vData); 
     104                        while(vRead != -1 && vRead < vData.length) { 
     105                                //On s'assure que la tableau a été entièrement renseigné, ou qu'on est à la fin du stream 
     106                                int vRead2 = vStream.read(vData, vRead, vData.length - vRead); 
     107                                if(vRead2==-1) break; 
     108                                vRead += vRead2; 
     109                        } 
     110                        vHeader = FlashHeader.buildHeader(vData, vStream); 
    101111         
    102112                        //Encoding 
     
    112122                        vXmlWriter = new HXmlWriterIO(vResult); 
    113123                        vXmlWriter.hWriteHeaderXml("utf-8"); 
    114                         vXmlWriter.hWriteStartTag("swfHeader"); 
    115                         vXmlWriter.hWriteAttribut("signature", vHeader.getSignature()); 
    116                         vXmlWriter.hWriteAttribut("version", HCharSeqUtil.hGetIntToString(vHeader.getVersion())); 
    117                         vXmlWriter.hWriteAttribut("frameRate", String.valueOf(vHeader.getFrameRate())); 
    118                         vXmlWriter.hWriteAttribut("numberOfFrames", String.valueOf(vHeader.getNumberOfFrames())); 
    119                         vXmlWriter.hWriteAttribut("x1", HCharSeqUtil.hGetIntToString(vHeader.getMinX())); 
    120                         vXmlWriter.hWriteAttribut("y1", HCharSeqUtil.hGetIntToString(vHeader.getMinY())); 
    121                         vXmlWriter.hWriteAttribut("x2", HCharSeqUtil.hGetIntToString(vHeader.getMaxX())); 
    122                         vXmlWriter.hWriteAttribut("y2", HCharSeqUtil.hGetIntToString(vHeader.getMaxY())); 
    123                         vXmlWriter.hWriteEndEmptyTag(); 
     124                        if(vHeader instanceof SwfHeader) { 
     125                                SwfHeader vSwfHeader = (SwfHeader)vHeader; 
     126                                vXmlWriter.hWriteStartTag("swfHeader"); 
     127                                vXmlWriter.hWriteAttribut("signature", vSwfHeader.getSignature()); 
     128                                vXmlWriter.hWriteAttribut("version", HCharSeqUtil.hGetIntToString(vSwfHeader.getVersion())); 
     129                                vXmlWriter.hWriteAttribut("frameRate", String.valueOf(vSwfHeader.getFrameRate())); 
     130                                vXmlWriter.hWriteAttribut("numberOfFrames", String.valueOf(vSwfHeader.getNumberOfFrames())); 
     131                                vXmlWriter.hWriteAttribut("x1", HCharSeqUtil.hGetIntToString(vSwfHeader.getMinX())); 
     132                                vXmlWriter.hWriteAttribut("y1", HCharSeqUtil.hGetIntToString(vSwfHeader.getMinY())); 
     133                                vXmlWriter.hWriteAttribut("x2", HCharSeqUtil.hGetIntToString(vSwfHeader.getMaxX())); 
     134                                vXmlWriter.hWriteAttribut("y2", HCharSeqUtil.hGetIntToString(vSwfHeader.getMaxY())); 
     135                                vXmlWriter.hWriteEndEmptyTag(); 
     136                        } else if(vHeader instanceof FlvHeader) { 
     137                                FlvHeader vFlvHeader = (FlvHeader)vHeader; 
     138                                vXmlWriter.hWriteStartTag("flvHeader"); 
     139                                vXmlWriter.hWriteAttribut("version", HCharSeqUtil.hGetIntToString(vFlvHeader.getVersion())); 
     140                                vXmlWriter.hWriteAttribut("hasAudio", String.valueOf(vFlvHeader.getHasAudio())); 
     141                                vXmlWriter.hWriteAttribut("hasVideo", String.valueOf(vFlvHeader.getHasVideo())); 
     142                                vXmlWriter.hWriteAttribut("duration", String.valueOf(vFlvHeader.getDuration())); 
     143                                vXmlWriter.hWriteAttribut("audioCodec", vFlvHeader.getAudioCodec()); 
     144                                vXmlWriter.hWriteAttribut("audioSampleRate", String.valueOf(vFlvHeader.getAudioCodec())); 
     145                                vXmlWriter.hWriteAttribut("audioSampleSize", String.valueOf(vFlvHeader.getAudioSampleSize())); 
     146                                vXmlWriter.hWriteAttribut("audioType", vFlvHeader.getAudioType()); 
     147                                vXmlWriter.hWriteAttribut("videoCodec", vFlvHeader.getVideoCodec()); 
     148                                vXmlWriter.hWriteAttribut("frameType", vFlvHeader.getFrameType()); 
     149                                vXmlWriter.hWriteAttribut("width", HCharSeqUtil.hGetIntToString(vFlvHeader.getWidth())); 
     150                                vXmlWriter.hWriteAttribut("height", HCharSeqUtil.hGetIntToString(vFlvHeader.getHeight())); 
     151                                vXmlWriter.hWriteEndEmptyTag(); 
     152                        } else { 
     153                                vXmlWriter.hWriteEmptyTag("formatUnknown"); 
     154                        } 
    124155                } catch (Exception e) { 
    125156                        throw (Exception) HLogMgr.hAddMessage(e, "Echec à l'extraction des propriétés d'une image."); 
Note: See TracChangeset for help on using the changeset viewer.