X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fmedia%2FMediaHandlerRealVideo.java;fp=source%2Fmircoders%2Fmedia%2FMediaHandlerRealVideo.java;h=e960ec36f0c388b4c5f6fc1c4c571d0e66468256;hb=eed379d582e04f6a9642358fbb5b7c4b427f969b;hp=0000000000000000000000000000000000000000;hpb=3b9eb37b9becbcb00a23790fc0074c956c7a992f;p=mir.git diff --git a/source/mircoders/media/MediaHandlerRealVideo.java b/source/mircoders/media/MediaHandlerRealVideo.java new file mode 100755 index 00000000..e960ec36 --- /dev/null +++ b/source/mircoders/media/MediaHandlerRealVideo.java @@ -0,0 +1,120 @@ +/* + * put your module comment here + */ + + +package mircoders.media; + +import java.util.*; + +import mir.media.*; +import mir.entity.*; +import mir.misc.*; +import mir.storage.*; + + + +/** + * Handles real video. like MediaHandlerAudio, except it manages the ram file, too. + * + * @see mir.media.MediaHandlerGeneric + * @see mir.media.MirMedia + * @author john + * @version 11.10.2001 + */ + + +public class MediaHandlerRealVideo extends MediaHandlerGeneric implements MirMedia +{ + + private String imageHost = MirConfig.getProp("Producer.Image.Host"); + private static String imageRoot = MirConfig.getProp("Producer.ImageRoot"); + private Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home")+"log/media.log"); + + public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt ) + throws MirMediaException { + + String ext = mediaTypeEnt.getValue("name"); + String dir = MirConfig.getProp("Producer.Media.Path"); + String rtspDir = MirConfig.getProp("Producer.RealMedia.Path"); + String mediaHost = MirConfig.getProp("Producer.Media.Host"); + String rtspMediaHost = MirConfig.getProp("Producer.RealMedia.Host"); + + String mediaFname = ent.getId()+"."+ext; + String RealMediaPointer = rtspMediaHost+mediaFname; + String RealMediaFile = ent.getId()+".ram"; + String date = ent.getValue("date"); + String datePath = StringUtil.webdbDate2path(date); + Integer size = new Integer(uploadedData.length); + try { + FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData); + //FileUtil.write(rtspDir+"/"+mediaFname, uploadedData); + //were done with the data, dereference. + uploadedData=null; + + //write an rm file + FileUtil.write(dir+"/"+RealMediaFile,RealMediaPointer.getBytes()); + ent.setValueForProperty("is_produced", "1"); + ent.setValueForProperty("icon_is_produced", "1"); + ent.setValueForProperty("publish_path",datePath+"/"+mediaFname); + //ent.setValueForProperty("publish_path", RealMediaFile); + ent.setValueForProperty("publish_server", mediaHost); + ent.setValueForProperty("size", size.toString()); + ent.update(); + } catch (Exception e) { + theLog.printError(e.toString()); + throw new MirMediaException(e.toString()); + } + + return true; + } + + + + + + public String getPublishHost() + { + return MirConfig.getProp("Producer.Media.Host"); + } + + + + public String getURL(Entity ent, Entity mediaTypeEnt) + { + int size = Integer.parseInt(ent.getValue("size"), 10)/1024; + String title = ent.getValue("title")+ + " - "+mediaTypeEnt.getValue("name")+" "+ + size+" KB"; + return StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+ + ent.getValue("publish_path"), title, imageRoot, getBigIcon()); + } + + + private static String tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo"); + private static String bigIcon = MirConfig.getProp("Producer.Icon.BigVideo"); + + public String getTinyIcon() + { + return tinyIcon; + } + + public String getBigIcon() + { + return bigIcon; + } + + public String getIconAlt() + { + return "Video"; + } + + public boolean isVideo() + { + return true; + } + +} + + +