WO2007116334A2 - A media server and method of operation therefor - Google Patents

A media server and method of operation therefor Download PDF

Info

Publication number
WO2007116334A2
WO2007116334A2 PCT/IB2007/051097 IB2007051097W WO2007116334A2 WO 2007116334 A2 WO2007116334 A2 WO 2007116334A2 IB 2007051097 W IB2007051097 W IB 2007051097W WO 2007116334 A2 WO2007116334 A2 WO 2007116334A2
Authority
WO
WIPO (PCT)
Prior art keywords
indication
media
file
playback
media server
Prior art date
Application number
PCT/IB2007/051097
Other languages
French (fr)
Other versions
WO2007116334A3 (en
Inventor
Paulus T. A. Thijssen
Original Assignee
Koninklijke Philips Electronics N.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics N.V. filed Critical Koninklijke Philips Electronics N.V.
Publication of WO2007116334A2 publication Critical patent/WO2007116334A2/en
Publication of WO2007116334A3 publication Critical patent/WO2007116334A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4333Processing operations in response to a pause request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4381Recovering the multiplex stream from a specific network, e.g. recovering MPEG packets from ATM cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10666Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/775Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums

Definitions

  • the invention relates to a media server and method of operation therefor and in particular, but not exclusively, to time shifting for a video recording media server.
  • DVR/PVRs Digital or Personal Video Recorders
  • a feature of many digital recorders is the ability to time shift received media.
  • the recorders implement a so-called time shift buffer (TSB) with a certain size.
  • TTB time shift buffer
  • the buffer is filled by the received media stream.
  • Time shift buffers are implemented as circular buffers so when the buffer is filled, it begins to overwrite the earliest recorded data.
  • This approach allows a fixed buffer size to provide a user with the ability to always access the latest received media and to access media with a time delay. The amount of previous media that can be accessed depends on the buffer size and the media data rate.
  • the TSB can be considered to provide a window over the time line which allows a user to retrieve media received within the last N hours where N depends on the buffer size.
  • FIG. 1 illustrates an example of a circular TSB.
  • the TSB is implemented as a circular buffer of a certain size.
  • Read and write pointers (read_ptr, write_ptr) are used to indicate the playback and recording positions, respectively.
  • the received media stream data is continuously written to the TSB at the position indicated by the write pointer (which accordingly may be considered to correspond to the current time).
  • the TSB may be implemented as a linear address interval in a suitable storage medium (such as a hard disk) and when the write pointer reaches the end of this interval, the write pointer is reset to the address of the opposite interval end, thereby providing the wrap-around circular buffer.
  • the data just behind the write pointer corresponds to the media received N hours ago where N is the buffer time provided by the TSB.
  • the read pointer When media is retrieved from the TSB, it is read from the read pointer which is independent of the write pointer. Thus, the reading data stream may lag the write data stream by between zero and N hours thereby providing the time shift functionality. Similarly to the write pointer, the read pointer wraps-around when reaches the end of the address interval.
  • media servers are used to provide centrally received or stored media to a plurality of remote media clients thereby allowing the stored media to be accessed by different devices and in different locations.
  • a home video server may allow the stored programs to be accessed by devices serving different monitors or TVs in different rooms.
  • the media server transmits information of the stored content items.
  • UPD Universal Plug and Play
  • the media server provides a so-called Content Directory Service (CDS) which provides a file system like interface.
  • CDS Content Directory Service
  • the available content items are presented as regular linear files.
  • the media server may indicate each content item as a file with a given duration.
  • the system does not provide for the media server announcing the TSB or allow easy access to this.
  • the existing system is based on conventional linear files with the content item starting at the beginning of the file and ending at the end of the file.
  • this is inconsistent with the TSB which is a circular buffer rather than a linear file and where the buffer content dynamically changes.
  • the existing system provides a reduced user experience and does not efficiently allow users of media clients to be provided with a time shift functionality.
  • an improved media server would be advantageous and in particular a media server allowing increased flexibility, improved or facilitated support for a time shift functionality, enhanced user experience and/or improved performance would be advantageous.
  • a media server comprising: a circular buffer for buffering a media stream; generating means for generating a first linear file indication for the circular buffer, the first linear file indication having a first file timing indication; means for generating a file indication message comprising at least one file indication for content items available from the media server, the file indication message comprising the first linear file indication; means for transmitting the file indication message to at least one media client; means for receiving a media request message from the at least one media client , the media request message comprising a request for media indicated by the first linear file indication and the request including a playback start indication relative to the first file timing indication; determining means for determining a playback point for the circular buffer in response to the playback start indication; and transmitting means for transmitting media from the first circular buffer to the at least one media client in response to the playback point.
  • the invention may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience.
  • a media server may provide efficient access to e.g. a circular time shift buffer by media clients.
  • the invention may allow the media client to treat the circular buffer as a conventional recorded file.
  • the invention may allow introduction of time shift functionality in many media server systems while achieving backwards compatibility with existing requirements and procedures. For example, the invention may allow time shift functionality to be provided in a distributed system based on the UPnP standard.
  • the first file timing indication may for example be an indication of a duration and/or a start and/or stop time.
  • the first linear file indication may correspond to an indication of a file having a file size larger than the circular buffer.
  • the linear file indication may correspond to an indication of a file having a duration which exceeds the size of the circular buffer by a factor of five or more.
  • the linear file indication may e.g. correspond to an indication of a file having a duration of more than one week.
  • the first linear file indication may specifically correspond to an indication of a substantially semi-endless file.
  • a semi endless file may be a file having a duration of more than a month.
  • the media server further comprises means for determining if the playback point is outside the media interval stored in the circular buffer; and wherein the means for transmitting is arranged to transmit an unavailability indication media stream to the first media server if the playback point is outside the media interval, the unavailability indication media stream comprising an indication that the requested media is unavailable from the media server.
  • the invention may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience.
  • the unavailability indication media stream may for example be a predetermined media stream indicating that the requested content is not available.
  • the media server further comprises means for determining a timing offset between the media interval and the playback point and for including an indication of the timing offset in the unavailability indication media stream.
  • the invention may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience.
  • the determining means is arranged to determine the playback point in response to the playback start indication, a current real time and a real time corresponding to the file timing indication.
  • the determining means is arranged to determine the playback point by determining a buffer playback offset from a current buffer write position in response to a difference between a current real time and a real time corresponding to the playback start indication.
  • the playback start indication is a relative time indication with respect to the file timing indication and the determining means is arranged to determine the real time corresponding to the playback start indication by offsetting a real time corresponding to the file timing indication by the relative time indication.
  • the determining means is arranged to determine that the playback point is outside the circular buffer if a real time corresponding to the playback start indication is prior to a current time offset by a buffer time duration of the circular buffer.
  • the generating means is arranged to generate linear file indications in response to detections of beginnings of content items in the media stream; each linear file indication being associated with a file timing indication.
  • This may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience.
  • the feature may in particular allow further information of the content available from the circular buffer thereby facilitating or enabling the user to select the content of most interest to him.
  • the linear file indications may comprise a title indication for the content item causing the linear file indication to be generated.
  • the media server further comprises means for determining that the request message is for the first linear file indication in response to an indication of the first linear file indication in the request message.
  • the transmitting means is arranged to continue transmission of media during a subsequent content item following a media request associated with a linear file indication generated in response to a previous content item. This may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience.
  • the media stream is an audiovisual media stream.
  • the invention may allow an improved audiovisual media server.
  • the buffered media stream may specifically be a received broadcast media stream such as a TV or radio signal.
  • a method of operation for a media server having a circular buffer for buffering a media stream comprising: generating a first linear file indication for the circular buffer, the linear file indication having a first file timing indication; generating a file indication message comprising file indications for content items available from the media server, the file indication message comprising the first linear file indication; transmitting the file indication message to at least one media client; receiving a media request message from the at least one media client, the media request message comprising a request for media indicated by the first linear file indication and the request including a playback start indication relative to the first file timing indication; determining a playback point for the circular buffer in response to the playback start indication; and transmitting media from the first circular buffer to the first media server in response to the playback point.
  • FIG. 1 illustrates an example of a circular time shift buffer
  • FIG. 2 illustrates and example of a media distribution system comprising a plurality of media clients and a media server in accordance with some embodiments of the invention
  • FIG. 3 is an illustration of a media server in accordance with some embodiments of the invention
  • FIG. 4 illustrates an example of a relation between a circular time shift buffer and a virtual file indicated by a file indication in accordance with some embodiments of the invention
  • FIG. 5 illustrates an example of a circular time shift buffer storing multiple content items
  • FIG. 6 illustrates an example of some relations between a circular time shift buffer and virtual files indicated by file indications in accordance with some embodiments of the invention.
  • FIG. 7 illustrates a method operation for a media server in accordance with some embodiments of the invention.
  • FIG. 2 illustrates and example of a media distribution system 200 comprising a media server 201 and a plurality of media clients 203.
  • the media server 201 receives TV broadcasts from a broadcast transmitter (not shown).
  • the TV programs may be stored as content items in the media server 201 and distributed to the media clients 203 in response to requests therefrom.
  • the media server may store individual content items, such as TV programs, which have been selected by a user of the media server or users of the media clients.
  • the media server 201 may specifically be a domestic Digital Video Recorder (DVR) which supports a plurality of distributed clients, such as media devices in different rooms.
  • DVR Digital Video Recorder
  • the media server 201 is coupled to the media clients 203 via a suitable network 205.
  • the network 205 is a wired Ethernet network.
  • the described principles may apply to any means of communication between the media server 201 and the media clients 203and in particular that the network 205 may be a wired or wireless network, such as for example a WiFiTM network.
  • each of the media clients 203 may request a specific content item that has been stored in a media storage of the media server 201 and may present this on a TV or monitor coupled to the individual media client 203.
  • the media server 201 transmits notification messages that list the stored content items.
  • the notification messages comprise a listing of the stored program files with an indication of the size of each file in the form of a start point and an end point.
  • the media server 201 and media clients communicate using the UPnP standard and the media server transmits notification messages in accordance with the Content Directory Service (CDS).
  • CDS provides a file system like interface where each content item is presented as a single file.
  • CDS notification messages comprise file indications with a title and a start point set to zero and an endpoint equivalent to the file size [0, file size).
  • the individual media clients 203 can process these linear file indications and can specifically present the corresponding information to a user. The user may then select any of the files and may select an offset within the file (in the range [0, file size)) from which playback should be started.
  • the media server 201 of FIG. 2 additionally supports a time shift functionality by temporarily storing received media in a Time Shift Buffer (TSB).
  • TSB Time Shift Buffer
  • the TSB is a circular buffer wherein the buffer content dynamically changes and wherein the starting point of the stored media (the earliest received media still stored in the TSB) continuously changes.
  • CDS only operates with linear files, and the UPnP media clients accordingly expect linear file indications in the notification messages, the TSB media cannot readily be notified to the media clients 203.
  • the media server 201 of FIG. 1 comprises functionality for including a linear file indication for a circular TSB in the CDS notification messages together with functionality for translating offsets within the virtual linear file indicated by the linear file indication into positions within the TSB.
  • the media server 201 allows the media clients 203 to operate on the TSB in the same way as it operates on normal recordings thereby allowing the media clients to access the media stored in the TSB.
  • FIG. 3 illustrates the media server 201 in more detail.
  • the media server 201 comprises a broadcast receiver 301 which is arranged to receive TV programs from a TV transmitter (not shown).
  • the broadcast receiver 301 generates a media data stream for the received TV programs.
  • the broadcast receiver 301 is coupled to a circular time shift buffer 303 which is fed the media data stream.
  • the time shift buffer 303 stores the last received media data.
  • the media interval which can be stored by the time shift buffer 303 depends on the data rate of the media data stream and the size of the time shift buffer 303. Typical values for the media time interval which can be stored in a typical TSB are around two to six hours although it is expected that this will increase significantly in the future.
  • the time shift buffer 303 is coupled to a file indication processor 305 which is arranged to generate linear file indications for the content items that can be accessed by the media clients 203.
  • the file indication processor 305 can generate file indications for all the files which are recorded by the media server 201.
  • the file indication processor 305 is arranged to generate a first linear file indication for the circular buffer where the linear file indication has an associated file timing indication.
  • the time shift buffer 303 is presented as a virtual file of size MAXINT.
  • the file size would be infinite, but for practical reasons a large but limited value is used for MAXINT.
  • the value of MAXINT may be set to a suitable value depending on the characteristics, requirements and preferences of the individual embodiments.
  • MAXINT will be set such that the file indication for the time shift buffer 303 can be considered a semi-endless file.
  • the duration of the virtual file indicated for the time shift buffer 303 may have a duration much longer than the time which can be buffered by the time shift buffer 303 (e.g. 5, 10 or 100 times longer).
  • the file indication for the time shift buffer 303 may thus be a file indication which corresponds to a linear file with interval ends of [0, MAXINT).
  • the start point of the virtual file may for example correspond to the time at which the media server 201 was first initialised or the moment when the time shifting feature was initialised. As another example, the start point may be determined as the time at which the first file indication was generated.
  • the file indication processor 305 stores the real time corresponding to the start point of the file.
  • the file indication processor 305 is coupled to a notification message controller 307 which is arranged to generate a CDS notification message comprising file indications for the content items which are available from the media server.
  • the notification message comprises the first linear file indication associated with the time shift buffer 303 and may also contain the indications for other content items which have been stored.
  • the notification message controller 307 is coupled to notification transmitter 309 which is arranged to transmit the notification messages to the media clients 203 in accordance with the CDS specifications. Specifically the notification transmitter 309 is coupled to a network interface 311 which interfaces the media server 201 to the network 205.
  • the media clients 203 receive the notification message from the media server 201.
  • the information from the notification message can then be used by the individual media client 203 to present a list of available content items to a user.
  • a user may select one of the displayed content items and may furthermore select an offset from which to start. For example, a user may choose to have a content item played from one hour into the program.
  • the media client 203 In order to retrieve the desired media front the media server 201, the media client 203 generates a media request message that identifies the desired file (content item) as well as an offset within this file. The media request message is then transmitted to the media server 201 over the network 205.
  • the desired file content item
  • the media clients 203 cannot only request media that has been recorded and stored as individual files at the media server 201 but can also request media from the time shift buffer 303. Specifically, the media clients 203 can transmit a request media message that identifies the virtual file associated with the first filing indication as well as an offset within that file. Thus, the media request message comprises a playback start indication relative to the start point of the virtual linear file identified by the first file indication.
  • the media request messages are received by a receiver 313 coupled to the network interface 311.
  • the receiver 313 is coupled to a playback controller 315 which is fed an indication of the requested file as well as the offset within the file. If the requested content item corresponds to the time shift buffer 303, the playback controller 315 determines a playback point for the time shift buffer 303 which corresponds to the desired offset. The playback point may specifically be determined as a read pointer for the time shift buffer 303.
  • the playback controller 315 is coupled to a media transmitter 317 which is further coupled to the time shift buffer 303 and the network interface 311. The media transmitter 317 is arranged to retrieve the media from the time shift buffer 303 starting at the playback point determined by the playback controller 315.
  • the retrieved media is then transmitted to the requesting media clients 203 via a network interface 311.
  • the playback controller 315 determines the playback point as a function of the playback start indication received in the request messages, a current real time and a real time corresponding to the start time of the virtual file indicated by the first file indication.
  • FIG. 4 illustrates an example of the relation between the circular time shift buffer and the virtual file indicated by the first file indication.
  • the virtual file has a size of MAXINT and thus ranges from relative time 0 to MAXINT.
  • the playback controller 315 stores the real time value associated with the start point O of the virtual file. The corresponding real time is indicated by TQ. In addition, the playback controller 315 keeps track of the current (real) time Tc.
  • the playback controller 315 When the playback controller 315 receives a request for media from the time shift buffer 303, it determines the real time corresponding to the playback indication.
  • the playback indication is a time offset T OF relative to the start 0 of the virtual linear file.
  • the playback controller 315 may determine that the playback point is outside the circular buffer by detecting that the real time corresponding to the playback start indication T R is prior to the real time start of the buffer, Ts. Alternatively or additionally, the playback controller 315 may determine that the playback point is outside the circular buffer by detecting that the real time corresponding to the playback start indication T R is after the current time Tc. In such cases, the playback controller 315 may inform the media transmitter
  • the media transmitter 317 retrieves predetermined media from a predetermined media storage 319. This predetermined media indicates that the requested media cannot be provided. The predetermined media is then transmitted to the media client 203 informing the user of the unavailability of the requested media.
  • the predetermined media stream may e.g. be still or moving video with some indication such as "you have moved into the past" or "you have moved into the future".
  • the predetermined media stream may be amended to include an indication of the timing offset between the buffer interval and the requested media.
  • the play back controller 315 may calculate T S -T R if T R is prior to the buffer interval and may indicate this offset as a textual message.
  • the user of the media client 203 may for example get an indication such as "you have moved 15 minutes before the time shift buffer".
  • the described media server will allow any media client , including UPnP media clients, to access a circular time shift buffer.
  • the user operating the media client is provided with sensible feedback facilitating navigation and specifically is informed when he has moved outside the time shift buffer interval.
  • the described approach is furthermore simple to implement and does not substantially increase the complexity or cost of the media server .
  • the file indication processor 305 is arranged to generate a new linear file indication for the time shift buffer 303 every time a new content item begins in the received media stream. Thus, every time a new TV program starts, the file indication processor 305 can generate a new file indication for a virtual file associated with the time shift buffer 303.
  • the file indication processor 305 can extract title information for the received TV programs.
  • the title information may for example be extracted from metadata associated with the TV programs.
  • the file indication processor 305 whenever a new program starts, the file indication processor 305 generates a new file indication for a virtual file that has a start point 0 corresponding to the real time at which the TV program started and an endpoint corresponding to MAXINT. The new file indications are then transmitted to the media clients 203 in CDS notification messages.
  • the user of a media client 203 is presented with a list of different TV programs that are stored in the time shift buffer 303. The user may then select one of the stored TV programs and a request message containing the identification of this program, as well as a potential timing offset, it is transmitted to the media server 201.
  • the media server 201 When the media server 201 receives the request message, it first determines the linear file indication which corresponds to the selected TV program. It then proceeds to retrieve the real-time associated with the start point for the virtual file represented by that file indication and then proceeds to determine a playback start point within the time shift buffer 303 using the same principles as described previously.
  • the media server 201 will accordingly proceed to transmit media from the time shift buffer 303 starting at the beginning of the selected TV program.
  • the media server 201 does not stop transmitting when the end of the program is reached. Rather, the media server 201 continues to transmit the following program and generally continues to transmit the received media with the time offset resulting from the selection of the first TV program.
  • FIG. 5 illustrates an example of a circular time shift buffer currently storing three content items P, Q and R. R is the currently recorded program which overwrites the beginning of program P.
  • each new content item is published as an individual file.
  • Program P is being overwritten, so the real available content starts at Offset start in file P.
  • Offset end in file P indicates the end of title P. If the user navigates beyond Offset end, the server could have presented a "you have moved beyond the end of the program" message.
  • the media server continues to present the next program(s). This implies that by selecting a certain file one can access the corresponding TV program and all following TV programs.
  • File Q thus provides access to program Q and program R.
  • File R just provides access to program R in this example.
  • the advantage of the additional file indications for programs Q and R is that it substantially facilitates navigation to these programs (the user will typically have no prior indication of where the programs Q and R start in file P and will have to search through the file from the beginning).
  • FIG. 7 illustrates a method of operation for a media server in accordance with some embodiments of the invention. The method may specifically apply to the media server 201 of FIG. 2
  • a first linear file indication is generated for the circular buffer of the media server 201.
  • the linear file indication has a first file timing indication.
  • Step 701 is followed by step 703 wherein a file indication message comprising file indications for content items available from the media server is generated.
  • the file indication message comprises the first linear file indication.
  • Step 703 is followed by step 705 wherein the file indication message is transmitted to at least one media client.
  • Step 705 is followed by step 707 wherein a media request message is received from the at least one media client.
  • the media request message comprises a request for media indicated by the first linear file indication and the request includes a playback start indication relative to the first file timing indication.
  • Step 707 is followed by step 709 wherein a playback point is determined for the circular buffer in response to the playback start indication.
  • Step 709 is followed by step 711 wherein media is transmitted from the first circular buffer to the media client in response to the playback point.
  • the invention can be implemented in any suitable form including hardware, software, firmware or any combination of these.
  • the invention may optionally be implemented at least partly as computer software running on one or more data processors and/or digital signal processors.
  • the elements and components of an embodiment of the invention may be physically, functionally and logically implemented in any suitable way.
  • the functionality may be implemented in a single unit, in a plurality of units or as part of other functional units.
  • the invention may be implemented in a single unit or may be physically and functionally distributed between different units and processors.

Abstract

A media server (201) comprises a circular buffer (303) which buffers a received media stream to provide a time shifting function. A file indication processor (305) generates a first linear file indication for the circular buffer (303) which are transmitted to media clients (203). The linear file indication has a first file timing indication. A receiver (313) can receive a media request message from at least one media client (203) comprising a request for media indicated by the first linear file indication and including a playback start indication relative to the first file timing indication. A playback controller (315) determines a playback point for the circular buffer in response to the playback start indication and a media transmitter (317) transmits media from the first circular buffer (303) to the at least one media client (203) in response to the playback point. If the request is outside the circular buffer (303) a predetermined stream indicating that the requested media is unavailable is transmitted.

Description

A media server and method of operation therefor
The invention relates to a media server and method of operation therefor and in particular, but not exclusively, to time shifting for a video recording media server.
In recent years, media servers providing facilities for storage and distribution of media have become increasingly popular. For example, consumer devices for providing centralised domestic video or music servers that can be accessed by remote devices have been introduced. Furthermore, hard disk based video recorders such as Digital or Personal Video Recorders (DVR/PVRs) have become commonplace and are replacing traditional analogue recorders.
A feature of many digital recorders is the ability to time shift received media. In order to provide this feature, the recorders implement a so-called time shift buffer (TSB) with a certain size. When time shifting is started, the buffer is filled by the received media stream. Time shift buffers are implemented as circular buffers so when the buffer is filled, it begins to overwrite the earliest recorded data. This approach allows a fixed buffer size to provide a user with the ability to always access the latest received media and to access media with a time delay. The amount of previous media that can be accessed depends on the buffer size and the media data rate. The TSB can be considered to provide a window over the time line which allows a user to retrieve media received within the last N hours where N depends on the buffer size.
FIG. 1 illustrates an example of a circular TSB. The TSB is implemented as a circular buffer of a certain size. Read and write pointers (read_ptr, write_ptr) are used to indicate the playback and recording positions, respectively. The received media stream data is continuously written to the TSB at the position indicated by the write pointer (which accordingly may be considered to correspond to the current time). The TSB may be implemented as a linear address interval in a suitable storage medium (such as a hard disk) and when the write pointer reaches the end of this interval, the write pointer is reset to the address of the opposite interval end, thereby providing the wrap-around circular buffer. Thus, the data just behind the write pointer corresponds to the media received N hours ago where N is the buffer time provided by the TSB.
Other implementations of a circular buffer are possible as well. On possibility is that when the maximum buffer space is used, the filling of the buffer continuous by simultaneous incrementing the start and end address of the buffer. This means that when writing new data, old buffer data is not (necessarily) overwritten. Old data is just discarded. For the description of the embodiments as well as for the claims, this implementation of a buffer falls within the definition of a circular buffer.
When media is retrieved from the TSB, it is read from the read pointer which is independent of the write pointer. Thus, the reading data stream may lag the write data stream by between zero and N hours thereby providing the time shift functionality. Similarly to the write pointer, the read pointer wraps-around when reaches the end of the address interval.
In many cases, media servers are used to provide centrally received or stored media to a plurality of remote media clients thereby allowing the stored media to be accessed by different devices and in different locations. For example, a home video server may allow the stored programs to be accessed by devices serving different monitors or TVs in different rooms.
In order to allow a user of the individual media client to select from the media available at the media server, the media server transmits information of the stored content items. For example, the Universal Plug and Play (UPnP) standard provides a system where a media server can stream content via a (home) network to a media client. For browsing purposes, the media server provides a so-called Content Directory Service (CDS) which provides a file system like interface.
In these systems, the available content items are presented as regular linear files. For example, the media server may indicate each content item as a file with a given duration. However, although such a system is suitable for many applications, there are a number of disadvantages associated. Specifically, the system does not provide for the media server announcing the TSB or allow easy access to this. Indeed, the existing system is based on conventional linear files with the content item starting at the beginning of the file and ending at the end of the file. However, this is inconsistent with the TSB which is a circular buffer rather than a linear file and where the buffer content dynamically changes. Thus, the existing system provides a reduced user experience and does not efficiently allow users of media clients to be provided with a time shift functionality.
Hence, an improved media server would be advantageous and in particular a media server allowing increased flexibility, improved or facilitated support for a time shift functionality, enhanced user experience and/or improved performance would be advantageous.
Accordingly, the Invention seeks to preferably mitigate, alleviate or eliminate one or more of the above mentioned disadvantages singly or in any combination. According to a first aspect of the invention there is provided a media server comprising: a circular buffer for buffering a media stream; generating means for generating a first linear file indication for the circular buffer, the first linear file indication having a first file timing indication; means for generating a file indication message comprising at least one file indication for content items available from the media server, the file indication message comprising the first linear file indication; means for transmitting the file indication message to at least one media client; means for receiving a media request message from the at least one media client , the media request message comprising a request for media indicated by the first linear file indication and the request including a playback start indication relative to the first file timing indication; determining means for determining a playback point for the circular buffer in response to the playback start indication; and transmitting means for transmitting media from the first circular buffer to the at least one media client in response to the playback point.
The invention may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience. A media server may provide efficient access to e.g. a circular time shift buffer by media clients. The invention may allow the media client to treat the circular buffer as a conventional recorded file. The invention may allow introduction of time shift functionality in many media server systems while achieving backwards compatibility with existing requirements and procedures. For example, the invention may allow time shift functionality to be provided in a distributed system based on the UPnP standard.
The first file timing indication may for example be an indication of a duration and/or a start and/or stop time. The first linear file indication may correspond to an indication of a file having a file size larger than the circular buffer. Specifically, the linear file indication may correspond to an indication of a file having a duration which exceeds the size of the circular buffer by a factor of five or more. The linear file indication may e.g. correspond to an indication of a file having a duration of more than one week. The first linear file indication may specifically correspond to an indication of a substantially semi-endless file. A semi endless file may be a file having a duration of more than a month. According to an optional feature of the invention, the media server further comprises means for determining if the playback point is outside the media interval stored in the circular buffer; and wherein the means for transmitting is arranged to transmit an unavailability indication media stream to the first media server if the playback point is outside the media interval, the unavailability indication media stream comprising an indication that the requested media is unavailable from the media server.
The invention may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience. The unavailability indication media stream may for example be a predetermined media stream indicating that the requested content is not available. According to an optional feature of the invention, the media server further comprises means for determining a timing offset between the media interval and the playback point and for including an indication of the timing offset in the unavailability indication media stream.
The invention may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience.
According to an optional feature of the invention, the determining means is arranged to determine the playback point in response to the playback start indication, a current real time and a real time corresponding to the file timing indication.
This may allow a practical, efficient and/or facilitated approach for adapting a received playback start indication associated with a static linear file indication to the dynamic and circular characteristics of the circular buffer.
According to an optional feature of the invention, the determining means is arranged to determine the playback point by determining a buffer playback offset from a current buffer write position in response to a difference between a current real time and a real time corresponding to the playback start indication.
This may allow a practical, efficient and/or facilitated approach for adapting a received playback start indication associated with a static linear file indication to the dynamic and circular characteristics of the circular buffer. According to an optional feature of the invention, the playback start indication is a relative time indication with respect to the file timing indication and the determining means is arranged to determine the real time corresponding to the playback start indication by offsetting a real time corresponding to the file timing indication by the relative time indication.
This may allow a practical, efficient and/or facilitated approach for adapting a received playback start indication associated with a static linear file indication to the dynamic and circular characteristics of the circular buffer.
According to an optional feature of the invention, the determining means is arranged to determine that the playback point is outside the circular buffer if a real time corresponding to the playback start indication is prior to a current time offset by a buffer time duration of the circular buffer.
This may allow a practical, efficient and/or facilitated approach for adapting a received playback start indication associated with a static linear file indication to the dynamic and circular characteristics of the circular buffer.
According to an optional feature of the invention, the generating means is arranged to generate linear file indications in response to detections of beginnings of content items in the media stream; each linear file indication being associated with a file timing indication. This may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience. The feature may in particular allow further information of the content available from the circular buffer thereby facilitating or enabling the user to select the content of most interest to him. The linear file indications may comprise a title indication for the content item causing the linear file indication to be generated.
According to an optional feature of the invention, the media server further comprises means for determining that the request message is for the first linear file indication in response to an indication of the first linear file indication in the request message.
This may allow a practical, efficient and/or facilitated approach for providing a user with requested content.
According to an optional feature of the invention, the transmitting means is arranged to continue transmission of media during a subsequent content item following a media request associated with a linear file indication generated in response to a previous content item. This may provide an improved media server and may in particular allow an improved functionality and/or an enhanced user experience.
According to an optional feature of the invention, the media stream is an audiovisual media stream. The invention may allow an improved audiovisual media server. The buffered media stream may specifically be a received broadcast media stream such as a TV or radio signal.
According to another aspect of the invention, there is provided a method of operation for a media server having a circular buffer for buffering a media stream, the method comprising: generating a first linear file indication for the circular buffer, the linear file indication having a first file timing indication; generating a file indication message comprising file indications for content items available from the media server, the file indication message comprising the first linear file indication; transmitting the file indication message to at least one media client; receiving a media request message from the at least one media client, the media request message comprising a request for media indicated by the first linear file indication and the request including a playback start indication relative to the first file timing indication; determining a playback point for the circular buffer in response to the playback start indication; and transmitting media from the first circular buffer to the first media server in response to the playback point. These and other aspects, features and advantages of the invention will be apparent from and elucidated with reference to the embodiment(s) described hereinafter.
Embodiments of the invention will be described, by way of example only, with reference to the drawings, in which
FIG. 1 illustrates an example of a circular time shift buffer;
FIG. 2 illustrates and example of a media distribution system comprising a plurality of media clients and a media server in accordance with some embodiments of the invention; FIG. 3 is an illustration of a media server in accordance with some embodiments of the invention;
FIG. 4 illustrates an example of a relation between a circular time shift buffer and a virtual file indicated by a file indication in accordance with some embodiments of the invention; FIG. 5 illustrates an example of a circular time shift buffer storing multiple content items;
FIG. 6 illustrates an example of some relations between a circular time shift buffer and virtual files indicated by file indications in accordance with some embodiments of the invention; and
FIG. 7 illustrates a method operation for a media server in accordance with some embodiments of the invention.
The following description focuses on embodiments of the invention applicable to an audiovisual media server and in particular to a media server for receiving broadcast television signals for centralised storage and distribution to a plurality of media clients. However, it will be appreciated that the invention is not limited to this application but may be applied to many other media servers including for example music audio servers or online Internet radio media servers.
FIG. 2 illustrates and example of a media distribution system 200 comprising a media server 201 and a plurality of media clients 203. In the example, the media server 201 receives TV broadcasts from a broadcast transmitter (not shown). The TV programs may be stored as content items in the media server 201 and distributed to the media clients 203 in response to requests therefrom. The media server may store individual content items, such as TV programs, which have been selected by a user of the media server or users of the media clients. The media server 201 may specifically be a domestic Digital Video Recorder (DVR) which supports a plurality of distributed clients, such as media devices in different rooms.
In the example, the media server 201 is coupled to the media clients 203 via a suitable network 205. In the specific example, the network 205 is a wired Ethernet network. However, it will be appreciated that the described principles may apply to any means of communication between the media server 201 and the media clients 203and in particular that the network 205 may be a wired or wireless network, such as for example a WiFi™ network. Thus, in the system, each of the media clients 203 may request a specific content item that has been stored in a media storage of the media server 201 and may present this on a TV or monitor coupled to the individual media client 203. In order to allow users of the individual media clients to be informed of, and select between, the stored content items, the media server 201 transmits notification messages that list the stored content items. Specifically, the notification messages comprise a listing of the stored program files with an indication of the size of each file in the form of a start point and an end point.
In the specific example, the media server 201 and media clients communicate using the UPnP standard and the media server transmits notification messages in accordance with the Content Directory Service (CDS). CDS provides a file system like interface where each content item is presented as a single file. Thus, normal recordings can easily be published via CDS by including a file indication for a linear file corresponding to the stored file. Specifically, the CDS notification messages comprise file indications with a title and a start point set to zero and an endpoint equivalent to the file size [0, file size). The individual media clients 203 can process these linear file indications and can specifically present the corresponding information to a user. The user may then select any of the files and may select an offset within the file (in the range [0, file size)) from which playback should be started.
The media server 201 of FIG. 2 additionally supports a time shift functionality by temporarily storing received media in a Time Shift Buffer (TSB). However, in contrast to conventional recordings which are stored as linear files, the TSB is a circular buffer wherein the buffer content dynamically changes and wherein the starting point of the stored media (the earliest received media still stored in the TSB) continuously changes. As CDS only operates with linear files, and the UPnP media clients accordingly expect linear file indications in the notification messages, the TSB media cannot readily be notified to the media clients 203.
The media server 201 of FIG. 1 comprises functionality for including a linear file indication for a circular TSB in the CDS notification messages together with functionality for translating offsets within the virtual linear file indicated by the linear file indication into positions within the TSB. Thus, the media server 201 allows the media clients 203 to operate on the TSB in the same way as it operates on normal recordings thereby allowing the media clients to access the media stored in the TSB.
FIG. 3 illustrates the media server 201 in more detail.
The media server 201 comprises a broadcast receiver 301 which is arranged to receive TV programs from a TV transmitter (not shown). The broadcast receiver 301 generates a media data stream for the received TV programs. The broadcast receiver 301 is coupled to a circular time shift buffer 303 which is fed the media data stream. The time shift buffer 303 stores the last received media data. The media interval which can be stored by the time shift buffer 303 depends on the data rate of the media data stream and the size of the time shift buffer 303. Typical values for the media time interval which can be stored in a typical TSB are around two to six hours although it is expected that this will increase significantly in the future.
The time shift buffer 303 is coupled to a file indication processor 305 which is arranged to generate linear file indications for the content items that can be accessed by the media clients 203. Thus, the file indication processor 305 can generate file indications for all the files which are recorded by the media server 201. In addition, the file indication processor 305 is arranged to generate a first linear file indication for the circular buffer where the linear file indication has an associated file timing indication.
Specifically, the time shift buffer 303 is presented as a virtual file of size MAXINT. Ideally the file size would be infinite, but for practical reasons a large but limited value is used for MAXINT. The value of MAXINT may be set to a suitable value depending on the characteristics, requirements and preferences of the individual embodiments. Typically MAXINT will be set such that the file indication for the time shift buffer 303 can be considered a semi-endless file. For example, the duration of the virtual file indicated for the time shift buffer 303 may have a duration much longer than the time which can be buffered by the time shift buffer 303 (e.g. 5, 10 or 100 times longer). The file indication for the time shift buffer 303 may thus be a file indication which corresponds to a linear file with interval ends of [0, MAXINT).
The start point of the virtual file may for example correspond to the time at which the media server 201 was first initialised or the moment when the time shifting feature was initialised. As another example, the start point may be determined as the time at which the first file indication was generated. In addition to generating the first file indication, the file indication processor 305 stores the real time corresponding to the start point of the file.
The file indication processor 305 is coupled to a notification message controller 307 which is arranged to generate a CDS notification message comprising file indications for the content items which are available from the media server. The notification message comprises the first linear file indication associated with the time shift buffer 303 and may also contain the indications for other content items which have been stored.
The notification message controller 307 is coupled to notification transmitter 309 which is arranged to transmit the notification messages to the media clients 203 in accordance with the CDS specifications. Specifically the notification transmitter 309 is coupled to a network interface 311 which interfaces the media server 201 to the network 205.
The media clients 203 receive the notification message from the media server 201. The information from the notification message can then be used by the individual media client 203 to present a list of available content items to a user. A user may select one of the displayed content items and may furthermore select an offset from which to start. For example, a user may choose to have a content item played from one hour into the program. In order to retrieve the desired media front the media server 201, the media client 203 generates a media request message that identifies the desired file (content item) as well as an offset within this file. The media request message is then transmitted to the media server 201 over the network 205. In the system of FIG. 2, the media clients 203 cannot only request media that has been recorded and stored as individual files at the media server 201 but can also request media from the time shift buffer 303. Specifically, the media clients 203 can transmit a request media message that identifies the virtual file associated with the first filing indication as well as an offset within that file. Thus, the media request message comprises a playback start indication relative to the start point of the virtual linear file identified by the first file indication.
The media request messages are received by a receiver 313 coupled to the network interface 311. The receiver 313 is coupled to a playback controller 315 which is fed an indication of the requested file as well as the offset within the file. If the requested content item corresponds to the time shift buffer 303, the playback controller 315 determines a playback point for the time shift buffer 303 which corresponds to the desired offset. The playback point may specifically be determined as a read pointer for the time shift buffer 303. The playback controller 315 is coupled to a media transmitter 317 which is further coupled to the time shift buffer 303 and the network interface 311. The media transmitter 317 is arranged to retrieve the media from the time shift buffer 303 starting at the playback point determined by the playback controller 315. The retrieved media is then transmitted to the requesting media clients 203 via a network interface 311. In the example, the playback controller 315 determines the playback point as a function of the playback start indication received in the request messages, a current real time and a real time corresponding to the start time of the virtual file indicated by the first file indication.
FIG. 4 illustrates an example of the relation between the circular time shift buffer and the virtual file indicated by the first file indication. As illustrated in FIG. 4, the virtual file has a size of MAXINT and thus ranges from relative time 0 to MAXINT. The playback controller 315 stores the real time value associated with the start point O of the virtual file. The corresponding real time is indicated by TQ. In addition, the playback controller 315 keeps track of the current (real) time Tc. The time shift buffer 303 has a storage length of N and covers the real time from Ts=Tc-N to Tc.
When the playback controller 315 receives a request for media from the time shift buffer 303, it determines the real time corresponding to the playback indication. The playback indication is a time offset TOF relative to the start 0 of the virtual linear file.
Accordingly, the corresponding real time can be determined as TR=TO+TOF. IfTR is between Ts and Tc this is easily mapped to the appropriate address in the time shift buffer 303 and the read pointer is set to this value. For example, the read pointer is set to lag the write pointer by a value corresponding to the time TC-TR. If the data rate is R, the address offset may be given by R(TC-TR). Thus, a buffer playback offset from the write position is determined from the difference between the current real time and the real time corresponding to the playback start indication.
If the requested playback start time value TR is outside the buffer interval, the requested media cannot be provided from the time shift buffer 303. Thus, the playback controller 315 may determine that the playback point is outside the circular buffer by detecting that the real time corresponding to the playback start indication TR is prior to the real time start of the buffer, Ts. Alternatively or additionally, the playback controller 315 may determine that the playback point is outside the circular buffer by detecting that the real time corresponding to the playback start indication TR is after the current time Tc. In such cases, the playback controller 315 may inform the media transmitter
317 that the requested playback point does not fall within the current buffer interval. In response to this indication, the media transmitter 317 retrieves predetermined media from a predetermined media storage 319. This predetermined media indicates that the requested media cannot be provided. The predetermined media is then transmitted to the media client 203 informing the user of the unavailability of the requested media. The predetermined media stream may e.g. be still or moving video with some indication such as "you have moved into the past" or "you have moved into the future".
In some embodiments, the predetermined media stream may be amended to include an indication of the timing offset between the buffer interval and the requested media. For example, the play back controller 315 may calculate TS-TR if TR is prior to the buffer interval and may indicate this offset as a textual message. Thus, the user of the media client 203 may for example get an indication such as "you have moved 15 minutes before the time shift buffer". Thus, the described media server will allow any media client , including UPnP media clients, to access a circular time shift buffer. Furthermore, the user operating the media client is provided with sensible feedback facilitating navigation and specifically is informed when he has moved outside the time shift buffer interval. The described approach is furthermore simple to implement and does not substantially increase the complexity or cost of the media server .
In some embodiments, the file indication processor 305 is arranged to generate a new linear file indication for the time shift buffer 303 every time a new content item begins in the received media stream. Thus, every time a new TV program starts, the file indication processor 305 can generate a new file indication for a virtual file associated with the time shift buffer 303.
For example, the file indication processor 305 can extract title information for the received TV programs. The title information may for example be extracted from metadata associated with the TV programs. In the example, whenever a new program starts, the file indication processor 305 generates a new file indication for a virtual file that has a start point 0 corresponding to the real time at which the TV program started and an endpoint corresponding to MAXINT. The new file indications are then transmitted to the media clients 203 in CDS notification messages.
The user of a media client 203 is presented with a list of different TV programs that are stored in the time shift buffer 303. The user may then select one of the stored TV programs and a request message containing the identification of this program, as well as a potential timing offset, it is transmitted to the media server 201.
When the media server 201 receives the request message, it first determines the linear file indication which corresponds to the selected TV program. It then proceeds to retrieve the real-time associated with the start point for the virtual file represented by that file indication and then proceeds to determine a playback start point within the time shift buffer 303 using the same principles as described previously.
In the example, the media server 201 will accordingly proceed to transmit media from the time shift buffer 303 starting at the beginning of the selected TV program. However, in contrast to a conventional playback of a recorded file, the media server 201 does not stop transmitting when the end of the program is reached. Rather, the media server 201 continues to transmit the following program and generally continues to transmit the received media with the time offset resulting from the selection of the first TV program. As a specific example, FIG. 5 illustrates an example of a circular time shift buffer currently storing three content items P, Q and R. R is the currently recorded program which overwrites the beginning of program P.
Instead of publishing one large virtual file corresponding to the entire time shift buffer 303 in the CDS, three separate files may be notified as illustrated in FIG. 6. In this example, each new content item is published as an individual file. Program P is being overwritten, so the real available content starts at Offset start in file P. Offset end in file P indicates the end of title P. If the user navigates beyond Offset end, the server could have presented a "you have moved beyond the end of the program" message. However, to facilitate time shift navigation, the media server continues to present the next program(s). This implies that by selecting a certain file one can access the corresponding TV program and all following TV programs.
File Q thus provides access to program Q and program R. File R just provides access to program R in this example. The advantage of the additional file indications for programs Q and R is that it substantially facilitates navigation to these programs (the user will typically have no prior indication of where the programs Q and R start in file P and will have to search through the file from the beginning).
FIG. 7 illustrates a method of operation for a media server in accordance with some embodiments of the invention. The method may specifically apply to the media server 201 of FIG. 2
In step 701 a first linear file indication is generated for the circular buffer of the media server 201. The linear file indication has a first file timing indication.
Step 701 is followed by step 703 wherein a file indication message comprising file indications for content items available from the media server is generated. The file indication message comprises the first linear file indication.
Step 703 is followed by step 705 wherein the file indication message is transmitted to at least one media client.
Step 705 is followed by step 707 wherein a media request message is received from the at least one media client. The media request message comprises a request for media indicated by the first linear file indication and the request includes a playback start indication relative to the first file timing indication.
Step 707 is followed by step 709 wherein a playback point is determined for the circular buffer in response to the playback start indication. Step 709 is followed by step 711 wherein media is transmitted from the first circular buffer to the media client in response to the playback point.
It will be appreciated that the above description for clarity has described embodiments of the invention with reference to different functional units and processors. However, it will be apparent that any suitable distribution of functionality between different functional units or processors may be used without detracting from the invention. For example, functionality illustrated to be performed by separate processors or controllers may be performed by the same processor or controllers. Hence, references to specific functional units are only to be seen as references to suitable means for providing the described functionality rather than indicative of a strict logical or physical structure or organization.
The invention can be implemented in any suitable form including hardware, software, firmware or any combination of these. The invention may optionally be implemented at least partly as computer software running on one or more data processors and/or digital signal processors. The elements and components of an embodiment of the invention may be physically, functionally and logically implemented in any suitable way.
Indeed the functionality may be implemented in a single unit, in a plurality of units or as part of other functional units. As such, the invention may be implemented in a single unit or may be physically and functionally distributed between different units and processors.
Although the present invention has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. Rather, the scope of the present invention is limited only by the accompanying claims. Additionally, although a feature may appear to be described in connection with particular embodiments, one skilled in the art would recognize that various features of the described embodiments may be combined in accordance with the invention. In the claims, the term comprising does not exclude the presence of other elements or steps.
Furthermore, although individually listed, a plurality of means, elements or method steps may be implemented by e.g. a single unit or processor. Additionally, although individual features may be included in different claims, these may possibly be advantageously combined, and the inclusion in different claims does not imply that a combination of features is not feasible and/or advantageous. Also the inclusion of a feature in one category of claims does not imply a limitation to this category but rather indicates that the feature is equally applicable to other claim categories as appropriate. Furthermore, the order of features in the claims do not imply any specific order in which the features must be worked and in particular the order of individual steps in a method claim does not imply that the steps must be performed in this order. Rather, the steps may be performed in any suitable order. In addition, singular references do not exclude a plurality. Thus references to "a", "an", "first", "second" etc do not preclude a plurality. Reference signs in the claims are provided merely as a clarifying example and shall not be construed as limiting the scope of the claims in any way.

Claims

CLAIMS:
1. A media server (201) comprising : a circular buffer (303) for buffering a media stream; generating means (305) for generating a first linear file indication for the circular buffer, the first linear file indication having a first file timing indication; means for generating (307) a file indication message comprising at least one file indication for content items available from the media server (201), the file indication message comprising the first linear file indication; means for transmitting (309, 311) the file indication message to at least one media client (203); means for receiving (311 , 313) a media request message from the at least one media client (203), the media request message comprising a request for media indicated by the first linear file indication and the request including a playback start indication relative to the first file timing indication; determining means (315) for determining a playback point for the circular buffer in response to the playback start indication; and transmitting means (317) for transmitting media from the first circular buffer to the at least one media client (203) in response to the playback point.
2. The media server (201) of claim 1 further comprising means (315) for determining if the playback point is outside the media interval stored in the circular buffer (303); and wherein the means for transmitting (317) is arranged to transmit an unavailability indication media stream to the at least one media client (203) if the playback point is outside the media interval, the unavailability indication media stream comprising an indication that the requested media is unavailable from the media server (201).
3. The media server (201) of claim 1 further comprising means (315) for determining a timing offset between the media interval and the playback point and for including an indication of the timing offset in the unavailability indication media stream.
4. The media server (201) of claim 1 wherein the determining means (315) is arranged to determine the playback point in response to the playback start indication, a current real time and a real time corresponding to the file timing indication.
5. The media server (201) of claim 1 wherein the determining means (315) is arranged to determine the playback point by determining a buffer playback offset from a current buffer write position in response to a difference between a current real time and a real time corresponding to the playback start indication.
6. The media server (201) of claim 5 wherein the playback start indication is a relative time indication with respect to the file timing indication and the determining means (315) is arranged to determine the real time corresponding to the playback start indication by offsetting a real time corresponding to the file timing indication by the relative time indication.
7. The media server (201) of claim 1 wherein the determining means (315) is arranged to determine that the playback point is outside the circular buffer (303) if a real time corresponding to the playback start indication is prior to a current time offset by a buffer time duration of the circular buffer (303).
8. The media server (201) of claim 1 wherein the generating means (305) is arranged to generate linear file indications in response to detections of beginnings of content items in the media stream; each linear file indication being associated with a file timing indication.
9. The media server (201) of claim 8 further comprising means (305) for determining that the request message is for the first linear file indication in response to an indication of the first linear file indication in the request message.
10. The media server (201) of claim 8 wherein the transmitting means (317) is arranged to continue transmission of media during a subsequent content item following a media request associated with a linear file indication generated in response to a previous content item.
11. The media server (201) of claim 1 wherein the media stream is an audiovisual media stream.
12. A method of operation for a media server having a circular buffer for buffering a media stream, the method comprising: generating (701) a first linear file indication for the circular buffer, the first linear file indication having a first file timing indication; generating (703) a file indication message comprising at least one file indication for content items available from the media server, the file indication message comprising the first linear file indication; transmitting (705) the file indication message to at least one media client; receiving (707) a media request message from the at least one media client, the media request message comprising a request for media indicated by the first linear file indication and the request including a playback start indication relative to the first file timing indication; determining (709) a playback point for the circular buffer in response to the playback start indication; and transmitting (711) media from the first circular buffer to the at least one media client in response to the playback point.
13. Computer program product for enabling a computer to execute the method as claimed in claim 12.
14. Record carrier carrying the computer program product as claimed in claim 13.
PCT/IB2007/051097 2006-04-07 2007-03-28 A media server and method of operation therefor WO2007116334A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06300341.2 2006-04-07
EP06300341 2006-04-07

Publications (2)

Publication Number Publication Date
WO2007116334A2 true WO2007116334A2 (en) 2007-10-18
WO2007116334A3 WO2007116334A3 (en) 2007-12-13

Family

ID=38474308

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2007/051097 WO2007116334A2 (en) 2006-04-07 2007-03-28 A media server and method of operation therefor

Country Status (1)

Country Link
WO (1) WO2007116334A2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010072077A1 (en) * 2008-12-26 2010-07-01 华为技术有限公司 Method, device and system for processing media data
WO2011073919A1 (en) 2009-12-18 2011-06-23 Koninklijke Philips Electronics N.V. Exchanging streaming information
EP2351380A2 (en) * 2008-11-07 2011-08-03 Looxcie, Inc. Video recording camera headset
EP2461598A1 (en) * 2010-12-03 2012-06-06 Kabushiki Kaisha Toshiba Server, replaying device, and replay control method
JP2013524618A (en) * 2010-04-02 2013-06-17 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for providing time shift service in digital broadcasting system and system thereof
US8526779B2 (en) 2008-11-07 2013-09-03 Looxcie, Inc. Creating and editing video recorded by a hands-free video recording device
US8737803B2 (en) 2011-05-27 2014-05-27 Looxcie, Inc. Method and apparatus for storing and streaming audiovisual content
US9615119B2 (en) 2010-04-02 2017-04-04 Samsung Electronics Co., Ltd. Method and apparatus for providing timeshift service in digital broadcasting system and system thereof
EP2870773B1 (en) * 2012-07-03 2020-09-02 InterDigital CE Patent Holdings Data recording device and method relating to a time shifting function on a recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000060590A1 (en) * 1999-04-06 2000-10-12 Microsoft Corporation Streaming information appliance with circular buffer
US20010047516A1 (en) * 2000-02-01 2001-11-29 Compaq Computer Corporation System for time shifting live streamed video-audio distributed via the internet

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000060590A1 (en) * 1999-04-06 2000-10-12 Microsoft Corporation Streaming information appliance with circular buffer
US20010047516A1 (en) * 2000-02-01 2001-11-29 Compaq Computer Corporation System for time shifting live streamed video-audio distributed via the internet

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8953929B2 (en) 2008-11-07 2015-02-10 Venture Lending & Leasing Vi, Inc. Remote video recording camera control through wireless handset
EP2351380A2 (en) * 2008-11-07 2011-08-03 Looxcie, Inc. Video recording camera headset
EP2351380A4 (en) * 2008-11-07 2012-06-27 Looxcie Inc Video recording camera headset
US8526779B2 (en) 2008-11-07 2013-09-03 Looxcie, Inc. Creating and editing video recorded by a hands-free video recording device
US8593570B2 (en) 2008-11-07 2013-11-26 Looxcie, Inc. Video recording camera headset
US8941747B2 (en) 2008-11-07 2015-01-27 Venture Lending & Leasing Vi, Inc. Wireless handset interface for video recording camera control
WO2010072077A1 (en) * 2008-12-26 2010-07-01 华为技术有限公司 Method, device and system for processing media data
WO2011073919A1 (en) 2009-12-18 2011-06-23 Koninklijke Philips Electronics N.V. Exchanging streaming information
CN102783171A (en) * 2009-12-18 2012-11-14 Tp视觉控股有限公司 Exchanging streaming information
JP2013524618A (en) * 2010-04-02 2013-06-17 サムスン エレクトロニクス カンパニー リミテッド Method and apparatus for providing time shift service in digital broadcasting system and system thereof
US9615119B2 (en) 2010-04-02 2017-04-04 Samsung Electronics Co., Ltd. Method and apparatus for providing timeshift service in digital broadcasting system and system thereof
EP2461598A1 (en) * 2010-12-03 2012-06-06 Kabushiki Kaisha Toshiba Server, replaying device, and replay control method
US8737803B2 (en) 2011-05-27 2014-05-27 Looxcie, Inc. Method and apparatus for storing and streaming audiovisual content
EP2870773B1 (en) * 2012-07-03 2020-09-02 InterDigital CE Patent Holdings Data recording device and method relating to a time shifting function on a recording medium

Also Published As

Publication number Publication date
WO2007116334A3 (en) 2007-12-13

Similar Documents

Publication Publication Date Title
WO2007116334A2 (en) A media server and method of operation therefor
US6985669B1 (en) Method and system for electronic capture of user-selected segments of a broadcast data signal
EP1118058B1 (en) Personalized time-shifted programming
US8699854B2 (en) Method for reproducing data recorded on an interactive recording medium in conjunction with associated auxiliary data
US6970641B1 (en) Playback of interactive programs
US9077946B2 (en) Streaming content management apparatus and method
US20110038613A1 (en) Remote storage of digital media broadcasts for time-shifted playback on personal digital media devices
US20080168516A1 (en) Facilitating Random Access In Streaming Content
WO2008086307A2 (en) Streaming of media with indication of amount downloaded and current location in the stream
AU770707B2 (en) Playback of interactive programs
US20090245759A1 (en) Transmission and reception apparatus, receiver, and reproduction method
US7610359B2 (en) Method and apparatus for reproducing data recorded on an interactive recording medium in conjunction with associated auxiliary data recorded in multiple locations
JP2009152810A (en) Recording and replay apparatus and operation method therefor
JP2004007637A (en) Method of contents pre-caching for realizing true vod system from nvod or stream restriction type vod and system
CN103561278A (en) Video distribution system including progressive playback
KR20020075802A (en) Accessing meta information triggers automatic buffering
CN1247018C (en) Remote preserving recording control system and its method
JP2006506874A (en) Content selection method and apparatus
WO2007149403B1 (en) Digital storage media command and control data indexing
US7020891B1 (en) Internet domain and time index based video email system
JP5279457B2 (en) Broadcast receiving terminal
US20080148138A1 (en) Method, Apparatus and System for Providing Display Information to an End-User Display Device
JP5539165B2 (en) Content distribution apparatus, content reproduction apparatus, and content reproduction system
JP2002358761A (en) Information processor, recording managing information control method, control program therefor and information processing network system
JP2007194765A (en) Content distribution system and content receiving, recording, and reproducing apparatus

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07735298

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07735298

Country of ref document: EP

Kind code of ref document: A2