Insertion of digital media
First Claim
1. A method, comprising:
- receiving a first media stream formatted into a first container file format and encoded using a first codec, the first media stream comprising a first stream header and one or more first tracks, each first track comprising a first track header, one or more first edit lists, and one or more first media, each first media comprising a first media header and one or more first sample tables specifying locations and durations of sample data within the first media stream;
receiving a second media stream formatted into the first container file format and encoded using the first codec, the second media stream comprising a second stream header and one or more second tracks, each second track comprising a second track header, one or more second edit lists, and one or more second media, each second media comprising a second media header and one or more second sample tables specifying locations and durations of sample data within the second media stream;
reading the first stream header, the first track headers, the first edit lists, the first media headers, and the first sample tables;
reading the second stream header, the second track headers, the second edit lists, the second media headers, and the second sample tables;
adjusting one or more of the first stream header, the second stream header, the first track headers, the second track headers, the first edit lists, the second edit lists, the first media headers, the second media headers, the first sample tables, and the second sample tables in the first and second media streams in order to effect the insertion of the first media stream into the second media stream without removing any content of the second media stream;
writing onto an output media stream the adjusted first and second media streams; and
piping onto the output media stream media data of the first and second adjusted media streams, wherein piping onto the output media stream media data of the first and second media streams comprises utilizing file channels that operate on temporary copies of the first and second media streams, wherein each file channel is operative to establish a buffer directly mapped to file contents in the first and second media streams using memory-mapped I/O.
22 Assignments
0 Petitions
Accused Products
Abstract
An example embodiment of the present invention provides a process for inserting a source media stream into a target media stream. The process opens and reads into memory structural information from a target media stream. The process then opens and reads into memory structural information from a source media stream. The process adjusts the structural information for both streams in order to effect the insertion of the source media stream into the target media stream. In the example embodiment, this adjustment avoids the use of temporary output storage. The process then writes onto an output media stream the adjusted structural information for the source and target media streams and then pipes onto the output media stream the media data for the source and target media streams. In particular embodiments, a container file format is used for the source media stream, target media stream, and output media stream.
-
Citations
24 Claims
-
1. A method, comprising:
-
receiving a first media stream formatted into a first container file format and encoded using a first codec, the first media stream comprising a first stream header and one or more first tracks, each first track comprising a first track header, one or more first edit lists, and one or more first media, each first media comprising a first media header and one or more first sample tables specifying locations and durations of sample data within the first media stream; receiving a second media stream formatted into the first container file format and encoded using the first codec, the second media stream comprising a second stream header and one or more second tracks, each second track comprising a second track header, one or more second edit lists, and one or more second media, each second media comprising a second media header and one or more second sample tables specifying locations and durations of sample data within the second media stream; reading the first stream header, the first track headers, the first edit lists, the first media headers, and the first sample tables; reading the second stream header, the second track headers, the second edit lists, the second media headers, and the second sample tables; adjusting one or more of the first stream header, the second stream header, the first track headers, the second track headers, the first edit lists, the second edit lists, the first media headers, the second media headers, the first sample tables, and the second sample tables in the first and second media streams in order to effect the insertion of the first media stream into the second media stream without removing any content of the second media stream; writing onto an output media stream the adjusted first and second media streams; and piping onto the output media stream media data of the first and second adjusted media streams, wherein piping onto the output media stream media data of the first and second media streams comprises utilizing file channels that operate on temporary copies of the first and second media streams, wherein each file channel is operative to establish a buffer directly mapped to file contents in the first and second media streams using memory-mapped I/O. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus, comprising logic encoded in one or more persistent storage media for execution and when executed operable to:
-
receive a first media stream formatted into a first container file format and encoded using a first codec, the first media stream comprising a first stream header and one or more first tracks, each first track comprising a first track header, one or more first edit lists, and one or more first media, each first media comprising a first media header and one or more first sample tables specifying locations and durations of sample data within the first media stream; receive a second media stream formatted into the first container file format and encoded using the first codec, the second media stream comprising a second stream header and one or more second tracks, each second track comprising a second track header, one or more second edit lists, and one or more second media, each second media comprising a second media header and one or more second sample tables specifying locations and durations of sample data within the second media stream; read the first stream header, the first track headers, the first edit lists, the first media headers, and the first sample tables; read the second stream header, the second track headers, the second edit lists, the second media headers, and the second sample tables; adjust one or more of the first stream header, the second stream header, the first track headers, the second track headers, the first edit lists, the second edit lists, the first media headers, the second media headers, the first sample tables, and the second sample tables in both streams in order to effect the insertion of the first media stream into the second media stream without removing any content of the second media stream; write onto an output media stream the adjusted first and second streams; and pipe onto the output media stream media data of the first and second adjusted media streams, wherein the logic operable to pipe onto the output media stream media data of the first and second media streams comprises logic operable to utilize file channels that operate on temporary copies of the first and second media streams, wherein each file channel is operative to establish a buffer directly mapped to file contents in the first and second media streams using memory-mapped I/O. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An apparatus, comprising:
-
means for receiving a first media stream formatted into a first container file format and encoded using a first codec, the first media stream comprising a first stream header and one or more first tracks, each first track comprising a first track header, one or more first edit lists, and one or more first media, each first media comprising a first media header and one or more first sample tables specifying locations and durations of sample data within the first media stream; means for receiving a second media stream formatted into the first container file format and encoded using the first codec, the second media stream comprising a second stream header and one or more second tracks, each second track comprising a second track header, one or more second edit lists, and one or more second media, each second media comprising a second media header and one or more second sample tables specifying locations and durations of sample data within the second media stream; means for reading the first stream header, the first track headers, the first edit lists, the first media headers, and the first sample tables; means for reading the second stream header, the second track headers, the second edit lists, the second media headers, and the second sample tables; means for adjusting one or more of the first stream header, the second stream header, the first track headers, the second track headers, the first edit lists, the second edit lists, the first media headers, the second media headers, the first sample tables, and the second sample tables in both streams in order to effect the insertion of the first media stream into the second media stream without removing any content of the second media stream; means for writing onto an output media stream the adjusted first and second media streams; and means for piping onto the output media stream media data of the first and second adjusted media streams, wherein the means for piping onto the output media stream media data of the first and second media streams comprise means for utilizing file channels that operate on temporary copies of the first and second media streams, wherein each file channel is operative to establish a buffer directly mapped to file contents in the first and second media streams using memory-mapped I/O. - View Dependent Claims (23, 24)
-
Specification