# Patent

## Title
Method and apparatus for managing bookmark information for content stored in a networked media server

## Abstract

A method and apparatus for managing bookmark information of a media server through a network based on the UPnP AV standard is disclosed. If a request for bookmarking a content item is made, a bookmark item is created and the created bookmark item is linked to the content item by adding the ID of the created bookmark item to the property information of the content item and recording the ID of the content item to be bookmarked in the created bookmark item.

## Background
This application is a continuation of U.S. application Ser. No. 11/120,930, filed May 2, 2005, now U.S. Pat. No. 8,010,620, which claims benefit of earlier filing date and right to priority to Korean Application No. 0031151/2004, filed on May 3, 2004, the contents of which are all hereby incorporated by reference herein in their entirety.


BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to bookmarking a content object and, more particularly, but not by way of limitation, to a method and apparatus for managing bookmark information for content objects stored in a media server through a network based on the UPnP AV standard.
2. Description of the Related Art
As the computing power of small devices improves, various inexpensive and universal networking techniques are appearing and being commercialized.
With the addition of Plug and Play (PnP) capabilities to the PC operating system it became a great deal easier to setup, configure, and add peripherals to a PC. Universal Plug and Play (UPnP) is an extension of the PnP technique to the entire network with a view to enabling discovery and control of networked devices and services, such as network-attached printers, Internet gateways, and consumer electronics equipment. The UPnP is based upon Internet technologies such as TCP/IP, HTTP, and XML.
The UPnP AV architecture defines three main logical entities: a media server (MS), a media renderer (MR), and an AV control point (CP). The media server (MS) has access to entertainment content and can send that content to another UPnP AV device via the network. The media renderer (MR) is able to receive external content from the network and render it on its local hardware. The AV control point (CP) coordinates the operation of the media server (MS) and the media renderer (MR).
In the UPnP architecture, each time a UPnP action such as a browsing action from the AV control point (CP) comes in, the media server (MS) exposes information on its content. The content selected through the user interface of the AN control point (CP) is transferred to the media renderer (MR) from the media server (MS) using a streaming technique and played by the media renderer (MR).
The playback of the content can be stopped by user's request while the content is being played and then resumed afterward. For example, a user may turn off an MP3 player while listening to music and want to resume playing of the music from the stopped position later. Similarly, a user may stop a DVD player while watching a DVD movie and want to resume the movie from the stopped position later. To this end, content players automatically store information about the state of the content being played when power is turned off or playback is stopped. Such a function is called automatic bookmarking.
Generally, bookmarking refers to storing the URL (uniform resource locator) of a web page that you visit using a web browser such as the Netscape navigator so that you can revisit the page easily at a later time. Once the URL of a web page is stored in the bookmark, the user can select the URL from the bookmark to visit the web page without entering the URL.
The media server in a home network can store a lot of contents, i.e., media files and can provide the same content to a plurality of users simultaneously through the network. The simple bookmarking function which stores the position at which the playing of the content is stopped is not appropriate when a plurality of users are playing the same content. The media server, therefore, requires an improved bookmarking function.
SUMMARY OF THE INVENTION
In view of the shortcomings of the prior art, it is an object of the present invention to provide a method and apparatus that allows a plurality of users to bookmark contents stored in a media server individually.
It is another object of the invention to provide a method and apparatus that allows individual bookmarking of media contents based on the UPnP AV standard.
According to the present invention, if a request for bookmarking a content object is received, a bookmark object is created and an ID of the created bookmark object is added to property information of the content object.
According to the present invention, when a bookmark object is created, the ID of the content object to be bookmarked is included in the created bookmark object.
In one embodiment of the invention, the directory for storing bookmark objects is separated from the directory for storing content objects.
In another embodiment, bookmark objects are stored in a container placed in the directory for storing content objects.
In one embodiment of the invention, a bookmark object comprises a bookmark object ID for uniquely identifying the bookmark object, an ID of the bookmarked object, a title written in a user-readable format, a bookmark object class, a UDN for storing the ID of rendering control service (RenderingControl Service) and/or the ID of AVTransport service (AVTS) of a media renderer which was presenting the bookmarked object, and a list of state variables for storing the state variables of the RenderingControl service and AVTransport service.
In one embodiment of the invention, if a content object is bookmarked, a bookmark object is created and the ID thereof is added to metadata indicating the property of the bookmarked object.
In one embodiment of the invention, if a request for bookmarking a content is received, the control point sends a request for creating a bookmark to the media server. Receiving the request, the media server creates a bookmark object based upon the received information and adds the ID of the created bookmark object to metadata of the content object to be bookmarked.
In another embodiment of the invention, if a request for bookmarking a content is received, the control point sends a request for creating a bookmark to the media server. Receiving the request, the media server creates a bookmark object and sends the ID of the created object to the control point. The control point adds the ID of the bookmark object to metadata of the content object to be bookmarked and requests the media server to update metadata of the content object.
In one embodiment of the invention, the ID of a created bookmark object is determined according to a rule defined by the media server storing content objects.
In one embodiment of the invention, the class of the bookmark object is defined to “object.item.bookmarkitem”.



