IP Library Granted Patent US 12,470,616
Granted Patent B2
US 12,470,616 · App. 18/670,790 · Granted Nov 11, 2025

Methods and systems for codec detection in video streams

Inventors: Pierre Racz (Saint-Laurent, CA); Julien Vary (Saint-Laurent, CA)
Assignee: GENETEC INC.
H04L65/70G08B13/19656G08B13/19667G08B13/19686H04L47/196H04L65/65H04L69/22H04N19/70H04N21/2402
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 12,470,616
App. No.
18/670,790
Granted
Nov 11, 2025
Kind
B2
Abstract

Method and apparatus for carrying out the method receiving packets, each of the packets comprising a header and a payload. For a particular packet among the packets, the method includes processing at least the header of the particular packet to determine a flow associated with the particular packet; attempting to determine a payload structure based on the flow, the payload structure associated with transport of coded video data in the payload of the particular packet; and if the attempting is successful, repackaging coded video data contained in the payload of the particular packet into a new packet and forwarding the new packet to an external system or storing the new packet in memory.

Claims (51)

1 . A processor-implemented method, comprising:

receiving a plurality of packets, each belonging to one of a plurality of flows, each packet comprising a header and a payload;

responsive to receipt of each of the packets:

searching in a memory for a record associated with the flow to which the packet belongs;

in case the searching finds no record in the memory, allocating a portion of the memory to a record associated with the flow to which the packet belongs;

attempting codec identification by processing at least part of the payload of the packet;

in case the attempting successfully identifies a particular codec, storing information regarding the particular codec in the record associated with the flow to which the packet belongs;

in case the attempting is unsuccessful and a certain condition has been reached since the portion of the memory has been allocated, freeing up the portion of the memory.

2 . The method defined in claim 1 , wherein the certain condition comprises a period of time having elapsed.

3 . The method defined in claim 1 , the packet being a current packet, wherein the certain condition is defined by a predetermined number of previously received packets associated with said flow.

4 . A non-transitory computer-readable medium storing computer-readable instructions which, when executed by a processor, cause the processor to carry out a method that comprises:

receiving a plurality of packets, each belonging to one of a plurality of flows, each packet comprising a header and a payload;

responsive to receipt of each of the packets:

searching in a memory for a record associated with the flow to which the packet belongs;

in case the searching finds no record in the memory, allocating a portion of the memory to a record associated with the flow to which the packet belongs;

attempting codec identification by processing at least part of the payload of the packet;

in case the attempting successfully identifies a particular codec, storing information regarding the particular codec in the record associated with the flow to which the packet belongs;

in case the attempting is unsuccessful and a certain condition has been reached since the portion of the memory has been allocated, freeing up the portion of the memory.

5 . The computer-readable medium defined in claim 4 , wherein the certain condition comprises a predetermined amount of time having elapsed.

6 . The computer-readable medium defined in claim 4 , the packet being a current packet, wherein the certain condition is defined by a predetermined number of previously received packets associated with said flow.

7 . The method defined in claim 1 , wherein searching in the memory for the record associated with the flow to which the packet belongs comprises determining if the flow of the packet corresponds to contents in a flow field of the record.

8 . The method defined in claim 7 , wherein the flow field comprises a source IP sub-field, a source port sub-field, a destination IP sub-field, and a destination port sub-field.

9 . The method defined in claim 1 , wherein the information stored in the record comprises at least one of a corresponding payload structure, the particular codec, and a current time.

10 . The method defined in claim 1 , wherein the record associated with the flow is included in a memory container.

11 . The method defined in claim 10 , wherein the memory container is stored as a global variable.

12 . The method defined in claim 10 , the method further comprising:

obtaining a current time; and

for each record of a plurality of records in the memory container, comparing the current time with a value in a timestamp field of the record to compute a respective difference.

13 . The method defined in claim 12 , the method further comprising:

in case the respective computed difference for a given record is greater than a threshold, deallocating a memory space formerly taken up by the given record.

14 . The method defined in claim 1 , wherein the method is performed by a surveillance module.

15 . The computer-readable medium defined in claim 4 , wherein searching in the memory for the record associated with the flow to which the packet belongs comprises determining if the flow of the packet corresponds to contents in a flow field of the record.

16 . The computer-readable medium defined in claim 15 , wherein the flow field comprises a source IP sub-field, a source port sub-field, a destination IP sub-field, and a destination port sub-field.

17 . The computer-readable medium defined in claim 4 , wherein the information stored in the record comprises at least one of a corresponding payload structure, the particular codec, and a current time.

18 . The computer-readable medium defined in claim 4 , wherein the record associated with the flow is included in a memory container.

