Commit Graph

  • b603bf4887 Add a checkbox to favor image quality over performance Cameron Gutman 2013-11-26 20:03:55 -05:00
  • 8e22a125e2 Remove AvcDecoder.SLICE_THREADING flag which was making performance worse. Scale the thread count higher on low performing devices. Use a constant 30 fps target since rendering tends to have very little effect on decoding speed. Only wait when the wait time will exceed 8 ms in order to reduce the likelyhood that the wait causes us to render late. Cameron Gutman 2013-11-26 14:36:06 -05:00
  • 55d534c8cf Fix off-by-one error in prefix matching Cameron Gutman 2013-11-25 21:48:35 -05:00
  • 734d80b281 Blacklist the Rockchip H264 decoders. Blacklist another software decoder that doesn't support H264 L5.0 high profile Cameron Gutman 2013-11-24 19:55:12 -05:00
  • 5360d6c9b2 Hint the GC to run at the completion of each frame. This forces concurrent garbage collection which means that the likelyhood of a long GC pause while other threads are running is lower. Cameron Gutman 2013-11-24 19:32:50 -05:00
  • dd82573d08 Switch from ArrayBlockingQueues to LinkedBlockingQueues for increased throughput. Set thread priorities for the decoder and ping threads. Cameron Gutman 2013-11-24 19:31:50 -05:00
  • d9527a3810 Optimize performance flags. Cameron Gutman 2013-11-24 19:29:26 -05:00
  • 9be14c3d92 Add thread names for easier debugging Cameron Gutman 2013-11-24 17:57:00 -05:00
  • 732ea8a3ac Optimize the reinitialization of the buffer descriptor in the receive threads Cameron Gutman 2013-11-24 17:29:12 -05:00
  • 9a3c5dac0a Suppress connection failure warnings when closing gracefully Cameron Gutman 2013-11-24 21:52:33 -05:00
  • 7d39ac2a45 Reuse a single AvByteBufferDescriptor when depacketizing H264 instead of allocating many of them per packet Cameron Gutman 2013-11-24 21:51:09 -05:00
  • fb8b6fd7f5 Add configurable ffmpeg performance options Cameron Gutman 2013-11-24 21:46:47 -05:00
  • c8b94217cf Set the datagram destination manually for ping packets rather than connecting the datagram socket explicitly. This prevents the ICMP port unreachable message from being propagated to the receive thread which causes an IOException. Cameron Gutman 2013-11-23 17:07:33 -05:00
  • 0fe7549942 Loosen the connection timeouts. Remove the HTTP request timeout because it depends on how long it takes for the requested app to start. Cameron Gutman 2013-11-23 16:48:46 -05:00
  • 022866288d Add more logging for exceptions. Cameron Gutman 2013-11-23 14:06:51 -05:00
  • 125bcb370f Limit the size of queues. Switch to a blacklist instead of a whitelist for hardware decoding. Currently, Nvidia, TI, and Google H264 codecs are on the blacklist. Reenable large heap since we're allocating more objects now. Cameron Gutman 2013-11-23 02:44:10 -05:00
  • 4d5849f448 Add UI indications of the connection status and failure Cameron Gutman 2013-11-23 01:03:37 -05:00
  • c88d23001e Commit forgotten ConnectionStatusListener interface. Thanks to danielb7390 for pointing this out. Cameron Gutman 2013-11-22 22:13:39 -05:00
  • 2946966456 Whitelist the Exynos hardware H264 decoder Cameron Gutman 2013-11-22 02:13:02 -05:00
  • d00474c1cd Fix warning. Cameron Gutman 2013-11-22 00:31:39 -05:00
  • 49b2332f14 Make the IP textview single line with no suggestions. Set focus to the start streaming button by default. Cameron Gutman 2013-11-22 00:31:25 -05:00
  • db78af916d Handle decode units larger than the size of the decode unit buffer Cameron Gutman 2013-11-22 00:29:48 -05:00
  • e1a8f86d4f Make the virtual and hardware back buttons on the devices themselves work as the in-game back button. This is required for Shield's back button to work. Cameron Gutman 2013-11-21 19:56:44 -05:00
  • 80fdae3673 Request an IDR frame if a previous frame was lost or Cameron Gutman 2013-11-21 19:55:40 -05:00
  • e52b85a883 Restore the performance level fed into the AvcDecoder Cameron Gutman 2013-11-21 16:59:04 -05:00
  • 6bb215eddf Remove pooling code due to higher concurrency latency that resulted in a net loss of performance. Cameron Gutman 2013-11-21 16:40:27 -05:00
  • 1d7460e8b3 Revert "WIP optimization of object allocation and pools. There's currently a double free on the AvByteBufferDescriptor that I'm trying to track down." Cameron Gutman 2013-11-21 16:25:10 -05:00
  • 3efa356bb8 Revert "Add double-free detection code to the pools" Cameron Gutman 2013-11-21 16:25:01 -05:00
  • 45120e79e4 Revert "Fix the double-free bug and disable double free debugging." Cameron Gutman 2013-11-21 16:24:52 -05:00
  • ff50b5fdab Revert "Fix memory leaks of special NAL sequences" Cameron Gutman 2013-11-21 16:24:47 -05:00
  • e6959e66e4 Fix memory leaks of special NAL sequences Cameron Gutman 2013-11-21 14:36:17 -05:00
  • d5f59bb972 Remove large heap flag. Cameron Gutman 2013-11-21 13:08:07 -05:00
  • 9e4364f672 Fix the double-free bug and disable double free debugging. Cameron Gutman 2013-11-21 13:05:01 -05:00
  • acb3dc8881 Add double-free detection code to the pools Cameron Gutman 2013-11-21 12:55:05 -05:00
  • 7951c0fa13 WIP optimization of object allocation and pools. There's currently a double free on the AvByteBufferDescriptor that I'm trying to track down. Cameron Gutman 2013-11-21 12:24:45 -05:00
  • c42d40b8f6 Remove an extra frame copy that wasn't needed. Only update the stored frame if the previous frame had been displayed. Don't render the same frame again if there's no new frame to update. Cameron Gutman 2013-11-21 09:55:57 -05:00
  • ab9b7b5164 Discard the alpha channel of the surface since it's not used. Always use MED_PERF for the AvcDecoder configuration because it now works well enough on Tegra 3 that the image quality improvements are worth it. Cameron Gutman 2013-11-21 08:45:25 -05:00
  • 45664dac2a Draw directly to the surface buffer. Improve amount of decoding and rendering that can be done in parallel. Add performance levels and choose them by cpuinfo. Improves Tegra 3 performance significantly. Cameron Gutman 2013-11-21 08:38:49 -05:00
  • 54839e672d Fix multithreaded decoding to significantly improve Tegra 3 decoding performance. It's not as smooth as Tegra 4 CPU decoding or Snapdragon hardware decoding, but it's much better than it was before. Cameron Gutman 2013-11-20 03:07:52 -05:00
  • 9b46155af2 Log a message based on what type of decoding is being used Cameron Gutman 2013-11-20 01:35:39 -05:00
  • 5a4a0d55e3 Enable both landscape orientations Cameron Gutman 2013-11-20 01:33:58 -05:00
  • bd6338730d Don't decode video on the emulator for performance reasons. Cameron Gutman 2013-11-20 01:33:38 -05:00
  • f672befaa7 Revert an earlier commit that introduced a bug that caused initialization to crash Cameron Gutman 2013-11-20 00:59:12 -05:00
  • 34905dd01e Fix crashes caused by rendering to a surface on teardown Cameron Gutman 2013-11-20 00:32:37 -05:00
  • 16d629f5cf Remove jlibrtp (finally). CPU decoding support (works great on Tegra 4, not so well on Tegra 3) Cameron Gutman 2013-11-20 00:00:00 -05:00
  • 0504bed5e9 Fix ffmpeg library loading. Create a DecoderRenderer interface and use it to move the MediaCodec code into for Qualcomm devices. Cameron Gutman 2013-11-19 02:49:33 -05:00
  • 2c2e713166 Rework our JNI interface and add ffmpeg bindings for AVC decoding (WIP) Cameron Gutman 2013-11-18 18:58:49 -05:00
  • cca7df6c25 Reassemble AVC NALs when padding is reached, rather than waiting through several packets until the next AVC frame start NAL. Improves video latency and vulnerability to packet loss. Cameron Gutman 2013-11-17 16:50:45 -05:00
  • 10165f3166 Fix frame pacing issues on Snapdragon. Improve latency on Tegra (not perfect still). Cameron Gutman 2013-11-15 23:42:00 -05:00
  • 79db2ed584 Fix a bug with MAC address selection that caused it to always select the first adapter Cameron Gutman 2013-11-14 17:30:40 -05:00
  • 690df6e42c Add armeabi and x86 versions of libopus.a and build the libnv_opus_dec.so shared library for those platforms. Update armeabi-v7a library. Libopus.a binaries from https://github.com/brooss/krcam Cameron Gutman 2013-11-14 15:17:02 -05:00
  • ae65bbe3ca Add Moga controller support. Cameron Gutman 2013-11-12 03:10:23 -05:00
  • aa4e07ea2f Free audio packets back to the packet pool after decoding. Cameron Gutman 2013-11-12 02:19:58 -05:00
  • 4eaf68ae58 Lower the buffer size of the Opus decoder based on the data we're actual receiving. Handle invocations of the decoder with null data for packet loss indication. Cameron Gutman 2013-11-12 02:04:08 -05:00
  • 77786f9693 Display a warning if the active connection is metered. Find a proper MAC address for pairing (might require re-pair). Fix a possible infinite loop in the NvControl code. Cameron Gutman 2013-11-11 18:42:07 -05:00
  • 83ad55e436 Fix some ANRs and force-close errors when connection failures occur. Cameron Gutman 2013-11-11 17:21:50 -05:00
  • 4d80373f25 Shutdown streaming when the input connection breaks Cameron Gutman 2013-11-11 15:40:16 -05:00
  • 08f8942548 Fix Xbox 360 controller D-pad Cameron Gutman 2013-11-11 15:39:55 -05:00
  • b34da27fbd Fix an unclosed closeable. Cameron Gutman 2013-11-10 17:12:52 -05:00
  • 8802e05f27 Change target SDK to KitKat. Use immersive mode for streaming on KitKat devices. Cameron Gutman 2013-11-10 17:12:34 -05:00
  • b56f25232e Start pinging earlier so Shield Proxy knows where to send the reference frame Cameron Gutman 2013-11-10 16:23:55 -05:00
  • 745da05ad3 Fix back button press on the soft UI buttons. Make back+start emulate the steam overlay button. Cameron Gutman 2013-11-10 15:59:13 -05:00
  • c9ad9ab407 Remove a straggling println Cameron Gutman 2013-11-10 15:57:05 -05:00
  • 7cebdea25c Add large heap attribute. Fix a warning Cameron Gutman 2013-11-10 15:28:04 -05:00
  • 524cab4115 Drop audio frames if the backlog becomes too large. Trim buffer pools when memory runs low. Optimize AVC decoding a bit more. Cameron Gutman 2013-11-10 15:25:00 -05:00
  • fc66caf567 Revert unintended change Cameron Gutman 2013-11-10 15:21:58 -05:00
  • e507f4abfb Remove some unneccessary checks and repurpose an old method. Cameron Gutman 2013-11-10 14:45:28 -05:00
  • 20514a7ce8 Remove the default host IP address. Cameron Gutman 2013-11-10 05:49:33 -05:00
  • ac1380bd4c Fix force-close if the stream is aborted before RTP is connected. Fix address already in use exception on RTCP socket. Cameron Gutman 2013-11-10 05:49:00 -05:00
  • 54e365a304 Fix video buffer pool usage. Cameron Gutman 2013-11-10 03:29:44 -05:00
  • d5665ac318 Fix decoding of misaligned start sequences. Cameron Gutman 2013-11-10 02:53:51 -05:00
  • c631649867 Fix order of initialization of streams. Cameron Gutman 2013-11-10 02:53:19 -05:00
  • 0a445b9add Properly terminate threads when the game activity exits. Cameron Gutman 2013-11-10 01:30:55 -05:00
  • 61ae83337c Remove useless code. Cameron Gutman 2013-11-10 01:28:19 -05:00
  • 47ea18b882 Fix the back button on the Xbox controller Cameron Gutman 2013-11-10 05:12:31 -05:00
  • ab61af0cb7 Release decoded data back to the buffer pool Cameron Gutman 2013-11-10 03:58:48 -05:00
  • 34e87ca899 Rename AvBufferX -> AvByteBufferX and create AvShortBufferX Cameron Gutman 2013-11-10 03:42:29 -05:00
  • 62a9040cb8 Add a Opus decoder JNI library. Write an audio depacketizer. Audio works! Cameron Gutman 2013-11-10 03:27:21 -05:00
  • 33c63a3bb8 Move libopus to the proper directory Cameron Gutman 2013-11-09 19:46:02 -05:00
  • 2d7be4276f Add libopus.a for ARMv7 from https://github.com/muromec/tcsip Cameron Gutman 2013-11-09 19:34:15 -05:00
  • d3b9387c37 Refactor AV code Cameron Gutman 2013-11-09 19:20:49 -05:00
  • 9b91543c2d Handle the case where the MAC address cannot be retreived for some interface Cameron Gutman 2013-11-05 11:54:08 -05:00
  • 7704ceb32b Remove the list view from the connection activity. Cameron Gutman 2013-11-05 11:53:41 -05:00
  • bc088fd338 Upon Creation of NvComputer figure out pair state Andrew Hennessy 2013-11-04 22:05:47 -05:00
  • 14cf3b7343 Add code to print a buffer descriptor. Cameron Gutman 2013-11-04 21:44:27 -05:00
  • baf01b93e3 Fix crash in onPause(). Fix IP address display in nvComputer.toString(). Increase mDNS response timeout to 1 second. Cameron Gutman 2013-11-04 21:41:00 -05:00
  • 43e4af0c8b Remove dnsjava from classpath Cameron Gutman 2013-11-04 21:05:14 -05:00
  • cbc44f674e why were those even there? Aaron Neyer 2013-11-04 20:58:04 -05:00
  • 82aa5730bd Finished the rewrite of mDNS Andrew Hennessy 2013-11-04 19:34:40 -05:00
  • 7038384d36 mDNS no longer crashes on malformed packets Andrew Hennessy 2013-11-04 17:13:13 -05:00
  • 1d5adff0d5 Improved mDNS response Andrew Hennessy 2013-11-04 14:19:09 -05:00
  • 960d3ac319 Improved NvMDNS coding Andrew Hennessy 2013-11-04 14:18:18 -05:00
  • f179010c7e Better XML parsing in NvHTTP Aaron Neyer 2013-11-04 03:03:25 -05:00
  • e50f668aaf Add a pair button to the UI. Fix the hardcoded MAC address string. Pass the device model in the pairing request. Cameron Gutman 2013-11-04 01:43:35 -05:00
  • 1454ade3d2 Fix OOS bug with packet 32768 Cameron Gutman 2013-10-31 00:06:54 -04:00
  • e067669044 Stage WIP audio support Cameron Gutman 2013-10-30 22:23:11 -04:00
  • 9e09ca2b7a WIP: Add RTP class. Massive refactoring of NvVideoStream. Rename AvParser to AvDepacketizer. Begin parsing other special NAL sequences. Cameron Gutman 2013-10-30 20:14:54 -04:00
  • 303ffaa8a3 Add a copy constructor for the buffer descriptor class Cameron Gutman 2013-10-30 18:21:12 -04:00
  • 8ba9d8cfc8 Disable putting buffers back in the pool until the double-free issue gets resolved Cameron Gutman 2013-10-30 04:32:20 -04:00
  • e5126ebe01 Use a packet buffer pool to reduce memory pressure Cameron Gutman 2013-10-29 21:39:57 -04:00