US20080162716A1 - Playback apparatus and playback control method - Google Patents
Playback apparatus and playback control method Download PDFInfo
- Publication number
- US20080162716A1 US20080162716A1 US12/002,586 US258607A US2008162716A1 US 20080162716 A1 US20080162716 A1 US 20080162716A1 US 258607 A US258607 A US 258607A US 2008162716 A1 US2008162716 A1 US 2008162716A1
- Authority
- US
- United States
- Prior art keywords
- attribute information
- stream data
- buffer
- server
- playback
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 57
- 239000000872 buffer Substances 0.000 claims abstract description 230
- 230000008569 process Effects 0.000 claims description 41
- 238000012545 processing Methods 0.000 claims description 31
- 230000004044 response Effects 0.000 claims description 27
- 238000013500 data storage Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 description 51
- 230000006870 function Effects 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 9
- 238000012546 transfer Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
- H04B1/40—Circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/432—Content retrieval operation from a local storage medium, e.g. hard-disk
- H04N21/4325—Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/43615—Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/439—Processing of audio elementary streams
- H04N21/4392—Processing of audio elementary streams involving audio buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
Definitions
- the present invention contains subject matter related to Japanese Patent Application JP 2006-356774 filed in the Japanese Patent Office on Dec. 29, 2006, the entire contents of which are incorporated herein by reference.
- the present invention relates to a playback apparatus adapted to play back stream data and method of controlling a playback operation of a playback apparatus, and more particularly, to a playback apparatus and a playback control method of receiving stream data transmitted from a server connected to the playback apparatus via a network and playing back the received stream data.
- Audio/video contents are widely used in the form of digital data, and various apparatus for easily recording/playing digital data of audio/video contents are available.
- Great advances in network technology have been made, and thus it has become possible to easily build a home network system using a LAN (Local Area Network) or a wireless LAN.
- LAN Local Area Network
- wireless LAN Wireless Local Area Network
- UPnP devices are classified into three groups: media servers for providing contents, control points serving as control terminal devices, and media renderers serving as playback apparatuses. Note that the function of a control point may be implemented in a device serving as a media server or in a device serving as a media renderer.
- a procedure (protocol) of communication between devices is defined in the UPnP standard, and it is possible to search for a UPnP device on a network and control an operation such as a playback operation of the UPnP device in accordance with the defined communication procedure. More specifically, for example, the control procedure allows a media renderer not only to transmit/receive content data from/to a media server but also to transmit content data to other media renderers (see, for example, Japanese Unexamined Patent Application Publication No. 2005-250867(paragraphs to 0097], FIG. 7)).
- One method of managing the input buffer of the decoder is to estimate playback times of respective input data which may be different in format, and control reading of data into the input buffer on the basis of the playback time for data existing in the input buffer thereby achieving playback of a plurality of data which may be different in format (see, for example, Japanese Unexamined Patent Application Publication No. 2005-182970 (paragraphs [0096] to [0116], FIG. 7)).
- the playback apparatus first acquires metadata associated with the content to be played back, and then the playback apparatus produces a request for the content according to information described in the metadata and sends the request to the server.
- the requested metadata or stream data is not necessarily obtained in a maximum allowable period. Therefore, when stream data of a plurality of contents is played back by a playback apparatus, a break of voice/sound and/or image can occur at a boundary between contents.
- a playback apparatus capable of receiving a plurality of stream data via a network and continuously playing back the received stream data, and a method of controlling a playback operation of such a playback apparatus.
- a playback apparatus adapted to receive stream data transmitted from a server connected to the playback apparatus via a network and play back the received stream data, comprising attribute information request means for requesting the server to transmit attribute information associated with the stream data and receiving the attribute information in the order in which to play back the stream data, an attribute information buffer adapted to temporarily store attribute information sequentially received from the server and retain at least attribute information associated with stream data to be played back next after stream data being currently played back, stream data request means for requesting, on the basis of the attribute information stored in the attribute information buffer, the server to transmit stream data corresponding to the attribute information, and a stream data buffer of a first-in-first-out type adapted to sequentially store the stream data received from the server and sequentially output the stream data to playback processing means, wherein when an end part of the stream data being currently played back has been stored in the stream data buffer, the stream data request means reads attribute information associated with stream data to be played next from the attribute information buffer, and requests, on the basis of the
- the attribute information request means issues a request for transmission of attribute information of stream data
- the attribute information is transmitted from the server in response to the request and received by the playback apparatus, in the order in which to play back the stream data.
- the received attribute information is sequentially stored in the attribute information buffer and temporarily retained therein.
- the attribute information buffer retains at least attribute information associated with stream data to be played back after the stream data being currently played back.
- the stream data request means requests the server to transmit the stream data corresponding to the attribute information. If the stream data is transmitted from the server in response to the request, the received stream data is sequentially stored in the stream data buffer of the first-in-first-out (FIFO) type, and then output in the playback order. Thus, the stream data is sequentially stored in the stream data buffer in the order in which to play back the stream data, and is output therefrom in the playback order thereby achieving continuous playback of the stream data.
- FIFO first-in-first-out
- the stream data request means reads attribute information associated with stream data to be played next from the attribute information buffer, and requests, on the basis of the attribute information, the server to transmit stream data to be played back next.
- stream data to be played next can be received and stored in the stream data buffer.
- the present invention provides the following advantage.
- the attribute information of stream data to be played next after that being currently played is received and stored in the attribute information buffer before the end of the stream data being currently played back.
- stream data to be played next is received from the server and stored in the stream data buffer.
- FIG. 1 is a diagram illustrating an example of a home network system according to an embodiment of the present invention
- FIG. 2 is a diagram illustrating a UPnP protocol stack
- FIG. 3 illustrates an example of a manner in which contents stored in a media server are managed in the form of a tree structure
- FIG. 4 is a block diagram illustrating an example of a hardware configuration of a server
- FIG. 5 is a block diagram illustrating an example of a hardware configuration of an audio playback apparatus
- FIG. 6 is a diagram provided for explanation of a manner of controlling a buffer in an audio playback apparatus according to an embodiment of the present invention
- FIG. 7 is a functional block diagram of an audio playback apparatus according to an embodiment of the present invention.
- FIG. 8 is a diagram provided for explanation of a manner of controlling a buffer in an audio playback apparatus according to an embodiment of the present invention.
- FIG. 9 is a flow chart illustrating a process performed by an audio playback apparatus to start a playback operation in a continuous playback mode
- FIG. 10 is a flow chart illustrating a process performed by an audio buffer controller to manage a free storage space of an audio buffer in a continuous playback mode
- FIG. 11 is a flow chart illustrating a process performed by a meta buffer controller to manage a meta buffer
- FIG. 12 is a flow chart illustrating a process performed by a cache controller to manage a cache memory
- FIG. 13 is a flow chart illustrating a process of managing a cache memory in a random playback mode.
- FIG. 14 illustrates an example of a configuration of a buffer of an audio playback apparatus and a manner of controlling the buffer according to an embodiment of the present invention.
- FIG. 1 is a diagram illustrating an example of a home network system according to an embodiment of the present invention.
- the home network system includes servers 1 and 2 and audio playback apparatuses 3 to 5 , which are connected to each other via a LAN 6 .
- the servers 1 and 2 may be implemented, for example, by an information processing apparatus such as a personal computer or an audio content recorder, having a capability of connecting to the LAN 6 and having a high-capacity storage medium such as an HDD.
- the servers 1 and 2 are capable of providing audio data stored in the HDD to the audio playback apparatuses 3 to 5 via the LAN 6 .
- the audio playback apparatuses 3 to 5 each having a capability of connecting to the LAN 6 thereby to receive audio data transmitted from the server 1 or 2 via the LAN 6 and play back the received audio data.
- the home network system is configured such that, for example, the servers 1 and 2 and the audio playback apparatuses 3 to 5 are connected via a broadband router.
- the broadband router has a function of serving as a DHCP (Dynamic Host Configuration Protocol server for providing service to devices on the LAN 6 and also has a NAT (Network Address Translation) function, thereby allowing the devices on the LAN 6 to share an external communication line (such as a WAN (Wide Area Network)).
- DHCP Dynamic Host Configuration Protocol server for providing service to devices on the LAN 6
- NAT Network Address Translation
- the servers 1 and 2 have a capability of operating as an information providing apparatus for providing audio data
- the audio playback apparatuses 3 to 5 have a capability of operating as a client apparatus (information playback apparatus) for playing back audio data provided by the server 1 or 2 , whereby users are allowed to enjoy listening to various audio contents provided by the server 1 or 2 using audio playback apparatuses 3 to 5 . That is, each of the audio playback apparatuses 3 to 5 is capable of selecting one of the servers 1 and 2 as an audio data server depending on the audio data (audio content) to be played back.
- the audio playback apparatuses 3 to 5 are configured to be capable of easily transmitting/receiving content data to/from electronic devices in accordance with the DLNA guide line.
- the DLNA guide line recommends that detection and control of an electronic device and management of content data should be performed in accordance with the UPnP standard proposed by Microsoft Co., Ltd. of USA.
- the UPnP standard is designed to extend functions of standard Internet communication (TCP/IP communication) and the UPnP standard defines data formats and a set of protocols based on IP (Internet Protocol), TCP (Transmission Control Protocol), UDP (User Datagram Protocol), etc., for use on networks according to the IEEE (Institute of Electrical and Electronic Engineers) 802 standard which is widely used as a standard for network communication using 10/100BASE-T Ethernet (trademark).
- IP Internet Protocol
- TCP Transmission Control Protocol
- UDP User Datagram Protocol
- the CE device such as an audio playback apparatus
- FIG. 2 is a diagram illustrating a UPnP protocol stack.
- IP Internet Protocol
- SSDP Simple Service Discovery Protocol
- GENA General Event Notification Architecture
- SOAP Simple Object Access Protocol
- HTTP HyperText Transfer Protocol
- UPnP may include UPnP Vendor Defined protocols, UPnP Forum Working Committee Defined protocols, and UPnP Device Architecture Defined protocols.
- the UPnP provides the following six functions: addressing, discovery, description, control, eventing, and presentation. These six functions provided by the UPnP are described below.
- UPnP device In a case of an electronic device such as an audio playback apparatus configured to operate according to the UPnP standard (hereinafter, such an electronic device will be referred to simply as a UPnP device), to use UPnP functions, audio data is handled in accordance with a UPnP AV architecture.
- the UPnP devices based on the UPnP AV architecture are classified into the following three types.
- UPnP devices are classified into the following three groups: media servers serving to provide contents, control points serving as control terminal devices, and media renderers serving as a playback apparatuses.
- the media server corresponds to an apparatus generally called a server in network systems.
- the media renderer corresponds to an apparatus generally called a client in network systems.
- the control point is a device adapted to control a UPnP device connected to a network.
- a control point may be installed in a media server or a media renderer, and a control point may be installed in some or all of electronic devices existing on a network. In the present embodiment, it is assumed, by way of example, that a control point is implemented in all of audio playback apparatuses 3 to 5 .
- Addressing provided by UPnP is a function for each UPnP device to acquire an IEEE802 network address of the UPnP device.
- DHCP or Auto-IP is used as a protocol.
- Discovery is performed after addressing, by a control point to find a target device (a media server or a media renderer) to be controlled.
- SSDP is used as a protocol.
- the electronic device broadcasts, over the IEEE802 network, a message indicating units included in the electronic device and services provided by the electronic device.
- the control point receives the broadcast message and analyzes the message to detect the device type of the electronic device connected to the IEEE802 network.
- An SSDP packet output by an electronic device, to be controlled, found by a control point using the discovery function includes a URL (Uniform Resource Locator) described in a device description.
- the control point can access the URL to acquire further detailed device information of the electronic device from the device description.
- the device information provided by the device description includes icon information, a model name, a manufacturer, a product name, and a service description associated with further detailed information about services provided by the device. From the device description or the service description, the control point acquires information as to how to access the target device.
- the device description and the service description are described in XML (extensible Markup Language).
- the control functions include two sub functions: action and query.
- the action is performed in a manner defined by action information included in a service description.
- By invoking an action a control point can control a target device.
- the query is used to extract a value (state variable) of device information from a service description.
- SOAP transport protocol
- XML XML
- GENA GENA
- XML XML
- the UPnP functions described above allows UPnP devices not only to connect to a network for communication but also to automatically detect other UPnP devices and connect thereto without a user having to perform a complicated operation.
- FIG. 3 illustrates an example of a manner in which contents stored in a media server are managed in the form of a tree structure.
- a media server serving as a UPnP device has a function of CDS (Contents Directory Service) which allows the media server to notify a control point what contents are stored in the media server.
- CDS Contents Directory Service
- the CDS includes two types of abstracted objects called containers and items, corresponding to folders and files in the Window OS (Operating System) provided by Microsoft Co., Ltd. of USA. Containers and items are managed in the form of a tree structure.
- audio data transmitted from a media server corresponds to an item shown in FIG. 3 .
- the control point is capable of detecting a URL (a link address) of each content from the tree structure acquired from the media server. If the control point succeeds in acquired a desired audio content (item), the control point is capable of controlling the operation of audio tracks (audio data) including playing and stopping audio contents by using an AV transport function of the media server.
- a URL a link address
- the control point is capable of controlling the operation of audio tracks (audio data) including playing and stopping audio contents by using an AV transport function of the media server.
- the servers 1 and 2 and the audio playback apparatuses 3 to 5 are allowed to connect to each other using the addressing function of UPnP and communicate to each other using TCP/IP.
- mutual authentication is performed between devices using the discovery function of UPnP.
- FIG. 4 is a block diagram illustrating an example of a hardware configuration of a server.
- the hardware configuration of the server 1 is explained, although the server 2 may also be configured in a similar manner.
- the server 1 includes a CPU (Central Processing Unit) 11 , a ROM (Read Only Memory) 12 , a RAM (Random Access Memory) 13 , an HDD 14 , an input interface (I/F) 15 , a graphic processing unit 16 , and a communication interface (I/F) 17 , wherein these parts are connected to each other via internal bus 18 .
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- HDD 14 an input interface
- I/F input interface
- graphic processing unit 16 a graphic processing unit
- I/F communication interface
- the CPU 11 is responsible for control over the entire server 1 .
- ROM 12 a program executed by the CPU 11 and associated data are stored.
- the RAM 13 is mainly used a work area in various processes.
- the HDD 14 has a storage capacity high enough to store many digital contents (which are provided in response to a request).
- the HDD 14 is used to store various programs used by the CPU 11 and data used in various processes.
- the HDD 14 is also used as a work area in various processes such as transmission of a content transcode or a content to a device via the LAN 6 .
- the HDD 14 stored is a server program to be executed by the CPU 11 to allow the device to function as a server for transmitting audio streams to the audio playback apparatuses 3 to 5 according to the DLNA guide line.
- the functions of the server program may include a transcode function for conversion of the coding method, the sampling rate, the quantization rate, etc. of audio streams stored in the HDD 14 .
- the input interface 15 is connected to, for example, an input device 15 a such as a keyboard and a mouse.
- the input interface 15 receives a signal output from the input device 15 a and transfers the signal to the CPU 11 via the internal bus 18 .
- the graphic processing unit 16 is connected to, for example, a display 16 a such as a LCD (Liquid Crystal Display).
- the graphic processing unit 16 operates, under the control of CPU 11 , so as to display an image on a screen of the display 16 a.
- the communication interface 17 is connected to the LAN 6 via a LAN cable (not shown) and serves as an interface with other devices in transmission/reception of data.
- FIG. 5 is a block diagram illustrating an example of a hardware configuration of an audio playback apparatus.
- the hardware configuration of the audio playback apparatus 3 is explained.
- the audio playback apparatuses 4 and 5 may also be configured in a similar manner.
- the audio playback apparatus 3 includes a CPU 31 , a ROM 32 , a RAM 33 , a flash memory 34 , an input interface (I/F) 35 , an input unit 35 a , a graphic processing unit 36 , a display 36 a , a communication interface (I/F) 37 , an audio decoder 38 , a digital-to-audio converter 39 , an audio amplifier 40 , and a speaker 41 . These parts, except for the speaker 41 , are connected to each other via an internal bus 42 .
- the CPU 31 is responsible for control over the entire audio playback apparatus 3 .
- the ROM 32 stored are programs and associated data used by the CPU 31 in execution of various processes.
- the RAM 33 is mainly used as a work area in various processes.
- the CPU 31 , the ROM 32 and the RAM 33 may be implemented as a whole in the form of a microcomputer.
- the flash memory 34 is a writable nonvolatile memory and is used to retain various data even after the power of the audio playback apparatus 3 is turned off.
- the input interface 35 transfers a signal received from the input unit 35 a to the CPU 31 via the internal bus 42 .
- the input unit 35 a has various input switches such as operation keys.
- the graphic processing unit 36 operates under the control of CPU 31 to display an image on a screen of the display 36 a .
- the display 36 a may be, for example, a LCD display.
- the communication interface 37 is connected to the LAN 6 via a LAN cable (not shown) and serves as an interface with other devices in transmission/reception of data.
- the communication interface 37 extracts audio stream data from a packet received via the LAN 6 and directly transfers the extracted audio stream data to the audio decoder 38 .
- the audio decoder 38 decodes the audio stream data received from the communication interface 37 .
- the audio decoder 38 is adapted to decode audio data in various formats such as a MP3(Moving Picture Experts Group-Audio Layer 3) format.
- MP3 Motion Picture Experts Group-Audio Layer 3
- LPCM Linear Pulse Code Modulation
- the audio decoder 38 directly output the input audio data to the digital-to-analog converter 39 .
- the functions of the audio decoder 38 may be implemented by software executed by the CPU 31 .
- the digital-to-analog converter 39 converts the digital audio data supplied from the audio decoder 38 into an analog audio signal.
- the audio amplifier 40 amplifies the analog audio signal supplied from the digital-to-analog converter 39 to a predetermined level and supplies the amplified analog audio signal to the speaker 41 .
- the speaker 41 outputs a voice/sound according to the supplied analog audio signal.
- a plurality of audio streams can be continuously played back as described below.
- audio streams transmitted from the server 1 are received by the audio playback apparatus 3 and played back thereby.
- the audio playback apparatus 4 and 5 can also be configured to operate in a similar manner to the audio playback apparatus 3 , i.e., the audio playback apparatus 4 and 5 are capable of selecting, for example, the server 2 , receiving audio streams from the server 2 , and continuously playing back the audio streams.
- FIG. 6 is a diagram provided for explanation of a manner of controlling a buffer in an audio playback apparatus according to an embodiment of the present invention.
- the audio playback apparatus 3 is allowed to continuously play back a plurality of audio streams by using an audio buffer 101 to temporarily store audio stream data to be played back and a meta buffer 102 to temporarily store metadata associated with the audio streams. Note that the reading/writing of data from/to the buffers and receiving of audio data/metadata are performed and controlled by executing a program by the CPU 31 .
- audio streams are audio data files corresponding to the items shown in FIG. 3 .
- the audio buffer 101 and the meta buffer 102 are realized in the form of FIFO (First In First Out) buffers using the RAM 33 .
- the audio buffer 101 and the meta buffer 102 may be implemented, for example, in the form of ring buffers.
- audio stream data received from the server 1 in the audio stream playback operation is sequentially stored.
- the audio stream data is sequentially read from the audio buffer 101 to the audio decoder 38 and is decoded thereby and is further converted into an analog form by the digital-to-analog converter 39 .
- a voice/sound is output in accordance with the audio stream data.
- the meta buffer 102 is a buffer for storing metadata of an audio stream played back by the audio playback apparatus 3 , and has a storage capacity large enough to store metadata corresponding to, for example, four audio streams.
- the meta data is transmitted from the server 1 in response to a request issued by the audio playback apparatus 3 .
- the metadata includes at least location information (URL, port number, etc.) for acquiring a corresponding audio stream.
- the metadata may further include data associated with the audio stream such as a title, a producer name (artist name), an album name, a total playback time, and a data size, which are used to control the playback operation including the image display operation.
- the metadata stored in the meta buffer 102 is obtained by extracting necessary information from metadata transmitted in the form of XML data from the server 1 in response to a browse action.
- list information indicating audio streams available from the server 1 is acquired, and a list of the audio streams is displayed on the display 36 a so that a user is allowed to select an audio stream from the list. If an audio stream is selected by the user from the list, a request is sent to the server 1 to request the server 1 to transmit metadata including further detailed information about the selected audio stream. Information necessary for playback of the audio stream is extracted from the received metadata, a request for transmission of the audio stream is produced on the basis of the extracted information. The produced request is sent to the server 1 . If the audio stream is transmitted from the server 1 in response to the request, the audio stream is temporarily stored in the audio buffer 101 and is then read therefrom into the audio decoder 38 .
- the process of continuously playing a plurality of audio streams by the audio playback apparatus 3 is described below.
- playing of an audio stream is started, at least metadata associated with an audio stream to be played next is stored in the meta buffer 102 .
- an audio stream of a track #1 is in the playback operation, and metadata associated with an audio stream of a track #2 is stored in the meta buffer 102 .
- the audio stream data to be played back is sequentially stored in the audio buffer 101 .
- the amount of data stored therein reaches a predetermined value
- reading of data from the audio decoder 38 is started.
- the storing of data into the audio buffer 101 is controlled such that the audio buffer 101 is always filled with audio stream data without having any free space.
- the audio playback apparatus 3 starts reading metadata associated with the next audio stream from the meta buffer 102 without waiting for completion of the playback of the current audio stream being played back.
- a request for transmission of the next audio stream is produced in accordance with the location information described in the metadata, and the request is sent to the server 1 . If the audio stream is received, the audio stream is sequentially stored in the free storage space of the audio buffer 101 . Thereafter, the storing of the data into the audio buffer 101 is controlled such that no free storage space occurs in the audio buffer 101 .
- next audio stream data is read from the audio decoder 38 and played back without a break.
- the metadata associated with the audio stream whose playback is completed is deleted from the meta buffer 102 , and metadata associated with an audio stream to be played back next to the audio stream being currently played back is received from the server 1 and stored in the meta buffer 102 .
- a request for transmission of metadata to be stored as new metadata into the meta buffer 102 may be sent to the server 1 in a period from the time of referring to metadata to receive a next audio stream from the server 1 to the time of the end of playback of this audio stream.
- the control of the buffers in the above-described manner ensures that when playback of a previous audio stream is ended, data of a beginning part of a next audio stream has already been received and stored in the audio buffer 101 regardless of the degree of traffic congestion of the LAN 6 or the processing load imposed on the server 1 , and thus a plurality of music contents can be continuously played with substantially no break between music contents.
- the storage capacity of the audio buffer 101 is determined so as to achieve the above-described operation, taking into account the traffic congestion on the LAN 6 and the processing load imposed on the server 1 .
- the storage capacity of the audio buffer 101 is determined such that a maximum time is predicted which is needed to start storing an audio stream received from the server 1 into the audio buffer 101 after a request for a next audio stream corresponding to metadata is issued, and the storage capacity is set to be capable of storing a greater amount of data than the amount of audio stream data read from the audio buffer 101 during the predicted maximum time.
- the meta buffer 102 needs to store at least metadata associated with an audio stream to be played next. However, preferably, metadata of a plurality of audio streams is stored in the meta buffer 102 as shown in FIG. 6 to ensure that even if a delay occurs in arrival of metadata due to traffic congestion of the LAN 6 or due to an increase in processing load imposed on the server 1 , continuous playback is allowed, although the playback is limited to tracks corresponding to metadata stored in the meta buffer 102 .
- the metadata associated with the audio stream being in the playback operation is kept in the meta buffer 102 until the playback of the current audio stream is ended so that the metadata can be referred to by the playback controller or the like as required.
- the metadata can be referred to by the playback controller or the like as required.
- metadata necessary for acquisition of the audio stream may be read from the meta buffer 102 and stored into another memory area, and, at this stage of the process, metadata associated with an audio stream to be played next may be stored into the meta buffer 102 .
- FIG. 7 is a functional block diagram of an audio playback apparatus according to an embodiment of the present invention.
- the audio playback apparatus 3 includes a cache memory 103 for caching metadata, in addition to the audio buffer 101 and the meta buffer 102 described above in the first embodiment.
- the provision of the cache memory 103 makes it possible to further ensure that a plurality of audio streams are played back continuously without a break.
- Use of the cache memory 103 also makes it possible to more easily handle a random playback operation.
- the cache memory 103 may also be implemented by the RAM 33 or the like.
- the audio playback apparatus 3 includes, as shown in FIG. 7 , a playback controller 110 , a communication controller 120 , and a user interface (U/I) controller 130 , whereby the continuous playback operation of a plurality of audio streams is controlled.
- the functions of these parts are realized by executing a program on the CPU 31 .
- the playback controller 110 is responsible for general control of the playback operation of audio streams.
- the playback controller 110 controls the operation in accordance with a command/data input by a user via the user interface controller 130 .
- the playback controller 110 includes an audio buffer controller 111 , a meta buffer controller 112 , a cache controller 113 , a filter 114 , and a random number generator 115 .
- the audio buffer controller 111 controls reading of audio stream data into the audio buffer 101 and reading of data audio buffer 101 into the audio decoder 38 into in response to a request issued by the audio decoder 38 .
- the audio buffer controller 111 manages the free storage space in the audio buffer 101 such that when a free storage space occurs, the audio buffer controller 111 accesses the meta buffer 102 to refer to metadata associated with an audio stream to be played back next and supplies the location information described in the metadata to the communication controller 120 to issue a request for transmission of the audio stream to be played back next.
- the meta buffer controller 112 controls reading of metadata into/from the meta buffer 102 . If playback (decoding) of one audio stream is completed, the audio buffer controller 111 sends a message to the meta buffer controller 112 to notify the playback (decoding) of one audio stream is completed. In response to the message, the meta buffer controller 112 requests the cache controller 113 to read next metadata and supply it to the meta buffer 102 .
- the cache controller 113 controls reading of metadata into the cache memory 103 and reading of metadata from the cache memory 103 into the meta buffer 102 .
- the cache controller 113 reads metadata from the cache memory 103 into the meta buffer 102 via the filter 114 .
- the cache controller 113 controls the status of the cache memory 103 such that when all metadata is read out, the cache controller 113 requests the communication controller 120 to issue a request for transmission of metadata of an audio stream to be played back next.
- the filter 114 determines whether the metadata read from the cache memory 103 is metadata associated with the audio stream. If so, the filter 114 outputs the metadata to the meta buffer 102 . However, if not so, the filter 114 notifies the cache controller 113 that the metadata read from the cache memory 103 does not correspond to the audio stream.
- the random number generator 115 is a block adapted to determine a random order in which to play back music contents (in a random (shuffle) playback mode), and has a unit adapted to generate a random number indicating a track number to be played back.
- the communication controller 120 is a block adapted to control communication via the LAN 6 . More specifically, in response to a request issued by the playback controller 110 , the communication controller 120 performs the communication procedure defined in the UPnP. The communication controller 120 stores the metadata received via the communication procedure into the cache memory 103 and stores the received audio stream data into the audio buffer 101 .
- the user interface controller 130 detects, via the input I/F 35 , an input operation performed on the input unit 35 a by a user, and supplies input operation information corresponding to the performed input operation to the playback controller 110 .
- the user interface controller 130 In accordance with control information supplied from the playback controller 110 , the user interface controller 130 generates display information depending on a situation such as a situation in which a server or a content is to be selected or a situation in which a content is being played, and the user interface controller 130 supplies the generated display information to the graphic processing unit 36 .
- the graphic processing unit 36 displays an image on the display 36 a in accordance with the supplied display information.
- FIGS. 8A and 8B illustrate manners of controlling buffers in the audio playback apparatus according to the present embodiment of the invention.
- reading/storing of data from/into the cache memory 103 , the meta buffer 102 , and the audio buffer 101 is controlled so as to continuously play back audio streams in the order track #1 to track #20.
- the cache memory 103 has a storage capacity capable of storing metadata of 10 tracks
- the meta buffer 102 has a storage capacity capable of storing metadata of 4 tracks.
- Metadata of 10 tracks starting with the track #1 are stored in the cache memory 103 as shown in FIG. 8A .
- These metadata may be received from the server 1 when the playback start command is issued or may be received beforehand.
- Metadata of first 4 tracks of the 10 tracks are then read into the meta buffer 102 .
- a corresponding audio stream is received and stored in the audio buffer 101 . Playback of the audio stream is then started.
- the meta buffer 102 is accessed to refer to the metadata of the track #2 to be played next, and receiving of the audio stream of the track #2 is started in accordance with the metadata and the received audio stream is stored in the audio buffer 101 .
- the metadata associated with the track #1 is deleted from the meta buffer 102 , and the metadata associated with the next track #5 is read from the cache memory 103 in the free storage space of the meta buffer 102 .
- the metadata of the track #1 may be deleted from the meta buffer 102 and the metadata of the track #5 may be stored.
- the above-described process is performed repeatedly.
- the cache controller 113 detects that all metadata have been read from the cache memory 103 into the meta buffer 102 , the cache controller 113 controls the communication controller 120 to send a request for transmission of metadata of next 10 tracks to the server 1 .
- the cache memory 103 is overwritten by the received metadata, and the metadata are sequentially read starting from the first part thereof from the cache memory 103 into the meta buffer 102 in a similar manner as described above.
- the cache memory 103 capable of storing a greater number of tracks than the meta buffer 102 can store is used as a cache via which to supply metadata to the meta buffer 102 thereby ensuring that a metadata of an audio stream to be played can be acquired without a delay, and thus continuous playback is achieved. For example, even in a case where a plurality of audio streams each having a short length are played, and thus metadata stored in the meta buffer 102 are updated frequently in a short time, it is possible to read metadata from the cache memory 103 without having to receive the metadata from the server 1 and continuously play corresponding audio streams.
- Metadata received from the server 1 include metadata which is not associated with any audio stream to be played.
- metadata For example, there is a possibility that items of an audio stream and a video stream exist in lower layers of the same container, and there is also a possibility that there is a further container together with items.
- metadata associated with objects in lower layers of the same container are received regardless of the types of objects in the order defined by the server 1 and the received metadata are stored in the cache memory 103 .
- the filter 114 determines whether this metadata is associated with an audio stream. If the metadata is associated with an audio stream, the metadata is directly transferred to the meta buffer 102 , but otherwise the filter 114 sends an error message to the cache controller 113 . In response to receiving the error message, the cache controller 113 read metadata corresponding to a next object from the cache memory 103 .
- Metadata associated with audio streams are stored in the meta buffer 102 .
- FIG. 9 is a flow chart illustrating a process performed by the audio playback apparatus to start a playback operation in the continuous playback mode.
- step S 11 if the audio playback apparatus 3 is connected to the LAN 6 , a server search process is started. More specifically, if the audio playback apparatus 3 is connected to the LAN 6 , the communication controller 120 acquires the network address thereof, and the playback controller 110 requests the communication controller 120 to search for servers. In response, the communication controller 120 multicasts a search message over the LAN 6 according to the UPnP standard. In response to the search message, the servers 1 and 2 on the LAN 6 return IDs identifying servers 1 and 2 and URLs for acquiring device descriptions.
- the communication controller 120 supplies information associated with the servers 1 and 2 detected in the above process to the playback controller 110 .
- the playback controller 110 sends a command to the user interface controller 130 to display a screen for use by a user to select the server 1 or 2 .
- the user interface controller 130 displays a list of names of the like of the detected servers 1 and 2 on the display 36 a . In this state, the process waits until a user performs a selection operation.
- step S 12 in accordance with an input operation performed by the user to select a server, audio playback apparatus 3 acquires information about contents available from the server (by way of example, the server 1 ) selected by the user.
- the playback controller 110 If the playback controller 110 detects via the user interface controller 130 that the server 1 has been selected, the playback controller 110 requests the communication controller 120 to acquire a device description from the server 1 .
- the communication controller 120 accesses a specified URL to acquire a device description by using a GET command.
- the communication controller 120 detects a root location of a hierarchical structure in which contents are managed by the server 1 , and the communication controller 120 requests for information about lower layers under the root layer.
- the playback controller 110 requests the user interface controller 130 to display a list of containers on the screen to allow a user to select a container. In response to the request, the user interface controller 130 displays a list of name assigned to the respective containers on the display 36 a . If the user selects a container from the list, the playback controller 110 requests the communication controller 120 to acquire attribute information of a lower layer of the selected container.
- the audio playback apparatus 3 is allowed to specify an artist or the like as a search key and search for items stored in a hierarchical structure, such as that described above, in accordance with the specified search key.
- each item corresponds to stream data of a content (a music content, in the present embodiment), and thus, in most cases, the acquired metadata indicates list information associated with items included in a lower layer of a container corresponding to an album.
- step S 13 the list information about items acquired from the server 1 is transferred from the communication controller 120 to the playback controller 110 .
- the playback controller 110 requests the user interface controller 130 to display a list of titles, artist names, etc. of available music contents as a selection screen.
- the user interface controller 130 displays the list of music contents on the display 36 a .
- the audio playback apparatus 3 waits until a user selects a music content to be played first.
- step S 14 if the playback controller 110 receives music content selection information from the user interface controller 130 , the playback controller 110 requests the communication controller 120 to acquire metadata including further detailed information about the selected music. Note that in the above request, supply of metadata of 10 tracks starting from the track of the selected music content is requested. In the example shown in FIG. 8 , if the track #1 is selected, a request for metadata of tracks #1 to #10 is issued. The communication controller 120 makes an action to request the server 1 to transmit metadata of specified track numbers.
- the metadata received from the server 1 is stored in the cache memory 103 via the communication controller 120 .
- the cache controller 113 supplies metadata associated with first four tracks stored in the cache memory 103 to the meta buffer 102 via the filter 114 .
- step S 15 the audio buffer controller 111 reads metadata of one track from the meta buffer 102 .
- the audio buffer controller 111 supplies location information described in the metadata to the communication controller 120 and requests the communication controller 120 to acquire an audio data at a location indicated by the location information.
- the communication controller 120 access the server 1 in accordance with the supplied location information and requests the server 1 to transmit the corresponding audio stream.
- step S 16 if the audio playback apparatus 3 receives the audio stream transmitted from the server 1 , the received audio stream is sequentially supplied to the audio buffer 101 via the communication controller 120 . The audio data is then sequentially read from the audio buffer 101 and supplied to the audio decoder 38 . Thus, the audio data is played back.
- FIG. 10 is a flow chart illustrating a process performed by the audio buffer controller to manage a free storage space of the audio buffer in the continuous playback operation.
- the audio buffer controller 111 controls the audio buffer 101 such that data is sequentially read from the audio buffer 101 to the audio decoder 38 in accordance with a request issued by the audio decoder 38 .
- the audio buffer controller 111 controls the reading of data into the audio buffer 101 as follows.
- step S 21 the audio buffer controller 111 reads metadata of one track from the meta buffer 102 .
- step S 22 the audio buffer controller 111 supplies location information described in the metadata to the communication controller 120 and requests the communication controller 120 to transmit a corresponding audio stream.
- the communication controller 120 makes an action to transmit the requested audio stream.
- the server 1 starts transmission of the audio stream.
- the transmitted audio stream data is sequentially stored in the audio buffer 101 .
- step S 23 the audio buffer controller 111 monitors the state of the audio buffer 101 in terms of the free storage space. If there is no free storage space, the processing flow proceeds to step S 24 . On the other hand, if a free storage space occurs in the audio buffer 101 after one audio stream has been completely received, the processing flow returns to step S 21 to read metadata of a next track from the meta buffer 102 . In this case, an audio stream to be played next is transmitted from the server 1 .
- step S 24 the audio buffer controller 111 determines whether a user has issued a command to end the continuous playback operation. If it is determined that the command is not issued, the processing flow returns to step S 23 . In step S 23 , the state of the audio buffer 101 in terms of the free storage space is checked. On the other hand, if it is determined in step S 24 that the playback operation end command has been issued, the operation is ended.
- the audio buffer 101 is controlled such that as much audio stream data as the full storage capacity is always stored in the audio buffer 101 .
- reception of one audio stream is completed, reception of a next audio stream is automatically started without waiting for completion of playback of the current audio stream.
- FIG. 11 is a flow chart illustrating a process performed by the meta buffer controller to manage the meta buffer.
- step S 31 if the continuous playback operation is started, the meta buffer controller 112 requests the cache controller 113 to read metadata of four tracks. In response to the request, metadata of four tracks is read from the cache memory 103 and stored to the meta buffer 102 via the filter 114 .
- step S 32 in response to a request from the audio buffer controller 111 , the meta buffer controller 112 reads metadata of a track to be played first from the meta buffer 102 and supplies it to the audio buffer controller 111 .
- step S 33 the meta buffer controller 112 determines whether playback of one audio stream is completed and playback of a next audio stream has been started. If so, the processing flow proceeds to step S 35 , but otherwise the processing flow proceeds to step S 34 .
- the determination as to whether playback of a next audio stream has been started can be made by determining whether decoding of the new audio stream has been started by the audio decoder 38 or by determining whether reading the new audio stream from the audio buffer 101 has been started on the basis of the notification from the audio buffer controller 111 .
- step S 34 the meta buffer controller 112 determines whether a user has issued a command to end the continuous playback operation. If it is determined that the playback operation end command has not been issued, the processing flow returns to step S 33 to make the determination as to whether playback of a next audio stream has been started. On the other hand, if it is determined that the playback operation end command has been issued, the playback operation is ended.
- step S 35 the meta buffer controller 112 request the cache controller 113 to read metadata of next one track.
- metadata of the next one track is read from the cache memory 103 and transferred to the meta buffer 102 via the filter 114 .
- the meta buffer controller 112 stores the received metadata in the storage area meta buffer 102 such that the metadata output in step S 32 is overwritten.
- FIG. 12 is a flow chart illustrating the process performed by the cache controller to manage the cache memory.
- step S 14 shown in FIG. 9 metadata of the predetermined number of tracks (10 tracks, in the present embodiment) has been received from the server 1 and stored in the cache memory 103 , then the cache controller 113 controls the reading/storing of data from/into the cache memory 103 as follows.
- step S 41 the cache controller 113 determines whether a request for outputting of metadata of one track has been issued by the meta buffer controller 112 . If so, the processing flow proceeds to step S 43 , but otherwise the processing flow proceeds to step S 42 .
- step S 42 the cache controller 113 determines whether a user has issued a command to end the continuous playback operation. If it is determined that the command is not issued, the processing flow returns to step S 41 to repeat the determination as to whether the request for outputting data to the meta buffer 102 has been issued. On the other hand, if it is determined in step S 42 that the playback operation end command has been issued, the operation is ended.
- step S 43 the cache controller 113 reads metadata of a next object immediately following an already-read object, to the filter 114 from the cache memory 103 .
- step S 44 the filter 114 determines whether the read metadata is associated with an audio stream. If so the metadata is directly transferred to the meta buffer 102 , but otherwise a message is sent to the cache controller 113 to notify that the metadata is not associated with an audio stream.
- step S 43 the processing flow returns to step S 43 to read metadata of a further next object from the cache memory 103 .
- the process proceeds to step S 45 .
- the meta buffer controller 112 issues, in step S 31 in FIG. 11 , a request for metadata of four tracks. Therefore, in steps S 43 and S 44 performed immediately after the continuous playback operation is started, metadata of first four tracks is read.
- the filter 114 may analyze the metadata to detect the encoding method, the sampling frequency, and the bit rate of the audio stream and may determine whether the audio stream is of a type which can be played back by the audio playback apparatus 3 . In this case, only when it is determined that the audio stream is of a type which can be played back, the metadata is transferred to the meta buffer 102 , but otherwise a message is sent to the cache controller 113 to notify that the audio stream is of a type which can not be played back, and next metadata is acquired from the cache memory 103 .
- step S 45 the cache controller 113 determines whether all metadata stored in the cache memory 103 has been read out. In a case where there is metadata which has not yet been read out, the process returns to step S 41 in which the process waits until a request to read next metadata is issued In a case where all metadata has already been read out, the process proceeds to step S 46 .
- step S 46 on the basis of the list information acquired in step S 12 in FIG. 9 and information indicating track numbers of tracks already transferred to the meta buffer 102 , the cache controller 113 sends information specifying next ten objects to the communication controller 120 and requests the communication controller 120 to transmit metadata of these ten objects.
- the communication controller 120 makes an action to transmit the requested metadata.
- the server 1 transmits metadata of the specified ten objects.
- the received metadata is stored in the cache memory 103 in an overwriting manner. Thereafter, the process in step S 41 is performed again.
- the audio buffer controller 111 As a result of the above-described process performed by the audio buffer controller 111 , the meta buffer controller 112 , and the cache controller 113 , it is ensured that the audio buffer 101 is always filled with audio stream data, and when reception of one audio stream is completed, next audio stream data is stored in the audio buffer 101 without a break. Thus, it is ensured that audio streams are continuously played back without having a silent period between audio streams regardless of the traffic condition of the LAN 6 or the processing load imposed on the server 1 .
- FIG. 13 is a flow chart illustrating the process of managing the cache memory in the random playback mode.
- steps S 11 and S 12 shown in FIG. 9 are performed to acquire list information associated with items existing in a lower layer of a container, if a random playback mode is selected, audio streams in this lower layer of the container are randomly selected and played back. More specifically, in the random playback mode, the random number generator 115 randomly specifies track numbers from those corresponding to the items in the container described in the acquired list information.
- step S 51 at the beginning of the random playback operation, at least first four track numbers are randomly selected by the random number generator 115 , and metadata of the selected tracks is received from the server 1 and stored in the meta buffer 102 via the cache memory 103 .
- the cache memory 103 is filled with metadata of ten tracks including first four tracks.
- the random number generator 115 generates first ten track numbers.
- the cache controller 113 sends information indicating the generated ten track numbers to the communication controller 120 .
- the communication controller 120 requests the server 1 to transmit metadata corresponding to these ten track numbers.
- the received metadata is stored in the cache memory 103 , and the stored metadata is read in the playback order from the cache memory 103 to the meta buffer 102 .
- the metadata is read in the playback order into the meta buffer 102 until all data stored in the cache memory 103 is read. If all data stored in the cache memory 103 is read out, the process proceeds to next step S 52 .
- step S 52 the cache controller 113 determines whether a request for outputting of metadata of one track is received from the meta buffer controller 112 . If so, the processing flow proceeds to step S 54 , but otherwise the processing flow proceeds to step S 53 .
- step S 53 the cache controller 113 determines whether a user has issued a command to end the random playback operation. In a case where it is determined that the playback operation end command is not issued, the processing flow returns to step S 52 to determine whether a request for outputting of data to the meta buffer 102 has been issued. If it is determined that the playback operation end command is issued, the operation is ended.
- step S 54 the cache controller 113 acquires a new track number from the random number generator 115 .
- step S 55 the cache controller 113 determines whether metadata corresponding to the acquired track number is stored in the cache memory 103 . If it is determined that the metadata corresponding to the acquired track number is stored in the cache memory 103 , the process proceeds to step S 57 , but otherwise the process proceeds to step S 56 .
- step S 56 the cache controller 113 commands the communication controller 120 to receive metadata of 10 objects (10 tracks in the present embodiment) starting with the track number acquired in step S 54 .
- the communication controller 120 makes an action to request the server 1 to transmit the specified metadata. If the metadata is received, the received metadata is stored in the cache memory 103 in the overwriting manner.
- step S 57 the cache controller 113 transfers the metadata corresponding to the track number acquired in step S 54 from the cache memory 103 to the meta buffer 102 .
- only metadata associated with audio streams are stored in the cache memory 103 .
- only metadata associated with audio streams may be extracted by the filter 114 and supplied to the meta buffer 102 .
- the filter 114 determines that the metadata is not associated with an audio stream or is associated with an audio stream which is not playable, the random number generator 115 generates a new number, and the process proceeds to step 56 to receive metadata of next 10 objects starting with the generated number.
- FIG. 14 illustrates an example of a configuration of a buffer of an audio playback apparatus and a manner of controlling the buffer according to an embodiment of the present invention.
- the audio buffer 101 a for storing audio stream data is configured to have a plurality of storage areas: two starting-data storage areas 104 and 105 and the FIFO storage area 106 .
- the starting-data storage areas 104 and 105 each have a predetermined storage capacity, and data is stored therein in such a manner that a starting part with a predetermined data size of audio stream data being currently played back or a starting part with a predetermined data size of audio stream data to be played next are stored alternately in the starting-data storage areas 104 and 105 .
- the data stored in these starting-data storage areas 104 and 105 are retained therein until the playback of the audio stream data stored therein is completed.
- the FIFO storage area 106 is implemented, for example, in the form of a ring buffer. That is, in the FIFO storage area 106 , the data following the starting part of the audio stream data being in the playback operation, stored in the starting-data storage area 104 or 105 , is sequentially stored. If the reception of the audio stream is completed, then, a part following the part of the audio stream data, to be played next, stored in the other one of the starting-data storage areas 104 and 105 is sequentially stored.
- a request for transmission of an audio stream corresponding to the metadata of the track #1 stored in the meta buffer 102 is first sent to the server 1 .
- the audio stream data transmitted in response to the request from the server 1 is received by the audio playback apparatus 3 .
- the received audio stream data is stored in the starting-data storage area 104 . If the starting-data storage area 104 is filled with data, the following audio stream data is stored into the FIFO storage area 106 .
- the audio decoder 38 first reads data from the starting-data storage area 104 and decodes the read data. If all data stored in the starting-data storage area 104 has been read, the data stored in the FIFO storage area 106 is read to continue the playback of the audio stream of the track #1. During the playback operation, if a command to replay the audio stream of the track #1 is issued by a user, the data stored in the starting-data storage area 104 is again supplied, starting from its beginning, to the audio decoder 38 . This allows the replay to be performed immediately in response to the command without having to re-receive the starting part of the audio stream from the server 1 .
- a request for re-transmission of the remaining part of the data is produced in accordance with the metadata of the track #1 and sent to the server 1 .
- the data transmitted from the server 1 in response to the request for the re-transmission is stored in the flashed FIFO storage area 106 to continue the playback of the audio stream.
- the audio playback apparatus 3 executes a communication session separately from that of the track #1 with the server 1 to request the server 1 to transmit an audio stream corresponding to metadata of a track #2.
- the audio stream data of the track #2 is received in parallel with the data of the track #1.
- the receiving rate of the audio stream of the track #1 may be detected, and the reception of the audio stream of the track #2 may be started only when the detected receiving rate of the audio stream of the track #1 is greater than a predetermined threshold.
- the received audio stream data of the track #2 is stored in the starting-data storage area 105 .
- the starting-data storage area 105 is filled with the data, the reception of the audio stream data of the track #2 is temporarily stopped, and the following data is received and stored in the FIFO storage area 106 when a free storage space occurs in the FIFO storage area 106 .
- This provides an advantage that when a command to jump to a next audio stream is issued during the playback of the audio stream of the track #1, the data of the audio stream of the track #2 can be supplied to the audio decoder 38 from the starting-data storage area 105 immediately in response to the command without having to receiving the starting part of the audio stream of the track #2 from the server 1 .
- the following audio stream data is received from the server 1 and stored in the flashed FIFO storage area 106 to continue the playback of the audio stream.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Information Transfer Systems (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
In a playback apparatus adapted to receive stream data transmitted from a server and play back the received stream data, attribute information is sequentially received from the server and stored in an attribute information buffer, and, on the basis of the attribute information stored in the attribute information buffer, a request is issued to the server to transmit stream data corresponding to the attribute information. The stream data received from the server is sequentially stored in a first-in-first-out stream data buffer. When an end part of the stream data being currently played back has been stored in the stream data buffer, attribute information corresponding to stream data to be played next is read from the attribute information buffer, and on the basis of this attribute information, a request is issued to the server to transmit the stream data to be played next.
Description
- The present invention contains subject matter related to Japanese Patent Application JP 2006-356774 filed in the Japanese Patent Office on Dec. 29, 2006, the entire contents of which are incorporated herein by reference.
- 1. Field of the Invention
- The present invention relates to a playback apparatus adapted to play back stream data and method of controlling a playback operation of a playback apparatus, and more particularly, to a playback apparatus and a playback control method of receiving stream data transmitted from a server connected to the playback apparatus via a network and playing back the received stream data.
- 2. Description of the Related Art
- Audio/video contents are widely used in the form of digital data, and various apparatus for easily recording/playing digital data of audio/video contents are available. Great advances in network technology have been made, and thus it has become possible to easily build a home network system using a LAN (Local Area Network) or a wireless LAN.
- Thus, it is desirable to provide a technique to easily transmit digital contents between devices in a home network system. In view of the above, efforts of establishing standards for procedures of connection between devices and control of contents are under way. One of such standards is UPnP (Universal Plug & Play) proposed by Microsoft Co., Ltd. of USA. The DLNA (Digital Living Network Alliance) guideline has been established based on the UPnP standard, and efforts of developing various devices according to the DLNA guideline are under way.
- In the UPnP standard, UPnP devices are classified into three groups: media servers for providing contents, control points serving as control terminal devices, and media renderers serving as playback apparatuses. Note that the function of a control point may be implemented in a device serving as a media server or in a device serving as a media renderer.
- A procedure (protocol) of communication between devices is defined in the UPnP standard, and it is possible to search for a UPnP device on a network and control an operation such as a playback operation of the UPnP device in accordance with the defined communication procedure. More specifically, for example, the control procedure allows a media renderer not only to transmit/receive content data from/to a media server but also to transmit content data to other media renderers (see, for example, Japanese Unexamined Patent Application Publication No. 2005-250867(paragraphs to 0097], FIG. 7)).
- To play back audio/video stream data, it is necessary to control the storage of data such that as much stream data as required to properly perform a playback operation always exists in an input buffer of a decoder. Therefore, to continuously play back stream data of a plurality of contents, it is necessary to acquire stream data of a next content and start storing the acquired stream data into the input buffer of the decoder before playback of a previous content is ended.
- One method of managing the input buffer of the decoder is to estimate playback times of respective input data which may be different in format, and control reading of data into the input buffer on the basis of the playback time for data existing in the input buffer thereby achieving playback of a plurality of data which may be different in format (see, for example, Japanese Unexamined Patent Application Publication No. 2005-182970 (paragraphs [0096] to [0116], FIG. 7)).
- In a case of playback apparatuses including a fixed storage medium such as an HDD (Hard Disk Drive) or a removable storage medium such as an optical disk disposed therein, it is possible to previously get information indicating a storage location of stream data of each content, and thus it is possible to transfer stream data to the input buffer at a required high transfer rate. This makes it possible to read stream data of a next content to the input buffer of the decoder in a sufficiently short time in a continuous playback operation in which a plurality of stream data of different contents are played back continuously.
- On the other hand, in a case where stream data of a content received via a network from a UPnP device such as a server is played back, the playback apparatus first acquires metadata associated with the content to be played back, and then the playback apparatus produces a request for the content according to information described in the metadata and sends the request to the server. Depending on the traffic state of the network, the requested metadata or stream data is not necessarily obtained in a maximum allowable period. Therefore, when stream data of a plurality of contents is played back by a playback apparatus, a break of voice/sound and/or image can occur at a boundary between contents.
- In view of the above, it is desirable to provide a playback apparatus capable of receiving a plurality of stream data via a network and continuously playing back the received stream data, and a method of controlling a playback operation of such a playback apparatus.
- According to an embodiment of the present invention, there is provided a playback apparatus adapted to receive stream data transmitted from a server connected to the playback apparatus via a network and play back the received stream data, comprising attribute information request means for requesting the server to transmit attribute information associated with the stream data and receiving the attribute information in the order in which to play back the stream data, an attribute information buffer adapted to temporarily store attribute information sequentially received from the server and retain at least attribute information associated with stream data to be played back next after stream data being currently played back, stream data request means for requesting, on the basis of the attribute information stored in the attribute information buffer, the server to transmit stream data corresponding to the attribute information, and a stream data buffer of a first-in-first-out type adapted to sequentially store the stream data received from the server and sequentially output the stream data to playback processing means, wherein when an end part of the stream data being currently played back has been stored in the stream data buffer, the stream data request means reads attribute information associated with stream data to be played next from the attribute information buffer, and requests, on the basis of the attribute information, the server to transmit stream data to be played back next.
- In this playback apparatus, if the attribute information request means issues a request for transmission of attribute information of stream data, the attribute information is transmitted from the server in response to the request and received by the playback apparatus, in the order in which to play back the stream data. The received attribute information is sequentially stored in the attribute information buffer and temporarily retained therein. The attribute information buffer retains at least attribute information associated with stream data to be played back after the stream data being currently played back.
- In accordance with the attribute information stored in the attribute information buffer, the stream data request means requests the server to transmit the stream data corresponding to the attribute information. If the stream data is transmitted from the server in response to the request, the received stream data is sequentially stored in the stream data buffer of the first-in-first-out (FIFO) type, and then output in the playback order. Thus, the stream data is sequentially stored in the stream data buffer in the order in which to play back the stream data, and is output therefrom in the playback order thereby achieving continuous playback of the stream data.
- When an end part of the stream data being currently played back has been stored in the stream data buffer, the stream data request means reads attribute information associated with stream data to be played next from the attribute information buffer, and requests, on the basis of the attribute information, the server to transmit stream data to be played back next. Thus, without having to wait for completion of playback of stream data, stream data to be played next can be received and stored in the stream data buffer.
- As described above, the present invention provides the following advantage. The attribute information of stream data to be played next after that being currently played is received and stored in the attribute information buffer before the end of the stream data being currently played back. When the end part of the current stream data has been finally stored in the stream data buffer, stream data to be played next is received from the server and stored in the stream data buffer. Thus, it is possible to continuously play back a plurality of stream data without having a break/pause between stream data regardless of the degree of traffic congestion of the network or the processing load imposed on the server.
-
FIG. 1 is a diagram illustrating an example of a home network system according to an embodiment of the present invention; -
FIG. 2 is a diagram illustrating a UPnP protocol stack; -
FIG. 3 illustrates an example of a manner in which contents stored in a media server are managed in the form of a tree structure; -
FIG. 4 is a block diagram illustrating an example of a hardware configuration of a server; -
FIG. 5 is a block diagram illustrating an example of a hardware configuration of an audio playback apparatus; -
FIG. 6 is a diagram provided for explanation of a manner of controlling a buffer in an audio playback apparatus according to an embodiment of the present invention; -
FIG. 7 is a functional block diagram of an audio playback apparatus according to an embodiment of the present invention; -
FIG. 8 is a diagram provided for explanation of a manner of controlling a buffer in an audio playback apparatus according to an embodiment of the present invention; -
FIG. 9 is a flow chart illustrating a process performed by an audio playback apparatus to start a playback operation in a continuous playback mode; -
FIG. 10 is a flow chart illustrating a process performed by an audio buffer controller to manage a free storage space of an audio buffer in a continuous playback mode; -
FIG. 11 is a flow chart illustrating a process performed by a meta buffer controller to manage a meta buffer; -
FIG. 12 is a flow chart illustrating a process performed by a cache controller to manage a cache memory; -
FIG. 13 is a flow chart illustrating a process of managing a cache memory in a random playback mode; and -
FIG. 14 illustrates an example of a configuration of a buffer of an audio playback apparatus and a manner of controlling the buffer according to an embodiment of the present invention. - The present invention is described in further detail below with reference to embodiments in conjunction with the accompanying drawings. In the following explanation, it is assumed, by way of example, that the present invention is applied to a LAN system (home network system) built in a home, and audio data is transmitted/received as content data via this LAN system.
-
FIG. 1 is a diagram illustrating an example of a home network system according to an embodiment of the present invention. - As shown in
FIG. 1 , the home network system includesservers audio playback apparatuses 3 to 5, which are connected to each other via aLAN 6. - The
servers LAN 6 and having a high-capacity storage medium such as an HDD. Theservers audio playback apparatuses 3 to 5 via theLAN 6. Theaudio playback apparatuses 3 to 5 each having a capability of connecting to theLAN 6 thereby to receive audio data transmitted from theserver LAN 6 and play back the received audio data. - In practice, the home network system is configured such that, for example, the
servers audio playback apparatuses 3 to 5 are connected via a broadband router. In this case, the broadband router has a function of serving as a DHCP (Dynamic Host Configuration Protocol server for providing service to devices on theLAN 6 and also has a NAT (Network Address Translation) function, thereby allowing the devices on theLAN 6 to share an external communication line (such as a WAN (Wide Area Network)). - In such a home network system, the
servers audio playback apparatuses 3 to 5 have a capability of operating as a client apparatus (information playback apparatus) for playing back audio data provided by theserver server audio playback apparatuses 3 to 5. That is, each of theaudio playback apparatuses 3 to 5 is capable of selecting one of theservers - Furthermore, in the present embodiment, the
audio playback apparatuses 3 to 5 are configured to be capable of easily transmitting/receiving content data to/from electronic devices in accordance with the DLNA guide line. The DLNA guide line recommends that detection and control of an electronic device and management of content data should be performed in accordance with the UPnP standard proposed by Microsoft Co., Ltd. of USA. - The UPnP standard is designed to extend functions of standard Internet communication (TCP/IP communication) and the UPnP standard defines data formats and a set of protocols based on IP (Internet Protocol), TCP (Transmission Control Protocol), UDP (User Datagram Protocol), etc., for use on networks according to the IEEE (Institute of Electrical and Electronic Engineers) 802 standard which is widely used as a standard for network communication using 10/100BASE-T Ethernet (trademark).
- By applying the UPnP to a CE (Consumer Electronics) device such as an audio playback apparatus, it becomes possible for the CE device such as an audio playback apparatus to easily perform mutual authentication with another CE device or personal computer and to provide or receive service via a network without users having to perform a complicated operation.
-
FIG. 2 is a diagram illustrating a UPnP protocol stack. - As shown in
FIG. 2 , in UPnP, actual transmission/reception of data is performed in accordance with the standard Internet protocol (IP), and functions specific to UPnP are realized using SSDP (Simple Service Discovery Protocol), GENA (General Event Notification Architecture), SOAP (Simple Object Access Protocol), HTTP (HyperText Transfer Protocol), etc. - Furthermore, as shown in
FIG. 2 , UPnP may include UPnP Vendor Defined protocols, UPnP Forum Working Committee Defined protocols, and UPnP Device Architecture Defined protocols. - The UPnP provides the following six functions: addressing, discovery, description, control, eventing, and presentation. These six functions provided by the UPnP are described below.
- In a case of an electronic device such as an audio playback apparatus configured to operate according to the UPnP standard (hereinafter, such an electronic device will be referred to simply as a UPnP device), to use UPnP functions, audio data is handled in accordance with a UPnP AV architecture. The UPnP devices based on the UPnP AV architecture are classified into the following three types.
- That is, in the UPnP AV architecture, UPnP devices are classified into the following three groups: media servers serving to provide contents, control points serving as control terminal devices, and media renderers serving as a playback apparatuses. The media server corresponds to an apparatus generally called a server in network systems. The media renderer corresponds to an apparatus generally called a client in network systems.
- The control point (control terminal device) is a device adapted to control a UPnP device connected to a network. A control point may be installed in a media server or a media renderer, and a control point may be installed in some or all of electronic devices existing on a network. In the present embodiment, it is assumed, by way of example, that a control point is implemented in all of
audio playback apparatuses 3 to 5. - Addressing provided by UPnP is a function for each UPnP device to acquire an IEEE802 network address of the UPnP device. In the addressing, DHCP or Auto-IP is used as a protocol.
- Discovery is performed after addressing, by a control point to find a target device (a media server or a media renderer) to be controlled. In the discovery, SSDP is used as a protocol. When any electronic device in the network system is connected to the IEEE802 network, the electronic device broadcasts, over the IEEE802 network, a message indicating units included in the electronic device and services provided by the electronic device. The control point receives the broadcast message and analyzes the message to detect the device type of the electronic device connected to the IEEE802 network.
- An SSDP packet output by an electronic device, to be controlled, found by a control point using the discovery function includes a URL (Uniform Resource Locator) described in a device description. The control point can access the URL to acquire further detailed device information of the electronic device from the device description.
- The device information provided by the device description includes icon information, a model name, a manufacturer, a product name, and a service description associated with further detailed information about services provided by the device. From the device description or the service description, the control point acquires information as to how to access the target device. The device description and the service description are described in XML (extensible Markup Language).
- The control functions include two sub functions: action and query. The action is performed in a manner defined by action information included in a service description. By invoking an action, a control point can control a target device. The query is used to extract a value (state variable) of device information from a service description. In the control, a transport protocol called SOAP is used, and the description thereof is performed using XML.
- When a value of device information is changed, a message indicating this fact is sent using the eventing from the target device to the control point. In the eventing, a transport protocol called GENA is used, and the eventing is described in XML. The presentation is used to provide control means using a user interface to a user.
- The UPnP functions described above allows UPnP devices not only to connect to a network for communication but also to automatically detect other UPnP devices and connect thereto without a user having to perform a complicated operation.
-
FIG. 3 illustrates an example of a manner in which contents stored in a media server are managed in the form of a tree structure. - A media server serving as a UPnP device has a function of CDS (Contents Directory Service) which allows the media server to notify a control point what contents are stored in the media server. The CDS includes two types of abstracted objects called containers and items, corresponding to folders and files in the Window OS (Operating System) provided by Microsoft Co., Ltd. of USA. Containers and items are managed in the form of a tree structure. In the present embodiment, audio data transmitted from a media server corresponds to an item shown in
FIG. 3 . - The control point is capable of detecting a URL (a link address) of each content from the tree structure acquired from the media server. If the control point succeeds in acquired a desired audio content (item), the control point is capable of controlling the operation of audio tracks (audio data) including playing and stopping audio contents by using an AV transport function of the media server.
- In the present embodiment, the
servers audio playback apparatuses 3 to 5 are allowed to connect to each other using the addressing function of UPnP and communicate to each other using TCP/IP. To make a connection, mutual authentication is performed between devices using the discovery function of UPnP. These functions allow the respective devices to detect the network configuration and communicate with a target electronic device. - Next, examples of configuration of electronic devices in home network system according to an embodiment of the present invention are described.
-
FIG. 4 is a block diagram illustrating an example of a hardware configuration of a server. In the following description, by way of example, the hardware configuration of theserver 1 is explained, although theserver 2 may also be configured in a similar manner. - As shown in
FIG. 4 , theserver 1 includes a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, anHDD 14, an input interface (I/F) 15, agraphic processing unit 16, and a communication interface (I/F) 17, wherein these parts are connected to each other viainternal bus 18. - The
CPU 11 is responsible for control over theentire server 1. In theROM 12, a program executed by theCPU 11 and associated data are stored. TheRAM 13 is mainly used a work area in various processes. - The
HDD 14 has a storage capacity high enough to store many digital contents (which are provided in response to a request). TheHDD 14 is used to store various programs used by theCPU 11 and data used in various processes. TheHDD 14 is also used as a work area in various processes such as transmission of a content transcode or a content to a device via theLAN 6. - More specifically, in the present embodiment, in the
HDD 14, stored is a server program to be executed by theCPU 11 to allow the device to function as a server for transmitting audio streams to theaudio playback apparatuses 3 to 5 according to the DLNA guide line. The functions of the server program may include a transcode function for conversion of the coding method, the sampling rate, the quantization rate, etc. of audio streams stored in theHDD 14. - The
input interface 15 is connected to, for example, aninput device 15 a such as a keyboard and a mouse. Theinput interface 15 receives a signal output from theinput device 15 a and transfers the signal to theCPU 11 via theinternal bus 18. - The
graphic processing unit 16 is connected to, for example, adisplay 16 a such as a LCD (Liquid Crystal Display). Thegraphic processing unit 16 operates, under the control ofCPU 11, so as to display an image on a screen of thedisplay 16 a. - The
communication interface 17 is connected to theLAN 6 via a LAN cable (not shown) and serves as an interface with other devices in transmission/reception of data. -
FIG. 5 is a block diagram illustrating an example of a hardware configuration of an audio playback apparatus. In the following explanation, by way of example, the hardware configuration of theaudio playback apparatus 3 is explained. Note that theaudio playback apparatuses - As shown in
FIG. 5 , theaudio playback apparatus 3 includes aCPU 31, aROM 32, aRAM 33, aflash memory 34, an input interface (I/F) 35, aninput unit 35 a, agraphic processing unit 36, adisplay 36 a, a communication interface (I/F) 37, anaudio decoder 38, a digital-to-audio converter 39, anaudio amplifier 40, and a speaker 41. These parts, except for the speaker 41, are connected to each other via aninternal bus 42. - The
CPU 31 is responsible for control over the entireaudio playback apparatus 3. In theROM 32, stored are programs and associated data used by theCPU 31 in execution of various processes. TheRAM 33 is mainly used as a work area in various processes. TheCPU 31, theROM 32 and theRAM 33 may be implemented as a whole in the form of a microcomputer. Theflash memory 34 is a writable nonvolatile memory and is used to retain various data even after the power of theaudio playback apparatus 3 is turned off. - The
input interface 35 transfers a signal received from theinput unit 35 a to theCPU 31 via theinternal bus 42. Theinput unit 35 a has various input switches such as operation keys. Thegraphic processing unit 36 operates under the control ofCPU 31 to display an image on a screen of thedisplay 36 a. Thedisplay 36 a may be, for example, a LCD display. - The
communication interface 37 is connected to theLAN 6 via a LAN cable (not shown) and serves as an interface with other devices in transmission/reception of data. Thecommunication interface 37 extracts audio stream data from a packet received via theLAN 6 and directly transfers the extracted audio stream data to theaudio decoder 38. - The
audio decoder 38 decodes the audio stream data received from thecommunication interface 37. Theaudio decoder 38 is adapted to decode audio data in various formats such as a MP3(Moving Picture Experts Group-Audio Layer 3) format. When audio data in a LPCM (Linear Pulse Code Modulation) format is input, theaudio decoder 38 directly output the input audio data to the digital-to-analog converter 39. The functions of theaudio decoder 38 may be implemented by software executed by theCPU 31. - The digital-to-
analog converter 39 converts the digital audio data supplied from theaudio decoder 38 into an analog audio signal. Theaudio amplifier 40 amplifies the analog audio signal supplied from the digital-to-analog converter 39 to a predetermined level and supplies the amplified analog audio signal to the speaker 41. The speaker 41 outputs a voice/sound according to the supplied analog audio signal. - In the
audio playback apparatuses 3 to 5, a plurality of audio streams can be continuously played back as described below. In the following explanation, by way of example, it is assumed that audio streams transmitted from theserver 1 are received by theaudio playback apparatus 3 and played back thereby. Note that theaudio playback apparatus audio playback apparatus 3, i.e., theaudio playback apparatus server 2, receiving audio streams from theserver 2, and continuously playing back the audio streams. -
FIG. 6 is a diagram provided for explanation of a manner of controlling a buffer in an audio playback apparatus according to an embodiment of the present invention. - In the present embodiment, the
audio playback apparatus 3 is allowed to continuously play back a plurality of audio streams by using anaudio buffer 101 to temporarily store audio stream data to be played back and ameta buffer 102 to temporarily store metadata associated with the audio streams. Note that the reading/writing of data from/to the buffers and receiving of audio data/metadata are performed and controlled by executing a program by theCPU 31. In the following explanation, audio streams are audio data files corresponding to the items shown inFIG. 3 . - The
audio buffer 101 and themeta buffer 102 are realized in the form of FIFO (First In First Out) buffers using theRAM 33. Theaudio buffer 101 and themeta buffer 102 may be implemented, for example, in the form of ring buffers. In theaudio buffer 101, audio stream data received from theserver 1 in the audio stream playback operation is sequentially stored. The audio stream data is sequentially read from theaudio buffer 101 to theaudio decoder 38 and is decoded thereby and is further converted into an analog form by the digital-to-analog converter 39. As a result, a voice/sound is output in accordance with the audio stream data. - The
meta buffer 102 is a buffer for storing metadata of an audio stream played back by theaudio playback apparatus 3, and has a storage capacity large enough to store metadata corresponding to, for example, four audio streams. The meta data is transmitted from theserver 1 in response to a request issued by theaudio playback apparatus 3. The metadata includes at least location information (URL, port number, etc.) for acquiring a corresponding audio stream. The metadata may further include data associated with the audio stream such as a title, a producer name (artist name), an album name, a total playback time, and a data size, which are used to control the playback operation including the image display operation. The metadata stored in themeta buffer 102 is obtained by extracting necessary information from metadata transmitted in the form of XML data from theserver 1 in response to a browse action. - The basis procedure of playing back an audio stream by the
audio playback apparatus 3 is described below. First, list information indicating audio streams available from theserver 1 is acquired, and a list of the audio streams is displayed on thedisplay 36 a so that a user is allowed to select an audio stream from the list. If an audio stream is selected by the user from the list, a request is sent to theserver 1 to request theserver 1 to transmit metadata including further detailed information about the selected audio stream. Information necessary for playback of the audio stream is extracted from the received metadata, a request for transmission of the audio stream is produced on the basis of the extracted information. The produced request is sent to theserver 1. If the audio stream is transmitted from theserver 1 in response to the request, the audio stream is temporarily stored in theaudio buffer 101 and is then read therefrom into theaudio decoder 38. - The process of continuously playing a plurality of audio streams by the
audio playback apparatus 3 is described below. When playing of an audio stream is started, at least metadata associated with an audio stream to be played next is stored in themeta buffer 102. In the example shown inFIG. 6 , an audio stream of atrack # 1 is in the playback operation, and metadata associated with an audio stream of atrack # 2 is stored in themeta buffer 102. - Meanwhile, the audio stream data to be played back is sequentially stored in the
audio buffer 101. When the amount of data stored therein reaches a predetermined value, reading of data from theaudio decoder 38 is started. The storing of data into theaudio buffer 101 is controlled such that theaudio buffer 101 is always filled with audio stream data without having any free space. - When all audio stream data in the playback operation has been received and a free storage space occurs in the
audio buffer 101, theaudio playback apparatus 3 starts reading metadata associated with the next audio stream from themeta buffer 102 without waiting for completion of the playback of the current audio stream being played back. A request for transmission of the next audio stream is produced in accordance with the location information described in the metadata, and the request is sent to theserver 1. If the audio stream is received, the audio stream is sequentially stored in the free storage space of theaudio buffer 101. Thereafter, the storing of the data into theaudio buffer 101 is controlled such that no free storage space occurs in theaudio buffer 101. - If all audio stream data being in the playback operation has been read from the
audio buffer 101 into theaudio decoder 38, next audio stream data is read from theaudio decoder 38 and played back without a break. The metadata associated with the audio stream whose playback is completed is deleted from themeta buffer 102, and metadata associated with an audio stream to be played back next to the audio stream being currently played back is received from theserver 1 and stored in themeta buffer 102. - Note that a request for transmission of metadata to be stored as new metadata into the
meta buffer 102 may be sent to theserver 1 in a period from the time of referring to metadata to receive a next audio stream from theserver 1 to the time of the end of playback of this audio stream. - The control of the buffers in the above-described manner ensures that when playback of a previous audio stream is ended, data of a beginning part of a next audio stream has already been received and stored in the
audio buffer 101 regardless of the degree of traffic congestion of theLAN 6 or the processing load imposed on theserver 1, and thus a plurality of music contents can be continuously played with substantially no break between music contents. - The storage capacity of the
audio buffer 101 is determined so as to achieve the above-described operation, taking into account the traffic congestion on theLAN 6 and the processing load imposed on theserver 1. For example, the storage capacity of theaudio buffer 101 is determined such that a maximum time is predicted which is needed to start storing an audio stream received from theserver 1 into theaudio buffer 101 after a request for a next audio stream corresponding to metadata is issued, and the storage capacity is set to be capable of storing a greater amount of data than the amount of audio stream data read from theaudio buffer 101 during the predicted maximum time. - The
meta buffer 102 needs to store at least metadata associated with an audio stream to be played next. However, preferably, metadata of a plurality of audio streams is stored in themeta buffer 102 as shown inFIG. 6 to ensure that even if a delay occurs in arrival of metadata due to traffic congestion of theLAN 6 or due to an increase in processing load imposed on theserver 1, continuous playback is allowed, although the playback is limited to tracks corresponding to metadata stored in themeta buffer 102. - In a case where metadata indicates that a next audio stream is the same in specifications such as coding format, sampling frequency, bit rate, etc., as a previous audio stream, it is possible to start decoding of the next audio stream without initializing the
audio decoder 38 and other circuits whereby it is possible to switch the audio streams without creating a silent pause, that is, it is possible to achieve gapless playback. - In the example shown in
FIG. 6 , the metadata associated with the audio stream being in the playback operation is kept in themeta buffer 102 until the playback of the current audio stream is ended so that the metadata can be referred to by the playback controller or the like as required. Alternatively, when an audio stream is acquired from theserver 1, metadata necessary for acquisition of the audio stream may be read from themeta buffer 102 and stored into another memory area, and, at this stage of the process, metadata associated with an audio stream to be played next may be stored into themeta buffer 102. -
FIG. 7 is a functional block diagram of an audio playback apparatus according to an embodiment of the present invention. - The
audio playback apparatus 3 according to the present embodiment includes acache memory 103 for caching metadata, in addition to theaudio buffer 101 and themeta buffer 102 described above in the first embodiment. The provision of thecache memory 103 makes it possible to further ensure that a plurality of audio streams are played back continuously without a break. Use of thecache memory 103 also makes it possible to more easily handle a random playback operation. Thecache memory 103 may also be implemented by theRAM 33 or the like. - In the present embodiment, the
audio playback apparatus 3 includes, as shown inFIG. 7 , aplayback controller 110, acommunication controller 120, and a user interface (U/I)controller 130, whereby the continuous playback operation of a plurality of audio streams is controlled. The functions of these parts are realized by executing a program on theCPU 31. - The
playback controller 110 is responsible for general control of the playback operation of audio streams. Theplayback controller 110 controls the operation in accordance with a command/data input by a user via theuser interface controller 130. Theplayback controller 110 includes anaudio buffer controller 111, ameta buffer controller 112, acache controller 113, afilter 114, and arandom number generator 115. - The
audio buffer controller 111 controls reading of audio stream data into theaudio buffer 101 and reading of dataaudio buffer 101 into theaudio decoder 38 into in response to a request issued by theaudio decoder 38. Theaudio buffer controller 111 manages the free storage space in theaudio buffer 101 such that when a free storage space occurs, theaudio buffer controller 111 accesses themeta buffer 102 to refer to metadata associated with an audio stream to be played back next and supplies the location information described in the metadata to thecommunication controller 120 to issue a request for transmission of the audio stream to be played back next. - The
meta buffer controller 112 controls reading of metadata into/from themeta buffer 102. If playback (decoding) of one audio stream is completed, theaudio buffer controller 111 sends a message to themeta buffer controller 112 to notify the playback (decoding) of one audio stream is completed. In response to the message, themeta buffer controller 112 requests thecache controller 113 to read next metadata and supply it to themeta buffer 102. - The
cache controller 113 controls reading of metadata into thecache memory 103 and reading of metadata from thecache memory 103 into themeta buffer 102. In accordance with a request issued by themeta buffer controller 112, thecache controller 113 reads metadata from thecache memory 103 into themeta buffer 102 via thefilter 114. Thecache controller 113 controls the status of thecache memory 103 such that when all metadata is read out, thecache controller 113 requests thecommunication controller 120 to issue a request for transmission of metadata of an audio stream to be played back next. - The
filter 114 determines whether the metadata read from thecache memory 103 is metadata associated with the audio stream. If so, thefilter 114 outputs the metadata to themeta buffer 102. However, if not so, thefilter 114 notifies thecache controller 113 that the metadata read from thecache memory 103 does not correspond to the audio stream. - The
random number generator 115 is a block adapted to determine a random order in which to play back music contents (in a random (shuffle) playback mode), and has a unit adapted to generate a random number indicating a track number to be played back. - The
communication controller 120 is a block adapted to control communication via theLAN 6. More specifically, in response to a request issued by theplayback controller 110, thecommunication controller 120 performs the communication procedure defined in the UPnP. Thecommunication controller 120 stores the metadata received via the communication procedure into thecache memory 103 and stores the received audio stream data into theaudio buffer 101. - The
user interface controller 130 detects, via the input I/F 35, an input operation performed on theinput unit 35 a by a user, and supplies input operation information corresponding to the performed input operation to theplayback controller 110. In accordance with control information supplied from theplayback controller 110, theuser interface controller 130 generates display information depending on a situation such as a situation in which a server or a content is to be selected or a situation in which a content is being played, and theuser interface controller 130 supplies the generated display information to thegraphic processing unit 36. Thegraphic processing unit 36 displays an image on thedisplay 36 a in accordance with the supplied display information. -
FIGS. 8A and 8B illustrate manners of controlling buffers in the audio playback apparatus according to the present embodiment of the invention. - In the example shown in
FIGS. 8A and 8B , reading/storing of data from/into thecache memory 103, themeta buffer 102, and theaudio buffer 101 is controlled so as to continuously play back audio streams in theorder track # 1 to track #20. Note that in this example, it is assumed that thecache memory 103 has a storage capacity capable of storing metadata of 10 tracks, and themeta buffer 102 has a storage capacity capable of storing metadata of 4 tracks. - If a command to start playing a
track # 1 is issued by a user, then metadata of 10 tracks starting with thetrack # 1 are stored in thecache memory 103 as shown inFIG. 8A . These metadata may be received from theserver 1 when the playback start command is issued or may be received beforehand. - Metadata of first 4 tracks of the 10 tracks are then read into the
meta buffer 102. In accordance with location information described in the metadata of thetrack # 1, a corresponding audio stream is received and stored in theaudio buffer 101. Playback of the audio stream is then started. - As with the previous embodiment, when all audio stream data of the
track # 1 has been received, and a free storage space occurs in theaudio buffer 101, themeta buffer 102 is accessed to refer to the metadata of thetrack # 2 to be played next, and receiving of the audio stream of thetrack # 2 is started in accordance with the metadata and the received audio stream is stored in theaudio buffer 101. - When the playback of the audio stream of the
track # 1 is completed, the metadata associated with thetrack # 1 is deleted from themeta buffer 102, and the metadata associated with thenext track # 5 is read from thecache memory 103 in the free storage space of themeta buffer 102. Alternatively, when the metadata of thetrack # 1 is read from themeta buffer 102 to start playing thetrack # 1, or when the receiving of the audio stream of thenext track # 2 is started, the metadata of thetrack # 1 may be deleted from themeta buffer 102 and the metadata of thetrack # 5 may be stored. - Thereafter, the above-described process is performed repeatedly. Finally, if the metadata of the
last track # 10 is read into themeta buffer 102, then, as shown inFIG. 8B , the playback of the audio stream of thetrack # 7 is started. In this state, the metadata of thetracks # 7 to #10 remain in themeta buffer 102. If thecache controller 113 detects that all metadata have been read from thecache memory 103 into themeta buffer 102, thecache controller 113 controls thecommunication controller 120 to send a request for transmission of metadata of next 10 tracks to theserver 1. If metadata of next 10 tracks (tracks #11 to #20) are received, thecache memory 103 is overwritten by the received metadata, and the metadata are sequentially read starting from the first part thereof from thecache memory 103 into themeta buffer 102 in a similar manner as described above. - As described above, in the present embodiment, the
cache memory 103 capable of storing a greater number of tracks than themeta buffer 102 can store is used as a cache via which to supply metadata to themeta buffer 102 thereby ensuring that a metadata of an audio stream to be played can be acquired without a delay, and thus continuous playback is achieved. For example, even in a case where a plurality of audio streams each having a short length are played, and thus metadata stored in themeta buffer 102 are updated frequently in a short time, it is possible to read metadata from thecache memory 103 without having to receive the metadata from theserver 1 and continuously play corresponding audio streams. - Depending on the tree structure of contents managed by the
server 1, there is a possibility that metadata received from theserver 1 include metadata which is not associated with any audio stream to be played. For example, there is a possibility that items of an audio stream and a video stream exist in lower layers of the same container, and there is also a possibility that there is a further container together with items. - In such a case, metadata associated with objects in lower layers of the same container are received regardless of the types of objects in the order defined by the
server 1 and the received metadata are stored in thecache memory 103. When metadata of an object is read from thecache memory 103, thefilter 114 determines whether this metadata is associated with an audio stream. If the metadata is associated with an audio stream, the metadata is directly transferred to themeta buffer 102, but otherwise thefilter 114 sends an error message to thecache controller 113. In response to receiving the error message, thecache controller 113 read metadata corresponding to a next object from thecache memory 103. - Thus, only metadata associated with audio streams are stored in the
meta buffer 102. This make it is possible to continuously audio streams simply by sequentially reading metadata from themeta buffer 102 under the control of theaudio buffer controller 111. That is, at a time at which to receive an audio stream data to be played next, it is not necessary to determine whether metadata stored in themeta buffer 102 is that corresponding to the audio stream, but it is allowed to simply read metadata from themeta buffer 102 to continuously play back audio streams without creating a silent period between audio streams. - Next, processes performed by respective parts in the
audio playback apparatus 3 in the playback of audio streams in the continuous playback mode are described below.FIG. 9 is a flow chart illustrating a process performed by the audio playback apparatus to start a playback operation in the continuous playback mode. - In step S11, if the
audio playback apparatus 3 is connected to theLAN 6, a server search process is started. More specifically, if theaudio playback apparatus 3 is connected to theLAN 6, thecommunication controller 120 acquires the network address thereof, and theplayback controller 110 requests thecommunication controller 120 to search for servers. In response, thecommunication controller 120 multicasts a search message over theLAN 6 according to the UPnP standard. In response to the search message, theservers LAN 6 returnIDs identifying servers - The
communication controller 120 supplies information associated with theservers playback controller 110. Theplayback controller 110 sends a command to theuser interface controller 130 to display a screen for use by a user to select theserver user interface controller 130 displays a list of names of the like of the detectedservers display 36 a. In this state, the process waits until a user performs a selection operation. - In step S12, in accordance with an input operation performed by the user to select a server,
audio playback apparatus 3 acquires information about contents available from the server (by way of example, the server 1) selected by the user. - If the
playback controller 110 detects via theuser interface controller 130 that theserver 1 has been selected, theplayback controller 110 requests thecommunication controller 120 to acquire a device description from theserver 1. Thecommunication controller 120 accesses a specified URL to acquire a device description by using a GET command. Thecommunication controller 120 detects a root location of a hierarchical structure in which contents are managed by theserver 1, and thecommunication controller 120 requests for information about lower layers under the root layer. - If the information returned as a response to the request indicates that lower layers include only containers, information about these containers is supplied to the
playback controller 110. Theplayback controller 110 requests theuser interface controller 130 to display a list of containers on the screen to allow a user to select a container. In response to the request, theuser interface controller 130 displays a list of name assigned to the respective containers on thedisplay 36 a. If the user selects a container from the list, theplayback controller 110 requests thecommunication controller 120 to acquire attribute information of a lower layer of the selected container. - By performing the above-described process repeatedly, information about lower layers is obtained. In general, in a directly lower layer below the root layer, containers are separately provided for respective artists, and in a further lower layer, containers are separately provided for respective albums. In a still further lower layer, items are provided for respective music contents. Note that the
audio playback apparatus 3 is allowed to specify an artist or the like as a search key and search for items stored in a hierarchical structure, such as that described above, in accordance with the specified search key. - If an item is detected in a lower layer via the above-described process, metadata indicating an outline of the detected item is acquired in the form of XML data. In the present embodiment, as described above, each item corresponds to stream data of a content (a music content, in the present embodiment), and thus, in most cases, the acquired metadata indicates list information associated with items included in a lower layer of a container corresponding to an album.
- In step S13, the list information about items acquired from the
server 1 is transferred from thecommunication controller 120 to theplayback controller 110. In accordance with the supplied list information, theplayback controller 110 requests theuser interface controller 130 to display a list of titles, artist names, etc. of available music contents as a selection screen. In accordance with the request, theuser interface controller 130 displays the list of music contents on thedisplay 36 a. In this state, theaudio playback apparatus 3 waits until a user selects a music content to be played first. - In step S14, if the
playback controller 110 receives music content selection information from theuser interface controller 130, theplayback controller 110 requests thecommunication controller 120 to acquire metadata including further detailed information about the selected music. Note that in the above request, supply of metadata of 10 tracks starting from the track of the selected music content is requested. In the example shown inFIG. 8 , if thetrack # 1 is selected, a request for metadata oftracks # 1 to #10 is issued. Thecommunication controller 120 makes an action to request theserver 1 to transmit metadata of specified track numbers. - The metadata received from the
server 1 is stored in thecache memory 103 via thecommunication controller 120. Thecache controller 113 supplies metadata associated with first four tracks stored in thecache memory 103 to themeta buffer 102 via thefilter 114. - In step S15, the
audio buffer controller 111 reads metadata of one track from themeta buffer 102. Theaudio buffer controller 111 supplies location information described in the metadata to thecommunication controller 120 and requests thecommunication controller 120 to acquire an audio data at a location indicated by the location information. Thecommunication controller 120 access theserver 1 in accordance with the supplied location information and requests theserver 1 to transmit the corresponding audio stream. - In step S16, if the
audio playback apparatus 3 receives the audio stream transmitted from theserver 1, the received audio stream is sequentially supplied to theaudio buffer 101 via thecommunication controller 120. The audio data is then sequentially read from theaudio buffer 101 and supplied to theaudio decoder 38. Thus, the audio data is played back. -
FIG. 10 is a flow chart illustrating a process performed by the audio buffer controller to manage a free storage space of the audio buffer in the continuous playback operation. - As described above, if audio stream data has been stored in the
audio buffer 101, theaudio buffer controller 111 controls theaudio buffer 101 such that data is sequentially read from theaudio buffer 101 to theaudio decoder 38 in accordance with a request issued by theaudio decoder 38. In this process, theaudio buffer controller 111 controls the reading of data into theaudio buffer 101 as follows. - In step S21, the
audio buffer controller 111 reads metadata of one track from themeta buffer 102. - In step S22, the
audio buffer controller 111 supplies location information described in the metadata to thecommunication controller 120 and requests thecommunication controller 120 to transmit a corresponding audio stream. In response to the request, thecommunication controller 120 makes an action to transmit the requested audio stream. In response, theserver 1 starts transmission of the audio stream. The transmitted audio stream data is sequentially stored in theaudio buffer 101. - In step S23, the
audio buffer controller 111 monitors the state of theaudio buffer 101 in terms of the free storage space. If there is no free storage space, the processing flow proceeds to step S24. On the other hand, if a free storage space occurs in theaudio buffer 101 after one audio stream has been completely received, the processing flow returns to step S21 to read metadata of a next track from themeta buffer 102. In this case, an audio stream to be played next is transmitted from theserver 1. - In step S24, the
audio buffer controller 111 determines whether a user has issued a command to end the continuous playback operation. If it is determined that the command is not issued, the processing flow returns to step S23. In step S23, the state of theaudio buffer 101 in terms of the free storage space is checked. On the other hand, if it is determined in step S24 that the playback operation end command has been issued, the operation is ended. - Via the process described above, the
audio buffer 101 is controlled such that as much audio stream data as the full storage capacity is always stored in theaudio buffer 101. When reception of one audio stream is completed, reception of a next audio stream is automatically started without waiting for completion of playback of the current audio stream. -
FIG. 11 is a flow chart illustrating a process performed by the meta buffer controller to manage the meta buffer. - In step S31, if the continuous playback operation is started, the
meta buffer controller 112 requests thecache controller 113 to read metadata of four tracks. In response to the request, metadata of four tracks is read from thecache memory 103 and stored to themeta buffer 102 via thefilter 114. - In step S32, in response to a request from the
audio buffer controller 111, themeta buffer controller 112 reads metadata of a track to be played first from themeta buffer 102 and supplies it to theaudio buffer controller 111. - In step S33, the
meta buffer controller 112 determines whether playback of one audio stream is completed and playback of a next audio stream has been started. If so, the processing flow proceeds to step S35, but otherwise the processing flow proceeds to step S34. - The determination as to whether playback of a next audio stream has been started can be made by determining whether decoding of the new audio stream has been started by the
audio decoder 38 or by determining whether reading the new audio stream from theaudio buffer 101 has been started on the basis of the notification from theaudio buffer controller 111. - In step S34, the
meta buffer controller 112 determines whether a user has issued a command to end the continuous playback operation. If it is determined that the playback operation end command has not been issued, the processing flow returns to step S33 to make the determination as to whether playback of a next audio stream has been started. On the other hand, if it is determined that the playback operation end command has been issued, the playback operation is ended. - In step S35, the
meta buffer controller 112 request thecache controller 113 to read metadata of next one track. In response to the request, metadata of the next one track is read from thecache memory 103 and transferred to themeta buffer 102 via thefilter 114. Themeta buffer controller 112 stores the received metadata in the storage areameta buffer 102 such that the metadata output in step S32 is overwritten. - In the process described above, when playback of the next audio stream is started, metadata data of the next one track is read into the
meta buffer 102 This ensures that metadata of the audio stream being currently played back is stored in themeta buffer 102 over the entire period in which the current audio stream is being played back so that the metadata can be referred to by various parts of the apparatus. Alternatively, when metadata of one track is output in step S32 from themeta buffer 102, metadata of a next one track may be read immediately. -
FIG. 12 is a flow chart illustrating the process performed by the cache controller to manage the cache memory. - If, in step S14 shown in
FIG. 9 , metadata of the predetermined number of tracks (10 tracks, in the present embodiment) has been received from theserver 1 and stored in thecache memory 103, then thecache controller 113 controls the reading/storing of data from/into thecache memory 103 as follows. - In step S41, the
cache controller 113 determines whether a request for outputting of metadata of one track has been issued by themeta buffer controller 112. If so, the processing flow proceeds to step S43, but otherwise the processing flow proceeds to step S42. - In step S42, the
cache controller 113 determines whether a user has issued a command to end the continuous playback operation. If it is determined that the command is not issued, the processing flow returns to step S41 to repeat the determination as to whether the request for outputting data to themeta buffer 102 has been issued. On the other hand, if it is determined in step S42 that the playback operation end command has been issued, the operation is ended. - In step S43, the
cache controller 113 reads metadata of a next object immediately following an already-read object, to thefilter 114 from thecache memory 103. - In step S44, the
filter 114 determines whether the read metadata is associated with an audio stream. If so the metadata is directly transferred to themeta buffer 102, but otherwise a message is sent to thecache controller 113 to notify that the metadata is not associated with an audio stream. - In a case where the
cache controller 113 receives the message from thefilter 114, the processing flow returns to step S43 to read metadata of a further next object from thecache memory 103. On the other hand, in a case where the message is not received, the process proceeds to step S45. - Note that, although not shown in
FIG. 12 , in a state immediately after the continuous playback operation is started, themeta buffer controller 112 issues, in step S31 inFIG. 11 , a request for metadata of four tracks. Therefore, in steps S43 and S44 performed immediately after the continuous playback operation is started, metadata of first four tracks is read. - In the case where the read metadata is associated with an audio stream, the
filter 114 may analyze the metadata to detect the encoding method, the sampling frequency, and the bit rate of the audio stream and may determine whether the audio stream is of a type which can be played back by theaudio playback apparatus 3. In this case, only when it is determined that the audio stream is of a type which can be played back, the metadata is transferred to themeta buffer 102, but otherwise a message is sent to thecache controller 113 to notify that the audio stream is of a type which can not be played back, and next metadata is acquired from thecache memory 103. - In step S45, the
cache controller 113 determines whether all metadata stored in thecache memory 103 has been read out. In a case where there is metadata which has not yet been read out, the process returns to step S41 in which the process waits until a request to read next metadata is issued In a case where all metadata has already been read out, the process proceeds to step S46. - In step S46, on the basis of the list information acquired in step S12 in
FIG. 9 and information indicating track numbers of tracks already transferred to themeta buffer 102, thecache controller 113 sends information specifying next ten objects to thecommunication controller 120 and requests thecommunication controller 120 to transmit metadata of these ten objects. In response to the request, thecommunication controller 120 makes an action to transmit the requested metadata. In response, theserver 1 transmits metadata of the specified ten objects. The received metadata is stored in thecache memory 103 in an overwriting manner. Thereafter, the process in step S41 is performed again. - As a result of the above-described process performed by the
audio buffer controller 111, themeta buffer controller 112, and thecache controller 113, it is ensured that theaudio buffer 101 is always filled with audio stream data, and when reception of one audio stream is completed, next audio stream data is stored in theaudio buffer 101 without a break. Thus, it is ensured that audio streams are continuously played back without having a silent period between audio streams regardless of the traffic condition of theLAN 6 or the processing load imposed on theserver 1. - Next, the playback operation of the
audio playback apparatus 3 in a random playback mode is explained.FIG. 13 is a flow chart illustrating the process of managing the cache memory in the random playback mode. - In the
audio playback apparatus 3, after steps S11 and S12 shown inFIG. 9 are performed to acquire list information associated with items existing in a lower layer of a container, if a random playback mode is selected, audio streams in this lower layer of the container are randomly selected and played back. More specifically, in the random playback mode, therandom number generator 115 randomly specifies track numbers from those corresponding to the items in the container described in the acquired list information. - In step S51, at the beginning of the random playback operation, at least first four track numbers are randomly selected by the
random number generator 115, and metadata of the selected tracks is received from theserver 1 and stored in themeta buffer 102 via thecache memory 103. In this state, thecache memory 103 is filled with metadata of ten tracks including first four tracks. - Most simply, this state can be achieved as follows. First, the
random number generator 115 generates first ten track numbers. Thecache controller 113 sends information indicating the generated ten track numbers to thecommunication controller 120. Thecommunication controller 120 requests theserver 1 to transmit metadata corresponding to these ten track numbers. The received metadata is stored in thecache memory 103, and the stored metadata is read in the playback order from thecache memory 103 to themeta buffer 102. In the above process, the metadata is read in the playback order into themeta buffer 102 until all data stored in thecache memory 103 is read. If all data stored in thecache memory 103 is read out, the process proceeds to next step S52. - In step S52, the
cache controller 113 determines whether a request for outputting of metadata of one track is received from themeta buffer controller 112. If so, the processing flow proceeds to step S54, but otherwise the processing flow proceeds to step S53. - In step S53, the
cache controller 113 determines whether a user has issued a command to end the random playback operation. In a case where it is determined that the playback operation end command is not issued, the processing flow returns to step S52 to determine whether a request for outputting of data to themeta buffer 102 has been issued. If it is determined that the playback operation end command is issued, the operation is ended. - In step S54, the
cache controller 113 acquires a new track number from therandom number generator 115. - In step S55, the
cache controller 113 determines whether metadata corresponding to the acquired track number is stored in thecache memory 103. If it is determined that the metadata corresponding to the acquired track number is stored in thecache memory 103, the process proceeds to step S57, but otherwise the process proceeds to step S56. - In step S56, the
cache controller 113 commands thecommunication controller 120 to receive metadata of 10 objects (10 tracks in the present embodiment) starting with the track number acquired in step S54. Thecommunication controller 120 makes an action to request theserver 1 to transmit the specified metadata. If the metadata is received, the received metadata is stored in thecache memory 103 in the overwriting manner. - In step S57, the
cache controller 113 transfers the metadata corresponding to the track number acquired in step S54 from thecache memory 103 to themeta buffer 102. - In the process described above, even when a container includes, in its lower layer, a greater number of tracks of audio stream data than can be stored in the
cache memory 103, it is possible to determine a random playback order for all these audio streams. - After new track numbers are randomly generated, only when metadata data corresponding to the track numbers do not exist in the
cache memory 103, a request for transmission of the metadata is sent to theserver 1. This allows a reduction in the number of times a request for metadata is sent. The generation of new track numbers is performed not immediately before the start of the playback of corresponding audio streams but at a time, far ahead thereof, at which new metadata is stored in themeta buffer 102. Therefore, themeta buffer 102 is always filled with metadata of latest four tracks. This allows theaudio buffer controller 111 to directly refer to the metadata stored in themeta buffer 102, and thus allows audio streams to be continuously played without a silent period even in the random playback mode. - In
FIG. 13 , for simplicity, only metadata associated with audio streams are stored in thecache memory 103. Alternatively, as described above with reference toFIG. 12 , only metadata associated with audio streams may be extracted by thefilter 114 and supplied to themeta buffer 102. In this case, when metadata is transferred from thecache memory 103 to themeta buffer 102, if thefilter 114 determines that the metadata is not associated with an audio stream or is associated with an audio stream which is not playable, therandom number generator 115 generates a new number, and the process proceeds to step 56 to receive metadata of next 10 objects starting with the generated number. -
FIG. 14 illustrates an example of a configuration of a buffer of an audio playback apparatus and a manner of controlling the buffer according to an embodiment of the present invention. - In the present embodiment, when a command to jump to a next music content or a command to replay the current music content from its beginning is issued in the middle of playback of the current music content, the requested playback operation is immediately executed. To achieve the above, as shown in
FIG. 14 , theaudio buffer 101 a for storing audio stream data is configured to have a plurality of storage areas: two starting-data storage areas FIFO storage area 106. - The starting-
data storage areas data storage areas data storage areas - Of the total of audio stream data, data following the data stored in the starting-
data storage areas FIFO storage area 106 TheFIFO storage area 106 is implemented, for example, in the form of a ring buffer. That is, in theFIFO storage area 106, the data following the starting part of the audio stream data being in the playback operation, stored in the starting-data storage area data storage areas - For example, in a case where an audio stream of a
track # 1 shown inFIG. 14 is played back, a request for transmission of an audio stream corresponding to the metadata of thetrack # 1 stored in themeta buffer 102 is first sent to theserver 1. The audio stream data transmitted in response to the request from theserver 1 is received by theaudio playback apparatus 3. The received audio stream data is stored in the starting-data storage area 104. If the starting-data storage area 104 is filled with data, the following audio stream data is stored into theFIFO storage area 106. - The
audio decoder 38 first reads data from the starting-data storage area 104 and decodes the read data. If all data stored in the starting-data storage area 104 has been read, the data stored in theFIFO storage area 106 is read to continue the playback of the audio stream of thetrack # 1. During the playback operation, if a command to replay the audio stream of thetrack # 1 is issued by a user, the data stored in the starting-data storage area 104 is again supplied, starting from its beginning, to theaudio decoder 38. This allows the replay to be performed immediately in response to the command without having to re-receive the starting part of the audio stream from theserver 1. When the data is being read from the starting-data storage area 104, a request for re-transmission of the remaining part of the data is produced in accordance with the metadata of thetrack # 1 and sent to theserver 1. The data transmitted from theserver 1 in response to the request for the re-transmission is stored in the flashedFIFO storage area 106 to continue the playback of the audio stream. - When the playback of the audio stream of the
track # 1 is started, theaudio playback apparatus 3 executes a communication session separately from that of thetrack # 1 with theserver 1 to request theserver 1 to transmit an audio stream corresponding to metadata of atrack # 2. Thus, the audio stream data of thetrack # 2 is received in parallel with the data of thetrack # 1. In the above data receiving process, the receiving rate of the audio stream of thetrack # 1 may be detected, and the reception of the audio stream of thetrack # 2 may be started only when the detected receiving rate of the audio stream of thetrack # 1 is greater than a predetermined threshold. - The received audio stream data of the
track # 2 is stored in the starting-data storage area 105. When the starting-data storage area 105 is filled with the data, the reception of the audio stream data of thetrack # 2 is temporarily stopped, and the following data is received and stored in theFIFO storage area 106 when a free storage space occurs in theFIFO storage area 106. This provides an advantage that when a command to jump to a next audio stream is issued during the playback of the audio stream of thetrack # 1, the data of the audio stream of thetrack # 2 can be supplied to theaudio decoder 38 from the starting-data storage area 105 immediately in response to the command without having to receiving the starting part of the audio stream of thetrack # 2 from theserver 1. - If the playback of the audio stream of the
track # 2 is started, the following audio stream data is received from theserver 1 and stored in the flashedFIFO storage area 106 to continue the playback of the audio stream. - It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and alterations may occur depending on design requirements and other factors insofar as they are within the scope of the appended claims or the equivalents thereof.
Claims (11)
1. A playback apparatus adapted to receive stream data transmitted from a server connected to the playback apparatus via a network and play back the received stream data, comprising:
attribute information request means for requesting the server to transmit attribute information associated with the stream data and receiving the attribute information in the order in which to play back the stream data;
an attribute information buffer adapted to temporarily store attribute information sequentially received from the server and retain at least attribute information associated with stream data to be played back next after stream data being currently played back;
stream data request means for requesting, on the basis of the attribute information stored in the attribute information buffer, the server to transmit stream data corresponding to the attribute information; and
a stream data buffer of a first-in-first-out type adapted to sequentially store the stream data received from the server and sequentially output the stream data to playback processing means;
wherein when an end part of the stream data being currently played back has been stored in the stream data buffer, the stream data request means reads attribute information associated with stream data to be played next from the attribute information buffer, and requests, on the basis of the attribute information, the server to transmit stream data to be played back next.
2. The playback apparatus according to claim 1 , wherein
the attribute information buffer retains at least attribute information associated with a predetermined number of stream data to be sequentially played back after the stream data being currently played back; and
the stream data request means reads the attribute information from the attribute information buffer in the order in which to play back the stream data.
3. The playback apparatus according to claim 2 , wherein
the attribute information request means deletes the attribute information associated with the stream data from the attribute information buffer after the attribute information was referred to by the stream data request means to determine which stream to request the server to transmit and before the playback of the stream data is completed, and the attribute information request means requests the server to transmit attribute information associated with stream data to be played back after playback of all stream data corresponding to attribute information stored in the attribute information buffer is completed, and stores attribute information transmitted from the server in response to the request in the attribute information buffer.
4. The playback apparatus according to claim 1 , further comprising a cache memory adapted to temporarily store a greater number of pieces of attribute information received from the server than the number of pieces of attribute information stored in the attribute information buffer and sequentially output the attribute information to the attribute information buffer in a first-in-first-out manner,
wherein the attribute information request means, if all attribute information stored in the cache memory has been output to the attribute information buffer, the attribute information request means requests the server to transmit as many pieces of attribute information as possible to be stored in the cache memory, for stream data to be played following stream data corresponding to the attribute information which has already been output from the cache memory, in the order in which to play stream data.
5. The playback apparatus according to claim 4 , further comprising data discrimination means configured such that when the attribute information stored in the cache memory is output to the attribute information buffer, a determination is made on the basis of the attribute information as to whether the stream data corresponding to the attribute information is playable by the playback apparatus, and if the stream data is playable, the attribute information is directly output to the attribute information buffer, but otherwise the attribute information is not output but next attribute information is output from the cache memory.
6. The playback apparatus according to claim 5 , wherein in the case where the determination made by the data discrimination means on the basis of the attribute information read from the cache memory is that the stream data corresponding to the attribute information is not playable, if all attribute information stored in the cache memory has already been output, the attribute information request means requests the server to transmit as many pieces of attribute information following the last attribute information already output from the cache memory as can be stored in the cache memory, in the order in which to playback stream data.
7. The playback apparatus according to claim 1 , further comprising:
a cache memory adapted to temporarily store a greater number of pieces of attribute information received from the server than are stored in the attribute information buffer, and output the attribute information to the attribute information buffer;
playback order number generation means for, when new attribute information is stored in the attribute information buffer, randomly generating playback numbers indicating the order in which to play back the stream data; and
random playback control means configured such that the random playback control means determines whether the attribute information corresponding to the generated playback number is stored in the cache memory, and, if the attribute information is stored in the cache memory, the random playback control means outputs the attribute information from the cache memory to the attribute information buffer, but otherwise the random playback control means requests the attribute information request means to request the server to transmit as many pieces of attribute information starting with the attribute information corresponding to the generated playback number as can be stored in the cache memory.
8. The playback apparatus according to claim 1 , wherein
the stream data buffer is configured to have a starting-data storage area for storing a predetermined amount of data of a starting part of the stream data being currently played back, and also have a first-in-first-out storage area for sequentially storing the following part of the stream data, and wherein
the playback apparatus further comprises replay control means configured such that if a replay command is issued by a user in the middle of playback of the stream data, the replay control means re-supplies the data stored in the starting-data storage area starting from the beginning to the playback processing means, and the replay control means requests the stream data request means to request the server to re-transmit the part of the stream data following the data stored in the starting-data storage area.
9. The playback apparatus according to claim 1 , wherein,
the stream data buffer is configured to have a next-stream starting-data storage area for storing a predetermined amount of data of a starting part of a stream data to be played next, and also have a first-in-first-out storage area for storing other data,
and wherein the playback apparatus further comprises jump playback control means configured such that if a jump playback command is issued by a user in the middle of playback of the stream data, the jump playback control means supplies the data stored in the next-stream starting-data storage area starting from the beginning to the playback processing means, and then requests the stream data request means to request the server to transmit a part of the stream data following the data stored in the next-stream starting-data storage area, and sequentially stores the stream data transmitted from the server in response to the request in the first-in-first-out storage area.
10. A method of controlling a playback process including receiving stream data transmitted from a server via a network and playing back the received stream data, comprising the steps of:
by attribute information request means, requesting the server to transmit attribute information associated with the stream data and receiving the attribute information in the order in which to play back the stream data;
by an attribute information buffer, temporarily storing attribute information sequentially received from the server and retaining at least attribute information associated with stream data to be played back next after stream data being currently played back;
by stream data request means, specifying stream data in accordance with the attribute information stored in the attribute information buffer and requesting the server to transmit the specified stream data;
by stream data storage control means, sequentially storing the stream data received from the server in the stream data buffer in a first-in-first-out manner, and outputting the stream data stored in the stream data buffer to the playback processing means; and
by the attribute information request means, when an end part of the stream data being currently played back has been stored in the stream data buffer, reading attribute information associated with stream data to be played next from the attribute information buffer, and requesting, on the basis of the attribute information, the server to transmit stream data to be played back next.
11. A playback apparatus adapted to receive stream data transmitted from a server connected to the playback apparatus via a network and play back the received stream data, comprising:
an attribute information requesting unit adapted to request the server to transmit attribute information associated with the stream data and receiving the attribute information in the order in which to play back the stream data;
an attribute information buffer adapted to temporarily store attribute information sequentially received from the server and retain at least attribute information associated with stream data to be played back next after stream data being currently played back;
a stream data requesting unit adapted to request, on the basis of the attribute information stored in the attribute information buffer, the server to transmit stream data corresponding to the attribute information; and
a stream data buffer of a first-in-first-out type adapted to sequentially store the stream data received from the server and sequentially output the stream data to a playback unit;
wherein when an end part of the stream data being currently played back has been stored in the stream data buffer, the stream data requesting unit reads attribute information associated with stream data to be played next from the attribute information buffer, and requests, on the basis of the attribute information, the server to transmit stream data to be played back next.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006-356774 | 2006-12-29 | ||
JP2006356774A JP4379471B2 (en) | 2006-12-29 | 2006-12-29 | Playback apparatus and playback control method |
JPJP2006-356774 | 2006-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080162716A1 true US20080162716A1 (en) | 2008-07-03 |
US8060637B2 US8060637B2 (en) | 2011-11-15 |
Family
ID=39585585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/002,586 Expired - Fee Related US8060637B2 (en) | 2006-12-29 | 2007-12-18 | Playback apparatus and playback control method |
Country Status (4)
Country | Link |
---|---|
US (1) | US8060637B2 (en) |
JP (1) | JP4379471B2 (en) |
KR (1) | KR20080063200A (en) |
CN (1) | CN101212492B (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050283731A1 (en) * | 2004-06-22 | 2005-12-22 | Ylian Saint-Hilaire | Remote audio |
US20090287686A1 (en) * | 2008-05-13 | 2009-11-19 | Funai Electric Co., Ltd. | Playback device |
US20100165815A1 (en) * | 2008-12-31 | 2010-07-01 | Microsoft Corporation | Gapless audio playback |
US20100287211A1 (en) * | 2009-05-11 | 2010-11-11 | Samsung Electronics Co., Ltd. | Object linking |
US20120065751A1 (en) * | 2010-09-13 | 2012-03-15 | Sony Corporation | Signal processing apparatus and signal processing method |
US20120158892A1 (en) * | 2010-12-21 | 2012-06-21 | Akira Ichie | Content Transmitting and Receiving Device, Content Transmitting and Receiving Method, and Content Transmitting and Receiving Program Product |
US20130317635A1 (en) * | 2012-05-23 | 2013-11-28 | Sonos, Inc | Audio Content Auditioning |
US20150006165A1 (en) * | 2013-07-01 | 2015-01-01 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems, vehicles, and methods for limiting speech-based access to an audio metadata database |
US9064524B2 (en) | 2007-01-05 | 2015-06-23 | Sony Corporation | Playback apparatus and playback control means |
US9372863B2 (en) | 2010-06-15 | 2016-06-21 | Huawei Technologies Co., Ltd. | Method, apparatus and system for updating metadata file |
US10033782B2 (en) | 2009-08-03 | 2018-07-24 | Saturn Licensing Llc | Information processing apparatus, information processing method, information processing system and program thereof |
US10321184B2 (en) * | 2016-12-13 | 2019-06-11 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
US10904610B2 (en) | 2015-10-13 | 2021-01-26 | Samsung Electronics Co., Ltd. | Method and apparatus for transmission and reception of multimedia data |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8447840B1 (en) * | 2009-09-14 | 2013-05-21 | Noreen Fong | Method and system for transferring control of a user interface of a content distribution system |
KR101464839B1 (en) * | 2009-09-14 | 2014-11-25 | 더 디렉티브 그룹, 인크. | Method and system for distributing content |
KR20110047768A (en) * | 2009-10-30 | 2011-05-09 | 삼성전자주식회사 | Apparatus and method for playing multimedia content |
MX2012011802A (en) | 2010-04-13 | 2013-02-26 | Fraunhofer Ges Forschung | Method and encoder and decoder for gap - less playback of an audio signal. |
JP5829626B2 (en) * | 2011-01-07 | 2015-12-09 | シャープ株式会社 | REPRODUCTION DEVICE, REPRODUCTION DEVICE CONTROL METHOD, GENERATION DEVICE, GENERATION DEVICE CONTROL METHOD, CONTROL PROGRAM, AND RECORDING MEDIUM CONTAINING THE PROGRAM |
US20130067050A1 (en) * | 2011-09-11 | 2013-03-14 | Microsoft Corporation | Playback manager |
JP5836102B2 (en) * | 2011-12-16 | 2015-12-24 | ローム株式会社 | Sound equipment |
FR2985131A1 (en) | 2011-12-23 | 2013-06-28 | France Telecom | CONTROL SYSTEM FOR PLAYING A DATA STREAM ON A RECEIVER DEVICE |
US9037683B1 (en) * | 2012-03-05 | 2015-05-19 | Koji Yoden | Media asset streaming over network to devices |
US9439239B2 (en) | 2013-10-22 | 2016-09-06 | William H. Jennings | Selective transmission storage and playback for communication device |
EP3097699A1 (en) * | 2014-01-24 | 2016-11-30 | Nokia Technologies OY | Sending of a stream segment deletion directive |
US10264043B2 (en) | 2014-04-23 | 2019-04-16 | Ericsson Ab | Outage notification with client control modification in an ABR streaming network |
JP6336624B2 (en) * | 2014-05-19 | 2018-06-06 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Multimedia display method, apparatus and device |
CN114242082A (en) * | 2014-05-30 | 2022-03-25 | 索尼公司 | Information processing apparatus and information processing method |
KR102367134B1 (en) | 2015-06-25 | 2022-02-24 | 삼성전자주식회사 | Method for controlling accelerator and accelerator thereof |
US10108345B2 (en) | 2016-11-02 | 2018-10-23 | Samsung Electronics Co., Ltd. | Victim stream selection algorithms in the multi-stream scheme |
JP6558667B2 (en) * | 2017-03-28 | 2019-08-14 | パナソニックIpマネジメント株式会社 | Content distribution system, playback device, and content distribution method |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553220A (en) * | 1993-09-07 | 1996-09-03 | Cirrus Logic, Inc. | Managing audio data using a graphics display controller |
US5642422A (en) * | 1994-06-28 | 1997-06-24 | International Business Machines Corporation | Digital surround sound method and apparatus |
US20020002039A1 (en) * | 1998-06-12 | 2002-01-03 | Safi Qureshey | Network-enabled audio device |
US6728729B1 (en) * | 2003-04-25 | 2004-04-27 | Apple Computer, Inc. | Accessing media across networks |
US20040138948A1 (en) * | 2002-12-13 | 2004-07-15 | Stephen Loomis | Apparatus and method for skipping songs without delay |
US20050044254A1 (en) * | 2001-06-11 | 2005-02-24 | C-Burn Systems Ltd | Automated system for remote product or service selection |
US20060179078A1 (en) * | 2005-02-04 | 2006-08-10 | International Business Machines Corporation | Multi-party playlist control including wireless enablement |
US20060195509A1 (en) * | 2005-02-09 | 2006-08-31 | Sony Corporation | Content reproduction system, content reproduction apparatus, and content reproduction method |
US20070025194A1 (en) * | 2005-07-26 | 2007-02-01 | Creative Technology Ltd | System and method for modifying media content playback based on an intelligent random selection |
US20070125852A1 (en) * | 2005-10-07 | 2007-06-07 | Outland Research, Llc | Shake responsive portable media player |
US20070169115A1 (en) * | 2005-12-20 | 2007-07-19 | Apple Computer, Inc. | Portable media player as a low power remote control and method thereof |
US20070214182A1 (en) * | 2005-01-15 | 2007-09-13 | Outland Research, Llc | Establishment-based media and messaging service |
US20070220552A1 (en) * | 2006-03-15 | 2007-09-20 | Microsoft Corporation | Automatic delivery of personalized content to a portable media player with feedback |
US20070266065A1 (en) * | 2006-05-12 | 2007-11-15 | Outland Research, Llc | System, Method and Computer Program Product for Intelligent Groupwise Media Selection |
US20080298770A1 (en) * | 2007-01-05 | 2008-12-04 | Sony Corporation | Playback apparatus and playback control means |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3140384B2 (en) | 1995-12-01 | 2001-03-05 | エル エス アイ ロジック コーポレーション | Video transmission method and data processing system |
ES2191605T3 (en) * | 2000-09-11 | 2003-09-16 | Mediabricks Ab | METHOD FOR PROVIDING A CONTENT OF MEDIA ON A DIGITAL NETWORK. |
JP2003330623A (en) | 2002-05-15 | 2003-11-21 | Denso Corp | External storage device and its data buffer control method |
RU2332705C2 (en) * | 2002-07-16 | 2008-08-27 | Нокиа Корпорейшн | Method for compensating delay in packages transmission during multimedia data-flow transfer |
JP2006018991A (en) | 2004-05-31 | 2006-01-19 | Matsushita Electric Ind Co Ltd | Audio reproduction device |
-
2006
- 2006-12-29 JP JP2006356774A patent/JP4379471B2/en active Active
-
2007
- 2007-12-18 US US12/002,586 patent/US8060637B2/en not_active Expired - Fee Related
- 2007-12-28 CN CN2007103004733A patent/CN101212492B/en not_active Expired - Fee Related
- 2007-12-28 KR KR1020070140759A patent/KR20080063200A/en not_active Withdrawn
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553220A (en) * | 1993-09-07 | 1996-09-03 | Cirrus Logic, Inc. | Managing audio data using a graphics display controller |
US5642422A (en) * | 1994-06-28 | 1997-06-24 | International Business Machines Corporation | Digital surround sound method and apparatus |
US20020002039A1 (en) * | 1998-06-12 | 2002-01-03 | Safi Qureshey | Network-enabled audio device |
US20050044254A1 (en) * | 2001-06-11 | 2005-02-24 | C-Burn Systems Ltd | Automated system for remote product or service selection |
US20040138948A1 (en) * | 2002-12-13 | 2004-07-15 | Stephen Loomis | Apparatus and method for skipping songs without delay |
US6728729B1 (en) * | 2003-04-25 | 2004-04-27 | Apple Computer, Inc. | Accessing media across networks |
US20070214182A1 (en) * | 2005-01-15 | 2007-09-13 | Outland Research, Llc | Establishment-based media and messaging service |
US20060179078A1 (en) * | 2005-02-04 | 2006-08-10 | International Business Machines Corporation | Multi-party playlist control including wireless enablement |
US20060195509A1 (en) * | 2005-02-09 | 2006-08-31 | Sony Corporation | Content reproduction system, content reproduction apparatus, and content reproduction method |
US20070025194A1 (en) * | 2005-07-26 | 2007-02-01 | Creative Technology Ltd | System and method for modifying media content playback based on an intelligent random selection |
US20070125852A1 (en) * | 2005-10-07 | 2007-06-07 | Outland Research, Llc | Shake responsive portable media player |
US20070169115A1 (en) * | 2005-12-20 | 2007-07-19 | Apple Computer, Inc. | Portable media player as a low power remote control and method thereof |
US20070220552A1 (en) * | 2006-03-15 | 2007-09-20 | Microsoft Corporation | Automatic delivery of personalized content to a portable media player with feedback |
US20070266065A1 (en) * | 2006-05-12 | 2007-11-15 | Outland Research, Llc | System, Method and Computer Program Product for Intelligent Groupwise Media Selection |
US20080298770A1 (en) * | 2007-01-05 | 2008-12-04 | Sony Corporation | Playback apparatus and playback control means |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9667435B2 (en) | 2004-06-22 | 2017-05-30 | Intel Corporation | Remote audio |
US20100023869A1 (en) * | 2004-06-22 | 2010-01-28 | Ylian Saint-Hilaire | Remote audio |
US20050283731A1 (en) * | 2004-06-22 | 2005-12-22 | Ylian Saint-Hilaire | Remote audio |
US20100229099A1 (en) * | 2004-06-22 | 2010-09-09 | Ylian Saint-Hilaire | Remote Audio |
US9124441B2 (en) | 2004-06-22 | 2015-09-01 | Intel Corporation | Remote audio |
US9178712B2 (en) | 2004-06-22 | 2015-11-03 | Intel Corporation | Remote audio |
US7613893B2 (en) * | 2004-06-22 | 2009-11-03 | Intel Corporation | Remote audio |
US9064524B2 (en) | 2007-01-05 | 2015-06-23 | Sony Corporation | Playback apparatus and playback control means |
US20090287686A1 (en) * | 2008-05-13 | 2009-11-19 | Funai Electric Co., Ltd. | Playback device |
US8374712B2 (en) | 2008-12-31 | 2013-02-12 | Microsoft Corporation | Gapless audio playback |
US20100165815A1 (en) * | 2008-12-31 | 2010-07-01 | Microsoft Corporation | Gapless audio playback |
US20100287211A1 (en) * | 2009-05-11 | 2010-11-11 | Samsung Electronics Co., Ltd. | Object linking |
US10033782B2 (en) | 2009-08-03 | 2018-07-24 | Saturn Licensing Llc | Information processing apparatus, information processing method, information processing system and program thereof |
US9372863B2 (en) | 2010-06-15 | 2016-06-21 | Huawei Technologies Co., Ltd. | Method, apparatus and system for updating metadata file |
US9582530B2 (en) | 2010-06-15 | 2017-02-28 | Huawei Technologies Co., Ltd. | Method, apparatus and system for updating metadata file |
US8909362B2 (en) * | 2010-09-13 | 2014-12-09 | Sony Corporation | Signal processing apparatus and signal processing method |
US20120065751A1 (en) * | 2010-09-13 | 2012-03-15 | Sony Corporation | Signal processing apparatus and signal processing method |
US8719439B2 (en) * | 2010-12-21 | 2014-05-06 | Kabushiki Kaisha Toshiba | Content transmitting and receiving device, content transmitting and receiving method, and content transmitting and receiving program product |
US20120158892A1 (en) * | 2010-12-21 | 2012-06-21 | Akira Ichie | Content Transmitting and Receiving Device, Content Transmitting and Receiving Method, and Content Transmitting and Receiving Program Product |
US9395950B2 (en) | 2012-05-23 | 2016-07-19 | Sonos, Inc. | Audio content auditioning |
US10956118B2 (en) | 2012-05-23 | 2021-03-23 | Sonos, Inc. | Audio content auditioning by playback device |
US9395951B2 (en) | 2012-05-23 | 2016-07-19 | Sonos, Inc. | Audio content auditioning |
US9304735B2 (en) | 2012-05-23 | 2016-04-05 | Sonos, Inc. | Audio content auditioning by playback device |
US20130317635A1 (en) * | 2012-05-23 | 2013-11-28 | Sonos, Inc | Audio Content Auditioning |
US20240176575A1 (en) * | 2012-05-23 | 2024-05-30 | Sonos, Inc. | Audio Content Auditioning by Playback Device |
US9977647B2 (en) | 2012-05-23 | 2018-05-22 | Sonos, Inc. | Audio content auditioning by playback device |
US8908879B2 (en) * | 2012-05-23 | 2014-12-09 | Sonos, Inc. | Audio content auditioning |
US11893306B2 (en) | 2012-05-23 | 2024-02-06 | Sonos, Inc. | Audio content auditioning by playback device |
US10338881B2 (en) | 2012-05-23 | 2019-07-02 | Sonos, Inc. | Audio content auditioning by playback device |
US9620148B2 (en) * | 2013-07-01 | 2017-04-11 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems, vehicles, and methods for limiting speech-based access to an audio metadata database |
US20150006165A1 (en) * | 2013-07-01 | 2015-01-01 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems, vehicles, and methods for limiting speech-based access to an audio metadata database |
US10904610B2 (en) | 2015-10-13 | 2021-01-26 | Samsung Electronics Co., Ltd. | Method and apparatus for transmission and reception of multimedia data |
US10321184B2 (en) * | 2016-12-13 | 2019-06-11 | Samsung Electronics Co., Ltd. | Electronic apparatus and controlling method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2008165656A (en) | 2008-07-17 |
CN101212492B (en) | 2011-05-18 |
JP4379471B2 (en) | 2009-12-09 |
US8060637B2 (en) | 2011-11-15 |
CN101212492A (en) | 2008-07-02 |
KR20080063200A (en) | 2008-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8060637B2 (en) | Playback apparatus and playback control method | |
US9853830B2 (en) | Information-provision control method, information reproduction system, information-provision apparatus, information reproduction apparatus and information-presentation control program | |
US7752202B2 (en) | Information processing and, content distribution apparatus method, and program with conversion identification information | |
JP4772375B2 (en) | Electronic device and content management method | |
US8914464B2 (en) | Information processing device, information processing method, and information processing system | |
US9064524B2 (en) | Playback apparatus and playback control means | |
US20140052770A1 (en) | System and method for managing media content using a dynamic playlist | |
US20070239668A1 (en) | Apparatus and method for managing digital contents distributed over network | |
JP2007228205A (en) | Network server | |
KR20050098875A (en) | Information processing device, information processing method, and computer program | |
US20080162669A1 (en) | Reproducing apparatus and control method of reproducing apparatus | |
CN102460414B (en) | Method and apparatus for providing a remote user interface | |
CN101018139A (en) | Method, apparatus and storage medium for managing contents and adaptive contents playback method using the same | |
JP4771424B2 (en) | Information processing apparatus and method, and program | |
KR20060086997A (en) | Method of automatic interface between devices for playing content and a recording medium storing a device and a program for performing the method | |
JP4379579B2 (en) | Network device and information search method | |
KR101859766B1 (en) | System and method for displaying document content using universal plug and play | |
JP2008165479A (en) | Information reproducing apparatus and information reproducing method | |
JP2008165594A (en) | Reproduction device and data processing method | |
CN101999222B (en) | Content recording method for supporting search based on scenes in a distributed multimedia system | |
JP2008097625A (en) | Display control device, display method and program | |
JP4882741B2 (en) | Playback apparatus and playback method | |
JP2005242667A (en) | Information reproducing system, device, method, and program, information providing device, and information management program | |
US20070175975A1 (en) | Method and apparatus for providing DVD content with rendering device in UPnP network | |
JP2006345306A (en) | Content distribution system and method therefor, as well as terminal device and content management method for terminal device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SONY CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KAYANUMA, MASASHI;MATSUYAMA, KOJIRO;REEL/FRAME:020311/0590 Effective date: 20071127 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20151115 |