Package javax.media

Examples of javax.media.Buffer


  {
   
   
    assertTrue(Buffer.SEQUENCE_UNKNOWN == Long.MAX_VALUE - 1);
   
    test(new Buffer().getFlags(), 0);
    test(new Buffer().getDuration(), -1L);
    assertEquals(new Buffer().getFormat(), null);
    test(new Buffer().getLength(), 0);
    test(new Buffer().getOffset(), 0);
    test(new Buffer().getSequenceNumber(), 9223372036854775806L);
    test(new Buffer().getSequenceNumber(), Buffer.SEQUENCE_UNKNOWN);
    test(new Buffer().getTimeStamp(), -1L);
    assertEquals(new Buffer().getData(), null);
    assertEquals(new Buffer().getHeader(), null);
   
    {
      final Buffer b1 = new Buffer();
      b1.setData(new byte[10]);
      b1.setFlags(1);
      Format f = new VideoFormat(VideoFormat.JPEG);
      b1.setFormat(f);
      assertTrue(f == b1.getFormat());
      b1.setHeader(new byte[4]);
     
      testBuffer(b1);
 
    }
   
    {
      final Buffer b1 = new Buffer();
      b1.setData(new int[10]);
      b1.setFlags(2);
      testBuffer(b1);
     
    }
   
    {
      final Buffer b1 = new Buffer();
      b1.setData(new short[10]);
      b1.setFlags(3);
      testBuffer(b1);
    }
   
    {
      final Buffer b1 = new Buffer();
      b1.setData(new long[10])// tested float, double, String
      b1.setFlags(2);
      final Buffer b2 = (Buffer) b1.clone();
      assertTrue(b1.getData() == b2.getData())// strange anomaly with types other than byte, int, short
      assertTrue(b2.getData() != null);
      assertTrue(b1.getFlags() == b2.getFlags());
     
      final Buffer b3 = new Buffer();
      b3.copy(b1);
      assertTrue(b1.getData() == b3.getData());
      assertTrue(b1.getFlags() == b3.getFlags());
     
      final Buffer b4 = new Buffer();
      b4.copy(b1, true);
      assertTrue(b1.getData() != b4.getData());
      assertTrue(b4.getData() != null);
      assertTrue(b1.getFlags() == b4.getFlags());
   
      final Buffer b5 = new Buffer();
      b5.copy(b1, false);
      assertTrue(b1.getData() == b5.getData());
      assertTrue(b1.getFlags() == b5.getFlags());
    }
  }
