Giter VIP home page Giter VIP logo

Comments (17)

sarxos avatar sarxos commented on August 22, 2024

Hi,

Unfortunately, for now there is no possibility to query device capabilities (e.g. supported resolutions), but there is such feature planned - it can be incorporated in 0.4, but cannot give you any details when it will be released. It's a big feature and too few developers are working on this one and related project now, so it will not be available very soon...

However, there is a way to fix your resolution problem. You should use setCustomViewSizes(..) method. It takes Dimension[] array as the argument.

Dimension[] nonStandardResolutions = new Dimension[] {
    WebcamResolution.PAL.getSize(),   // you can use predefined resolution
    WebcamResolution.HD720.getSize(),
    new Dimension(2000, 1000),        // or custom one
    new Dimension(1000, 500),
};

Webcam webcam = Webcam.getDefault();
webcam.setCustomViewSizes(nonStandardResolutions);
webcam.open();

BufferedImage image = webcam.getImage();

System.out.println(image.getWidth() + "x" + image.getHeight());

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

Please reopen if it does not fix your problem.

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

For the 1280x1024 and 1024x576 you should use this code:

webcam.setCustomViewSizes(new Dimension[] {
    WebcamResolution.SXGA.getSize(),   // 1280x1024
    new Dimension(1024, 576),          // PAL depicted for 16:9 widescreen 
});

from webcam-capture.

vtomanov avatar vtomanov commented on August 22, 2024

1/ the :

Dimension frameSize = new Dimension(1024, 576)
webcam.setCustomViewSizes(new Dimension[] { frameSize }); 
webcam.setViewSize(frameSize);
BufferedImage img = webcam.getImage();

but:

2/ adding webcam.open() - leads 100% to crash in the JVM

Dimension frameSize = new Dimension(1024, 576)
webcam.setCustomViewSizes(new Dimension[] { frameSize }); 
webcam.open();    <<<<<-- this one leads to crash
webcam.setViewSize(frameSize);
BufferedImage img = webcam.getImage();
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x66dc1ed7, pid=4292, tid=4632
#
# JRE version: 7.0_04-b20
# Java VM: Java HotSpot(TM) Server VM (23.0-b21 mixed mode windows-x86 )
# Problematic frame:
# C  [msvcr100.dll+0x1ed7]  memcpy+0x57
#

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

Could you please locate the Java's hs_err_pid file in program working directory (it is created after each crash) and share it via e.g. pastebin.com? It's pretty long, but it contains necessary stack traces from both Java and native code.

The custom resolution feature could lead to some issues, but I would like to check if this is caused by this specific resolution or rather by synchronization issue (native code is not thread-safe and core dump Java process each time when you try to access it from two separate threads).

from webcam-capture.

