Android Open Source - rfcx-guardian-android Block Encode Request






From Project

Back to project page rfcx-guardian-android.

License

The source code is released under:

Apache License

If you think the Android project rfcx-guardian-android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2010  Preston Lacey http://javaflacencoder.sourceforge.net/
 * All Rights Reserved.//  w  ww . ja va2  s. co m
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

package net.sourceforge.javaFlacEncoder;
/**
 * BlockEncodeRequests are used to store a full block and necessary information
 * to encode such block. It is assumed member variables will be accessed
 * directly(for speed considerations). This Class simply gathers all values
 * into a single object, but handles no encoding logic itself.
 * @author Preston Lacey
 */
public class BlockEncodeRequest {
  /* Sample data, may be interleaved if multiple channels exist.*/
  volatile int[] samples;
  /* Number of valid samples in this request */
  volatile int count;
  /* Index of samples[] where the first valid sample exists */
  volatile int start;
  /* Number of indices to skip between valid samples */
  volatile int skip;
  /* Frame-number this block is assigned */
  volatile long frameNumber;
  /* Location to store results to. For safety, use an empty element*/
  volatile EncodedElement result;
  /* Stores whether the result should be valid */
  volatile boolean valid;
  /* Number of elements actually encoded. */
  volatile int encodedSamples;

  /**
   * Set all values, preparing this object to be sent to an encoder. Member
   * variable "valid" is set to false by this call.
   *
   * @param samples Sample data, interleaved if multiple channels are used
   * @param count Number of valid samples
   * @param start Index of first valid sample
   * @param skip  Number of samples to skip between samples(this should be
   * equal to number-of-channels minus 1.
   * @param frameNumber Framenumber assigned to this block.
   * @param result Location to store result of encode.
   */
  public void setAll(int[] samples, int count, int start, int skip,
      long frameNumber, EncodedElement result) {
//    assert(start == 0);
    this.samples = samples;
    this.count = count;
    this.start = start;
    this.skip = skip;
    this.frameNumber = frameNumber;
    this.result = result;
    valid = false;
    this.encodedSamples = 0;
  }

  public int addInterleavedSamples(int[] newSamples, int offset, int addCount, int max) {
    //System.err.println("offset:addCount:max :: " +offset+":"+addCount+":"+max);
    assert(max <= this.samples.length/(this.skip+1));
    if(max > this.samples.length)
      max = this.samples.length/(skip+1);

    int remaining = count;
    int spaceLeft = max - count;
    int toEncode = (addCount < spaceLeft) ? addCount:spaceLeft;
    remaining = addCount-toEncode;

    int[] src = newSamples;
    int[] dest = samples;
    int destPos = count*(skip+1);
    int srcPos = offset;
    int length = toEncode*(skip+1);
    System.arraycopy(src, srcPos, dest, destPos, length);
    
    this.count = count+toEncode;
    return remaining;
  }

  public boolean isFull(int max) {
    boolean full = false;
    if(this.count >= max)
      full = true;
    return full;
  }
}




Java Source Code List

net.sourceforge.javaFlacEncoder.ArrayRecycler.java
net.sourceforge.javaFlacEncoder.BlockEncodeRequest.java
net.sourceforge.javaFlacEncoder.BlockThreadManager.java
net.sourceforge.javaFlacEncoder.CRC16.java
net.sourceforge.javaFlacEncoder.CRC8.java
net.sourceforge.javaFlacEncoder.ChannelData.java
net.sourceforge.javaFlacEncoder.EncodedElement_32.java
net.sourceforge.javaFlacEncoder.EncodedElement.java
net.sourceforge.javaFlacEncoder.EncodingConfiguration.java
net.sourceforge.javaFlacEncoder.FLACEncoder.java
net.sourceforge.javaFlacEncoder.FLACFileOutputStream.java
net.sourceforge.javaFlacEncoder.FLACOutputStream.java
net.sourceforge.javaFlacEncoder.FLACStreamController.java
net.sourceforge.javaFlacEncoder.FLACStreamIdentifier.java
net.sourceforge.javaFlacEncoder.FLACStreamOutputStream.java
net.sourceforge.javaFlacEncoder.FLAC_ConsoleFileEncoder.java
net.sourceforge.javaFlacEncoder.FLAC_FileEncoder.java
net.sourceforge.javaFlacEncoder.FLAC_MD5.java
net.sourceforge.javaFlacEncoder.FrameHeader.java
net.sourceforge.javaFlacEncoder.FrameThread.java
net.sourceforge.javaFlacEncoder.Frame.java
net.sourceforge.javaFlacEncoder.LPC.java
net.sourceforge.javaFlacEncoder.MetadataBlockHeader.java
net.sourceforge.javaFlacEncoder.MetadataBlockStreamInfo.java
net.sourceforge.javaFlacEncoder.RiceEncoder.java
net.sourceforge.javaFlacEncoder.StreamConfiguration.java
net.sourceforge.javaFlacEncoder.Subframe_Constant.java
net.sourceforge.javaFlacEncoder.Subframe_Fixed.java
net.sourceforge.javaFlacEncoder.Subframe_LPC.java
net.sourceforge.javaFlacEncoder.Subframe_Verbatim.java
net.sourceforge.javaFlacEncoder.Subframe.java
net.sourceforge.javaFlacEncoder.UTF8Modified.java
org.rfcx.guardian.RfcxGuardianPrefs.java
org.rfcx.guardian.RfcxGuardian.java
org.rfcx.guardian.activity.MainActivity.java
org.rfcx.guardian.activity.PrefsActivity.java
org.rfcx.guardian.api.ApiCore.java
org.rfcx.guardian.audio.AudioCore.java
org.rfcx.guardian.database.AlertDb.java
org.rfcx.guardian.database.AudioDb.java
org.rfcx.guardian.database.DeviceStateDb.java
org.rfcx.guardian.database.SmsDb.java
org.rfcx.guardian.device.AirplaneMode.java
org.rfcx.guardian.device.CpuUsage.java
org.rfcx.guardian.device.DeviceState.java
org.rfcx.guardian.intentservice.ApiCheckInTriggerIntentService.java
org.rfcx.guardian.intentservice.AudioEncodeIntentService.java
org.rfcx.guardian.intentservice.ServiceMonitorIntentService.java
org.rfcx.guardian.receiver.AirplaneModeReceiver.java
org.rfcx.guardian.receiver.BootReceiver.java
org.rfcx.guardian.receiver.ConnectivityReceiver.java
org.rfcx.guardian.receiver.SmsReceiver.java
org.rfcx.guardian.service.ApiCheckInService.java
org.rfcx.guardian.service.AudioCaptureService.java
org.rfcx.guardian.service.CarrierCodeService.java
org.rfcx.guardian.service.DeviceStateService.java
org.rfcx.guardian.telecom.CarrierInteraction.java
org.rfcx.guardian.utility.DateTimeUtils.java
org.rfcx.guardian.utility.DeviceGuid.java
org.rfcx.guardian.utility.ExtAudioRecorderModified.java
org.rfcx.guardian.utility.FileUtils.java
org.rfcx.guardian.utility.HttpGet.java
org.rfcx.guardian.utility.HttpPostMultipart.java
org.rfcx.guardian.utility.TimeOfDay.java