View Full Code Here


    {
    final boolean allowNative = allowNatives[n];
   
    // test empty buffer, null format:
    {
      final Buffer b = new Buffer();
     
      try
      {
        final byte[] ba = (byte[]) p.doValidateData(b, 0, allowNative);   
        assertTrue(false);
      }
      catch (NullPointerException e)
      {
      }
    }
   
    // buf of len 5 with length set to 5, null format:
    {
      final Buffer b = new Buffer();
      final byte[] bBuf = new byte[5];
      b.setData(bBuf);
      b.setLength(bBuf.length);

      try
      {
        final byte[] ba = (byte[]) p.doValidateData(b, 0, allowNative);
        assertTrue(false);
      }
      catch (NullPointerException e)
      {
      }
       
     
    }
   
    // buf of len 5 with length set to 5, null format datatype:
    {
      final Buffer b = new Buffer();
      final byte[] bBuf = new byte[5];
      b.setFormat(new Format("abc", null));
      b.setData(bBuf);
      b.setLength(bBuf.length);

 
      final byte[] ba = (byte[]) p.doValidateData(b, 0, allowNative);
      assertEquals(ba, null)
      assertEquals(b.getData(), bBuf);

       
     
    }
   
    // buf of len 5 with length set to 5, byte array format
    final String[] encodings = new String[] {null, "abc"};
    for (int k = 0; k < encodings.length; ++k)
    {
      final String encoding = encodings[k];
   
      final Buffer b = new Buffer();
      final byte[] bBuf = new byte[] {1, 2, 3, 4, 5};
      b.setFormat(new Format(encoding, Format.byteArray));
      b.setData(bBuf);
      b.setLength(bBuf.length);

     
      for (int i = 0; i < 10; ++i)
      {
        final byte[] ba = (byte[]) p.doValidateData(b, i, allowNative);
        final int max = i > bBuf.length ? i : bBuf.length;
        assertEquals(ba.length, max)
        for (int j = 0; j < i; ++j)
        { 
          if (j < bBuf.length)
            assertEquals(ba[j], bBuf[j]);
          else
            assertEquals(ba[j], 0);
        }
      }
    }
   
   
   
    // non-byte-array format: - reallocates as type in format.
    {
      final Buffer b = new Buffer();
      final byte[] bBuf = new byte[] {1, 2, 3, 4, 5};
      b.setFormat(new Format(null, Format.intArray));
      b.setData(bBuf);
      b.setLength(bBuf.length);

     
      for (int i = 0; i < 10; ++i)
      {
        final int[] ba = (int[]) p.doValidateData(b, i, allowNative);
        final int max = i > bBuf.length ? i : bBuf.length;
        assertEquals(ba.length, i)
        for (int j = 0; j < i; ++j)
        {  assertEquals(ba[j], 0);
        }
      }
    }
   
//     don't set length
    {
      final Buffer b = new Buffer();
      final byte[] bBuf = new byte[] {1, 2, 3, 4, 5};
      b.setFormat(new Format(null, Format.byteArray));
      b.setData(bBuf);
      //b.setLength(bBuf.length);

     
      for (int i = 0; i < 10; ++i)
      {
View Full Code Here

  {
    final MyBasicPlugIn p = new MyBasicPlugIn();
   
    // test empty buffer
    {
      final Buffer b = new Buffer();
     
      assertEquals(p.doGetNativeData(b.getData()), 0L);
     
    }
   
    {
      final Buffer b = new Buffer();
      final byte[] bBuf = new byte[] {1, 2, 3, 4, 5};
      b.setData(bBuf);
      assertEquals(p.doGetNativeData(b.getData()), 0L);
     
    }
   
   
    {
      final Buffer b = new Buffer();
      final byte[] bBuf = new byte[] {1, 2, 3, 4, 5};
      b.setData(bBuf);
      b.setLength(100);
      b.setOffset(20);
      b.setDuration(100000);
      b.setDiscard(false);
      b.setFormat(new Format("abc", Format.byteArray));
      b.setSequenceNumber(1234);
      b.setTimeStamp(9999L);
      assertEquals(p.doGetNativeData(b.getData()), 0L);
     
    }
   
    {
      final Buffer b = new Buffer();
      final int[] bBuf = new int[] {1, 2, 3, 4, 5};
      b.setData(bBuf);
      b.setLength(100);
      b.setOffset(20);
      b.setDuration(100000);
      b.setDiscard(false);
      b.setFormat(new Format("abc", Format.intArray));
      b.setSequenceNumber(1234);
      b.setTimeStamp(9999L);
      assertEquals(p.doGetNativeData(b.getData()), 0L);
     
    }
   
    {
      final TracingBuffer b = new TracingBuffer();
      final Long n = new Long(1000);
      b.setData(n);
   
     
      assertEquals(p.doGetNativeData(b.getData()), 0L);
      //System.out.println(b.getStringBuffer().toString());
     
    }
   
  }
View Full Code Here

    throw new IllegalArgumentException("Unknown or unsupported data buffer type: " + dataBuffer);
    }
   
    final int bufferedImageType = bi.getType();
       
    final Buffer result = new Buffer();
    final Dimension size = new Dimension(bi.getWidth(), bi.getHeight());
    final int maxDataLength = -1; // TODO
    final int bitsPerPixel;
   
    final int red;
    final int green;
    final int blue;

    if (bufferedImageType == BufferedImage.TYPE_3BYTE_BGR)
    {
      bitsPerPixel = 24;
      red = 1;
      green = 2;
      blue = 3;
    }
    else if (bufferedImageType == BufferedImage.TYPE_INT_BGR)
    {
      bitsPerPixel = 32
      // TODO: test
      red = 0xFF;
      green = 0xFF00
      blue = 0xFF0000;
    }
    else if (bufferedImageType == BufferedImage.TYPE_INT_RGB)
    {
      bitsPerPixel = 32
      red = 0xFF0000;
      green = 0xFF00;
      blue = 0xFF;
    }
    else if (bufferedImageType == BufferedImage.TYPE_INT_ARGB)
    {
      bitsPerPixel = 32
      red = 0xFF0000;
      green = 0xFF00;
      blue = 0xFF;
      // just ignore alpha
    }
    else
   
      if (bi.getColorModel() instanceof ComponentColorModel && bi.getSampleModel() instanceof ComponentSampleModel)
      {
        final ComponentColorModel componentColorModel = (ComponentColorModel) bi.getColorModel();
        final ComponentSampleModel componentSampleModel = (ComponentSampleModel) bi.getSampleModel();
        final int[] offsets = componentSampleModel.getBandOffsets();
        if (dataBuffer instanceof DataBufferInt)
        {
          // TODO: untested
          bitsPerPixel = 32
          red = 0xFF << offsets[0];
          green = 0xFF << offsets[1];
          blue = 0xFF << offsets[2];

        }
        else if (dataBuffer instanceof DataBufferByte)
        {
          bitsPerPixel = componentSampleModel.getPixelStride() * 8// TODO: should it always be 24? or are the pixel stride and the bits per pixel unrelated?
          red = 1 + offsets[0];
          green = 1 + offsets[1];
          blue = 1 + offsets[2];
        }
        else
          throw new IllegalArgumentException("Unsupported buffered image type: " + bufferedImageType);
      }
      else if (bi.getColorModel() instanceof DirectColorModel)
      {
        // TODO: untested
        final DirectColorModel directColorModel = (DirectColorModel) bi.getColorModel();
        if (dataBuffer instanceof DataBufferInt)
        {
          bitsPerPixel = 32
          red = directColorModel.getRedMask();
          green = directColorModel.getGreenMask();
          blue = directColorModel.getBlueMask();
        }
        else
          throw new IllegalArgumentException("Unsupported buffered image type: " + bufferedImageType);
      }
      else
        throw new IllegalArgumentException("Unsupported buffered image type: " + bufferedImageType);
   
    result.setFormat(new RGBFormat(size, maxDataLength, dataType, frameRate, bitsPerPixel, red, green, blue));
    result.setData(pixels);
    result.setLength(pixelsLength);
    result.setOffset(0);
   
    return result;
  }
View Full Code Here

      this.streamIndex = streamIndex;
    }

    public void transferData(PushBufferStream stream)
    {
      final Buffer originalBuffer = new Buffer(); // TODO: find a way to reuse buffers/avoid allocating new memory each time
      try
      {
        stream.read(originalBuffer);
      } catch (IOException e)
      {
        originalBuffer.setEOM(true)// TODO
        originalBuffer.setDiscard(true)// TODO
        originalBuffer.setLength(0);
        if (!(e instanceof InterruptedIOException))  // logging interruptions is noisy.
          logger.log(Level.WARNING, "" + e, e);
      }
     
      final List<ClonedDataSource.ClonedPushBufferStream> clonedStreams = new ArrayList<ClonedDataSource.ClonedPushBufferStream>();
      synchronized (CloneablePushBufferDataSource.this)
      {
        for (ClonedDataSource clone : clones)
        {
          final ClonedDataSource.ClonedPushBufferStream clonedStream = (ClonedDataSource.ClonedPushBufferStream) clone.getStreams()[streamIndex];

          // mgodehardt: Only started cloned streams get data (this caused OutOfMemory Bugs)
          if ( clone.cloneStarted )
          {
            clonedStreams.add(clonedStream);
          }
        }
      }
     
      // TODO: additional synchronization?
      try
      {
        // put a clone of the buffer in each stream's buffer queue
        for (ClonedDataSource.ClonedPushBufferStream clonedStream : clonedStreams)
        {
          clonedStream.getBufferQueue().put(originalBuffer.clone());
         
        }
       
        // notify their transfer handlers asynchronously:
        for (ClonedDataSource.ClonedPushBufferStream clonedStream : clonedStreams)
View Full Code Here

  return os;
  }
 
  private Buffer createBuffer(byte[] data, int offset, int length)
  {
    Buffer b = new Buffer();
    // TODO: set format to something? - doesn't seem needed.
    b.setData(data);
    b.setOffset(offset);
    b.setLength(length);
    return b;
  }
View Full Code Here

    return b;
  }
 
  private Buffer createEOMBuffer()
  {
    Buffer b = new Buffer();
    // TODO: set format to something? - doesn't seem needed.
    b.setData(new byte[0]);
    b.setOffset(0);
    b.setLength(0);
    b.setEOM(true);
    return b;
  }
