Clock synchronization for playback of multimedia files

A clock synchronizing system and method for playback of a multimedia file is provided. A first device receives the multimedia file that includes at least an audio component and a video component. A second device receives the multimedia file from the first device. During a playback of the multimedia file, the first device renders the audio component by way of a first multimedia player and the second device renders the video component by way of a second multimedia player. The first device further transmits periodic clock information to the second device. The second device synchronizes a clock of the second multimedia player with a clock of the first multimedia player, based on the periodic clock information.

This application claims priority of Indian Application Serial No. 201741036391, filed Oct. 13, 2017, the contents of which are incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates generally to playback of multimedia files, and more particularly, to a system and a method for synchronizing clocks of multiple devices in an automotive environment.

BACKGROUND

Vehicle service providers have employed various schemes in order to provide a pleasant ride experience to their passengers. One of these schemes is an in-vehicle entertainment system, where the passengers can choose to play a multimedia file of their choice for the duration of the ride. The in-vehicle entertainment systems generally include a vehicle head unit, inbuilt speakers, and a display device. The vehicle head unit controls a playback of the multimedia file through the inbuilt speakers and the display device of the in-vehicle entertainment system. The display device may be internal to the vehicle, i.e., a display screen, tablet, and the like, or external to the vehicle, i.e., a passenger's phone could be configured as the display device.

A multimedia file includes an audio component and a video component. The audio component and the video component may be rendered simultaneously on various devices of the in-vehicle entertainment system. In an example, the vehicle head unit may render the audio component, whereas the video component may be rendered by way of the display device. Thus, the vehicle head unit may render the audio component by way of its multimedia player, hereinafter “first multimedia player” and the display device may render the video component by way of its multimedia player, hereinafter “second multimedia player”.

The first and second multimedia players derive their processing clocks, hereinafter “first and second clocks”, from the processing clocks of the vehicle head unit and the display device, respectively. In order to ensure a smooth playback of the multimedia file, the first and second clocks need to be synchronized. However, a clock rate of the first clock may be different as compared to a clock rate of the second clock. For example, the first clock may have a clock rate of 1 gigahertz (GHz) while the second clock may have a clock rate of 1.2 GHz. Thus, the first and second multimedia players will have clock rates of 1 GHz and 1.2 GHz, respectively. As the first and second multimedia players play the audio and video components simultaneously, the difference in the clock rates will affect the playback of the multimedia file thus causing the audio and video components to be de-synchronized. De-synchronization of the audio and video components may cause lip-sync′ error, since the video component will be rendered at a faster rate as compared to the audio component. This will lead to an unpleasant travel experience for the passengers.

Hence, it would be advantageous to have an in-vehicle entertainment system that synchronizes the playback of the video component and the audio component across multiple devices having dissimilar processor clock rates.

SUMMARY

In an embodiment of the present invention, a clock synchronizing system for playback of a multimedia file is provided. The system includes a first device that includes a memory and a processor. The memory is configured to store the multimedia file. The multimedia file includes at least an audio component and a video component. The processor communicates with the memory, and renders the audio component by way of a first multimedia player. The processor is configured to transmit the multimedia file to a second device by way of a communication network. The processor is further configured to transmit periodic clock information that is associated with a first clock of the first multimedia player, to the second device. The second device renders the video component by way of a second multimedia player. The second device synchronizes a second clock of the second multimedia player with the first clock of the first multimedia player based on the periodic clock information.

In another embodiment of the present invention, a clock synchronizing system for playback of a multimedia file is provided. The system includes a first device that receives the multimedia file from a second device by way of a communication network. The multimedia file includes at least an audio component and a video component. The first device renders the video component by way of a first multimedia player and the second device renders the audio component by way of a second multimedia player. The first device further receives periodic clock information that is associated with a first clock of the second multimedia player, from the second device. The first device further synchronizes a second clock of the first multimedia player with the first clock of the second multimedia player based on the periodic clock information.

In yet another embodiment of the present invention, a method for clock synchronization is provided. A multimedia file is received by a first device from a second device by way of a communication network. The multimedia file includes at least an audio component and a video component. The first device renders the video component by way of a first multimedia player and the second device renders the audio component by way of a second multimedia player. The first device receives periodic clock information associated with a first clock of the second multimedia player. The first device synchronizes a second clock of the first multimedia player with the first clock of the second multimedia player based on the periodic clock information.