vtomanov avatar vtomanov commented on August 22, 2024
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x668b1ed7, pid=2304, tid=2748
#
# JRE version: 7.0_04-b20
# Java VM: Java HotSpot(TM) Server VM (23.0-b21 mixed mode windows-x86 )
# Problematic frame:
# C  [msvcr100.dll+0x1ed7]  memcpy+0x57
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x61fa9000):  JavaThread "processor-1" daemon [_thread_in_vm, id=2748, stack(0x6ab90000,0x6abe0000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x6ae61000

Registers:
EAX=0x6aff8f40, EBX=0x5b217268, ECX=0x00065fd0, EDX=0x00000000
ESP=0x6abdf7a4, EBP=0x6abdf7ac, ESI=0x6ae61000, EDI=0x0f085a8c
EIP=0x668b1ed7, EFLAGS=0x00010212

Top of Stack: (sp=0x6abdf7a4)
0x6abdf7a4:   61fa9000 00000000 6abdf7d8 658289e3
0x6abdf7b4:   0f06d9cc 6ae48f40 001b0000 61fa9000
0x6abdf7c4:   5b217268 61fa9000 00000000 5b217268
0x6abdf7d4:   61fa9000 6abdf828 6285972f 61fa9000
0x6abdf7e4:   6217a960 00000000 001b0000 6ae48f40
0x6abdf7f4:   62c1a52d 61fa9000 5b217268 5b217268
0x6abdf804:   00000000 00000000 6217a960 6abdf7f4
0x6abdf814:   6abdf1ec 6abdfadc 6285f030 6afa8cc5 

Instructions: (pc=0x668b1ed7)
0x668b1eb7:   e6 0f 3b fe 5e 5f 75 05 e9 96 eb 00 00 f7 c7 03
0x668b1ec7:   00 00 00 75 14 c1 e9 02 83 e2 03 83 f9 08 72 29
0x668b1ed7:   f3 a5 ff 24 95 f0 1f 8b 66 8b c7 ba 03 00 00 00
0x668b1ee7:   83 e9 04 72 0c 83 e0 03 03 c8 ff 24 85 04 1f 8b 


Register to memory mapping:

EAX=0x6aff8f40 is pointing into the stack for thread: 0x61fa9800
EBX=0x5b217268 is an oop
{method} 
 - klass: {other class}
ECX=0x00065fd0 is an unknown value
EDX=0x00000000 is an unknown value
ESP=0x6abdf7a4 is pointing into the stack for thread: 0x61fa9000
EBP=0x6abdf7ac is pointing into the stack for thread: 0x61fa9000
ESI=0x6ae61000 is an unknown value
EDI=
[error occurred during error reporting (printing register info), id 0xc0000005]

Stack: [0x6ab90000,0x6abe0000],  sp=0x6abdf7a4,  free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [msvcr100.dll+0x1ed7]  memcpy+0x57
V  [jvm.dll+0xb89e3]
C  [bridj.dll+0x972f]  Java_org_bridj_JNI_get_1byte_1array+0x7f
j  org.bridj.JNI.get_byte_array(JI)[B+0
j  org.bridj.Pointer.getBytesAtOffset(JI)[B+32
j  org.bridj.Pointer.getBytes(I)[B+3
j  com.github.sarxos.webcam.ds.buildin.cgt.GetImageTask.handle()V+43
j  com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$StaticProcessor.run()V+58
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+46
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub
V  [jvm.dll+0x13bc8a]
V  [jvm.dll+0x1f341e]
V  [jvm.dll+0x13be73]
V  [jvm.dll+0x13bed7]
V  [jvm.dll+0xde1af]
V  [jvm.dll+0x15d667]
V  [jvm.dll+0x15d7d0]
V  [jvm.dll+0x192049]
C  [msvcr100.dll+0x5c6de]  endthreadex+0x3a
C  [msvcr100.dll+0x5c788]  endthreadex+0xe4
C  [kernel32.dll+0x1339a]  BaseThreadInitThunk+0x12
C  [ntdll.dll+0x39ef2]  RtlInitializeExceptionChain+0x63
C  [ntdll.dll+0x39ec5]  RtlInitializeExceptionChain+0x36

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.bridj.JNI.get_byte_array(JI)[B+0
j  org.bridj.Pointer.getBytesAtOffset(JI)[B+32
j  org.bridj.Pointer.getBytes(I)[B+3
j  com.github.sarxos.webcam.ds.buildin.cgt.GetImageTask.handle()V+43
j  com.github.sarxos.webcam.ds.buildin.WebcamGrabberProcessor$StaticProcessor.run()V+58
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+46
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x69559400 JavaThread "Service DATA_SERVER_SESSION resubscription thread" daemon [_thread_blocked, id=1092, stack(0x64eb0000,0x64f00000)]
  0x695a2800 JavaThread "Cleanup" daemon [_thread_blocked, id=4292, stack(0x6de30000,0x6de80000)]
  0x695a1c00 JavaThread "ThumbnailBoard:LateLoader:Worker" daemon [_thread_blocked, id=3292, stack(0x6d610000,0x6d660000)]
  0x695a1400 JavaThread "FileMonitor:Worker:" daemon [_thread_blocked, id=676, stack(0x6dcf0000,0x6dd40000)]
  0x695a0800 JavaThread "ThumbnailBoard:LateLoader:Worker" daemon [_thread_blocked, id=5772, stack(0x6d7c0000,0x6d810000)]
  0x695a0000 JavaThread "FileMonitor:Worker:" daemon [_thread_blocked, id=5544, stack(0x6d830000,0x6d880000)]
  0x69558c00 JavaThread "ThumbnailBoard:LateLoader:Worker" daemon [_thread_blocked, id=3776, stack(0x6ca10000,0x6ca60000)]
  0x69558800 JavaThread "FileMonitor:Worker:" daemon [_thread_blocked, id=5440, stack(0x6d220000,0x6d270000)]
  0x69558000 JavaThread "Connection Pump:109.169.26.34" daemon [_thread_blocked, id=1612, stack(0x6d590000,0x6d5e0000)]
  0x69557c00 JavaThread "TCPConnection.SelectorThread:[]109.169.26.34:8606  clientSent(sec/total)[0/0] clientReceived(sec/total)[0/0] Queues (in/out)[0/0].PumpCache" daemon [_thread_blocked, id=5396, stack(0x6d4b0000,0x6d500000)]
  0x69557400 JavaThread "TCPConnection.SelectorThread:[]109.169.26.34:8606  clientSent(sec/total)[0/0] clientReceived(sec/total)[0/0] Queues (in/out)[0/0]" daemon [_thread_in_native, id=5248, stack(0x6d090000,0x6d0e0000)]
  0x69557000 JavaThread "Connection ReceiveProcessor:109.169.26.34:8606" daemon [_thread_blocked, id=5428, stack(0x6d2b0000,0x6d300000)]
  0x69556800 JavaThread "SubImpl:1" daemon [_thread_blocked, id=3916, stack(0x6ce50000,0x6cea0000)]
  0x69556000 JavaThread "InputProvider" daemon [_thread_blocked, id=5404, stack(0x6cfd0000,0x6d020000)]
  0x69555c00 JavaThread "FileMonitor:Worker:" daemon [_thread_blocked, id=5292, stack(0x6cb10000,0x6cb60000)]
  0x69555400 JavaThread "FileMonitor:Worker:" daemon [_thread_blocked, id=2884, stack(0x6cc20000,0x6cc70000)]
  0x69555000 JavaThread "Service PREVIEW_DIR_PROVIDER resubscription thread" daemon [_thread_blocked, id=4156, stack(0x6cd30000,0x6cd80000)]
  0x69554800 JavaThread "Service PREVIEW_FILE_PROVIDER resubscription thread" daemon [_thread_blocked, id=2796, stack(0x6c6f0000,0x6c740000)]
  0x69554400 JavaThread "Service DISP_DIR_PROVIDER resubscription thread" daemon [_thread_blocked, id=5584, stack(0x6cbb0000,0x6cc00000)]
  0x69553c00 JavaThread "Service DISP_FILE_PROVIDER resubscription thread" daemon [_thread_blocked, id=5044, stack(0x6cb60000,0x6cbb0000)]
  0x69553400 JavaThread "Thread-8" daemon [_thread_blocked, id=3924, stack(0x6c780000,0x6c7d0000)]
  0x69553000 JavaThread "Service DISP_DIR_PROVIDER resubscription thread" daemon [_thread_blocked, id=5376, stack(0x6c6a0000,0x6c6f0000)]
  0x69552800 JavaThread "Service DISP_FILE_PROVIDER resubscription thread" daemon [_thread_blocked, id=1356, stack(0x6c630000,0x6c680000)]
  0x69552400 JavaThread "Service PREVIEW_FILE_PROVIDER resubscription thread" daemon [_thread_blocked, id=4844, stack(0x6c470000,0x6c4c0000)]
  0x69551c00 JavaThread "Service PREVIEW_DIR_PROVIDER resubscription thread" daemon [_thread_blocked, id=4936, stack(0x6b1b0000,0x6b200000)]
  0x61fa9800 JavaThread "webcam-discovery-service" daemon [_thread_blocked, id=3132, stack(0x6afe0000,0x6b030000)]
=>0x61fa9000 JavaThread "processor-1" daemon [_thread_in_vm, id=2748, stack(0x6ab90000,0x6abe0000)]
  0x61fa8c00 JavaThread "Connection Pump:109.169.26.34" daemon [_thread_blocked, id=3164, stack(0x6a6b0000,0x6a700000)]
  0x61fa8400 JavaThread "TCPConnection.SelectorThread:[]109.169.26.34:8606  clientSent(sec/total)[0/0] clientReceived(sec/total)[0/0] Queues (in/out)[0/0].PumpCache" daemon [_thread_blocked, id=4376, stack(0x69330000,0x69380000)]
  0x61fa8000 JavaThread "TCPConnection.SelectorThread:[]109.169.26.34:8606  clientSent(sec/total)[0/0] clientReceived(sec/total)[0/0] Queues (in/out)[0/0]" daemon [_thread_in_native, id=5572, stack(0x6aac0000,0x6ab10000)]
  0x61fa7800 JavaThread "Connection ReceiveProcessor:109.169.26.34:8606" daemon [_thread_blocked, id=5532, stack(0x6a9b0000,0x6aa00000)]
  0x61fa7400 JavaThread "SubImpl:1" daemon [_thread_blocked, id=3092, stack(0x6a940000,0x6a990000)]
  0x61fa6c00 JavaThread "Connection Pump:109.169.26.34" daemon [_thread_blocked, id=5040, stack(0x6a870000,0x6a8c0000)]
  0x61fa6400 JavaThread "TCPConnection.SelectorThread:[]109.169.26.34:8606  clientSent(sec/total)[0/0] clientReceived(sec/total)[0/0] Queues (in/out)[0/0].PumpCache" daemon [_thread_blocked, id=5356, stack(0x6a660000,0x6a6b0000)]
  0x61fa6000 JavaThread "TCPConnection.SelectorThread:[]109.169.26.34:8606  clientSent(sec/total)[0/0] clientReceived(sec/total)[0/0] Queues (in/out)[0/0]" daemon [_thread_in_native, id=1896, stack(0x6a520000,0x6a570000)]
  0x61fa5800 JavaThread "Connection ReceiveProcessor:109.169.26.34:8606" daemon [_thread_blocked, id=5276, stack(0x67b80000,0x67bd0000)]
  0x61fa5400 JavaThread "PubImpl:1" daemon [_thread_blocked, id=744, stack(0x62e90000,0x62ee0000)]
  0x61fa4c00 JavaThread "SessionBaseImpl.DelayThread" daemon [_thread_blocked, id=1472, stack(0x65180000,0x651d0000)]
  0x61fa4800 JavaThread "Service DATA_SERVER_SESSION resubscription thread" daemon [_thread_blocked, id=5980, stack(0x62cd0000,0x62d20000)]
  0x61fa4000 JavaThread "Thread-6" daemon [_thread_blocked, id=3096, stack(0x62f30000,0x62f80000)]
  0x61fa3800 JavaThread "Thread-5" daemon [_thread_blocked, id=3052, stack(0x62e20000,0x62e70000)]
  0x61fa3400 JavaThread "Client Dispatcher" daemon [_thread_blocked, id=1348, stack(0x62db0000,0x62e00000)]
  0x61fa2c00 JavaThread "CPU Stats" daemon [_thread_blocked, id=5304, stack(0x6a430000,0x6a480000)]
  0x61fa2800 JavaThread "ThumbnailProducer:Worker" daemon [_thread_blocked, id=1640, stack(0x67cf0000,0x67d40000)]
  0x61fa2000 JavaThread "net.b2net.data.client.motion.AdaptoSnapGenerator : run() " daemon [_thread_blocked, id=1596, stack(0x693c0000,0x69410000)]
  0x61e8b800 JavaThread "Controller" daemon [_thread_blocked, id=1316, stack(0x68c80000,0x68cd0000)]
  0x61e44800 JavaThread "Swing-Shell" daemon [_thread_blocked, id=4564, stack(0x66cd0000,0x66d20000)]
  0x60f58c00 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=6088, stack(0x66f00000,0x66f50000)]
  0x61e0f400 JavaThread "TimerQueue" daemon [_thread_blocked, id=460, stack(0x65660000,0x656b0000)]
  0x61dff400 JavaThread "D3D Screen Updater" daemon [_thread_blocked, id=3820, stack(0x666d0000,0x66720000)]
  0x0065ec00 JavaThread "DestroyJavaVM" [_thread_blocked, id=5224, stack(0x00290000,0x002e0000)]
  0x61cef000 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=5312, stack(0x64f00000,0x64f50000)]
  0x611fe800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=4972, stack(0x629d0000,0x62a20000)]
  0x611fe000 JavaThread "AWT-Shutdown" [_thread_blocked, id=3716, stack(0x62970000,0x629c0000)]
  0x61c61c00 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=5264, stack(0x627b0000,0x62800000)]
  0x61bb5c00 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=1664, stack(0x612c0000,0x61310000)]
  0x60f26800 JavaThread "Service Thread" daemon [_thread_blocked, id=5608, stack(0x61a50000,0x61aa0000)]
  0x60f26000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=1676, stack(0x619a0000,0x619f0000)]
  0x60f20400 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=5084, stack(0x61740000,0x61790000)]
  0x60f1f400 JavaThread "Attach Listener" daemon [_thread_blocked, id=4904, stack(0x617a0000,0x617f0000)]
  0x60f1ec00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4660, stack(0x61270000,0x612c0000)]
  0x60f1e400 JavaThread "Surrogate Locker Thread (Concurrent GC)" daemon [_thread_blocked, id=3108, stack(0x61380000,0x613d0000)]
  0x60ec4000 JavaThread "Finalizer" daemon [_thread_blocked, id=6000, stack(0x60ba0000,0x60bf0000)]
  0x60ebf400 JavaThread "Reference Handler" daemon [_thread_blocked, id=5392, stack(0x613e0000,0x61430000)]