BRIEF DESCRIPTION OF THE DRAWINGS
The above features and other advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates a directory structure for storing bookmark objects in accordance with one embodiment of the present invention;
FIG. 2 illustrates a bookmark object structure in accordance with the present invention;
FIGS. 3a and 3b illustrate the procedures for creating a bookmark object according to preferred embodiments of the present invention; and
FIG. 4 illustrates the relation between a content object and a plurality of bookmark objects created in accordance with one embodiment of the present invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
In order that the invention may be fully understood, preferred embodiments thereof will now be described with reference to the accompanying drawings.
The preferred embodiments of the present invention satisfy the following conditions for implementing a bookmark functionality based upon the UPnP AV standard.
1. Every object provided by the media server in the UPnP AV architecture can be bookmarked.
(1-1) Because it is not that the media server provides only a single content to users, contents can be bookmarked individually.
(1-2) One content can be bookmarked at several different locations within the content.
2. The list of saved bookmarks can be displayed to allow a bookmark can be selected therefrom.
(2-1) Information on all of the saved bookmarks can be provided to the users and all of the bookmarks are placed in a single container for making it easy to select one bookmark from among the bookmarks.
(2-2) Because the number of bookmarks that can be displayed may be limited, information specifying the number of bookmarks to be displayed can be provided.
(2-3) Information on the starting index specifying the starting position for searching bookmarks can be provided.
(2-4) Information on the number of the saved bookmarks can be provided.
3. If a bookmark is selected, a content can be played or removed using the information of the selected bookmark.
FIG. 2 illustrates a bookmark object structure in accordance with the present invention. The structured bookmark objects are stored in a particular container of the media server.
The bookmark object structure shown in FIG. 2 contains a bookmark ID for uniquely identifying a bookmark object (BM objectID) 210, a unique ID of a bookmarked object (Bookmarked ObjectID) 211, a bookmark title written in a user-readable format (e.g., character string) (Title) 212, a bookmark object class (Object Class) 213, a unique device number (UDN) for storing the ID of the rendering control service (RenderingControl Service) and/or the ID of the AVTransport service (AVTS) of the renderer that is presenting the bookmarked object 214, and a list of state variables for storing the RenderingControl service state variables (e.g., sound volume or luminance) and the AVTS state variables (e.g., presentation time) (State Variable List) 215. For example, the bookmark object class 213 is newly defined to “object.item.bookmarkitem”.
The bookmark object ID (BM objectID) 210 is determined automatically according to a predefined rule when a bookmark object is created. Information to be recorded in the bookmark title (Title) 212, the bookmark object class (Object Class) 213, the unique device number (UDN) 214, and the list of state variables (State Variable List) 215 is provided by the AV control point (CP) when the AV control point (CP) makes a request for the creation of a bookmark. The information to be contained in the list of state variables (State Variable List) 215, etc. is received from the media renderer (MR) and provided to the media server (MR).
The procedure for creating a bookmark object of the above structure and managing the information thereof will now be described in detail.
FIG. 3a illustrates the procedure for creating a bookmark in accordance with an embodiment of the present invention, wherein a content object (also called content item) that is currently being played is bookmarked.
If a user makes a request for bookmarking the content 311 that is being played by a media renderer (not illustrated), a bookmark object (also called bookmark item) is created by using “CreateObject” action defined by the UPnP AV standard.
The procedure will be described in more detail. If the user makes a request for bookmarking the content being played, (S301), the control point 320 requests the RenderingControl service and AVTS of the media renderer to provide the state variables for the content and receives the state variables through “GetStateVariables( )” action (S302). The control point 320 is a control application capable of detecting and controlling other devices and/or services. The control point 320 is executed on a device having a user-friendly environment such as a PDA. The control point 302 can be incorporated into the media renderer.
If the streaming from the media server 310 to the media renderer is done in push mode wherein AVIS is executed on the media server 310, the control point 320 receives the state variables of AVTS from the media server 310.
The control point 320 calls “CreateObject action” so that the content directory service (CDS) of the media server 310 creates a bookmark object. Bookmark information to be contained in the bookmark object is also provided as arguments to the action (S303). The bookmark information is information to be recorded in the fields of the ID of the bookmarked object 211, the title 212, the object class 213, the unique device number (UDN) 214, and the list of state variables 215 shown in FIG. 2. The control point 320 delivers the unique device number (UDN) of the RenderingControl service of the media renderer (or the unique device number (UDN) of the AVTS), which was obtained when the control point 320 made connection for transmission of the content currently being streamed, by storing it in the UDN field.
The information to be stored in the title 212 may be organized into a vendor-specific part and a user input part. If the title 212 contains separate room for the user input part, the control point 320 requests the user to enter a desired string for easy identification of the content and transfers the user-entered string to the media server 310 as an input argument to “CreateObject” action. Alternatively, the control point 320 can transfer the title of the object to be bookmarked to the media server 310. The information to be stored in the object class 213 is “object.item.bookmarkitem” as mentioned above. Additional information can be transferred in different embodiments.
“CreateObject” action for creating the bookmark object and input arguments thereof are written in a markup language such as XML and delivered to the media server 310.
Receiving the action, the content directory service (CDS) of the media server 310 creates a bookmark object based on the information contained in the input arguments to the action. The ID of the bookmark object is generated according to a predefined rule and recorded in the bookmark object ID (BM ObjectID) field 210 (S304).
Before creating the bookmark object, the content directory service (CDS) of the media server 310 first determines if bookmark objects having the same information contained in the input arguments to the “CreateObject” action exist. A bookmark object is newly created only when there is no such bookmark.
The existing UPnP AV standard requires that every content should be contained in a root object having the ID of “0”. In the preferred embodiment of the present invention shown in FIG. 1, however, there is a separate directory structure exclusively for storing 10 bookmark objects. In this embodiment, general browsing actions show only the directory for storing contents. The directory for storing bookmark objects is shown by only special actions. Like the ID of the root object of the content directory, the ID of the root object of the bookmark directory is predefined (e.g., “bookmark_holder”).
It is also possible to place the container for storing bookmark objects in a special container under the root container “0”.
If the control point 320 set the parentobjectID to “bookmark_holder” when calling the “CreateObject” action, the content directory service (CDS) of the media server 310 creates the bookmark object under the root container 312 the ID of which is “bookmark_holder”.
After creating the bookmark object as described above, the content directory service (CDS) of the media server 310 adds the ID of the created bookmark object to the metadata describing the property of the bookmarked object, i.e., the content being played. In other words, the content directory service (CDS) updates the information about the bookmarked object (S305). The reason for linking the bookmark object and the bookmarked object by storing the ID of the bookmark object in the bookmarked object is to update also the bookmark object linked to the content object when the content object is changed.
For example, if the content object linked to the bookmark object is removed, the bookmark object is not valid any more. In this case, when the content object is removed, the bookmark object linked to the content object is detected using the stored bookmark object ID and the linked bookmark object is removed as well.
After creating the bookmark object and updating the metadata of the linked content object, the content directory service (CDS) of the media server 310 transfers the ID of the created bookmark object and the updated metadata of the content object to the control point 320 (S306 and 5307) so that the control point 320 can update its information about objects and bookmarks that have been received through a previous browsing action. The information transfer can be done through a reply to the “CreateObject action for creating the bookmark object or through an event generated by a change in the information about objects managed by the content directory service (CDS).
FIG. 3b illustrates another embodiment of the present invention. The content directory service (CDS) of the media server 310 creates a requested bookmark object (S314) and transfers the ID of the created bookmark object to the control point 320 (S315). Receiving the ID, the control point 320 constructs complete information on the bookmark object (including the ID) and records the link information for the bookmark object (i.e., the ID of the bookmark object) in the metadata of the content object to be bookmarked. The control point 320 then makes a request for updating the metadata of the content object to the media server 310 (S316) so that the content directory service (CDS) of the media server 310 adds the ID of the bookmark object to the content object (S317), thereby allowing synchronization of data related to the bookmark object.
If more than one request for bookmarking one content is received, the media server 310 creates bookmark objects as many as the number of the requests in the corresponding bookmark container as shown in FIG. 4 and records the ID of each of the created bookmark objects in the metadata of the content object.
In the example shown in FIG. 4, a content object having the ID of “30” is linked to 4 bookmark objects (402) generated by 4 bookmarking actions (401). Each of the bookmark objects contains the ID of the linked content object “30”. The metadata 403 of the content object also contains the IDs of the 4 linked bookmark objects (“1”, “2”, “3”, and “4”).
The procedure for searching bookmarks registered as described above is described below.
To search a bookmark object, the control point 320 makes a request for browse action to the media server 310 with setting the parentobjectID field to “bookmark_holder” (or the ID of the container wherein bookmark objects are stored). If the directory for bookmark objects is separated from the directory for contents, only the bookmark objects are found while the content items and/or containers are found together when the request for “browse” action is made with parentobjectID field set to “0”.
The control point 320 may make a request for “browse bookmark” action, which has the same function as “browse” action, to the media server 310 with setting the root ID to “0” instead of setting to the root ID of the bookmark object directory structure (e.g., “bookmark_holder”). If “browse bookmark” action is requested, the content directory service (CDS) of the media server 310 interprets the value of the parentobjectID field which is set to “0” as the root ID of the bookmark object directory structure (e.g., “bookmark_holder”) and searches the child items, i.e., bookmark objects, wherein the parentobjectID is delivered as an input argument to the action. The detected bookmark objects are transferred to the control point 320 as the result of “browse bookmark” action.
The syntax for specifying the number of bookmark objects to retrieve and from which object the search operation starts in “browse bookmark” action is the same as the syntax of “browse” action.
To delete a bookmark object, “DestroyObject” action is used with the same syntax for deleting a content object. When a bookmark object is deleted, the content directory service (CDS) of the media server 310 removes the ID of the bookmark object from the metadata of the bookmarked object linked to the bookmark object. The updated object information is provided to the control point 320 in an appropriate manner so that media server 310 and the control point 310 can synchronize their object information.
The present invention allows a user to bookmark content objects as many as required at any position, thereby providing a more convenient environment for playing contents.
The present invention automatically executes editing operations required for management of bookmarks and contents by effectively linking created bookmarks and content objects, thereby facilitating the bookmark management.
While the invention has been disclosed with respect to a limited number of embodiments, those skilled in the art, having the benefit of this disclosure, will appreciate numerous modifications and variations therefrom. It is intended that all such modifications and variations fall within the spirit and scope of the invention.

