- Timestamp:
- 10/26/07 17:54:04 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Jav_CO/com/scenari/s/co/transform/swf/HTransformerSwfHeader.java
r9867 r9878 49 49 import java.io.Writer; 50 50 51 import com.scenari.ext.swf.FSHeader; 51 import com.scenari.ext.swf.FlashHeader; 52 import com.scenari.ext.swf.FlvHeader; 53 import com.scenari.ext.swf.SwfHeader; 52 54 import com.scenari.s.co.transform.HTransformParams; 53 55 import com.scenari.s.co.transform.HTransformer; … … 80 82 */ 81 83 public void hTransform(Object pSrc, Object pRes, HTransformParams pParams) throws Exception { 82 byte[] vData; 83 FSHeader vHeader; 84 FlashHeader vHeader; 84 85 InputStream vIn = null; 85 86 … … 89 90 90 91 try { 92 byte[] vData; 93 InputStream vStream; 91 94 if (pSrc instanceof InputStream) { 92 95 vData = new byte[4096]; 93 ((InputStream) pSrc).read(vData); 94 vHeader = new FSHeader(vData, (InputStream)pSrc ); 96 vStream = (InputStream) pSrc; 95 97 } else { 96 98 vData = new byte[Math.min((int)((File) pSrc).length(), 4096)]; 99 //vIn sera clos dans la clause finally 97 100 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); 101 111 102 112 //Encoding … … 112 122 vXmlWriter = new HXmlWriterIO(vResult); 113 123 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 } 124 155 } catch (Exception e) { 125 156 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.