Other Threads:
  0x60ebb800 VMThread [stack: 0x61320000,0x61370000] [id=1172]
  0x60f5bc00 WatcherThread [stack: 0x61b00000,0x61b50000] [id=1672]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 par new generation   total 414720K, used 152886K [0x05cd0000, 0x21ed0000, 0x21ed0000)
  eden space 368640K,  41% used [0x05cd0000, 0x0f21d9d0, 0x1c4d0000)
  from space 46080K,   0% used [0x1c4d0000, 0x1c4d0000, 0x1f1d0000)
  to   space 46080K,   0% used [0x1f1d0000, 0x1f1d0000, 0x21ed0000)
 concurrent mark-sweep generation total 51200K, used 12047K [0x21ed0000, 0x250d0000, 0x5a2d0000)
 concurrent-mark-sweep perm gen total 24404K, used 17632K [0x5a2d0000, 0x5baa5000, 0x5e2d0000)

Code Cache  [0x02810000, 0x02a50000, 0x05810000)
 total_blobs=537 nmethods=286 adapters=203 free_code_cache=48342Kb largest_free_block=49458496

Compilation events (10 events):
Event: 10.413 Thread 0x60f20400  285             java.nio.Buffer::position (43 bytes)
Event: 10.413 Thread 0x60f20400 nmethod 285 0x028d4d48 code [0x028d4e40, 0x028d4eb0]
Event: 10.508 Thread 0x60f26000  286             java.nio.Buffer::nextPutIndex (31 bytes)
Event: 10.509 Thread 0x60f26000 nmethod 286 0x028cab48 code [0x028cac40, 0x028cac90]
Event: 10.509 Thread 0x60f26000  287             java.nio.HeapByteBuffer::put (16 bytes)
Event: 10.509 Thread 0x60f26000 nmethod 287 0x028cb2c8 code [0x028cb3c0, 0x028cb470]
Event: 10.740 Thread 0x60f20400  288             java.util.WeakHashMap::indexFor (6 bytes)
Event: 10.741 Thread 0x60f20400 nmethod 288 0x028ca988 code [0x028caa80, 0x028caab0]
Event: 10.757 Thread 0x60f26000  289             java.util.HashMap::clear (39 bytes)
Event: 10.759 Thread 0x60f26000 nmethod 289 0x028cb048 code [0x028cb140, 0x028cb230]