19 . The computer-readable medium defined in claim 18 , wherein the memory container is stored as a global variable.

20 . The computer-readable medium defined in claim 18 , wherein the method further comprises:

obtaining a current time; and

for each record of a plurality of records in the memory container, comparing the current time with a value in a timestamp field of the record to compute a respective difference.

21 . The computer-readable medium defined in claim 20 , wherein the method further comprises:

in case the respective computed difference for a given record is greater than a threshold, deallocating a memory space formerly taken up by the given record.

22 . A system comprising:

a processor; and

a memory accessible by the processor, the memory storing instructions that, when executed by the processor, cause the processor to:

receive a plurality of packets, each belonging to one of a plurality of flows, each packet comprising a header and a payload;

responsive to receipt of each of the packets:

search in the memory for a record associated with the flow to which the packet belongs;

in case the search finds no record in the memory associated with the flow to which the packet belongs, allocate a portion of the memory to a record associated with the flow to which the packet belongs;

attempt codec identification by processing at least part of the payload of the packet;

in case the attempt successfully identifies a particular codec, store information regarding the particular codec in the record associated with the flow to which the packet belongs;

in case the attempt is unsuccessful and a certain condition has been reached since the portion of the memory has been allocated, free up the portion of the memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2025
From: RACZ, PIERRE; VARY, JULIEN
To: GENETEC INC.
Reel/Frame 070956/0172 →
Continuity (7)
Continuation 17824269 · May 25, 2022
Continuation 17489121 · Sep 29, 2021
Continuation 16880832 · May 21, 2020
Provisional Application 62850788 · May 21, 2019
Provisional Application 63013021 · Apr 21, 2020
Provisional Application 63027217 · May 19, 2020
Related Publication 20240323245A1 · Sep 26, 2024
References Cited (82)
US 6650640B1 · Muller et al. · 2003 [cited by applicant]
US 7242681B1 · Van Bokkelen et al. · 2007 [cited by applicant]
US 8792353B1 · Janarthanan et al. · 2014 [cited by applicant]
US 10298387B1 · Good · 2019 [cited by applicant]
US 10320557B2 · Karkkainen · 2019 [cited by applicant]
US 11100197B1 · Bernard · 2021 [cited by applicant]
US 11153360B2 · Racz et al. · 2021 [cited by applicant]
US 11348075B1 · Oakes · 2022 [cited by applicant]
US 11374997B2 · Racz et al. · 2022 [cited by applicant]
US 11627057B2 · Sethi · 2023 [cited by applicant]
US 20020101872A1 · Boivie · 2002 [cited by applicant]
US 20030189937A1 · Kawasaki · 2003 [cited by examiner]
US 20030206596A1 · Carver et al. · 2003 [cited by applicant]
US 20040199670A1 · Garfinkel · 2004 [cited by applicant]
US 20060104268A1 · Lee et al. · 2006 [cited by applicant]
US 20060259966A1 · Ilnicki · 2006 [cited by applicant]
US 20070076855A1 · MeLampy et al. · 2007 [cited by applicant]
US 20080013532A1 · Garner · 2008 [cited by examiner]
US 20080056302A1 · Erdal et al. · 2008 [cited by applicant]
US 20080080619A1 · Heng et al. · 2008 [cited by applicant]
US 20090183260A1 · Hernacki et al. · 2009 [cited by applicant]
US 20100080133A1 · Oron · 2010 [cited by examiner]
US 20100262628A1 · Singer · 2010 [cited by applicant]
US 20110276712A1 · Narula et al. · 2011 [cited by applicant]
US 20120106741A1 · Aumasson et al. · 2012 [cited by applicant]
US 20130173819A1 · Lee et al. · 2013 [cited by applicant]
US 20130265883A1 · Henry · 2013 [cited by examiner]
US 20130279572A1 · Li et al. · 2013 [cited by applicant]
US 20130301460A1 · Bugenhagen · 2013 [cited by examiner]
US 20140143385A1 · Neff et al. · 2014 [cited by applicant]
US 20150281125A1 · Koponen et al. · 2015 [cited by applicant]
US 20150319041A1 · Diab et al. · 2015 [cited by applicant]
US 20160100196A1 · Wu et al. · 2016 [cited by applicant]
US 20160164651A1 · Reddappagari · 2016 [cited by applicant]
US 20160205422A1 · Saptharishi · 2016 [cited by applicant]
US 20170054697A1 · Zhang · 2017 [cited by applicant]
US 20170063690A1 · Bosshart · 2017 [cited by applicant]
US 20170201537A1 · Caldwell · 2017 [cited by applicant]
US 20180007398A1 · Bleidt et al. · 2018 [cited by applicant]
US 20180069661A1 · Koenig · 2018 [cited by applicant]
US 20180227229A1 · Lopez · 2018 [cited by applicant]
US 20180241727A1 · Verzun et al. · 2018 [cited by applicant]
US 20180295400A1 · Thomas et al. · 2018 [cited by applicant]
US 20180302515A1 · Li · 2018 [cited by examiner]
US 20180359811A1 · Verzun · 2018 [cited by examiner]
US 20190036841A1 · Nolan et al. · 2019 [cited by applicant]
US 20190089673A1 · Berhorst · 2019 [cited by applicant]
US 20190109820A1 · Clark et al. · 2019 [cited by applicant]
US 20190116111A1 · Izard et al. · 2019 [cited by applicant]
US 20190166057A1 · Gilson · 2019 [cited by applicant]
US 20190238795A1 · Chen · 2019 [cited by applicant]
US 20200014691A1 · Ortiz · 2020 [cited by applicant]
US 20200045080A1 · Wisniewski · 2020 [cited by applicant]
US 20200374333A1 · Racz et al. · 2020 [cited by applicant]
US 20210020006A1 · Schieltz · 2021 [cited by applicant]
US 20210258300A1 · Eriksson · 2021 [cited by applicant]
US 20210266102A1 · Ferrari · 2021 [cited by applicant]
US 20220028236A1 · Racz et al. · 2022 [cited by applicant]
US 20220294841A1 · Racz et al. · 2022 [cited by applicant]
US 20230019877A1 · Racz et al. · 2023 [cited by applicant]
EP 1148738 · 2001 [cited by applicant]
EP 3973677 · 2022 [cited by applicant]
JP 2007325171 · 2007 [cited by applicant]
KR 100480186 · 2005 [cited by applicant]
WO 2020232549 · 2020 [cited by applicant]
WO 2021212204 · 2021 [cited by applicant]
European Search Report issued by the European Patent Office in connection with European patent application No. EP20810654.2 on Jun. 14, 2023, 10 pages. [cited by applicant]
Written Opinion issued in connection with PCT application No. PCT/CA2020/050682 dated Jul. 17, 2020—16 pages. [cited by applicant]
Written Opinion issued in connection with PCT application No. PCT/CA2020/051457 on Dec. 31, 2020—7 pages. [cited by applicant]
Notice of Allowance issued by the USPTO in connection with U.S. Appl. No. 16/880,832 on Jun. 16, 2021, 16 pages. [cited by applicant]
Notice of Allowance issued by the USPTO in connection with U.S. Appl. No. 17/489,121 on Mar. 7, 2022, 9 pages. [cited by applicant]
Wireshark—About Wireshark Tab, https://www.wireshark.org/, 1 page, [retrieved May 21, 2020]. [cited by applicant]
Wireshark Forum—“how to replay the video from packets captured by wireshark”, https://osqa-ask.wireshark.org/luestions/43920/how-to-replay-the-video-from-packets-captured-by-wireshark, 1 page, [retrieved May 21, 2020]. [cited by applicant]
Vasvox, “VoIP Recording”, http://web.archive.org/web/2016*/http://www.vasvox.com/voip-recording/, 2 pages, [cached Jun. 24, 2016 copy retrieved May 21, 2020]. [cited by applicant]
Yang, Y.-K. et al., “RTP Payload Format for H.264 Video” https://toolsietiorg/html/rfc6184#page-75, 101 pages, [retrieved May 21, 2020]. [cited by applicant]
Non-Final Office Action issued by the USPTO in connection with U.S. Appl. No. 17/824,269 on Nov. 8, 2022, 19 pages. [cited by applicant]
Final Action issued by the USPTO in connection with U.S. Appl. No. 17/824,269 on Apr. 13, 2023, 20 pages. [cited by applicant]
Examiner's Answer issued by the USPTO in connection with U.S. Appl. No. 17/824,269 on Jan. 8, 2024, 6 pages. [cited by applicant]
Notice of Allowance issued by the USPTO in connection with U.S. Appl. No. 17/824,269 on Feb. 21, 2024, 11 pages. [cited by applicant]
Non-Final Office Action issued by the USPTO in connection with U.S. Appl. No. 17/779,662 on Nov. 27, 2024, 54 pages. [cited by applicant]
Examination Report issued by the European Patent Office in connection with European patent application No. EP20810654.2 on Dec. 23, 2024, 8 pages. [cited by applicant]
ACSAC '16: Proceedings of the 32nd Annual Conference on Computer Security Applications, Martin et al., pp. 78-88 (“Martin”), 2016 (Year: 2016). [cited by applicant]