## Claims

1. A method for creating a bookmark item in a Universal Plug and Play (UPnP) network including a server, a player and a controller for controlling the server and the player, the method performed by the controller and comprising:
performing a requesting operation to request rendering state information and transporting state information, the rendering state information and the transporting state information associated with playback of a content item,
wherein when the UPnP network is configured in a specific mode, the requesting operation comprises:
transmitting a request for the rendering state information and the transporting state information to a player; and
receiving the rendering state information and the transporting state information from the player: and

transmitting a creating request to a server, the creating request including the rendering state information and the transporting state information,
wherein the creating request instructs the server to create the bookmark item in the server and to update the content item, the bookmark item used for recovering the rendering state information and the transporting state information,
wherein the bookmark item comprises the rendering state information, the transporting state information, a bookmark identifier (ID) and a content ID of the content item to associate the bookmark item with the content item, and
wherein the content item is updated to include the bookmark ID to associate the content item with the bookmark item.

2. The method of claim 1, wherein the rendering state information includes at least audio volume or display luminance.

3. The method of claim 1, wherein the bookmark ID is generated by the server.

4. The method of claim 1, wherein the bookmark item is created under a container assigned by the controller.

5. A controller for creating a bookmark item in a Universal Plug and Play (UPnP) network including a server, a player and a controller for controlling the server and the player, the controller comprising:
an interface unit configured to at least transmit or receive data; and
a control unit configured to:
perform a requesting operation to request rendering state information and transporting state information, the rendering state information and the transporting state information associated with playback of a content item,
wherein, when the UPnP network is configured in a specific mode, the requesting operation comprises:
transmitting, via the interface unit, a request for the rendering state information and the transporting state information to a player; and
receiving, via the interface unit, the rendering state information and the transporting state information from the player; and

transmit, via the interface unit, a creating request to a server, the creating request including the rendering state information and the transporting state information,

wherein the creating request instructs the server to create the bookmark item in the server and to update the content item, the bookmark item used for recovering the rendering state information and the transporting state information,
wherein the bookmark item comprises the rendering state information, the transporting state information, a bookmark identifier (ID) and a content ID of the content item to associate the bookmark item with the content item, and
wherein the content item is updated to include the bookmark ID to associate the content item with the bookmark item.

6. The controller of claim 5, wherein the rendering state information includes at least audio volume or display luminance.

7. The controller of claim 5, wherein the bookmark ID is generated by the server.

8. The controller of claim 5, wherein the bookmark item is created under a container assigned by the controller.