GC Heap History (2 events):
Event: 7.255 GC heap before
{Heap before GC invocations=0 (full 0):
 par new generation   total 414720K, used 147491K [0x05cd0000, 0x21ed0000, 0x21ed0000)
  eden space 368640K,  40% used [0x05cd0000, 0x0ecd8cd8, 0x1c4d0000)
  from space 46080K,   0% used [0x1c4d0000, 0x1c4d0000, 0x1f1d0000)
  to   space 46080K,   0% used [0x1f1d0000, 0x1f1d0000, 0x21ed0000)
 concurrent mark-sweep generation total 51200K, used 0K [0x21ed0000, 0x250d0000, 0x5a2d0000)
 concurrent-mark-sweep perm gen total 16384K, used 14651K [0x5a2d0000, 0x5b2d0000, 0x5e2d0000)
Event: 7.376 GC heap after
Heap after GC invocations=1 (full 1):
 par new generation   total 414720K, used 0K [0x05cd0000, 0x21ed0000, 0x21ed0000)
  eden space 368640K,   0% used [0x05cd0000, 0x05cd0000, 0x1c4d0000)
  from space 46080K,   0% used [0x1c4d0000, 0x1c4d0000, 0x1f1d0000)
  to   space 46080K,   0% used [0x1f1d0000, 0x1f1d0000, 0x21ed0000)
 concurrent mark-sweep generation total 51200K, used 12047K [0x21ed0000, 0x250d0000, 0x5a2d0000)
 concurrent-mark-sweep perm gen total 24404K, used 14641K [0x5a2d0000, 0x5baa5000, 0x5e2d0000)
}

