US2021183408A1PendingUtilityA1
Gapless video looping
Est. expiryOct 2, 2035(~9.2 yrs left)· nominal 20-yr term from priority
H04L 65/756H04L 51/52H04N 21/43072H04N 21/4126G11B 27/34H04N 21/44004H04N 21/8456H04N 21/4392H04N 21/4325H04N 21/8547G11B 27/038G11B 27/031G11B 27/007G11B 27/00H04N 21/44016H04L 51/32H04L 65/601H04N 21/4307
53
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Techniques of playing back a looping video file involve providing multiple video codecs for decoding a video file. Each video codec performs its own decoding operation on the looping video file, resulting in multiple buffers of video frames and a buffer of audio frames. Then, as the GPU renders the ending video frames from a first buffer, it begins rendering the beginning video frames from a second buffer. In this way, the beginning of a next video cycle is already rendered for viewing by the time a current video cycle is ending.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of playing back a looping video file, the method comprising:
obtaining (i) a video codec configured to decompress video content of an encoded video looping file and (ii) a player thread by which the video content is rendered; performing a video decoding operation on the video looping file using the video codec to produce a first plurality of video frames and a second plurality of video frames; using the player thread to generate a first rendering texture to render and play first video content of the first plurality of video frames; and performing a texture switching operation to cause the player thread to generate a second rendering texture to render and play second video content of the second plurality of video frames, the rendering and playing of the first video content and the second video content forming a gapless video loop as viewed in the window of a graphical user interface (GUI).
2 . The method as in claim 1 , further comprising:
obtaining an audio codec configured to decompress audio content of the encoded video looping file; performing an audio decoding operation on the video looping file using the audio codec to produce a plurality of audio frames; using the player thread to render audio content of the plurality of audio frames, the audio content including a plurality of audio samples based on a specified sampling rate, each of the plurality of audio samples having a respective timestamp and being associated with a portion of the first video content and a portion of the video second content, the timestamp indicating a time at which an audio sample of the plurality of audio samples is to be played within an audio frame of the plurality of audio frames.
3 . The method as in claim 2 , wherein the first video content and the audio content are maintained in sync on different versions of a media device platform.
4 . The method as in claim 2 , wherein the first video content has a beginning portion and an end portion, the audio content includes end audio samples corresponding to the end portion of the first video content, the first plurality of video frames including an end portion corresponding to the end portion of the first video content; and
wherein the method further comprises performing a trimming operation on the end portion of the first plurality of video frames to produce a trimmed end portion of the first plurality of video frames, the trimming operation including adjusting the timestamp of the end audio sample.
5 . The method as in claim 4 , wherein the audio content also includes a beginning portion; and
wherein the method further comprises using the beginning portion of the audio content and the end portion of the audio content to identify a timestamp indicating a time at which the texture switching operation is to be performed.
6 . The method as in claim 1 , further comprising:
storing the rendered first video content in a cache of a processing unit prior to the first video content being played.
7 . The method as in claim 6 , wherein the processing unit is a graphical processing unit (GPU).
8 . A computer program product comprising a nontransitive storage medium, the computer program product including code that, when executed by processing circuitry of a sound rendering computer configured to play back a looping video file, causes the processing circuitry to perform a method, the method comprising:
obtaining (i) a video codec configured to decompress video content of an encoded video looping file and (ii) a player thread by which the video content is rendered; performing a video decoding operation on the video looping file using the video codec to produce a first plurality of video frames and a second plurality of video frames; using the player thread to generate a first rendering texture to render and play first video content of the first plurality of video frames; and performing a texture switching operation to cause the player thread to generate a second rendering texture to render and play second video content of the second plurality of video frames, the rendering and playing of the first video content and the second video content forming a gapless video loop as viewed in the window of a graphical user interface (GUI).
9 . The computer program product as in claim 8 , wherein the method further comprises:
obtaining an audio codec configured to decompress audio content of the encoded video looping file; performing an audio decoding operation on the video looping file using the audio codec to produce a plurality of audio frames; using the player thread to render audio content of the plurality of audio frames, the audio content including a plurality of audio samples based on a specified sampling rate, each of the plurality of audio samples having a respective timestamp and being associated with a portion of the first video content and a portion of the video second content, the timestamp indicating a time at which an audio sample of the plurality of audio samples is to be played within an audio frame of the plurality of audio frames.
10 . The computer program product as in claim 9 , wherein the first video content and the audio content are maintained in sync on different versions of a media device platform.
11 . The computer program product as in claim 9 , wherein the first video content has a beginning portion and an end portion, the audio content includes end audio samples corresponding to the end portion of the first video content, the first plurality of video frames including an end portion corresponding to the end portion of the first video content; and
wherein the method further comprises performing a trimming operation on the end portion of the first plurality of video frames to produce a trimmed end portion of the first plurality of video frames, the trimming operation including adjusting the timestamp of the end audio sample.
12 . The computer program product as in claim 10 , wherein the audio content also includes a beginning portion; and
wherein the method further comprises using the beginning portion of the audio content and the end portion of the audio content to identify a timestamp indicating a time at which the texture switching operation is to be performed.
13 . The computer program product as in claim 8 , wherein the method further comprises:
storing the rendered first video content in a cache of a processing unit prior to the first video content being played.
14 . The computer program product as in claim 13 , wherein the processing unit is a graphical processing unit (GPU).
15 . A system comprising:
at least one processor; and memory that stores instructions that, when executed by the at least one processor, cause the system to perform operations of,
obtaining (i) a video codec configured to decompress video content of an encoded video looping file and (ii) a player thread by which the video content is rendered;
performing a video decoding operation on the video looping file using the video codec to produce a first plurality of video frames and a second plurality of video frames; using the player thread to generate a first rendering texture to render and play first video content of the first plurality of video frames; and performing a texture switching operation to cause the player thread to generate a second rendering texture to render and play second video content of the second plurality of video frames, the rendering and playing of the first video content and the second video content forming a gapless video loop as viewed in the window of a graphical user interface (GUI).
16 . The system as in claim 15 , wherein the memory stores further instructions that, when executed by the at least one processor, cause the system to perform operations of:
obtaining an audio codec configured to decompress audio content of the encoded video looping file; performing an audio decoding operation on the video looping file using the audio codec to produce a plurality of audio frames; using the player thread to render audio content of the plurality of audio frames, the audio content including a plurality of audio samples based on a specified sampling rate, each of the plurality of audio samples having a respective timestamp and being associated with a portion of the first video content and a portion of the video second content, the timestamp indicating a time at which an audio sample of the plurality of audio samples is to be played within an audio frame of the plurality of audio frames.
17 . The system as in claim 16 , wherein the first video content and the audio content are maintained in sync on different versions of a media device platform.
18 . The system as in claim 16 , wherein the first video content has a beginning portion and an end portion, the audio content includes end audio samples corresponding to the end portion of the first video content, the first plurality of video frames including an end portion corresponding to the end portion of the first video content; and
wherein the that, when executed by the at least one processor, cause the system to perform operations of performing a trimming operation on the end portion of the first plurality of video frames to produce a trimmed end portion of the first plurality of video frames, the trimming operation including adjusting the timestamp of the end audio sample.
19 . The system as in claim 18 , wherein the audio content also includes a beginning portion; and
wherein the that, when executed by the at least one processor, cause the system to perform operations of using the beginning portion of the audio content and the end portion of the audio content to identify a timestamp indicating a time at which the texture switching operation is to be performed.
20 . The system as in claim 15 , that, when executed by the at least one processor, cause the system to perform operations of:
storing the rendered first video content in a cache of a processing unit prior to the first video content being played.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.