View Full Code Here

            if (a == null)    // then a < b, return -1
                return -1;
            if (b == null)
                return 1;    // a > b

            final Buffer aCast = (Buffer) a;
            final Buffer bCast = (Buffer) b;

            final JpegRTPHeader jpegRtpHeaderA = JpegRTPHeader.parse((byte[]) aCast.getData(), aCast.getOffset());
            final JpegRTPHeader jpegRtpHeaderB = JpegRTPHeader.parse((byte[]) bCast.getData(), bCast.getOffset());

            return jpegRtpHeaderA.getFragmentOffset() - jpegRtpHeaderB.getFragmentOffset();

        }
View Full Code Here

    }
    catch (NullPointerException e)
    {
    }
   
    final Buffer b = new Buffer();
    assertFalse(c.doIsEOM(b));
    assertFalse(c.getPendingEOM());
    b.setEOM(true);
    assertFalse(c.getPendingEOM());
    assertTrue(c.doIsEOM(b));
   
    assertFalse(c.getPendingEOM());
   
View Full Code Here

 
  public void testCheckInputBuffer()
  {
    {
      final MyBasicCodec c = new MyBasicCodec();
      final Buffer b = new Buffer();
     
      assertEquals(c.doCheckInputBuffer(b), false);
    }
   
    {
      final StringBuffer sb = new StringBuffer();
      final MyBasicCodec c = new MyBasicCodec(){

        //@Override
        protected boolean checkFormat(Format arg0)
        {
          sb.append("checkFormat");
          return super.checkFormat(arg0);
         
        }
       
      };
      final Buffer b = new Buffer();
      final Format f = new Format("abc");
      b.setFormat(f);
     
      assertEquals(c.doCheckInputBuffer(b), true);
      assertEquals(sb.toString(), "checkFormat")// checkInputBuffer calls checkFormat
     
      assertEquals(c.doCheckFormat(null), true);
      assertEquals(c.doCheckInputBuffer(new Buffer()), false);
     
    }
   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final Buffer b = new Buffer();
      final Format f = new YUVFormat();
      b.setFormat(f);
      c.setInputFormat(new RGBFormat());
     
      assertEquals(c.doCheckInputBuffer(b), true);
    }
   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final Buffer b = new Buffer();
      final Format f = new Format(null);
      b.setFormat(f);
      b.setLength(-1);
      b.setOffset(-1);
      b.setEOM(true);
      b.setDuration(-1L);
     
      c.setInputFormat(new RGBFormat());
     
      assertEquals(c.doCheckInputBuffer(b), true);
    }
 
    {
      final MyBasicCodec c = new MyBasicCodec();
      final TracingBuffer b = new TracingBuffer();
      final Format f = new Format(null);
      b.setFormat(f);
      b.setEOM(true);
     
      assertEquals(c.doCheckFormat(f), true);
      //System.out.println(b.getStringBuffer().toString());
      assertEquals(b.getStringBuffer().toString(), "setFormat(null)\nsetEOM\n");
     
    }
   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final TracingBuffer b = new TracingBuffer();
      final Format f = new Format(null);
      b.setFormat(f);
      b.setEOM(true);
     
      assertEquals(c.doCheckInputBuffer(b), true);
      assertEquals(b.getStringBuffer().toString(), "setFormat(null)\nsetEOM\nisEOM\n");
     
    }
   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final TracingBuffer b = new TracingBuffer();
      final Format f = null;
      b.setFormat(f);
      b.setEOM(true);
     
      assertEquals(c.doCheckInputBuffer(b), true);
      //System.out.println(b.getStringBuffer().toString());
      assertEquals(b.getStringBuffer().toString(), "setFormat(null)\nsetEOM\nisEOM\n");
     
    }
   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final TracingBuffer b = new TracingBuffer();
      final Format f = new Format(null);
      b.setFormat(f);
     
      assertEquals(b.getStringBuffer().toString(), "setFormat(null)\n");
      assertEquals(c.doCheckInputBuffer(b), true);
      assertEquals(b.getStringBuffer().toString(), "setFormat(null)\nisEOM\ngetFormat\ngetFormat\n");
     
    }
   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final TracingBuffer b = new TracingBuffer();
      final TracingFormat f = new TracingFormat(null);
      b.setFormat(f);
     
      assertEquals(c.doCheckInputBuffer(b), true);
      assertEquals(b.getStringBuffer().toString(), "setFormat(null)\nisEOM\ngetFormat\ngetFormat\n");
     
     
    }

   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final TracingBuffer b = new TracingBuffer();
      final Format f = new Format("xyz");
      b.setFormat(f);
     
      assertEquals(c.doCheckInputBuffer(b), true);
      assertEquals(b.getStringBuffer().toString(), "setFormat(xyz)\nisEOM\ngetFormat\ngetFormat\n");
    }
   
    {
      final MyBasicCodec c = new MyBasicCodec();
      final TracingBuffer b = new TracingBuffer();
      b.setEOM(true);
      final Format f = new Format("xyz");
      b.setFormat(f);
     
      assertEquals(c.doCheckInputBuffer(b), true);
      //System.out.println(b.getStringBuffer().toString());
      assertEquals(b.getStringBuffer().toString(), "setEOM\nsetFormat(xyz)\nisEOM\n");
    }
   
   
  }
View Full Code Here

TOP

Related Classes of javax.media.Buffer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.