Deoptimization events (10 events):
Event: 6.975 Thread 0x61e8b800 Uncommon trap -58 fr.pc 0x02898968
Event: 6.975 Thread 0x61e8b800 Uncommon trap -58 fr.pc 0x02898968
Event: 6.975 Thread 0x61e8b800 Uncommon trap -58 fr.pc 0x02898968
Event: 6.975 Thread 0x61e8b800 Uncommon trap -58 fr.pc 0x02898968
Event: 8.422 Thread 0x61fa2000 Uncommon trap -12 fr.pc 0x028a4488
Event: 8.462 Thread 0x61fa9000 Uncommon trap 207 fr.pc 0x02888a40
Event: 9.434 Thread 0x61cef000 Uncommon trap -34 fr.pc 0x028be294
Event: 9.458 Thread 0x61cef000 Uncommon trap -34 fr.pc 0x028be294
Event: 9.477 Thread 0x61cef000 Uncommon trap -34 fr.pc 0x028be294
Event: 9.585 Thread 0x61cef000 Uncommon trap -34 fr.pc 0x028be294

Internal exceptions (10 events):
Event: 9.613 Thread 0x695a0c00 Threw 0x0e08e1b0 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.614 Thread 0x695a2000 Threw 0x0e3a2208 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.617 Thread 0x695a2000 Threw 0x0e3b7858 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.628 Thread 0x695a0c00 Threw 0x0e0ce208 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.630 Thread 0x695a2000 Threw 0x0e3f2548 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.634 Thread 0x61cef000 Threw 0x0c470c70 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.818 Thread 0x69559400 Threw 0x0e8b9390 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.820 Thread 0x69559400 Threw 0x0e8c23c8 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 9.829 Thread 0x69559400 Threw 0x0e8ee620 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 13.245 Thread 0x61fa2000 Threw 0x0a02eca0 at C:\jdk7u2_32P\jdk7u4\hotspot\src\share\vm\prims\jvm.cpp:1166

Events (10 events):
Event: 10.461 Executing VM operation: RevokeBias
Event: 10.461 Executing VM operation: RevokeBias done
Event: 10.566 Executing VM operation: RevokeBias
Event: 10.567 Executing VM operation: RevokeBias done
Event: 10.575 Thread 0x69559400 Thread added: 0x69559400
Event: 10.759 Thread 0x60f26000 flushing nmethod 0x02898648
Event: 11.875 Executing VM operation: RevokeBias
Event: 11.875 Executing VM operation: RevokeBias done
Event: 13.245 loading class 0x621b51f0
Event: 13.245 loading class 0x621b51f0 done