Various embodiments of the present invention provide method and system for synchronizing clocks of multiple devices for playback of multimedia files in an automotive environment. A first device installed in a vehicle receives various multimedia files that include a first multimedia file, from a server. The first multimedia file includes an audio component and a video component. The first device communicates with the server by means of a first communication network. Further, the first device communicates with a second device by means of a second communication network. The first device transmits a list of the multimedia files to the second device. The passenger selects a multimedia file, i.e., the first multimedia file, from the list. The second device transmits information pertaining to the selection of the first multimedia file to the first device. Based on the information, the first device transmits the first multimedia file to the second device for a playback of the first multimedia file. The first device renders the audio component by way of a first multimedia player, and the second device renders the video component by way of a second multimedia player. The first device further transmits periodic clock information to the second device through the second communication network. The second device synchronizes a clock of the second multimedia player with a clock of the first multimedia player when the second device receives the periodic clock information within a predetermined time interval. Thus, the audio and video components are synchronized to ensure that the audio and video components are played at the same time instance.

The second device rejects the periodic clock information when the second device receives the periodic clock information after the predetermined time interval. Thus, the system does not require additional hardware for synchronizing the clocks of two different devices. Further, the second device prevents the occurrence of a lip-sync error during the playback of the first multimedia file, thereby providing a pleasant ride to the passengers.

DETAILED DESCRIPTION

As used in the specification and claims, the singular forms “a”, “an” and “the” may also include plural references. For example, the term “an article” may include a plurality of articles. Those with ordinary skill in the art will appreciate that the elements in the Figures are illustrated for simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some of the elements in the Figures may be exaggerated, relative to other elements, in order to improve the understanding of the present invention. There may be additional components described in the foregoing application that are not depicted on one of the described drawings. In the event such a component is described, but not depicted in a drawing, the absence of such a drawing should not be considered as an omission of such design from the specification.

Before describing the present invention in detail, it should be observed that the present invention utilizes a combination of system components, which constitutes a system for synchronizing playback of multimedia files across multiple devices. Accordingly, the components and the method steps have been represented, showing only specific details that are pertinent for an understanding of the present invention so as not to obscure the disclosure with details that will be readily apparent to those with ordinary skill in the art having the benefit of the description herein. As required, detailed embodiments of the present invention are disclosed herein; however, it is to be understood that the disclosed embodiments are merely exemplary of the invention, which can be embodied in various forms. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching one skilled in the art to variously employ the present invention in virtually any appropriately detailed structure. Further, the terms and phrases used herein are not intended to be limiting but rather to provide an understandable description of the invention.

Referring now toFIG. 1, a block diagram that illustrates a system environment100for synchronizing clock of multiple devices for playback of multimedia files in accordance with an embodiment of the present invention is shown. The system environment100includes a server102. In one example, the system environment100is implemented in an automotive environment that includes a vehicle104. The server102transmits the multimedia files by way of a first communication network106. The vehicle104includes a first device108, an output device110, and a second device112. The first device108communicates with the second device112by way of a second communication network114.

The server102is a content management server that manages entertainment content, such as the multimedia files of various movies, television shows, songs, audiobooks, and the like. Thus, a first multimedia file may correspond to a movie and a second multimedia file may correspond to a television show. The server102includes a processor (not shown) and a memory (not shown). The memory stores the multimedia files. Further, each multimedia file includes an audio component and a video component. The audio and video components include fragments of audio and video data, respectively. Each fragment of audio and video data is associated with a time stamp that indicates a time sequence in which the corresponding fragment of audio and video data is to be played. Examples of the server102include, but are not limited to, a personal computer, a laptop, or a network of computer systems. The server102transmits various multimedia files, such as the first multimedia file to the first device108by way of the first communication network106. Examples of the first communication network106include, but are not limited to, a Wi-Fi network, a light fidelity (Li-Fi) network, a satellite network, an internet, a mobile network such as cellular data, high speed packet access (HSPA), or any combination thereof.

