IP Library Granted Patent US 10,157,102
Granted Patent B2
US 10,157,102 · App. 15/394,479 · Granted Dec 18, 2018

Techniques to scan and reorganize media files to remove gaps

Inventors: Milan Stevanovic (Menlo Park, CA); Abhishek Jain (Menlo Park, CA)
Assignee: WHATSAPP INC.
G06F11/1446G06F21/12G06F21/56G06F21/563G06F21/565G06F21/568H04L63/1425H04L63/1433G06F2201/84H04L51/08
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,157,102
App. No.
15/394,479
Granted
Dec 18, 2018
Kind
B2
Abstract

Techniques to scan and reorganize media files to remove gaps are described. In one embodiment, an apparatus may comprise a media handling component operative to receive a media file, the media file comprising a header portion and an encoded media portion, the header portion comprising one or more indexing tables, the encoded media portion comprising a plurality of encoded chunks; a media topology component operative to build an encoded media topology list by scanning the one or more indexing tables; and a media rebuilding component operative to build the media file into a rebuilt media file by copying the plurality of encoded chunks while generating one or more replacement indexing tables where the encoded media topology list indicates that the encoded media portion contains one or more unreferenced portions. Other embodiments are described and claimed.

Claims (41)

1. A computer-implemented method, comprising:

receiving a media file, the media file comprising a header portion and an encoded media portion, the header portion comprising one or more indexing tables, the encoded media portion comprising a plurality of encoded chunks referenced by the one or more indexing tables;

building an encoded media topology list by scanning the one or more indexing tables; and

rebuilding the media file into a rebuilt media file by copying the plurality of encoded chunks while generating one or more replacement indexing tables where the encoded media topology list indicates that the encoded media portion contains one or more unreferenced portions, wherein the rebuilt media file excludes the one or more unreferenced portions by contiguously writing the plurality of encoded chunks.

2. The method of claim 1 , the encoded media topology list comprising a list of tuples each comprising a chunk offset, chunk byte length, and chunk media type.

3. The method of claim 1 , comprising:

rejecting the media file where the encoded media topology list indicates that the indexing tables contain overlapping references.

4. The method of claim 1 , comprising:

repairing the media file where the encoded media topology list indicates that the indexing tables contain overlapping references and the media file was received in response to a local user upload request.

5. The method of claim 1 , wherein the media file is received via a messaging system in association with a user message.

6. The method of claim 1 , each of the plurality of encoded chunks comprising one or more samples, further comprising:

calculating chunk sizes for each of the plurality of encoded chunks by matching a samples-per-chunk table with a sample-size table, wherein the one or more indexing tables comprises the samples-per-chunk table and the sample-size table.

7. The method of claim 1 , wherein the one or more replacement indexing tables comprises a replacement chunk-offset table, wherein the replacement chunk-offset table accommodates the excluding of the one or more unreferenced portions.

8. The method of claim 1 , further comprising:

copying the one or more unreferenced portions to an unreferenced-portion reporting record; and

uploading the unreferenced-portion reporting record to a malicious-file detection server.

9. An apparatus, comprising:

a processor circuit on a device;

a media handling component operative on the processor circuit to receive a media file, the media file comprising a header portion and an encoded media portion, the header portion comprising one or more indexing tables, the encoded media portion comprising a plurality of encoded chunks referenced by the one or more indexing tables;

a media topology component operative on the processor circuit to build an encoded media topology list by scanning the one or more indexing tables; and

a media rebuilding component operative on the processor circuit to build the media file into a rebuilt media file by copying the plurality of encoded chunks while generating one or more replacement indexing tables where the encoded media topology list indicates that the encoded media portion contains one or more unreferenced portions, wherein the rebuilt media file excludes the one or more unreferenced portions by contiguously writing the plurality of encoded chunks.

10. The apparatus of claim 9 , the encoded media topology list comprising a list of tuples each comprising a chunk offset, chunk byte length, and chunk media type.

11. The apparatus of claim 9 , further comprising:

the media rebuilding component operative to reject the media file where the encoded media topology list indicates that the indexing tables contain overlapping references.

12. The apparatus of claim 9 , further comprising:

the media rebuilding component operative to repair the media file where the encoded media topology list indicates that the indexing tables contain overlapping references and the media file was received in response to a local user upload request.

13. The apparatus of claim 9 , each of the plurality of encoded chunks comprising one or more samples, further comprising:

the media topology component operative to calculate chunk sizes for each of the plurality of encoded chunks by matching a samples-per-chunk table with a sample-size table, wherein the one or more indexing tables comprises the samples-per-chunk table and the sample-size table.

14. The apparatus of claim 9 , wherein the one or more replacement indexing tables comprises a replacement chunk-offset table, wherein the replacement chunk-offset table accommodates the excluding of the one or more unreferenced portions.

15. At least one computer-readable storage medium comprising instructions that, when executed, cause a system to:

receive a media file, the media file comprising a header portion and an encoded media portion, the header portion comprising one or more indexing tables, the encoded media portion comprising a plurality of encoded chunks referenced by the one or more indexing tables;

build an encoded media topology list by scanning the one or more indexing tables; and

rebuild the media file into a rebuilt media file by copying the plurality of encoded chunks while generating one or more replacement indexing tables where the encoded media topology list indicates that the encoded media portion contains one or more unreferenced portions, wherein the rebuilt media file excludes the one or more unreferenced portions by contiguously writing the plurality of encoded chunks.

16. The computer-readable storage medium of claim 15 , the encoded media topology list comprising a list of tuples each comprising a chunk offset, chunk byte length, and chunk media type.

17. The computer-readable storage medium of claim 15 , comprising further instructions that, when executed, cause a system to:

reject the media file where the encoded media topology list indicates that the indexing tables contain overlapping references.

18. The computer-readable storage medium of claim 15 , comprising further instructions that, when executed, cause a system to:

repair the media file where the encoded media topology list indicates that the indexing tables contain overlapping references and the media file was received in response to a local user upload request.

19. The computer-readable storage medium of claim 15 , each of the plurality of encoded chunks comprising one or more samples, comprising further instructions that, when executed, cause a system to:

calculate chunk sizes for each of the plurality of encoded chunks by matching a samples-per-chunk table with a sample-size table, wherein the one or more indexing tables comprises the samples-per-chunk table and the sample-size table.

20. The computer-readable storage medium of claim 15 , wherein the one or more replacement indexing tables comprises a replacement chunk-offset table, wherein the replacement chunk-offset table accommodates the excluding of the one or more unreferenced portions.

Assignments (2)
CHANGE OF NAME Recorded May 5, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 059858/0387 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2017
From: STEVANOVIC, MILAN; JAIN, ABHISHEK
To: WHATSAPP INC.
Reel/Frame 041927/0278 →
Continuity (1)
Related Publication 20180189142A1 · Jul 5, 2018