Dynamic libraries:
0x013e0000 - 0x0140f000     C:\Program Files (x86)\Java\jdk1.7.0_04\bin\java.exe
0x77180000 - 0x77300000     C:\Windows\SysWOW64\ntdll.dll
0x752c0000 - 0x753d0000     C:\Windows\syswow64\kernel32.dll
0x75080000 - 0x750c6000     C:\Windows\syswow64\KERNELBASE.dll
0x72370000 - 0x723a7000     C:\Program Files\AVAST Software\Avast\snxhk.dll
0x76ce0000 - 0x76d80000     C:\Windows\syswow64\ADVAPI32.dll
0x76800000 - 0x768ac000     C:\Windows\syswow64\msvcrt.dll
0x75230000 - 0x75249000     C:\Windows\SysWOW64\sechost.dll
0x74f90000 - 0x75080000     C:\Windows\syswow64\RPCRT4.dll
0x74ce0000 - 0x74d40000     C:\Windows\syswow64\SspiCli.dll
0x74cd0000 - 0x74cdc000     C:\Windows\syswow64\CRYPTBASE.dll
0x763d0000 - 0x764d0000     C:\Windows\syswow64\USER32.dll
0x756c0000 - 0x75750000     C:\Windows\syswow64\GDI32.dll
0x76c30000 - 0x76c3a000     C:\Windows\syswow64\LPK.dll
0x76c40000 - 0x76cdd000     C:\Windows\syswow64\USP10.dll
0x73af0000 - 0x73c8e000     C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll
0x750d0000 - 0x75127000     C:\Windows\syswow64\SHLWAPI.dll
0x74e60000 - 0x74ec0000     C:\Windows\system32\IMM32.DLL
0x74ec0000 - 0x74f8c000     C:\Windows\syswow64\MSCTF.dll
0x668b0000 - 0x6696e000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\msvcr100.dll
0x65770000 - 0x65ca2000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\server\jvm.dll
0x73840000 - 0x73847000     C:\Windows\system32\WSOCK32.dll
0x768b0000 - 0x768e5000     C:\Windows\syswow64\WS2_32.dll
0x75600000 - 0x75606000     C:\Windows\syswow64\NSI.dll
0x71590000 - 0x715c2000     C:\Windows\system32\WINMM.dll
0x75640000 - 0x75645000     C:\Windows\syswow64\PSAPI.DLL
0x6c580000 - 0x6c58c000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\verify.dll
0x66dc0000 - 0x66de0000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\java.dll
0x66da0000 - 0x66db3000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\zip.dll
0x00310000 - 0x00317000     C:\Program Files (x86)\JetBrains\IntelliJ IDEA 10.5.4\bin\breakgen.dll
0x66d80000 - 0x66d94000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\net.dll
0x74830000 - 0x7486c000     C:\Windows\system32\mswsock.dll
0x717b0000 - 0x717b6000     C:\Windows\System32\wship6.dll
0x66760000 - 0x668a2000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\awt.dll
0x74dd0000 - 0x74e5f000     C:\Windows\syswow64\OLEAUT32.dll
0x76610000 - 0x7676c000     C:\Windows\syswow64\ole32.dll
0x722f0000 - 0x72370000     C:\Windows\system32\uxtheme.dll
0x72130000 - 0x72143000     C:\Windows\system32\dwmapi.dll
0x75750000 - 0x7639a000     C:\Windows\syswow64\SHELL32.dll
0x6dfc0000 - 0x6e183000     C:\Windows\system32\d3d9.dll
0x72d70000 - 0x72d79000     C:\Windows\system32\VERSION.dll
0x717c0000 - 0x717c6000     C:\Windows\system32\d3d8thk.dll
0x6c130000 - 0x6c1c6000     C:\Windows\system32\aticfx32.dll
0x6c120000 - 0x6c12a000     C:\Windows\system32\atiu9pag.dll
0x6b920000 - 0x6bd1e000     C:\Windows\system32\atiumdag.dll
0x6bdb0000 - 0x6c114000     C:\Windows\system32\atiumdva.dll
0x66d40000 - 0x66d6a000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\fontmanager.dll
0x71570000 - 0x7157f000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\nio.dll
0x74d40000 - 0x74dc3000     C:\Windows\syswow64\CLBCatQ.DLL
0x6b780000 - 0x6b87b000     C:\Windows\system32\WindowsCodecs.dll
0x720b0000 - 0x720fc000     C:\Windows\system32\apphelp.dll
0x6bd80000 - 0x6bd92000     C:\Program Files (x86)\Common Files\TortoiseOverlays\TortoiseOverlays.dll
0x6bd70000 - 0x6bd7d000     C:\Program Files\TortoiseSVN\bin\TortoiseStub32.dll
0x6b710000 - 0x6b77b000     C:\Program Files\TortoiseSVN\bin\TortoiseSVN32.dll
0x75130000 - 0x75225000     C:\Windows\syswow64\WININET.dll
0x764d0000 - 0x76607000     C:\Windows\syswow64\urlmon.dll
0x76b10000 - 0x76c2d000     C:\Windows\syswow64\CRYPT32.dll
0x77150000 - 0x7715c000     C:\Windows\syswow64\MSASN1.dll
0x75400000 - 0x755fe000     C:\Windows\syswow64\iertutil.dll
0x6b420000 - 0x6b70c000     C:\Program Files\TortoiseSVN\bin\libsvn_tsvn32.dll
0x6bd40000 - 0x6bd64000     C:\Program Files\TortoiseSVN\bin\libapr_tsvn32.dll
0x6b320000 - 0x6b356000     C:\Program Files\TortoiseSVN\bin\libaprutil_tsvn32.dll
0x75650000 - 0x75695000     C:\Windows\syswow64\WLDAP32.dll
0x6bd30000 - 0x6bd3d000     C:\Program Files\TortoiseSVN\bin\intl3_tsvn32.dll
0x6b300000 - 0x6b313000     C:\Program Files\TortoiseSVN\bin\libsasl32.dll
0x71fa0000 - 0x71fa8000     C:\Windows\system32\Secur32.dll
0x6b290000 - 0x6b2f9000     C:\Windows\system32\MSVCP100.dll
0x6b210000 - 0x6b241000     C:\Windows\system32\EhStorShell.dll
0x768f0000 - 0x76a8d000     C:\Windows\syswow64\SETUPAPI.dll
0x75610000 - 0x75637000     C:\Windows\syswow64\CFGMGR32.dll
0x756a0000 - 0x756b2000     C:\Windows\syswow64\DEVOBJ.dll
0x6da90000 - 0x6db85000     C:\Windows\system32\PROPSYS.dll
0x6c3d0000 - 0x6c440000     C:\Windows\system32\ntshrui.dll
0x744b0000 - 0x744c9000     C:\Windows\system32\srvcli.dll
0x72bb0000 - 0x72bbb000     C:\Windows\system32\cscapi.dll
0x6c3c0000 - 0x6c3ca000     C:\Windows\system32\slc.dll
0x614a0000 - 0x614d1000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\t2k.dll
0x74580000 - 0x74596000     C:\Windows\system32\CRYPTSP.dll
0x74500000 - 0x7453b000     C:\Windows\system32\rsaenh.dll
0x72d40000 - 0x72d57000     C:\Windows\system32\USERENV.dll
0x72d30000 - 0x72d3b000     C:\Windows\system32\profapi.dll
0x742c0000 - 0x742d0000     C:\Windows\system32\NLAapi.dll
0x742b0000 - 0x742c0000     C:\Windows\system32\napinsp.dll
0x74290000 - 0x742a2000     C:\Windows\system32\pnrpnsp.dll
0x71da0000 - 0x71de4000     C:\Windows\system32\DNSAPI.dll
0x73c90000 - 0x73c98000     C:\Windows\System32\winrnr.dll
0x73ac0000 - 0x73ae1000     C:\Program Files (x86)\Bonjour\mdnsNSP.dll
0x74c20000 - 0x74c3c000     C:\Windows\system32\Iphlpapi.DLL
0x74870000 - 0x74877000     C:\Windows\system32\WINNSI.DLL
0x73ab0000 - 0x73abd000     C:\Windows\system32\wshbth.dll
0x747b0000 - 0x747b5000     C:\Windows\System32\wshtcpip.dll
0x73990000 - 0x73996000     C:\Windows\system32\rasadhlp.dll
0x73a70000 - 0x73aa8000     C:\Windows\System32\fwpuclnt.dll
0x66ec0000 - 0x66efa000     C:\Program Files\UltraMon\RTSUltraMonHookX32.dll
0x67170000 - 0x673b0000     C:\Windows\system32\msi.dll
0x714a0000 - 0x714f1000     C:\Program Files\UltraMon\UltraMonResButtons.dll
0x6e260000 - 0x6e3f0000     C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80\gdiplus.dll
0x71720000 - 0x717a4000     C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\comctl32.dll
0x74880000 - 0x748a1000     C:\Windows\system32\ntmarta.dll
0x68740000 - 0x688d8000     C:\Windows\system32\NetworkExplorer.dll
0x6cab0000 - 0x6cade000     C:\Windows\System32\shdocvw.dll
0x6ded0000 - 0x6dee2000     C:\Windows\system32\MPR.dll
0x6c570000 - 0x6c578000     C:\Windows\System32\drprov.dll
0x74540000 - 0x74569000     C:\Windows\System32\WINSTA.dll
0x61830000 - 0x61844000     C:\Windows\System32\ntlanman.dll
0x61850000 - 0x61867000     C:\Windows\System32\davclnt.dll
0x66750000 - 0x66758000     C:\Windows\System32\DAVHLPR.dll
0x72bc0000 - 0x72bcf000     C:\Windows\system32\wkscli.dll
0x744d0000 - 0x744d9000     C:\Windows\system32\netutils.dll
0x688e0000 - 0x68b18000     C:\Windows\system32\wpdshext.dll
0x67af0000 - 0x67b79000     C:\Windows\system32\PortableDeviceApi.dll
0x753d0000 - 0x753fd000     C:\Windows\syswow64\WINTRUST.dll
0x66690000 - 0x666bb000     C:\Windows\system32\PortableDeviceTypes.dll
0x63420000 - 0x6345f000     C:\Windows\system32\audiodev.dll
0x68f80000 - 0x691e7000     C:\Windows\system32\WMVCore.DLL
0x64c50000 - 0x64c8d000     C:\Windows\system32\WMASF.DLL
0x618b0000 - 0x618d2000     C:\Windows\system32\EhStorAPI.dll
0x6caf0000 - 0x6caf9000     C:\Windows\system32\LINKINFO.dll
0x71580000 - 0x7158f000     C:\Windows\system32\samcli.dll
0x6c5a0000 - 0x6c5b2000     C:\Windows\system32\SAMLIB.dll
0x61970000 - 0x61990000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\sunec.dll
0x61260000 - 0x61269000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\sunmscapi.dll
0x6d8d0000 - 0x6d8e2000     C:\Windows\system32\dhcpcsvc.DLL
0x6d8c0000 - 0x6d8cd000     C:\Windows\system32\dhcpcsvc6.DLL
0x61310000 - 0x6131a000     C:\Program Files (x86)\Java\jdk1.7.0_04\jre\bin\management.dll
0x62850000 - 0x62878000     C:\Users\Admin\AppData\Local\Temp\BridJExtractedLibraries7394033423303997748\bridj.dll
0x62bf0000 - 0x62c1d000     C:\Users\Admin\AppData\Local\Temp\BridJExtractedLibraries7394033423303997748\OpenIMAJGrabber.dll
0x6def0000 - 0x6df09000     C:\Windows\system32\OLEPRO32.DLL