The vehicle104corresponds to a means of transport that is deployed by a vehicle service provider, such as a taxicab provider, to provide ride services to passengers. In an embodiment, the vehicle104is an automobile, a bus, and the like. In another embodiment, the vehicle104is a train, an airplane, and the like. Passengers may travel in the vehicle104to commute from a source location to a destination location. The vehicle104includes the first device108for receiving the first multimedia file from the server102. In one embodiment, the first device108is a vehicle head unit. In another embodiment, the first device108is an external communication device, which is placed in the vehicle104.

The output device110emits audio signals of the multimedia files. In an example, the first multimedia file includes a first audio component and a first video component. Thus, the output device110emits an audio signal of the first multimedia file, i.e., the output device110renders the first audio component. Examples of the output device110include speakers, headphones, and the like.

The second device112communicates with the first device108by way of the second communication network114. The second device112renders the first video component. Examples of the second device112include a smartphone, a personal digital assistant (PDA), a tablet, or any other portable communication device. The second communication network114establishes a communication channel between the first and second devices108and112. Examples of the second communication network114include a Wi-Fi network, a Bluetooth low-energy (BLE) network, a Li-Fi, a fiber optic network, a coaxial cable network, an infrared network, a radio frequency (RF) network, or any combination thereof.

Referring now toFIG. 2, the first and second devices108and112of the system environment100in accordance with an embodiment of the present invention are shown. The first device108includes a first transceiver200, a first processor202, a memory204, and a first input/output (I/O) port206. The first transceiver200, the first processor202, the memory204, and the first I/O port206communicate with each other by way of a first bus208. The second device112includes a second transceiver210, a second processor212, and a second I/O port214. The second transceiver210, the second processor212, and the second I/O port214communicate with each other by way of a second bus216.

The first transceiver200includes suitable logic, circuitry, and/or interfaces to transmit or receive messages from various devices, such as the server102and the second transceiver210. The first transceiver200communicates with the server102through the first communication network106, and the second transceiver210through the second communication network114. The first transceiver200receives the first multimedia file from the server102. The first transceiver200transmits the first multimedia file to the second device112. Examples of the first transceiver200include, but are not limited to, an antenna, a radio frequency transceiver, a wireless transceiver, a Bluetooth transceiver, and the like. The first transceiver200communicates with the server102, the first processor202, and the second transceiver210using various wired and wireless communication protocols, such as TCP/IP, UDP, 2nd Generation (2G), 3rd Generation (3G), 4th Generation (4G) communication protocols, or any combination thereof.

The first processor202includes suitable logic, circuitry, and/or interfaces to execute instructions stored in the memory204. The first processor202receives and stores the first multimedia file in the memory204. Further, the first processor202transmits the first multimedia file to the second transceiver210by way of the first transceiver200. The first processor202further receives control commands from the second processor212for controlling the playback of the first multimedia file. Examples of the first processor202include an application-specific integrated circuit (ASIC) processor, a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a field-programmable gate array (FPGA), and the like. It will be apparent to a person skilled in the art that the first processor202is compatible with multiple operating systems. The first processor202plays the first audio component of the first multimedia file through the output device110by way of a first multimedia player218. The first multimedia player218further derives its clock, hereinafter a “first clock”, from a clock of the first processor202. Further, the first processor202generates periodic clock information associated with the first clock of the first multimedia player218for synchronizing the first multimedia file. Examples of the first multimedia player218include Quicktime® player, Windows® Media Player, Video LAN client (VLC®) media player, RealPlayer®, iTunes®, and the like.

The memory204includes suitable logic, circuitry, and/or interfaces to store the first multimedia file. Examples of the memory204include, but are not limited to, a random access memory (RAM), a read-only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), and the like. The first I/O port206includes suitable logic, circuitry, and/or interfaces that connect the first device108to various input and output devices, such as the output device110, of the vehicle104. Examples of the first I/O port206include a universal serial bus (USB) port, an Ethernet port, and the like.

The second transceiver210includes suitable logic, circuitry, and/or interfaces to transmit or receive messages from various devices, such as the first transceiver200. The second transceiver210communicates with the first transceiver200through the second communication network114. The second transceiver210receives the first multimedia file from the first transceiver200. Further, the second transceiver210transmits control commands to the first transceiver200for controlling the playback of the first multimedia file. Examples of the second transceiver210include, but are not limited to, an antenna, a radio frequency transceiver, a wireless transceiver, a Bluetooth transceiver, and the like. The second transceiver210communicates with the first transceiver200and the second processor212using various wired and wireless communication protocols, such as TCP/IP, UDP, 2G, 3G, 4G communication protocols, or any combination thereof.

