亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mpegplayer.java

?? 用java寫出的播放器
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
	Y = 512 + data[offset++];	YCbCr = frameBuffer[address];	frameBuffer[address++] =	  (clip[((YCbCr >> 0)  & 0xFF) + Y ] << 0) +	  (clip[((YCbCr >> 8)  & 0xFF) + Cb] << 8) +	  (clip[((YCbCr >> 16) & 0xFF) + Cr] << 16);	Y = 512 + data[offset++];	YCbCr = frameBuffer[address];	frameBuffer[address++] =	  (clip[((YCbCr >> 0)  & 0xFF) + Y ] << 0) +	  (clip[((YCbCr >> 8)  & 0xFF) + Cb] << 8) +	  (clip[((YCbCr >> 16) & 0xFF) + Cr] << 16);	offset += 16-2;	address += width-2;	Y = 512 + data[offset++];	YCbCr = frameBuffer[address];	frameBuffer[address++] =	  (clip[((YCbCr >> 0)  & 0xFF) + Y ] << 0) +	  (clip[((YCbCr >> 8)  & 0xFF) + Cb] << 8) +	  (clip[((YCbCr >> 16) & 0xFF) + Cr] << 16);	Y = 512 + data[offset++];	YCbCr = frameBuffer[address];	frameBuffer[address++] =	  (clip[((YCbCr >> 0)  & 0xFF) + Y ] << 0) +	  (clip[((YCbCr >> 8)  & 0xFF) + Cb] << 8) +	  (clip[((YCbCr >> 16) & 0xFF) + Cr] << 16);	offset -= 16;	address -= width;	index++;      }      offset += 16;      address += width+width-16;    }  }  private static int data[] = new int[256];  private static int clip[] = new int[1024];  static {    for (int i = 0; i < 1024; i++) {      clip[i] = Math.min(Math.max(i - 512, 0), 255);    }  }}/** * The MPEG-1 video stream decoder according to ISO 11172-2. */class MPEGVideoStream {  /**   * MPEG-1 video frame rate table   */  private static final int frameRateTable[] = {    30, 24, 24, 25, 30, 30, 50, 60, 60, 12, 30, 30, 30, 30, 30, 30  };  /**   * MPEG-1 video stream frame rate (frames per second)   */  private int frameRate;  /**   * MPEG-1 video stream bit rate (bits per second)   */  private int bitRate;  /**   * MPEG-1 video stream VBV buffer size (16 kbit steps)   */  private int bufferSize;  /**   * MPEG-1 video stream time record (in frames)   */  private int hour, minute, second, frame;  /**   * MPEG-1 video stream current picture   */  private Picture picture;  /**   * MPEG-1 video stream boolean fields   */  private boolean constrained, dropped, closed, broken;  /**   * The last MPEG-1 picture frame parsed   */  private int frameBuffer[];  /**   * The underlaying VLC input stream   */  private VLCInputStream stream;  /**   * Initializes the MPEG-1 video input stream object   */  public MPEGVideoStream(InputStream inputStream) throws IOException {    /* set ups the VLC input stream */    stream = new VLCInputStream(inputStream);    /* set ups the picture decoder */    picture = new Picture();    /* reset rates and buffer size */    frameRate = 0;    bitRate = 0;    bufferSize = 0;    /* reset time record */    hour = 0;    minute = 0;    second = 0;    frame = 0;    /* reset boolean fields */    constrained = false;    dropped = false;    closed = false;    broken = false;    /* reset last frame buffer */    frameBuffer = getFrame();  }  /**   * Returns the MPEG-1 video stream frame rate   */  public int getFrameRate() {    return frameRate;  }  /**   * Changes the MPEG-1 video stream frame rate   */  public void setFrameRate(int rate) {    frameRate = rate;  }  /**   * Returns the MPEG-1 video stream bit rate   */  public int getBitRate() {    return bitRate;  }  /**   * Changes the MPEG-1 video stream bit rate   */  public void setBitRate(int rate) {    bitRate = rate;  }  /**   * Returns the MPEG-1 video stream VBV buffer size   */  public int getBufferSize() {    return bufferSize;  }  /**   * Changes the MPEG-1 video stream VBV buffer size   */  public void setBufferSize(int size) {    bufferSize = size;  }  /**   * Returns the MPEG-1 video stream time record   */  public long getTime() {    return frame + getFrameRate() * (second + 60L * minute + 3600L * hour);  }  /**   * Changes the MPEG-1 video stream time record   */  public void setTime(int hour, int minute, int second, int frame) {    this.hour = hour;    this.minute = minute;    this.second = second;    this.frame = frame;  }  /**   * Returns true if the video parameters are constrained   */  public boolean isConstrained() {    return constrained;  }  /**   * Enables or disables the video parameters constrains   */  public void setConstrained(boolean constrained) {    this.constrained = constrained;  }  /**   * Returns true if the group of pictures drops frames   */  public boolean isDropped() {    return dropped;  }  /**   * Changes the dropped flag of the group of pictures   */  public void setDropped(boolean dropped) {    this.dropped = dropped;  }  /**   * Returns true if the group of pictures is closed   */  public boolean isClosed() {    return closed;  }  /**   * Changes the closed flag of the group of pictures   */  public void setClosed(boolean closed) {    this.closed = closed;  }  /**   * Returns true if there is a broken link   */  public boolean isBroken() {    return broken;  }  /**   * Changes the broken flag of the group of pictures   */  public void setBroken(boolean broken) {    this.broken = broken;  }  /**   * Returns the MPEG-1 video picture dimensions   */  public int getWidth() {    return picture.getWidth();  }  public int getHeight() {    return picture.getHeight();  }  public int getStride() {    return picture.getStride();  }  /**   * Parses the next frame of the MPEG-1 video stream   */  public int[] getFrame() throws IOException {    while (stream.showCode() != BitInputStream.SEQ_END_CODE) {      switch (stream.getCode()) {      case BitInputStream.SEQ_START_CODE:	getSequenceHeader(stream);	break;      case BitInputStream.GOP_START_CODE:	getGroupPictures(stream);	break;      case BitInputStream.PIC_START_CODE:	return getPictureFrame(stream);      case BitInputStream.USER_START_CODE:      case BitInputStream.EXT_START_CODE:	break;      default:	// throw new IOException("Unknown MPEG-1 video layer start code");	break;      }    }    if (frameBuffer != picture.getLastFrame()) {      frameBuffer = picture.getLastFrame();      return frameBuffer;    }    return null;  }  /**   * Parses the sequence header from the MPEG-1 video stream   */  private void getSequenceHeader(VLCInputStream stream) throws IOException {    /* read picture dimensions in pixels */    int width = stream.getBits(12);    int height = stream.getBits(12);    int aspectRatio = stream.getBits(4);    /* changes the MPEG-1 picture dimension */    if (picture.getWidth() == 0 && picture.getHeight() == 0)      picture.setSize(width, height);    /* read picture and bit rates */    setFrameRate(frameRateTable[stream.getBits(4)]);    setBitRate(400 * stream.getBits(18));    stream.getBits(1);    /* read VBV buffer size */    setBufferSize(stream.getBits(10));    /* read constrained parameters flag */    setConstrained(stream.getBits(1) != 0);    /* read quantization matrix for intra coded blocks */    int intraMatrix[] = picture.getMacroblock().getIntraMatrix();    if (stream.getBits(1) != 0) {      for (int i = 0; i < 64; i++)	intraMatrix[i] = stream.getBits(8);    }    /* read quantization matrix for inter coded blocks */    int interMatrix[] = picture.getMacroblock().getInterMatrix();    if (stream.getBits(1) != 0) {      for (int i = 0; i < 64; i++)	interMatrix[i] = stream.getBits(8);    }  }  /**   * Parses group of pictures header from the MPEG-1 video stream   */  private void getGroupPictures(VLCInputStream stream) throws IOException {    /* read the drop frame flag */    setDropped(stream.getBits(1) != 0);    /* read the time record */    int hour = stream.getBits(5);    int minute = stream.getBits(6);    int marker = stream.getBits(1);    int second = stream.getBits(6);    int frame = stream.getBits(6);    setTime(hour, minute, second, frame);    /* read closed and broken link flags */    setClosed(stream.getBits(1) != 0);    setBroken(stream.getBits(1) != 0);  }  /**   * Parses the next picture from the MPEG-1 video stream   */  private int[] getPictureFrame(VLCInputStream stream) throws IOException {    return picture.getFrame(stream);  }}/** * The MPEG-1 video stream decoder applet that is intended to run * embedded inside of a Web page or another application.  */public class MPEGPlayer extends Applet implements Runnable {  /**   * The MPEG-1 video input stream   */  private MPEGVideoStream stream;  /**   * The picture frame buffer   */  private int pixels[], width, height, stride;  /**   * The memory image color model   */  private DirectColorModel model = null;  /**   * The memory image source   */  private MemoryImageSource source = null;  /**   * The memory image object   */  private Image image = null;  /**   * The applet's execution thread   */  private Thread kicker = null;  /**   * The video stream location   */  private URL url = null;  /**   * The repeat boolean parameter   */  private boolean repeat = true;  /**   * Applet information   */  public String getAppletInfo() {    return "MPEGPlayer 0.9 (15 Apr 1998), Carlos Hasan (chasan@dcc.uchile.cl)";  }  /**   * Parameters information   */  public String[][] getParameterInfo() {    String info[][] = {      { "source", "URL", "MPEG-1 video stream location" },      { "repeat", "boolean", "repeat the video sequence" } };    return info;  }  /**   * Applet initialization   */  public void init() {    try {      if (getParameter("source") != null)	url = new URL(getDocumentBase(), getParameter("source"));      if (getParameter("repeat") != null)	repeat = getParameter("repeat").equalsIgnoreCase("true");    }    catch (MalformedURLException exception) {      showStatus("MPEG Exception: " + exception);    }  }  /**   * Start the execution of the applet   */  public void start() {    if (kicker == null && url != null) {      kicker = new Thread(this);      kicker.start();    }    showStatus(getAppletInfo());  }  /**   * Stop the execution of the applet   */  public void stop() {    if (kicker != null && kicker.isAlive()) {      kicker.stop();    }    kicker = null;  }  /**   * The applet main execution code   */  public void run() {    int frame[];    long time;    try {      do {	stream = new MPEGVideoStream(url.openStream());	width = stream.getWidth();	height = stream.getHeight();	stride = stream.getStride();	resize(width, height);	pixels = new int[stride * height];        model = new DirectColorModel(24, 0x0000ff, 0x00ff00, 0xff0000);	time = System.currentTimeMillis();        while ((frame = readFrame()) != null) {	  drawFrame(frame, width, height, stride);	  source = new MemoryImageSource(width, height, model,pixels,0,stride);	  image = createImage(source);	  paint(getGraphics());          time += 1000L / stream.getFrameRate();	  try {	    Thread.sleep(Math.max(time - System.currentTimeMillis(), 0));	  }	  catch (InterruptedException exception) {	  }          image.flush();	}      } while (repeat);    }    catch (IOException exception) {      showStatus("MPEG I/O Exception: " + exception);    }  }    /**   * Paint the current frame   */  public void paint(Graphics graphics) {    if (image != null)      graphics.drawImage(image, 0, 0, null);  }    /**   * Reads the next MPEG-1 video frame   */  private int[] readFrame() {    while (true) {      try {	return stream.getFrame();      }      catch (Exception exception) {	showStatus("MPEG Exception: " + exception);      }    }  }    /**   * Draws the current MPEG-1 video frame   */  private void drawFrame(int frame[], int width, int height, int stride) {    int offset = 0;    for (int y = 0; y < height; y++) {      for (int x = 0; x < width; x++) {	int YCbCr = frame[offset];	int Y  = 512 +	((YCbCr >>  0) & 0xff);	int Cb = cbtable[(YCbCr >>  8) & 0xff];	int Cr = crtable[(YCbCr >> 16) & 0xff];	pixels[offset++] =	  (clip[Y + (Cr >> 16)] << 0) +	  (clip[Y + (((Cb + Cr) << 16) >> 16)] << 8) +	  (clip[Y + (Cb >> 16)] << 16);      }      offset += stride - width;    }  }    /**   * Color conversion lookup tables   */  private static int clip[], cbtable[], crtable[];  static {    clip = new int[1024];    cbtable = new int[256];    crtable = new int[256];    for (int i = 0; i < 1024; i++) {      clip[i] = Math.min(Math.max(i - 512, 0), 255);    }    for (int i = 0; i < 256; i++) {      int level = i - 128;      cbtable[i] = (((int)(1.77200 * level)) << 16) - ((int)(0.34414 * level));      crtable[i] = (((int)(1.40200 * level)) << 16) - ((int)(0.71414 * level));    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线精品秘密一区二区| aaa欧美日韩| 中文字幕视频一区二区三区久| 色av成人天堂桃色av| 国产在线不卡一卡二卡三卡四卡| 亚洲区小说区图片区qvod| 日韩视频在线观看一区二区| 91亚洲大成网污www| 久久99国内精品| 亚洲一卡二卡三卡四卡五卡| 日本一区二区三区四区| 欧美一区二区在线看| 色婷婷综合在线| 成人福利电影精品一区二区在线观看| 亚洲国产wwwccc36天堂| 亚洲国产精品成人综合色在线婷婷 | 欧美亚洲日本国产| 国产精品亚洲视频| 久久99国内精品| 国产不卡视频一区| 秋霞午夜av一区二区三区| 亚洲自拍与偷拍| 中文字幕一区二区三区不卡在线 | 在线播放91灌醉迷j高跟美女| 不卡在线观看av| 国产在线观看一区二区| 久久精品国产色蜜蜜麻豆| 亚洲国产精品影院| 一区二区三区视频在线观看| 国产精品久久久久久久蜜臀| 久久女同性恋中文字幕| 亚洲精品一区二区三区在线观看| 欧美日韩1区2区| 欧美三区在线视频| 欧美日韩在线一区二区| 欧美性生活大片视频| 91啪九色porn原创视频在线观看| 国产成人8x视频一区二区| 国产精品99久久久| 国产精品一区免费在线观看| 国产一区二区免费看| 国产中文字幕精品| 国产激情一区二区三区桃花岛亚洲| 久久成人免费网| 国产一区二区在线影院| 国产自产2019最新不卡| 国产很黄免费观看久久| 国产成人午夜精品5599 | 欧美精品成人一区二区三区四区| 色成年激情久久综合| 欧美制服丝袜第一页| 欧美性猛交xxxx黑人交| 欧美日韩成人在线| 日韩一区二区精品在线观看| 欧美成人猛片aaaaaaa| 久久亚洲一区二区三区四区| 国产日韩欧美麻豆| 日韩一区欧美一区| 亚洲综合在线视频| 日韩国产高清在线| 17c精品麻豆一区二区免费| 亚洲免费在线播放| 亚洲第一在线综合网站| 亚洲国产精品一区二区尤物区| 日韩精品亚洲专区| 精品一区二区三区免费播放 | 国产一区二区三区视频在线播放| 激情综合网av| 99精品国产99久久久久久白柏| 91免费看片在线观看| 欧美精品一卡两卡| 久久精品视频在线免费观看| 中文字幕日韩一区| 日本不卡视频一二三区| 国产精品66部| 久久久亚洲高清| 亚洲欧美日韩国产综合| 日日噜噜夜夜狠狠视频欧美人 | 在线亚洲+欧美+日本专区| 欧美剧情电影在线观看完整版免费励志电影 | 亚洲欧美一区二区三区孕妇| 婷婷综合五月天| 国产成人午夜高潮毛片| 欧美亚洲愉拍一区二区| 久久日韩粉嫩一区二区三区| 亚洲综合在线免费观看| 国产综合色产在线精品| 欧美系列日韩一区| 精品福利一区二区三区| 亚洲精品亚洲人成人网| 久久不见久久见免费视频7| 99久久综合99久久综合网站| 777午夜精品免费视频| 国产精品狼人久久影院观看方式| 亚洲成a人v欧美综合天堂| 国产v日产∨综合v精品视频| 欧美麻豆精品久久久久久| 国产精品狼人久久影院观看方式| 免费观看30秒视频久久| 在线日韩av片| 国产区在线观看成人精品| 青青国产91久久久久久| 色噜噜狠狠成人网p站| 久久久综合视频| 日本不卡免费在线视频| 在线观看免费一区| 国产精品污污网站在线观看| 日本女优在线视频一区二区| 91九色最新地址| 日本一区二区视频在线观看| 美女任你摸久久| 欧美日韩免费一区二区三区视频| 国产精品女主播在线观看| 精品无人码麻豆乱码1区2区| 欧美视频中文字幕| 亚洲人吸女人奶水| 福利一区二区在线| 久久伊人中文字幕| 麻豆精品国产传媒mv男同 | 欧美三级一区二区| 亚洲欧洲韩国日本视频| 国产精品99久久久久久似苏梦涵 | 国产精品羞羞答答xxdd| 欧美va亚洲va在线观看蝴蝶网| 亚洲成人综合视频| 色噜噜狠狠色综合欧洲selulu| 国产精品久久久久aaaa樱花| 国产精品亚洲第一区在线暖暖韩国| 日韩视频在线你懂得| 美女在线视频一区| 91精品国产欧美一区二区成人| 亚洲成av人片一区二区三区| 欧美日韩在线直播| 午夜精品福利一区二区蜜股av| 欧美日韩一级二级三级| 亚洲国产另类av| 欧美伦理电影网| 日韩精品乱码av一区二区| 欧美日韩精品专区| 天堂av在线一区| 欧美日韩国产一级片| 亚洲成av人片在www色猫咪| 欧美伦理影视网| 久久精品国产精品亚洲红杏| 日韩精品自拍偷拍| 国产一区视频网站| 国产午夜亚洲精品午夜鲁丝片| 国产99久久久久久免费看农村| 国产欧美视频在线观看| 暴力调教一区二区三区| 亚洲视频一区在线| 精品视频色一区| 久久国产精品99久久久久久老狼| 精品伦理精品一区| 国产白丝精品91爽爽久久| 成人免费在线观看入口| 91黄色激情网站| 日韩vs国产vs欧美| 精品国产凹凸成av人导航| 成人美女视频在线观看| 亚洲蜜桃精久久久久久久| 欧美日产在线观看| 国产一区二区三区在线观看免费| 国产精品久久久99| 欧洲av一区二区嗯嗯嗯啊| 麻豆91在线播放免费| 日韩国产欧美视频| 久久久亚洲精品石原莉奈| 91影视在线播放| 视频在线在亚洲| 国产亚洲短视频| 91高清视频在线| 蜜臀av性久久久久蜜臀aⅴ| 久久精品日产第一区二区三区高清版| 成人高清伦理免费影院在线观看| 亚洲观看高清完整版在线观看| 精品国产一区二区在线观看| 国产成人午夜电影网| 亚洲激情图片一区| 精品国产乱码久久久久久久| 99久久国产综合精品色伊| 日韩高清在线观看| 亚洲国产精品99久久久久久久久| 欧美午夜在线一二页| 国产成人免费网站| 丝袜美腿亚洲色图| 国产精品久久久一本精品| 91精品婷婷国产综合久久性色| 不卡一区中文字幕| 精品在线观看免费| 亚洲免费三区一区二区| 精品欧美乱码久久久久久| 91亚洲资源网| 国产酒店精品激情| 天堂va蜜桃一区二区三区漫画版| 国产精品久久久久久久久快鸭| 日韩欧美高清在线| 欧美写真视频网站| jiyouzz国产精品久久| 久久精品国产一区二区三区免费看|