VM Arguments:
jvm_args: -Dwebcam.debug=true -Dbridj.debug=true -Dbridj.veryVerbose=true -Dbridj.verbose=true -XX:-UseSplitVerifier -Xms500m -Xmx1350m -XX:-EliminateLocks -XX:-UseSpinning -XX:+UseBiasedLocking -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalDutyCycleMin=0 -XX:CMSIncrementalDutyCycle=10 -XX:+CMSParallelRemarkEnabled -XX:-UseThreadPriorities -Djsse.enableCBCProtection=false -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./b2n.hprof -Didea.launcher.port=7532 -Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 10.5.4\bin -Dfile.encoding=UTF-8 
java_command: com.intellij.rt.execution.application.AppMain net.b2net.data.client.ui.Startup ../../../../common/config/DataClient.xml
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 10.5.4\bin\..\.\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;C:\blp\API;C:\blp\API\dde;C:\Program Files (x86)\doxygen\bin;C:\Program Files (x86)\Graphviz 2.28\bin;c:\program files (x86)\jetbrains\intellij idea 10.5.4\jre\jre\bin
USERNAME=Admin
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 42 Stepping 7, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 7 , 64 bit Build 7601 Service Pack 1

CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, ht, tsc, tscinvbit

Memory: 4k page, physical 8297200k(5244636k free), swap 16592552k(12889628k free)