The second processor212includes suitable logic, circuitry, and/or interfaces to provide a playback of the multimedia files requested by a passenger travelling in the vehicle104. In an example, a passenger selects the first multimedia file. In one embodiment, the second processor212receives the first multimedia file and extracts the first video component. The second processor212further generates control command based on inputs provided by the passenger. Examples of the second processor212include an ASIC processor, a RISC processor, a CISC processor, an FPGA, and the like. It will be apparent to a person skilled in the art that the second processor212is compatible with multiple operating systems. The second processor212plays the first video component by way of a second multimedia player220. The second multimedia player220further derives its clock, hereinafter “second clock”, from a clock of the second processor212. The second processor212further receives periodic clock information by way of the second transceiver210. The second processor212further synchronizes the playback of the first multimedia file based on the periodic clock information. Examples of the second multimedia player220include Quicktime® player, Windows® Media Player, Video LAN client (VLC®) media player, RealPlayer®, iTunes®, and the like.

The second I/O port214includes suitable logic, circuitry, and/or interfaces that provides an output to the passenger and further enables the passenger to provide an input for controlling a playback of various multimedia files. The second I/O port214may include output devices, such as a speaker, a Liquid crystal display (LCD) screen, a Light emitting diode (LED) screen, headphones, and the like. Further, the second I/O port214may include input devices, such as a touchscreen, a keyboard, a mouse, a joystick, a microphone, and the like.

In operation, the server102transmits the first multimedia file to the first device108through the first communication network106. The first transceiver200receives the first multimedia file and stores the first multimedia file in the memory204. The first processor202determines whether a ride has started. Alternatively stated, the first processor202determines whether a passenger has boarded the vehicle104for a ride. When the first processor202determines that the ride has started, the first transceiver200initiates a communication with the second transceiver210through the second communication network114. Further, the first processor202transmits a set of identifiers associated with a corresponding set of multimedia files stored in the memory204to the second transceiver210. In one example, the set of identifiers includes a first identifier associated with the first multimedia file. In one embodiment, the first identifier is a title of the first multimedia file.

The second transceiver210receives the set of identifiers. Further, the second processor212renders the set of identifiers through the second I/O port214for the passenger travelling in the vehicle104. The passenger selects one identifier of the set of identifiers. In one example, the passenger selects a first identifier. In one embodiment, the passenger selects the first identifier by pressing a physical key on the second I/O port214. In another embodiment, the passenger selects the first identifier by pressing a virtual key on the second I/O port214. In yet another embodiment, the passenger selects the first identifier by directly clicking on the first identifier rendered through a Graphical User Interface (GUI). It will be apparent to a person skilled in the art that the passenger may use any other input providing mechanism known in the art for selecting the first identifier. The second transceiver210further transmits information pertaining to the selection of the first identifier to the first transceiver200through the second communication network114.

The first transceiver200receives the information pertaining to the selection of the first identifier and communicates it to the first processor202. The first processor202determines that the passenger wants to view the first multimedia file. Therefore, the first processor202transmits the first multimedia file to the second transceiver210through the second communication network114. In one example, the first transceiver200streams the first video component to the second transceiver210. The passenger controls the playback of the first multimedia file (hereafter, referred to as “multimedia file”) by providing a set of inputs. In one example, the passenger provides a first input to play the multimedia file and a second input to stop the playback of the multimedia file. The passenger provides the inputs by pressing a physical key or virtual key on the second I/O port214. It will be apparent to a person skilled in the art that the passenger may use any other input providing mechanism known in the art for providing the set of inputs.

The first processor202generates periodic clock information for synchronizing the playback of the multimedia file. In one example, the periodic clock information represents a count of clock cycles of the first clock that have elapsed between a first time instance and a second time instance. The first time instance represents a time instance at which the playback of the multimedia file is initiated. The second time instance represents a current time instance at which the first processor202transmits the periodic clock information. In another example, the periodic clock information represents a count of machine cycles executed by the first processor202between the first and second time instances.

