Skip to content

Commit

Permalink
module update
Browse files Browse the repository at this point in the history
  • Loading branch information
r2DoesInc committed Jun 30, 2015
1 parent b352544 commit fefaa92
Show file tree
Hide file tree
Showing 6 changed files with 225 additions and 54 deletions.
14 changes: 8 additions & 6 deletions rosjava_video_module/rosjava_video_module.iml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
Expand Down Expand Up @@ -83,17 +83,19 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
<excludeFolder url="file://$MODULE_DIR$/build/test-results" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 21 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="std_msgs-0.5.9" level="project" />
<orderEntry type="library" exported="" name="apache_xmlrpc_client-0.2.1" level="project" />
<orderEntry type="library" exported="" name="ws-commons-util-1.0.1" level="project" />
<orderEntry type="library" exported="" name="apache_xmlrpc_client-0.2.1" level="project" />
<orderEntry type="library" exported="" name="support-v4-21.0.3" level="project" />
<orderEntry type="library" exported="" name="nav_msgs-1.11.7" level="project" />
<orderEntry type="library" exported="" name="com.springsource.org.apache.commons.httpclient-3.1.0" level="project" />
<orderEntry type="library" exported="" name="actionlib_msgs-1.11.7" level="project" />
<orderEntry type="library" exported="" name="com.springsource.org.apache.commons.httpclient-3.1.0" level="project" />
<orderEntry type="library" exported="" name="com.springsource.org.apache.commons.io-1.4.0" level="project" />
<orderEntry type="library" exported="" name="apache_xmlrpc_server-0.2.1" level="project" />
<orderEntry type="library" exported="" name="rosjava_test_msgs-0.2.1" level="project" />
Expand All @@ -109,10 +111,10 @@
<orderEntry type="library" exported="" name="netty-3.5.2.Final" level="project" />
<orderEntry type="library" exported="" name="rosjava-0.2.1" level="project" />
<orderEntry type="library" exported="" name="com.springsource.org.apache.commons.codec-1.3.0" level="project" />
<orderEntry type="library" exported="" name="visualization_msgs-1.11.7" level="project" />
<orderEntry type="library" exported="" name="com.springsource.org.apache.commons.net-2.0.0" level="project" />
<orderEntry type="library" exported="" name="dnsjava-2.1.1" level="project" />
<orderEntry type="library" exported="" name="visualization_msgs-1.11.7" level="project" />
<orderEntry type="library" exported="" name="message_generation-0.2.1" level="project" />
<orderEntry type="library" exported="" name="dnsjava-2.1.1" level="project" />
<orderEntry type="library" exported="" name="rosjava_geometry-0.2.1" level="project" />
<orderEntry type="library" exported="" name="rosgraph_msgs-1.11.1" level="project" />
<orderEntry type="library" exported="" name="support-annotations-21.0.3" level="project" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,22 @@ public class CustomCameraPreviewView extends ViewGroup {
private CustomRawImageListener rawImageListener;
private CustomCameraPreviewView.BufferingPreviewCallback bufferingPreviewCallback;

boolean isPaused = false;

public void pause() {
isPaused = true;
if (camera != null) {
camera.stopPreview();
}
}

public void play() {
isPaused = false;
if (camera != null) {
camera.startPreview();
}
}

private void init(Context context) {
SurfaceView surfaceView = new SurfaceView(context);
this.addView(surfaceView);
Expand All @@ -54,8 +70,8 @@ public CustomCameraPreviewView(Context context, AttributeSet attrs, int defStyle
}

public void releaseCamera() {
if(this.camera != null) {
this.camera.setPreviewCallbackWithBuffer((PreviewCallback)null);
if (this.camera != null) {
this.camera.setPreviewCallbackWithBuffer((PreviewCallback) null);
this.camera.stopPreview();
this.camera.release();
this.camera = null;
Expand Down Expand Up @@ -95,31 +111,31 @@ private void setupCameraParameters() {

private Size getOptimalPreviewSize(List<Size> sizes, int width, int height) {
Preconditions.checkNotNull(sizes);
double targetRatio = (double)width / (double)height;
double targetRatio = (double) width / (double) height;
double minimumDifference = 1.7976931348623157E308D;
Size optimalSize = null;
Iterator i$ = sizes.iterator();

Size size;
while(i$.hasNext()) {
size = (Size)i$.next();
double ratio = (double)size.width / (double)size.height;
if(Math.abs(ratio - targetRatio) <= 0.1D && (double)Math.abs(size.height - height) < minimumDifference) {
while (i$.hasNext()) {
size = (Size) i$.next();
double ratio = (double) size.width / (double) size.height;
if (Math.abs(ratio - targetRatio) <= 0.1D && (double) Math.abs(size.height - height) < minimumDifference) {
optimalSize = size;
minimumDifference = (double)Math.abs(size.height - height);
minimumDifference = (double) Math.abs(size.height - height);
}
}

if(optimalSize == null) {
if (optimalSize == null) {
minimumDifference = 1.7976931348623157E308D;
i$ = sizes.iterator();

while(i$.hasNext()) {
size = (Size)i$.next();
double diff = (double)Math.abs(size.height - height);
if( diff < minimumDifference) {
while (i$.hasNext()) {
size = (Size) i$.next();
double diff = (double) Math.abs(size.height - height);
if (diff < minimumDifference) {
optimalSize = size;
minimumDifference = (double)Math.abs(size.height - height);
minimumDifference = (double) Math.abs(size.height - height);
}
}
}
Expand All @@ -137,19 +153,19 @@ private void setupBufferingPreviewCallback() {
}

protected void onLayout(boolean changed, int l, int t, int r, int b) {
if(changed && this.getChildCount() > 0) {
if (changed && this.getChildCount() > 0) {
View child = this.getChildAt(0);
int width = r - l;
int height = b - t;
int previewWidth = width;
int previewHeight = height;
if(this.previewSize != null) {
if (this.previewSize != null) {
previewWidth = this.previewSize.width;
previewHeight = this.previewSize.height;
}

int scaledChildHeight;
if(width * previewHeight > height * previewWidth) {
if (width * previewHeight > height * previewWidth) {
scaledChildHeight = previewWidth * height / previewHeight;
child.layout((width - scaledChildHeight) / 2, 0, (width + scaledChildHeight) / 2, height);
} else {
Expand All @@ -169,17 +185,16 @@ public void surfaceChanged(SurfaceHolder holder, int format, int width, int heig

public void surfaceCreated(SurfaceHolder holder) {
try {
if(CustomCameraPreviewView.this.camera != null) {
CustomCameraPreviewView.this.camera.setPreviewDisplay(holder);
if (camera != null) {
camera.setPreviewDisplay(holder);
}

} catch (IOException var3) {
throw new RosRuntimeException(var3);
}
}

public void surfaceDestroyed(SurfaceHolder holder) {
CustomCameraPreviewView.this.releaseCamera();
releaseCamera();
}
}

Expand All @@ -188,13 +203,13 @@ private BufferingPreviewCallback() {
}

public void onPreviewFrame(byte[] data, Camera camera) {
Preconditions.checkArgument(camera == CustomCameraPreviewView.this.camera);
Preconditions.checkArgument(data == CustomCameraPreviewView.this.previewBuffer);
if(CustomCameraPreviewView.this.rawImageListener != null) {
CustomCameraPreviewView.this.rawImageListener.onNewRawImage(data, CustomCameraPreviewView.this.previewSize);
Preconditions.checkArgument(camera == camera);
Preconditions.checkArgument(data == previewBuffer);
if (rawImageListener != null) {
rawImageListener.onNewRawImage(data, previewSize);
}

camera.addCallbackBuffer(CustomCameraPreviewView.this.previewBuffer);
camera.addCallbackBuffer(previewBuffer);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class CustomRosCameraPreviewView extends CustomCameraPreviewView implemen
public int height = -1;
private int quality = 20;
private String topicName = Constants.NODE_CAMERA_PREVIEW;
private RawImagePublisher imagePublisher;

@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
Expand Down Expand Up @@ -51,7 +52,8 @@ public GraphName getDefaultNodeName() {
@Override
public void onStart(ConnectedNode connectedNode) {
this.connectedNode = connectedNode;
this.setRawImageListener(new RawImagePublisher(connectedNode, quality, topicName));
imagePublisher = new RawImagePublisher(connectedNode, quality, topicName);
this.setRawImageListener(imagePublisher);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class RawImagePublisher implements CustomRawImageListener {
private ChannelBufferOutputStream stream;
private int quality = -1;


public RawImagePublisher(ConnectedNode connectedNode, int quality, String outgoingVideoStreamNode) {
this.connectedNode = connectedNode;
this.imagePublisher = connectedNode.newPublisher(outgoingVideoStreamNode, CompressedImage._TYPE);
Expand All @@ -45,13 +46,13 @@ public RawImagePublisher(ConnectedNode connectedNode, int quality, String outgoi
}

public RawImagePublisher(ConnectedNode connectedNode, int quality) {
this(connectedNode, quality, Constants.NODE_IMAGE_COMPRESSED);
this(connectedNode, quality, Constants.NODE_IMAGE_COMPRESSED);
}

public void onNewRawImage(byte[] data, Size size) {
Preconditions.checkNotNull(data);
Preconditions.checkNotNull(size);
if(data != this.rawImageBuffer || !size.equals(this.rawImageSize)) {
if (data != this.rawImageBuffer || !size.equals(this.rawImageSize)) {
this.rawImageBuffer = data;
this.rawImageSize = size;
this.yuvImage = new YuvImage(this.rawImageBuffer, 17, size.width, size.height, null);
Expand Down
Loading

0 comments on commit fefaa92

Please sign in to comment.