vm_info: Java HotSpot(TM) Server VM (23.0-b21) for windows-x86 JRE (1.7.0_04-b20), built on Apr 12 2012 03:23:30 by "java_re" with unknown MS VC++:1600

time: Mon Feb 04 23:48:53 2013
elapsed time: 13 seconds

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

Could you please repeat this experiment with trace level enabled? I will need console debug output since there are too few information in hs file. Java crashed because code tries to read memory which was already deallocated, so to resolve your issue we have to find why it was deallocated in first place. By enabling trace logs we should be able to see exactly what operations are being executed in the webcam-capture runtime.

Please drop this logback.xml file in the program working directory:

<configuration scan="true" scanPeriod="30 seconds">
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </layout>
    </appender>
    <root level="trace">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

And include this line at the very beginning of your main() method (before you try to use any webcam feature):

WebcamLogConfigurator.configure("logback.xml");

Please make sure to add logback-classic and logback-core JARs in the build classpath.

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

Could you also try to test it on smaller code, e.g. on this very simple example, or another more complex one?

from webcam-capture.

vtomanov avatar vtomanov commented on August 22, 2024

not much luck with the trace...

SEVERE: org.slf4j.impl.JDK14LoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext : java.lang.ClassCastException: org.slf4j.impl.JDK14LoggerFactory cannot be cast to ch.qos.logback.classic.LoggerContext
at com.github.sarxos.webcam.log.WebcamLogConfigurator.configure(WebcamLogConfigurator.java:36)
at com.github.sarxos.webcam.log.WebcamLogConfigurator.configure(WebcamLogConfigurator.java:58)
at com.github.sarxos.webcam.log.WebcamLogConfigurator.configure(WebcamLogConfigurator.java:80)
at net.b2net.data.client.motion.SnapGenerator.initialize(SnapGenerator.java:66)
at net.b2net.data.client.motion.AdaptoSnapGenerator.initialize(AdaptoSnapGenerator.java:93)
at net.b2net.data.client.Controller.configure(Controller.java:332)
at net.b2net.data.client.Controller.run(Controller.java:705)
at java.lang.Thread.run(Thread.java:722)

from webcam-capture.

vtomanov avatar vtomanov commented on August 22, 2024

OK the problem seems to be the place where I have put the setVewSize(...) this exact example crashes..

Webcam webcam = Webcam.getDefault();
webcam.open();
webcam.setViewSize(new Dimension(640, 480)); // <---- this where it is in my code in your example is before open
ImageIO.write(webcam.getImage(), "PNG", new File("test"+".png"));
webcam.close();

from webcam-capture.

vtomanov avatar vtomanov commented on August 22, 2024

BTW - do I need to defiantly have webcam.open() and webcam.close() ? - close is the more problematic one... as it is standalone app and I may need to do some shutdownhook to be able to call close

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

For now there is no need to open(), it will be opened automatically on getImage(), but please be aware I want to drop this feature in next release since it really complicates synchronization code...You don't need to close() at all, there is a build-in shutdown hook which close the webcam automatically when JVM exits gracefully. Please note that in such a case your webcam power diode will be be enabled until you close your app.

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

In terms of trace log. Could you please disable logging mechanism you are using and replace it by SLF4J + Logback? The best would be to extract small example from your program and perform tests on it, so you don't have to change your code at all. WebcamLogConfigurator is a debug tool I wrote for my own purpose and it is able to work with Logback only.

from webcam-capture.

vtomanov avatar vtomanov commented on August 22, 2024

I was under impression that we do not need the logging anymore as we know now how the problem is showing itself ? I guess if you run the following code it will crash for you too ? or it works for you ?

Webcam webcam = Webcam.getDefault();
webcam.open();
webcam.setViewSize(new Dimension(640, 480)); // <---- this where it is in my code in your example is before open
ImageIO.write(webcam.getImage(), "PNG", new File("test"+".png"));
webcam.close();

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

Hi,

I've just read again your comment where you conclude where the error is located, and I confirm. I just took a brief look on it in my email box when saw it first and simply missed this point :P Sorry for that.

I cannot reproduce it, but I'm on Ubuntu, so will have to try it later on my Windows XP or Vista machine. However, it's most likely the root cause since webcam is being configured on the very beginning when you call open(). When you set different size later, it will update resolution in Java, but native grabber is still on old resolution. There should be no issue in case if it was higher, but in case when old resolution was smaller then new one, this code could possibly cause the error observed in hs file:

Pointer<Byte> image = grabber.getImage();
Dimension size = dimension.get();
bytes.set(image == null ? null : image.getBytes(size.width * size.height * 3));

As you can see, it tries to read 3 * width * height bytes starting from the pointer, but when allocated memory size was smaller, it can lead to access violation.

I will change setViewSize() method and add statement to check if webcam has been already open. The best approach imho is to throw exception in such a case, so all developers will be aware of issue in the code. The other solution is to ignore resolution change after webcam is open, and simply do nothing, but this could lead to misunderstandings, since one could suppose that his/her code actually works fine because there are no errors.

from webcam-capture.

vtomanov avatar vtomanov commented on August 22, 2024

I suggest put some flag if the setViewSize is called once for the webcam and then rise exception for any subsequent call to setViewSize

from webcam-capture.

sarxos avatar sarxos commented on August 22, 2024

Mmm, but in such a case resolution once set, will not be able to be modified. Actually I have code ready and tested where I throw exception after someone tries to change resolution after webcam is open. Will be submitted in few minutes.

from webcam-capture.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.