The first processor202transmits the periodic clock information by way of the first transceiver200to the second processor212at periodic time intervals. In one example, the first processor202transmits the periodic clock information at a periodic time interval of 60 seconds. Hence, after every 60 seconds the first processor202generates the periodic clock information and transmits it to the second processor212. In one embodiment, the periodic clock information further includes a time stamp that indicates a time instance at which the periodic clock information is transmitted by the first processor202to the second processor212.

The second processor212receives the periodic clock information by way of the second transceiver210. The second processor212further determines that the periodic clock information is valid when the second processor212receives the periodic clock information within a predetermined time interval. In one example, the predetermined time interval represents a network jitter of the second communication network114. The second processor212retrieves the time stamp from the periodic clock information to determine the time instance at which the first processor202transmits the periodic clock information. In one example, the predetermined time interval is 10 milliseconds. Thus, when the periodic clock information is received within 10 milliseconds from the time instance indicated by the time stamp, the second processor212determines that the periodic clock information is valid. In one scenario, the second processor212determines that the periodic clock information is invalid, when the periodic clock information is received after the predetermined time interval. For example, the second processor212determines that the periodic clock information is invalid and rejects the periodic clock information when the periodic clock information is received after 10 milliseconds from the time instance indicated by the time stamp.

The second processor212utilizes the periodic clock information to synchronize the second clock of the second multimedia player220with the first clock of the first multimedia player218, thereby synchronizing the playback of the multimedia file. For example, the second processor212synchronizes a count of clock cycles of the second clock that have elapsed between the first time instance and the second time instance with the count of clock cycles in the periodic clock information.

Thus, the system environment100provides a mechanism for synchronizing playback of multimedia files across multiple devices. The system environment100utilizes the periodic clock information for synchronizing the playback of multimedia files across multiple devices, such as the first and second devices108and112. Therefore, the system environment100does not require additional hardware for synchronization. In addition, the system environment100provides a mechanism to synchronize the audio and video components of the multimedia file played on different multimedia players, which further have different clocks, such as the first and second clocks. Hence, the system environment100prevents lip sync error caused due to difference in the first and second clocks.

Referring now toFIG. 3, a process flow diagram for synchronizing the second clock with the first clock in accordance with an embodiment of the present invention is shown.

The first device108receives the multimedia file selected by a user from the server102and stores it in the memory204. The first device108transmits the multimedia file to the second device112via the communication channel302based on a selection by the passenger. The first and second devices108and112are network synchronized. Hence, when the passenger provides the first input to play the multimedia file through a GUI304rendered on the second device112, the multimedia file is played on the first and second devices108and112simultaneously. The first device108generates first periodic clock information and transmits it to the second device112by way of the communication channel302. The second device112receives the first periodic clock information and determines whether the first periodic clock information is received within the predetermined time interval. The second device112rejects the first periodic clock information when the second device112receives the first periodic clock information after the predetermined time interval. The second device112synchronizes the second clock of the second multimedia player220with the first clock of the first multimedia player218when the second device112receives the first periodic clock information within the predetermined time interval. After the periodic time interval “Tint”, the first device108further generates second periodic clock information and transmits it to the second device112. The second device112receives the second periodic clock information and synchronizes the second clock with the first clock based on the second periodic clock information.

It will be apparent to a person having skill in the relevant art that the first device108may not store the multimedia file in the memory204and directly transmit to the second device112without deviating from the scope of the invention.

Referring now toFIG. 4A-4C, a flowchart400that illustrates a method for synchronizing the second clock with the first clock for playback of multimedia files in accordance with an embodiment of the present invention is shown.

At step402, the second device112receives the set of identifiers, associated with a corresponding set of multimedia files from the first device108by way of the second communication network114. At step404, the second processor212transmits selection information based on the user input to the first device108. At step406, the second device112receives a multimedia file, i.e., the first multimedia file, from the first device108. The first multimedia file includes the first audio component and the first video component. At step408, the first device108plays the first audio component and the second device112plays the first video component. At step410, the second device112receives periodic clock information from the first device108during the playback of the first multimedia file. At step412, the second device112determines whether the periodic clock information is valid. If at step412, the second device112determines that the periodic clock information is valid, i.e., the second device112determines that the periodic clock information is received within the predetermined time interval, step414is performed. At step414, the second device112synchronizes the second clock with the first clock based on the periodic clock information. At step416, the second device112determines whether the playback has stopped. If at step416, the second device112determines that the playback has not stopped, the second device112continues to receive the periodic clock information and synchronize the second clock with the first clock based on the periodic clock information. If at step416, the second device112determines that the playback has stopped, the second device112stops the synchronization. If at step412, the second device112determines that the periodic clock information is invalid, i.e., the second device112determines that the periodic clock information is determined after the predetermined time interval, step418is performed. At step418, the second device112rejects the periodic clock information.

