IP Library › Granted Patent US 8,494,866
Granted Patent B2
US 8,494,866 · App. 13/285,144 · Granted Jul 23, 2013

Universal container for audio data

Inventors: William G. Stewart (Los Altos, CA); James E. McCartney (Cupertino, CA); Douglas S. Wyatt (Portola Valley, CA)
Assignee: Apple Inc.
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 8,494,866
App. No.
13/285,144
Granted
Jul 23, 2013
Kind
B2
Abstract

Storing audio data encoded in any of a plurality of different audio encoding formats is enabled by parametrically defining the underlying format in which the audio data is encoded, in audio format and packet table chunks. A flag can be used to manage storage of the size of the audio data portion of the file, such that premature termination of an audio recording session does not result in an unreadable corrupted file. This capability can be enabled by initially setting the flag to a value that does not correspond to a valid audio data size and that indicates that the last chunk in the file contains the audio data. State information for the audio data, to effectively denote a version of the file, and a dependency indicator for dependent metadata, may be maintained, where the dependency indicator indicates the state of the audio data on which the metadata is dependent.

Claims (79)

1. A method comprising:

storing, in a file, audio data and metadata describing characteristics of the audio data;

wherein the audio data is a digital encoding of audio in a particular audio encoding format;

wherein the audio data comprises a stream of sample frames representing the digital encoding of the audio;

wherein the metadata specifies:

a number of sample frames at the beginning of the stream that are silent sample frames,

a number of sample frames at the end of the stream that are silent sample frames, and

a first value that indicates whether the particular audio encoding format is a constant bit rate or variable bit rate audio encoding format, and a second value that indicates whether the particular audio encoding format is a constant frame rate or variable frame rate audio encoding format;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , wherein the metadata specifies a number of sample frames at the beginning of the stream that are used for priming and/or processing latency.

3. The method of claim 1 , wherein the metadata specifies a number of sample frames at the end of the stream that are used for padding.

4. The method of claim 1 , wherein the metadata specifies a number of sample frames at the beginning of the stream that are used for priming and/or processing latency and a number of sample frames at the end of the stream that are used for padding.

5. The method of claim 1 , wherein the audio data comprises a stream of packets representing a digital encoding of audio, and wherein the metadata specifies the number of packets in the stream.

6. The method of claim 1 , wherein the metadata specifies that the stream does not have any sample frames at the beginning of the stream that are silent sample frames.

7. The method of claim 1 , wherein the particular audio encoding format conforms to one of the following audio encoding formats: Linear PCM, IMA 4:1 ADPCM, MPEG-4 AAC, MACE 3:1, MACE 6:1, μLaw 2:1, aLaw 2:1, MPEG-1, MPEG-2, MPEG-3, AC-3, or AC-3 packaged for transport over an IEC 60958 compliant digital audio interface.

8. The method of claim 1 , wherein:

the particular audio encoding format is a constant bit rate audio encoding format; and

the first value specifies a number of bytes per packet of the stream.

9. The method of claim 1 , wherein:

the particular audio encoding format is a variable bit rate audio encoding format; and

the first value equals zero.

10. The method of claim 1 , wherein:

the particular audio encoding format is a constant frame rate audio encoding format; and

the second value specifies a number of sample frames per packet of the stream.

11. The method of claim 1 , wherein:

the particular audio encoding format is a variable frame rate audio encoding format; and

the second value equals zero.

12. The method of claim 1 , wherein the stream comprises a plurality of packets representing at least a portion of the digital encoding of the audio, each packet of the plurality of packets having boundaries in the stream, the method further comprising using the metadata to identify the boundaries of the plurality of packets in the stream.

13. The method of claim 1 , wherein:

the stream comprises a plurality of packets representing at least a portion of the digital encoding of the audio;

the first value indicates that the particular audio encoding format is a variable bit rate audio encoding format;

the metadata specifies the size of each packet of the plurality of packets.

14. The method of claim 1 , wherein:

the stream comprises a plurality of packets representing at least a portion of the digital encoding of the audio;

the second value indicates that the particular audio encoding format is a variable frame rate audio encoding format;

the metadata specifies the number of sample frames in each packet of the plurality of packets.

15. One or more non-transitory computer-readable media carrying one or more stored sequences of instructions that, when executed by one or more processors, cause performance of a method comprising:

storing, in a file, audio data and metadata describing characteristics of the audio data;

wherein the audio data is a digital encoding of audio in a particular audio encoding format;

