IP Library Granted Patent US 10,244,010
Granted Patent B2
US 10,244,010 · App. 15/434,561 · Granted Mar 26, 2019

Data processing apparatus configured to recover a network connection, a method, a system and a non-transitory computer readable medium configured to perform same

Inventors: Roger Levy (Berkeley Heights, NJ); Lawrence O'Gorman (Madison, NJ); Xiaoyang Wang (Murray Hill, NJ)
Assignee: NOKIA OF AMERICA CORPORATION
H04L65/1069G06F9/485G06F9/4843
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,244,010
App. No.
15/434,561
Granted
Mar 26, 2019
Kind
B2
Abstract

In at least some example embodiments, a data processing apparatus is configured to recover a network connection within an application framework that hides sockets by separating acquisition and processing into different threads of the same process, and, thus, when the processing thread is unable to retrieve a frame from the acquisition thread, the data processing device may terminate the acquisition thread with impunity since all important application state may safely remain within the processing thread.

Claims (47)

1. A data processing apparatus comprising:

at least one processor configured to execute a process including at least a processing thread, the processing thread configured to,

create an acquisition thread within the process, the acquisition thread being subordinate to the processing thread,

request a frame associated with a source device from the acquisition thread, and

restart the acquisition thread, if the frame is unavailable.

2. The data processing apparatus of claim 1 , wherein the processor is configured to restart the acquisition thread such that state information associated with the process remains intact within the processing thread when the acquisition thread is terminated.

3. The data processing apparatus of claim 1 , wherein the processor is configured to recover a network connection between the acquisition thread and the source device by iteratively restarting the acquisition thread until the frame is available.

4. The data processing apparatus of claim 1 , wherein the processor is configured to extract the frame from a data queue.

5. The data processing apparatus of claim 4 , wherein the data queue is simultaneously accessible by the acquisition thread and the processing thread.

6. The data processing apparatus of claim 4 , wherein the processor is configured to restart the acquisition thread, if the processor determines that the frame is unavailable in the data queue within a set time period after requesting the frame.

7. The data processing apparatus of claim 6 , wherein the processor is configured to determine, within the processing thread, whether the frame is unavailable by analyzing a semaphore accessible by both the acquisition thread and the processing thread, the semaphore indicating whether the frame is available for extraction by the processing thread.

8. The data processing apparatus of claim 7 , wherein the processor is configured to instruct the acquisition thread to,

attempt to establish a network connection with the source device, and

if the network connection is established, acquire the frame from the source device over the network connection, store the frame in the data queue, and increment the semaphore.

9. The data processing apparatus of claim 8 , wherein the processor is configured to instruct the acquisition thread to establish the network connection by calling an Open Source Computer Vision (OpenCV) function, the OpenCV function abstracting one or more pieces of information associated with the network connection from the acquisition thread.

10. A method of recovering a network connection to one or more source devices, the method comprising:

creating an acquisition thread within the process, the acquisition thread being subordinate to a processing thread;

requesting a frame associated with a source device from the acquisition thread; and

restarting the acquisition thread, if the frame is unavailable.

11. The method of claim 10 , wherein the restarting restarts the acquisition thread such that state information associated with the process remains intact within the processing thread when the acquisition thread is terminated.

12. The method of claim 10 , wherein

the requesting includes extracting the frame from a data queue, and

the restarting includes iteratively restarting the acquisition thread until the frame is available to recover a network connection between the acquisition thread and the source device.

13. The method of claim 10 , further comprising:

determining whether the frame is unavailable by analyzing a semaphore accessible by both the acquisition thread and the processing thread, the semaphore indicating whether the frame is for extraction by the processing thread, wherein

the restarting restarts the acquisition thread, if the determining determines that the frame is unavailable in a data queue within a set time period after requesting the frame.

14. The method of claim 13 , further comprising:

attempting to establish a network connection with the source device, and

if the network connection is established, acquiring the frame from the source device over the network connection, storing the frame in the data queue, and incrementing the semaphore.

15. The method of claim 14 , wherein the attempting to establish comprises:

attempting to establish, via the acquisition thread, the network connection with the source device by calling an Open Source Computer Vision (OpenCV) function, the OpenCV function abstracting one or more pieces of information associated with the network connection from the acquisition thread.

16. A data streaming system comprising:

a source device configured to stream data; and

a data processing apparatus including a processor configured to execute a process including at least a processing thread, the processing thread configured to,

create an acquisition thread within the process, the acquisition thread being subordinate to the processing thread,

request a frame associated with the source device from the acquisition thread, and

restart the acquisition thread, if the frame is unavailable.

17. The data streaming system of claim 16 , wherein the data processing apparatus is configured to, within the processing thread,

extract the frame from a data queue, and

iteratively restart the acquisition thread until the frame is available to recover a network connection between the acquisition thread and the source device such that state information associated with the process remains intact within the processing thread when the acquisition thread is terminated.

18. The data streaming system of claim 16 , wherein the data processing apparatus is configured to,

determine, within the processing thread, whether the frame is unavailable by analyzing a semaphore accessible by both the acquisition thread and the processing thread, the semaphore indicating whether the frame is available for extraction by the processing thread, and

restart the acquisition thread, if the data processing apparatus determines, within the processing thread, that the frame is unavailable in a data queue within a set time period after requesting the frame.

19. The data streaming system of claim 18 , wherein the data processing apparatus is configured to,

attempt to establish, via the acquisition thread, a network connection with the source device by calling an Open Source Computer Vision (OpenCV) function, the OpenCV function abstracting one or more pieces of information associated with the network connection from the acquisition thread, and

if the network connection is established, acquire the frame from the source device over the network connection, store the frame in the data queue, and increment the semaphore.

20. A non-transitory computer readable medium storing instructions, that, when executed by a processor, configure the processor to perform the method of claim 10 .

Assignments (2)
CHANGE OF NAME Recorded Jan 14, 2019
From: ALCATEL-LUCENT USA INC.
To: NOKIA OF AMERICA CORPORATION
Reel/Frame 048069/0664 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2017
From: LEVY, ROGER; O'GORMAN, LAWRENCE; WANG, XIAOYANG
To: ALCATEL-LUCENT USA INC.
Reel/Frame 041280/0324 →
Continuity (1)
Related Publication 20180234468A1 · Aug 16, 2018