Systems and methods for identifying original streams of media content
Claim Score by NHIP
Abstract
Systems and methods for identifying original streams of media content are disclosed. An exemplary method involves identifying at least one media content identifier in a media content directory. The media content identifier identifies media content. A plurality of stream access identifiers may be associated with the media content identifier. The method also involves identifying at least one stream access identifier of the plurality of stream access identifiers that includes access information for accessing an original stream of data from a media file comprising the media content. The method also involves providing identifier information about the at least one stream access identifier to a client in response to a client request.

Term
Term ended
Projected expiry passed 3 February 2026, 0.6 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
27 claims: 3 independent, 24 dependent
- 1Broadest claimClaim Score 57, average(NHIP)In a server system, a method comprising:identifying at least one media content identifier in a media content directory, wherein the media content identifier identifies media content, and wherein a plurality of stream access identifiers are associated with the media content identifier;identifying at least one stream access identifier of the plurality of stream access identifiers that includes access information for accessing an original stream of media data from a media file comprising the media content;and providing identifier information about the at least one stream access identifier to a client in response to a client request.
- 10A server system, comprising:a content directory service implementation;a media content directory maintained by the content directory service implementation, comprising: a media content identifier identifying media content;and a plurality of stream access identifiers associated with the media content identifier;and an original stream identification service implementation configured to: identify at least one stream access identifier of the plurality of stream access identifiers that includes access information for accessing an original stream of media data from a media file comprising the media content;and provide identifier information about the at least one stream access identifier to a client in response to a client request.
- 19A set of executable instructions for implementing a method in a server system, wherein the method comprises:identifying at least one media content identifier in a media content directory, wherein the media content identifier identifies media content, and wherein a plurality of stream access identifiers are associated with the media content identifier;identifying at least one stream access identifier of the plurality of stream access identifiers that includes access information for accessing an original stream of media data from a media file comprising the media content;and providing identifier information about the at least one stream access identifier to a client in response to a client request.
Independent claims3
66 paragraphs in 4 sections, as filed
TECHNICAL FIELD
0001The present invention relates generally to digital media technology. More specifically, the present invention relates to ways in which media content that is stored on or accessible from a media server may be accessed.
BACKGROUND
0002One way in which digital media may be distributed to a consumer is commonly referred to as “streaming.” Digital media data may be transmitted from a server to a client over a one or more computer networks. When a client requests a digital media file from a server, the client typically provides the server with the address of the media file, such as the Universal Resource Locator (URL) of the media file. The server then accesses the media file and sends it to the client as a continuous data stream. Streaming media is often sent in compressed form over the network, and is generally played by the client as it arrives. With streaming media, client users typically do not have to wait to download a large media file before seeing and/or hearing the media file. Instead, the data from a media file is sent in a continuous stream and is played as it arrives.
0003Many devices within a home network contain various types of digital media content that other devices would like to access. As an example, a personal computer and/or personal video recorder might contain a significant portion of the homeowner's audio, video, and still-image library. Such “media server” devices may be equipped with an implementation of a “content directory service.” The content directory service allows the homeowner to browse the content that is accessible to the media server, select a specific piece of content, and cause it to be played on an appropriate rendering device (e.g., an audio player for music objects, a TV for video content, an Electronic Picture Frame for still-images, etc). For maximum convenience, it is desirable to allow the homeowner to initiate these operations from a variety of consumer electronic devices, such as personal computers, televisions, set-top boxes, PDAs, DVD/CD players, MP3 players, stereo systems, VCRs, camcorders, digital cameras, etc.
0004In order to be compatible with as many client devices in the UPnP home network as possible, a media server device may be configured to perform protocol and/or format conversion of media content. For example, consider an Internet radio station using RTSP/RTP/UDP. To accommodate client devices that can only play via HTTP, a media server could provide protocol translation from RTSP/RTP/UDP to HTTP. Format conversion is required by some home networking standards like Digital Entertainment Network Initiative (DENi), Consumer Electronics Association (CEA) R 7.6 Digital Entertainment Network (and likely Digital Home Working Group—DHWG) which are built using Universal Plug and Play (UPNP) technology. These standards require that a UPnP AV Media Server transcode the media content to a common format to support a UPnP AV Media Renderer (e.g., a DENi media player), which otherwise may not have the ability to decode some media types. The ability of a media server device to perform transcoding and/or protocol translation improves interoperability and is therefore beneficial from the consumer point of view.
0005When media data from a media file is streamed from a media server to a client device without transcoding or protocol conversion, this is referred to as an “original stream.” When transcoding and/or protocol conversion are performed, this is referred to as a “non-original stream.” The media server expends computational resources to perform protocol translation and/or transcoding. In addition, the quality of a transcoded stream is typically worse than the quality of the original stream. Accordingly, benefits may be realized by systems and methods for identifying ways for client systems to access an original stream of media content.
BRIEF DESCRIPTION OF THE DRAWINGS
0006The present embodiments will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only typical embodiments and are, therefore, not to be considered limiting of the invention's scope, the embodiments will be described with additional specificity and detail through use of the accompanying drawings in which:
0007<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram illustrating an exemplary operating environment in which some embodiments may be practiced;
0008<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating an embodiment of a content directory;
0009<figref idref="DRAWINGS">FIG. 3</figref> is a block diagram illustrating an embodiment of a stream access ID;
0010<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an example of an original stream;
0011<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating an example of a non-original stream;
0012<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram illustrating another example of a non-original stream;
0013<figref idref="DRAWINGS">FIG. 7</figref> is a flow diagram illustrating a method that may be performed by an embodiment of an original stream identification component;
0014<figref idref="DRAWINGS">FIG. 8</figref> is a functional block diagram illustrating an exemplary way that the original stream identification component identifies stream access identifiers that correspond to an original stream;
0015<figref idref="DRAWINGS">FIG. 9</figref> is a functional block diagram illustrating another exemplary way that the original stream identification component identifies the stream access IDs that correspond to an original stream;
0016<figref idref="DRAWINGS">FIG. 10</figref> is a functional block diagram illustrating another exemplary way that the original stream identification component identifies the stream access IDs that correspond to an original stream; and
0017<figref idref="DRAWINGS">FIG. 11</figref> is a block diagram illustrating the components typically utilized in a client system and/or a server system used with embodiments herein.
DETAILED DESCRIPTION
0018A method in a server system is disclosed. The method involves identifying at least one media content identifier in a media content directory. The media content identifier identifies media content. A plurality of stream access identifiers are associated with the media content identifier. The method also involves identifying at least one stream access identifier of the plurality of stream access identifiers that includes access information for accessing an original stream of media data from a media file comprising the media content. The method also involves providing identifier information about the at least one stream access identifier to a client in response to a client request.
0019Identifying the at least one stream access identifier may involve receiving user input. Alternatively, identifying the at least one stream access identifier may involve matching a characteristic of the at least one stream access identifier to a similar characteristic of the media file. Alternatively still, identifying the at least one stream access identifier may involve applying a rule to the plurality of stream access identifiers.
0020In some embodiments, the original stream of the media data from the media file is provided to the client without protocol translation or format conversion being performed by the server system. The access information may include a uniform resource identifier for the media file. The media content directory may be maintained by a Universal Plug and Play content directory service implementation.
0021A server system is also disclosed. The server system includes a content directory service implementation and a media content directory maintained by the content directory service implementation. The media content directory may include a media content identifier identifying media content. The media content directory may also include a plurality of stream access identifiers associated with the media content identifier. The media content directory may also include an original stream identification (OSI) service implementation. The OSI service implementation may be configured to identify at least one stream access identifier of the plurality of stream access identifiers that includes access information for accessing an original stream of media data from a media file comprising the media content. The OSI service implementation may be further configured to provide identifier information about the at least one stream access identifier to a client in response to a client request.
0022In some embodiments, the original stream of the media data from the media file may be provided to the client without protocol translation or format conversion being performed by the server system. The access information may include a uniform resource identifier for the media file.
0023Identifying the at least one stream access identifier may involve receiving user input. Alternatively, identifying the at least one stream access identifier may involve matching a characteristic of the at least one stream access identifier to a similar characteristic of the media file. Alternatively still, identifying the at least one stream access identifier may involve applying a rule to the plurality of stream access identifiers.
0024A set of executable instructions for implementing a method in a server system is also disclosed. The method may involve identifying at least one media content identifier in a media content directory. The media content identifier identifies media content. A plurality of stream access identifiers are associated with the media content identifier. The method may also involve identifying at least one stream access identifier of the plurality of stream access identifiers that includes access information for accessing an original stream of media data from a media file comprising the media content. The method may also involve providing identifier information about the at least one stream access identifier to a client in response to a client request.
0025In some embodiments, the original stream of the media data from the media file may be provided to the client without protocol translation or format conversion being performed by the server system. The access information may include a uniform resource identifier for the media file.
0026Identifying the at least one stream access identifier may involve receiving user input. Alternatively, identifying the at least one stream access identifier may involve matching a characteristic of the at least one stream access identifier to a similar characteristic of the media file. Alternatively still, identifying the at least one stream access identifier may involve applying a rule to the plurality of stream access identifiers.
0027The media content directory may include an attribute that specifies whether a particular stream access identifier corresponds to the original stream. The at least one stream access identifier may include the attribute.
0028Various embodiments of the invention are now described with reference to the Figures, where like reference numbers indicate identical or functionally similar elements. It will be readily understood that the components of the present invention, as generally described and illustrated in the Figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of several exemplary embodiments of the present invention, as represented in the Figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of the embodiments of the invention.
0029The word “exemplary” is used exclusively herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
0030Those skilled in the art will appreciate that many features of the embodiments disclosed herein may be implemented as computer software, electronic hardware, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various components will be described generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
0031Where the described functionality is implemented as computer software, those skilled in the art will recognize that such software may include any type of computer instruction or computer executable code located within a memory device and/or transmitted as electronic signals over a system bus or network. Software that implements the functionality associated with components described herein may comprise a single instruction, or many instructions, and may be distributed over several different code segments, among different programs, and across several memory devices.
0032The order of the steps or actions of the methods described in connection with the embodiments disclosed herein may be changed by those skilled in the art without departing from the scope of the present invention. Thus, any order in the Figures or detailed description is for illustrative purposes only and is not meant to imply a required order.
0033<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram illustrating an exemplary operating environment in which some embodiments may be practiced. As shown, embodiments disclosed herein may involve interaction between a client system <b>102</b>, a home server system <b>104</b><i>a</i>, and/or a media server system <b>104</b><i>b</i>. In typical embodiments, the client system <b>102</b> and the home server system <b>104</b><i>a </i>are located within an individual's home. The client system <b>102</b> and the home server system <b>104</b><i>a </i>may take the form of consumer electronic devices, examples of which include personal computers, televisions, set-top boxes, PDAs, DVD/CD players, MP3 players, stereo systems, VCRs, camcorders, digital cameras, etc.
0034The client system <b>102</b> and the home server system <b>104</b><i>a </i>are in communication with one another via a home network <b>108</b>. A variety of different network configurations and protocols may be used, including Ethernet, IEEE 802.11, IEEE 802.16, Bluetooth, etc. The client system <b>102</b> and the home server system <b>104</b><i>a </i>are in communication with the media server system <b>104</b><i>b </i>via the Internet <b>110</b>.
0035Media files <b>112</b><i>a </i>are stored in a file system <b>114</b><i>a </i>on the home server system <b>104</b><i>a</i>. Additional media files <b>112</b><i>b </i>are stored in a file system <b>114</b><i>b </i>on the media server system <b>104</b><i>b</i>. Sometimes streaming media may not be stored as files, and the streaming media data may be generated live in real-time. Also one media stream may be comprised of multiple files or one file may correspond to multiple media streams. The media files <b>112</b> correspond to media content, such as videos, songs, images, etc. Sometimes, more than one media file <b>112</b> corresponds to the same media content, as will be explained in greater detail below. Stream servers <b>120</b> on the home server system <b>104</b><i>a </i>and the media server system <b>104</b><i>b </i>are configured to “stream” the media files <b>112</b> to the client system <b>102</b>, i.e., send data from the media files <b>112</b> to the client system <b>102</b> as a continuous stream. A media rendering component <b>124</b> on the client system <b>102</b> converts the streaming media that it receives into text, graphics, and/or moving images (as appropriate) shown on a display device <b>126</b>. Users of the client system <b>102</b> may request data from particular media files <b>112</b> via a user interface <b>128</b>.
0036The home server system <b>104</b><i>a </i>includes an implementation of a content directory service <b>130</b>. The content directory service <b>130</b> provides a mechanism for a user of the client system <b>102</b> to browse the media content or search for media content that is accessible to the home server system <b>104</b><i>a </i>and to obtain information about that content. This is typically accomplished by means of a content directory <b>132</b>. Additional details about an exemplary content directory service <b>130</b> that may be used with embodiments disclosed herein are provided in the Universal Plug and Play (UPnP) Content Directory Service ContentDirectory:1 Service Template Version 1.01 For Universal Plug and Play Version 1.0, which is hereby incorporated by reference in its entirety.
0037The home server system <b>104</b><i>a </i>also includes a transcoding component <b>134</b>. The transcoding component <b>134</b> performs the function of translating the data from a media file <b>112</b> on the home server system <b>104</b><i>a </i>to a different format before the data from that media file <b>112</b> is streamed to the client system <b>102</b>. There are a variety of reasons why transcoding may occur. For example, home networking standards (like the Digital Entertainment Network Initiative (DENi), Consumer Electronics Association (CEA) R 7.6 Digital Entertainment Network, etc.) which are built using UPnP technology require that a upnP AV Media Server transcode media content to a common format to support a UPnP AV Media Renderer (e.g., a DENi media player), which otherwise may not have the ability to decode some media types.
0038The home server system <b>104</b><i>a </i>also includes a protocol translation component <b>136</b>. The protocol translation component <b>136</b> receives the data from a media file <b>116</b> that is streamed from the media server system <b>104</b><i>b </i>and that is destined for the client system <b>102</b>. The data from media file <b>116</b> is streamed from the media server system <b>104</b><i>b </i>according to a particular protocol. If the client system <b>102</b> cannot receive data according to the protocol used by the stream server <b>122</b> on the media server system <b>104</b><i>b</i>, the protocol translation component <b>136</b> then streams the data from the media file <b>116</b> to the client system <b>102</b> in accordance with a protocol that the client system <b>102</b> can understand. In some embodiments, the protocol translation may be performed for media that is streaming from another home server system inside the home that is similar to the home server system <b>104</b><i>a</i>. In some embodiments, transcoding may be performed for media streaming from the media server <b>104</b><i>b</i>. In some embodiments, the transcoding may be performed by the media server <b>104</b><i>b </i>itself. In some embodiments, transcoding may be a trans-rating operation where only the media stream's bitrate is changed but the media format remains the same. In some embodiments, both media transcoding and protocol translation may be performed.
0039When the data from a media file <b>112</b> is streamed from a server (either the stream server <b>120</b><i>a </i>on the home server system <b>104</b><i>a </i>or the stream server <b>120</b><i>b </i>on the media server system <b>104</b><i>b</i>) to the client system <b>102</b> without transcoding or protocol conversion, this is referred to as an “original stream.” When transcoding and/or protocol conversion are performed, this is referred to as a “non-original stream.”
0040The home server system <b>104</b><i>a </i>also includes an original stream identification (OSI) component <b>138</b>. In general terms, where media content is available through at least one original stream and at least one non-original stream, the OSI component <b>138</b> helps the client system <b>102</b> to select an original stream. The OSI component <b>138</b> will be described in greater detail below.
0041<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram illustrating an embodiment of a content directory <b>232</b>. The content directory <b>232</b> includes a listing of content identifiers <b>240</b>. Each content ID <b>240</b> identifies a particular piece of media content that is accessible to the home server system <b>104</b><i>a</i>. For example, a first content ID <b>240</b><i>a </i>might identify a song stored on the media server system <b>104</b><i>a</i>, a second content ID <b>240</b><i>b </i>might identify a video stored on the web server system <b>104</b><i>b</i>, and so forth.
0042The content IDs <b>240</b> may be associated with one or more stream access identifiers <b>242</b>. Each stream access ID <b>242</b> includes information for accessing a stream of data from media file <b>112</b> that includes the media content identified by the corresponding content item ID <b>240</b>. In some implementations of the content directory service <b>130</b>, a stream access ID <b>242</b> in the content directory <b>232</b> may take the form of a resource element, which is often referred to as a <res> element or simply as <res>. A stream access ID <b>242</b> may include the uniform resource identifier (URI) of a media file <b>112</b> that includes the media content.
0043The user of a client system <b>102</b> may browse the content directory <b>232</b> and select media content that is to be streamed to the client system <b>102</b>. This is typically done by selecting the content ID <b>240</b> corresponding to the desired content. If there is more than one stream access ID <b>242</b> associated with the same content ID <b>240</b>, one of the stream access IDs <b>242</b> is selected. Typically, it is preferable to select a stream access ID <b>242</b> corresponding to an original stream, if possible (i.e., if the client system <b>102</b> is capable of receiving the data from the corresponding media file <b>112</b> in its current format and without protocol translation).
0044Currently, however, the client system <b>102</b> is unable to distinguish between stream access IDs <b>242</b> that correspond to original streams and stream access IDs <b>242</b> that correspond to non-original streams. The OSI component <b>138</b> on the home server system <b>104</b><i>a </i>helps the client system <b>102</b> to perform this function. More specifically, the OSI component <b>138</b> identifies which of the stream access IDs <b>242</b> associated with a particular content ID <b>240</b> correspond to original streams and which correspond to non-original streams.
0045<figref idref="DRAWINGS">FIG. 3</figref> is a block diagram illustrating an embodiment of a stream access ID <b>342</b>. The stream access ID <b>342</b> includes address information <b>344</b>, protocol information <b>346</b>, and format information <b>348</b>. Of course, the stream access ID <b>242</b> may include other information <b>350</b> as well. The address information <b>344</b> may include the URI for the media file <b>112</b>. The media file <b>112</b> may be stored on the home server system <b>104</b><i>a</i>, on the media server system <b>104</b><i>b</i>, or on some other device that is accessible to the home server system <b>104</b><i>a. </i>
0046The protocol information <b>346</b> specifies the protocol that is followed to stream the data from media file <b>112</b> to the client system <b>102</b>. The format information <b>348</b> specifies the format of the media file <b>112</b> data that is to be streamed to the client system <b>102</b>. Where the address information <b>344</b> includes a filename, the format information <b>348</b> may be contained in the file extension of the filename. Where the stream access ID <b>242</b> takes the form of a <res> element, the address information <b>344</b> and protocol information <b>346</b> may be contained in the protocolInfo attribute of the <res> element. The other information <b>350</b> may take the form of other attributes of the <res> element, such as the size attribute.
0047<figref idref="DRAWINGS">FIG. 4</figref> is a block diagram illustrating an example of an original stream. As shown, an original stream occurs when a stream server <b>420</b> on a server system <b>404</b> streams data from a media file <b>412</b> to the client system <b>402</b> without transcoding or protocol translation being performed on the media file data <b>412</b>.
0048<figref idref="DRAWINGS">FIG. 5</figref> is a block diagram illustrating an example of a non-original stream. The data from media file <b>512</b><i>a </i>is provided to the transcoding component <b>534</b>. The transcoding component <b>534</b> transcodes the data from media file <b>512</b><i>a </i>into a different format (i.e., converts the format of the data from media file <b>512</b><i>a</i>), thereby creating transcoded media file data <b>512</b><i>a</i>′. The transcoding may be done in real-time or it may be done off-line. The transcoded media file data <b>512</b><i>a</i>′ is provided to the stream server <b>520</b><i>a</i>. The stream server <b>520</b><i>a </i>streams the transcoded media file data <b>512</b><i>a</i>′ to the client system <b>502</b>.
0049<figref idref="DRAWINGS">FIG. 6</figref> is a block diagram illustrating another example of a non-original stream. The stream server <b>620</b><i>b </i>on the media server system <b>604</b><i>b </i>streams data from a media file <b>612</b><i>b </i>to the home server system <b>604</b><i>a</i>. The media file <b>612</b><i>b </i>is destined for the client system <b>602</b>. The media file data <b>612</b><i>b </i>is streamed to the home server system <b>604</b><i>a </i>in accordance with a particular protocol, designated protocol A in <figref idref="DRAWINGS">FIG. 6</figref>. The protocol translation component <b>636</b> then performs protocol translation and streams the media file data <b>612</b><i>b </i>to the client system <b>602</b> in accordance with a different protocol, designated protocol B in <figref idref="DRAWINGS">FIG. 6</figref>.
0050For example, suppose the stream server <b>620</b><i>b </i>is a Real Time Streaming Protocol (RTSP) server <b>620</b><i>b</i>. Further suppose that the client system <b>602</b> is not configured to receive RTSP streams, but is configured to receive data via HTTP. In such a situation, the protocol translation component <b>636</b> receives the media file data <b>612</b><i>b </i>from the stream server <b>620</b><i>b </i>via RTSP and provides the same media file data <b>612</b><i>b </i>to the client system <b>602</b> via HTTP.
0051<figref idref="DRAWINGS">FIG. 7</figref> is a flow diagram illustrating a method <b>700</b> that may be performed by an embodiment of the OSI component <b>138</b>. During an initial configuration of the content directory <b>132</b>, the OSI component <b>138</b> identifies <b>702</b> each content ID <b>240</b> in the content directory <b>132</b> that is associated with multiple stream access IDs <b>242</b>. For each content ID <b>240</b> that has multiple stream access IDs <b>242</b>, the OSI component <b>138</b> identifies <b>704</b> the stream access IDs <b>242</b> that correspond to an original stream. Several examples of ways in which this may be accomplished will be provided below.
0052Once the initial configuration is performed, the OSI component <b>138</b> may receive <b>706</b> and fulfill <b>708</b> client requests for information about the stream access IDs <b>242</b> in the content directory <b>132</b>. For example, the OSI component <b>138</b> may receive <b>706</b> and fulfill <b>708</b> a request to determine whether a particular stream access ID <b>242</b> corresponds to an original stream. As another example, the OSI component may receive <b>706</b> and fulfill <b>708</b> a request to return all of the stream access IDs <b>242</b> that are associated with a particular content ID <b>240</b> and that correspond to an original stream. Steps <b>706</b> and <b>708</b> of the method <b>700</b> may be implemented as UPnP actions that may be invoked by the client system <b>102</b>.
0053<figref idref="DRAWINGS">FIG. 8</figref> is a functional block diagram illustrating an exemplary way that the OSI component <b>838</b> identifies the stream access IDs <b>242</b> that correspond to an original stream. The OSI component <b>838</b> identifies each content ID <b>240</b> in the content directory <b>832</b> that is associated with multiple stream access IDs <b>242</b>. The identified content IDs <b>240</b> and stream access IDs <b>242</b> are then communicated to a user of the client system <b>802</b> via the user interface <b>828</b>. The user may be a content creator and is typically a person who has knowledge about which stream is an original stream. This may be based on the knowledge of, for example, which items were downloaded or copied by the user. The user specifies which of the stream access IDs <b>242</b> correspond to an original stream via the user interface <b>828</b>. This user input is then provided to the OSI component <b>838</b>.
0054<figref idref="DRAWINGS">FIG. 9</figref> is a functional block diagram illustrating another exemplary way that the OSI component <b>138</b> identifies the stream access IDs <b>242</b> that correspond to an original stream. An OSI component <b>138</b> that implements the approach shown in <figref idref="DRAWINGS">FIG. 9</figref> can be run manually or can be set to run automatically at scheduled intervals.
0055The OSI component <b>938</b> includes a file system searching component <b>952</b> and a content directory browsing/searching component <b>954</b>. The file system searching component <b>952</b> builds a media file index <b>956</b> of available media files <b>912</b><i>a </i>on the file system <b>914</b><i>a</i>. The content directory browsing/searching component <b>954</b> builds a content items index <b>958</b> of content IDs <b>240</b> in the content directory <b>132</b> that are associated with more than one stream access ID <b>342</b>. The media file index <b>956</b> and the content items index <b>958</b> are provided to a matching component <b>960</b>. The matching component <b>960</b> tries to match a characteristic of available media files <b>912</b><i>a </i>in the media file index <b>956</b> to information about stream access IDs <b>242</b> in the content items index <b>958</b>. If a match is found between a particular media file <b>912</b><i>a </i>and a stream access ID <b>242</b> of a content ID <b>240</b>, then it may be concluded that the stream access ID <b>242</b> corresponds to an original stream.
0056As an example of this approach, if the content directory <b>932</b> is a UPnP content directory <b>932</b> provided by a UPnP content directory service <b>930</b>, the matching component <b>960</b> may try to match the size attribute of a <res> element with the size of a media file <b>912</b><i>a </i>listed in the media file index <b>956</b>. If the matching component <b>960</b> knows the URI convention for the UPnP content directory service <b>930</b>, it can then look in a fixed folder location for this matching.
0057<figref idref="DRAWINGS">FIG. 10</figref> is a functional block diagram illustrating another exemplary way that the OSI component <b>1038</b> identifies the stream access IDs <b>242</b> that correspond to an original stream. The OSI component <b>1038</b> includes a plurality of rules <b>1062</b>. A rule application component <b>1064</b> applies the rules <b>1062</b> to the content directory <b>1032</b> to make intelligent decisions about whether a particular stream access ID <b>242</b> corresponds to an original stream.
0058For example, if the content directory <b>1032</b> is a UPnP content directory <b>1032</b> provided by a UPnP content directory service <b>130</b>, an exemplary rule <b>1062</b> may be the following. If the size and/or duration attribute for a <res> element stream out of multiple <res> elements for an object is zero or unknown or unspecified, but some other stream <res> element under the same object has these attributes defined, the stream <res> element with defined attributes is likely to be the original stream.
0059As another example, if the address information <b>344</b> for a stream access ID <b>242</b> includes an HTTP URI, the OSI component <b>1038</b> may be configured to send a HTTP GET request on the streams. In such a situation, an exemplary rule <b>1062</b> may be the following. If a response to the HTTP GET request sets no Content-Length header or if the response has a Transfer-Encoding chunked header, that stream is likely to be not an original stream. Similarly, if Content-Length is set in the response, that stream is likely to be an original stream. The HTTP connection may be terminated immediately after this header information is obtained, so as not to waste resources.
0060<figref idref="DRAWINGS">FIG. 11</figref> is a block diagram illustrating the components typically utilized in a client system <b>1102</b> and/or a server system <b>1104</b> used with embodiments herein. The illustrated components may be logical or physical and may be implemented using any suitable combination of hardware, software, and/or firmware. In addition, the different components may be located within the same physical structure or in separate housings or structures.
0061The computer system shown in <figref idref="DRAWINGS">FIG. 11</figref> includes a processor <b>1106</b> and memory <b>1108</b>. The processor <b>1106</b> controls the operation of the computer system and may be embodied as a microprocessor, a microcontroller, a digital signal processor (DSP) or other device known in the art. The processor <b>1106</b> typically performs logical and arithmetic operations based on program instructions stored within the memory <b>1108</b>.
0062As used herein, the term “memory” <b>1108</b> is broadly defined as any electronic component capable of storing electronic information, and may be embodied as read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices in RAM, on-board memory included with the processor <b>1106</b>, EPROM memory, EEPROM memory, registers, etc. Whatever form it takes, the memory <b>1108</b> typically stores program instructions and other types of data. The program instructions may be executed by the processor <b>1106</b> to implement some or all of the methods disclosed herein.
0063The computer system typically also includes one or more communication interfaces <b>1110</b> for communicating with other electronic devices. The communication interfaces <b>1110</b> may be based on wired communication technology, wireless communication technology, or both. Examples of different types of communication interfaces <b>1110</b> include a serial port, a parallel port, a Universal Serial Bus (USB), an Ethernet adapter, an IEEE 1394 bus interface, a small computer system interface (SCSI) bus interface, an infrared (IR) communication port, a Bluetooth wireless communication adapter, and so forth.
0064The computer system typically also includes one or more input devices <b>1112</b> and one or more output devices <b>1114</b>. Examples of different kinds of input devices <b>1112</b> include a keyboard, mouse, remote control device, microphone, button, joystick, trackball, touchpad, lightpen, etc. Examples of different kinds of output devices <b>1114</b> include a speaker, printer, etc. One specific type of output device which is typically included in a computer system is a display device <b>1116</b>. Display devices <b>1116</b> used with embodiments disclosed herein may utilize any suitable image projection technology, such as a cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), gas plasma, electroluminescence, or the like. A display controller <b>1118</b> may also be provided, for converting data stored in the memory <b>1108</b> into text, graphics, and/or moving images (as appropriate) shown on the display device <b>1116</b>.
0065Of course, <figref idref="DRAWINGS">FIG. 11</figref> illustrates only one possible configuration of a computer system. Those skilled in the art will recognize that various other architectures and components may be utilized. In addition, various standard components are not illustrated in order to avoid obscuring aspects of the invention.
0066While specific embodiments and applications of the present invention have been illustrated and described, it is to be understood that the invention is not limited to the precise configuration and components disclosed herein. Various modifications, changes, and variations which will be apparent to those skilled in the art may be made in the arrangement, operation, and details of the methods and systems of the present invention disclosed herein without departing from the spirit and scope of the invention.
Contents4
10 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| ES2387437A1 | Cited by | Spain | Search report |
| US2023224549A1 | Cited by | United States of America | Search report |
| JP2019029728A | Cited by | Japan | Search report |
| US2005286417A1 | Cited by | United States of America | Pre-grant |
| US2005135341A1 | Cited by | United States of America | Pre-grant |
| US10686863B2 | Cited by | United States of America | Applicant |
| US2007263864A1 | Cited by | United States of America | Pre-grant |
| US2005262251A1 | Cited by | United States of America | Pre-grant |
| US10838580B2 | Cited by | United States of America | Applicant |
| US10747396B2 | Cited by | United States of America | Applicant |
| US2013266004A1 | Cited by | United States of America | Pre-grant |
| US8140695B2 | Cited by | United States of America | Search report |
| US8015304B2 | Cited by | United States of America | Search report |
| US2015067110A1 | Cited by | United States of America | Pre-grant |
| US2012240146A1 | Cited by | United States of America | Pre-grant |
| US2005204393A1 | Cited by | United States of America | Pre-grant |
| US10803474B2 | Cited by | United States of America | Applicant |
| US11256386B2 | Cited by | United States of America | Applicant |
| US2013185786A1 | Cited by | United States of America | Pre-grant |
| US2011280396A1 | Cited by | United States of America | Pre-grant |
| US9002008B2 | Cited by | United States of America | Search report |
| US12363394B2 | Cited by | United States of America | Search report |
| US2013275495A1 | Cited by | United States of America | Pre-grant |
| US2007118625A1 | Cited by | United States of America | Pre-grant |
| US2008120338A1 | Cited by | United States of America | Pre-grant |
| US8275132B2 | Cited by | United States of America | Search report |
| US2015195260A1 | Cited by | United States of America | Pre-grant |
| US11128689B2 | Cited by | United States of America | Applicant |
| US10649624B2 | Cited by | United States of America | Applicant |
| US11064007B2 | Cited by | United States of America | Applicant |
| US2007001852A1 | Cited by | United States of America | Pre-grant |
| US2007136414A1 | Cited by | United States of America | Pre-grant |
| US7545271B2 | Cited by | United States of America | Search report |
| US2007136469A1 | Cited by | United States of America | Pre-grant |
| US2007094352A1 | Cited by | United States of America | Pre-grant |
| US9444799B2 | Cited by | United States of America | Search report |
| US8495187B2 | Cited by | United States of America | Search report |
| US10659515B2 | Cited by | United States of America | Applicant |
| US7720983B2 | Cited by | United States of America | Search report |
| US10846717B2 | Cited by | United States of America | Applicant |
| US2013028417A1 | Cited by | United States of America | Pre-grant |
| US8755518B2 | Cited by | United States of America | Search report |
| US9270645B2 | Cited by | United States of America | Search report |
| US2002027569A1 | Cites | United States of America | Pre-grant |
| US2002078006A1 | Cites | United States of America | Pre-grant |
| US2002078149A1 | Cites | United States of America | Pre-grant |
| US2002124082A1 | Cites | United States of America | Pre-grant |
| US2003005130A1 | Cites | United States of America | Pre-grant |
| US2003174841A1 | Cites | United States of America | Pre-grant |
| US2004049598A1 | Cites | United States of America | Pre-grant |
| US2004083273A1 | Cites | United States of America | Pre-grant |
| US2004098463A1 | Cites | United States of America | Pre-grant |
| US2004162871A1 | Cites | United States of America | Pre-grant |
| US2004267954A1 | Cites | United States of America | Pre-grant |
| US2005033850A1 | Cites | United States of America | Pre-grant |
| US2005086300A1 | Cites | United States of America | Pre-grant |
| US7058720B1 | Cites | United States of America | Pre-grant |
| US7076478B2 | Cites | United States of America | Pre-grant |
| US7194091B2 | Cites | United States of America | Pre-grant |
| US7209874B2 | Cites | United States of America | Pre-grant |
| US7286651B1 | Cites | United States of America | Pre-grant |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2005086355A1 | United States of America | A1 | |
| US7574514B2 | United States of America | B2 |
56 transactions on the USPTO file
Allowed after 2 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 2
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Post Issue Communication - Certificate of CorrectionN423 | N423 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Examiner's AmendmentMEX.A | MEX.A | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Transfer Inquiry to GAUTI1050 | TI1050 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)LAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Maintenance fee reminder mailedREMI | REMI | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee payment procedurePAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20050086355
- Application
- 10675033
Titles
- English
- Systems and methods for identifying original streams of media content
Patent term adjustment
- A delay
- +916 daysthe office missed an examination deadline
- Applicant delay
- −59 days
- Net adjustment
- 857 days
Classification
- CPC, 3
- H04L69/08
- H04L65/70
- H04L65/1101
- IPC, 2
- G06F15 16
- H04L29 06