Referring now toFIG. 5, a block diagram of a computer system500for synchronizing clock of multiple devices for playback of multimedia files in the system environment100in accordance with an embodiment of the present invention is shown. An embodiment of present invention, or portions thereof, may be implemented as computer readable code on the computer system500. In one example, the server102, the first device108, and the second device112ofFIG. 1may be implemented in the computer system500using hardware, software, firmware, non-transitory computer readable media having instructions stored thereon, or a combination thereof and may be implemented in one or more computer systems or other processing systems. Hardware, software, or any combination thereof may embody modules and components used to implement the method ofFIGS. 4A-4C.

The computer system500includes a processor502that may be a special purpose or a general purpose processing device. The processor502may be a single processor, multiple processors, or combinations thereof. The processor502may have one or more processor “cores.” Further, the processor502may be connected to a communication infrastructure504, such as a bus, a bridge, a message queue, the second communication network114, multi-core message-passing scheme, and the like. The computer system500further includes a main memory506and a secondary memory508. Examples of the main memory506may include random access memory (RAM), read-only memory (ROM), and the like. The secondary memory508may include a hard disk drive or a removable storage drive (not shown), such as a floppy disk drive, a magnetic tape drive, a compact disc, an optical disk drive, a flash memory, and the like. Further, the removable storage drive may read from and/or write to a removable storage device in a manner known in the art. In an embodiment, the removable storage unit may be a non-transitory computer readable recording media.

The computer system500further includes an input/output (I/O) port510and a communication interface512. The I/O port510includes various input and output devices that are configured to communicate with the processor502. Examples of the input devices may include a keyboard, a mouse, a joystick, a touchscreen, a microphone, and the like. Examples of the output devices may include a display screen, a speaker, headphones, and the like. The communication interface512may be configured to allow data to be transferred between the computer system500and various devices that are communicatively coupled to the computer system500. Examples of the communication interface512may include a modem, a network interface, i.e., an Ethernet card, a communications port, and the like. Data transferred via the communication interface512may correspond to signals, such as electronic, electromagnetic, optical, or other signals as will be apparent to a person skilled in the art. The signals may travel via a communications channel, such as the communication channel302, which may be configured to transmit the signals to devices that are communicatively coupled to the computer system500. Examples of the communication channel302may include, but are not limited to, cable, fiber optics, a phone line, a cellular phone link, a radio frequency link, a wireless link, and the like.

Computer program medium and computer usable medium may refer to memories, such as the main memory506and the secondary memory508, which may be a semiconductor memory such as dynamic RAMs. These computer program mediums may provide data that enables the computer system500to implement the method illustrated inFIG. 3. In an embodiment, the present invention is implemented using a computer implemented application, such as the first and second multimedia players218and220. The computer implemented application may be stored in a computer program product and loaded into the computer system500using the removable storage drive or the hard disc drive in the secondary memory508, the I/O port510, or the communication interface512.

A person having ordinary skill in the art will appreciate that embodiments of the disclosed subject matter can be practiced with various computer system configurations, including multi-core multiprocessor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, as well as pervasive or miniature computers that may be embedded into virtually any device. For instance, at least one processor such as the processor502and a memory such as the main memory506and the secondary memory508implements the above described embodiments. Further, the operations may be described as a sequential process, however some of the operations may in fact be performed in parallel, concurrently, and/or in a distributed environment, and with program code stored locally or remotely for access by single or multiprocessor machines. In addition, in some embodiments the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.

Techniques consistent with the present invention provide, among other features, a clock synchronizing system and method for playback of multimedia files. Unless stated otherwise, terms such as “first” and “second” are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements. While various exemplary embodiments of the disclosed system and method have been described above it should be understood that they have been presented for purposes of example only, not limitations. It is not exhaustive and does not limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the invention, without departing from the breadth or scope.