wherein the audio data comprises a stream of sample frames representing the digital encoding of the audio;

wherein the metadata specifies:

a number of sample frames at the beginning of the stream that are silent sample frames,

a number of sample frames at the end of the stream that are silent sample frames, and

a first value that indicates whether the particular audio encoding format is a constant bit rate or variable bit rate audio encoding format, and a second value that indicates whether the particular audio encoding format is a constant frame rate or variable frame rate audio encoding format.

16. The one or more non-transitory computer-readable media of claim 15 , wherein the metadata specifies a number of sample frames at the beginning of the stream that are used for priming and/or processing latency.

17. The one or more non-transitory computer-readable media of claim 15 , wherein the metadata specifies a number of sample frames at the end of the stream that are used for padding.

18. The one or more non-transitory computer-readable media of claim 15 , wherein the metadata specifies a number of sample frames at the beginning of the stream that are used for priming and/or processing latency and a number of sample frames at the end of the stream that are used for padding.

19. The one or more non-transitory computer-readable media of claim 15 , wherein the audio data comprises a stream of packets representing a digital encoding of audio, and wherein the metadata specifies the number of packets in the stream.

20. The one or more non-transitory computer-readable media of claim 15 , wherein the metadata specifies that the stream does not have any sample frames at the beginning of the stream that are silent sample frames.

21. The one or more non-transitory computer-readable media of claim 15 , wherein the particular audio encoding format conforms to one of the following audio encoding formats: Linear PCM, IMA 4:1 ADPCM, MPEG-4 AAC, MACE 3:1, MACE 6:1, μLaw 2:1, aLaw 2:1, MPEG-1, MPEG-2, MPEG-3, AC-3, or AC-3 packaged for transport over an IEC 60958 compliant digital audio interface.

22. The one or more non-transitory computer-readable media of claim 15 , wherein:

the particular audio encoding format is a constant bit rate audio encoding format; and

the first value specifies a number of bytes per packet of the stream.

23. The one or more non-transitory computer-readable media of claim 15 , wherein:

the particular audio encoding format is a variable bit rate audio encoding format; and

the first value equals zero.

24. The one or more non-transitory computer-readable media of claim 15 , wherein:

the particular audio encoding format is a constant frame rate audio encoding format; and

the second value specifies a number of sample frames per packet of the stream.

25. The one or more non-transitory computer-readable media of claim 15 , wherein:

the particular audio encoding format is a variable frame rate audio encoding format; and

the second value equals zero.

26. The one or more non-transitory computer-readable media of claim 15 , wherein the stream comprises a plurality of packets representing at least a portion of the digital encoding of the audio, each packet of the plurality of packets having boundaries in the stream, the method further comprising using the metadata to identify the boundaries of the plurality of packets in the stream.

27. The one or more non-transitory computer-readable media of claim 15 , wherein:

the stream comprises a plurality of packets representing at least a portion of the digital encoding of the audio;

the first value indicates that the particular audio encoding format is a variable bit rate audio encoding format;

the metadata specifies the size of each packet of the plurality of packets.

28. The one or more non-transitory computer-readable media of claim 15 , wherein:

the stream comprises a plurality of packets representing at least a portion of the digital encoding of the audio;

the second value indicates that the particular audio encoding format is a variable frame rate audio encoding format;

the metadata specifies the number of sample frames in each packet of the plurality of packets.

29. One or more non-transitory computer-readable media carrying one or more stored sequences of instructions that, when executed by one or more processors, cause performance of a method comprising:

storing a set of chunks in a single audio file, wherein said set of chunks includes an audio data chunk containing audio data and one or more metadata chunks containing metadata describing characteristics of the audio data;

wherein the audio data in the audio data chunk is a digital encoding of audio in a particular audio encoding format;

wherein the audio data in the audio data chunk has a stream of sample frames representing the digital encoding of the audio;

wherein the one or more metadata chunks specify:

a number of sample frames at the beginning of the stream that are silent sample frames,

a number of sample frames at the end of the stream that are silent sample frames, and

a first value that indicates whether the particular audio encoding format is a constant bit rate or variable bit rate audio encoding format, and a second value that indicates whether the particular audio encoding format is a constant frame rate or variable frame rate audio encoding format.

Continuity (3)
Continuation 12109686 · Apr 25, 2008
Division 10883898 · Jul 2, 2004
Related Publication 20120046956A1 · Feb 23, 2012