IP Library Granted Patent US 12701247
Granted Patent B2
US 12701247 · App. 18/534,871 · Granted Aug 4, 2026

Dynamic decoder configuration for live transcoding

Inventor: Adrian Miller (Redmond, WA)
Assignee: iStreamPlanet Co., LLC
H04N19/40G10L19/167
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12701247
App. No.
18/534,871
Granted
Aug 4, 2026
Kind
B2
Abstract

A method and system for managing transcoding of data in a stream that includes identifying an input source change for the stream with a new input source type, and adding a decoder for the new input source type, the decoder configured to output for a respective encoder in a transcoder pipeline.

Claims (98)

1 . A method for managing transcoding of data in a stream, the method comprising:

accessing a frame from a stream of decoded data decoded by a decoder;

determining that the stream has a second input source format, wherein the second input source format is different from a first input source format of one or more previous frames from the stream;

identifying that metadata associated with the second input source format required by an encoder of a transcoding pipeline is not present in the frame;

searching a cache for the metadata associated with the second input source format required by the encoder;

determining that the metadata required by the encoder cannot be extracted and provided to the encoder; and

responsive to determining that the metadata required by the encoder cannot be extracted and provided to the encoder:

creating one or more of: a synthesizing encoder and a synthesizing decoder, wherein the creating includes providing an input configuration to the one or more of the synthesizing encoder and the synthesizing decoder;

constructing, using the one or more of the synthesizing encoder and the synthesizing decoder, replacement metadata for the frame, wherein the replacement metadata for the encoder is not located in the cache;

transmitting the frame and the replacement metadata to the encoder; and

generating, by the encoder, an audio/video output stream in a target media format using the replacement metadata, wherein the target media format unifies the second input source format of the frame and the first input source format of the one or more previous frames to the target media format.

2 . The method of claim 1 , wherein constructing the replacement metadata comprises:

providing video data to the synthesizing encoder;

receiving an encoded output from the synthesizing encoder; and

providing the encoded output to the synthesizing decoder.

3 . The method of claim 1 , further comprising:

accessing an additional frame from the decoded data;

identifying additional metadata that matches characteristics of the additional frame;

appending the additional metadata to the additional frame; and

transmitting the additional frame and the additional metadata to the encoder.

4 . The method of claim 1 , further comprising:

accessing an additional frame from the decoded data;

responsive to determining that cached metadata for the additional frame is available:

adding the cached metadata to the additional frame; and

providing the additional frame and the cached metadata to the encoder.

5 . The method of claim 1 , further comprising:

identifying that the frame is an audio frame, wherein determining whether cached metadata for the audio frame is available is performed responsive to identifying that audio data in the audio frame is a raw format.

6 . The method of claim 1 , further comprising:

identifying an input source change for the stream with a new input source type; and

responsive to identifying the input source change, adding an additional decoder for the new input source type and decoding the frame with the additional decoder.

7 . The method of claim 1 , further comprising:

configuring a plurality of transcoder pipelines for the stream, each of the plurality of transcoder pipelines having a different output configuration and an additional encoder with a different configuration; and

adding a separate decoder for a new input source type to each of the plurality of transcoder pipelines, each separate decoder configured to output for input requirements of a respective additional encoder in a respective transcoder pipeline.

8 . A system comprising:

a non-transitory machine-readable medium having stored thereon program instructions; and

a processing device coupled to the non-transitory machine-readable medium, wherein when executing the program instructions, the processing device performs operations comprising:

accessing a frame from a stream of decoded data decoded by a decoder;

determining that the stream has a second input source format, wherein the second input source format is different from a first input source format of one or more previous frames from the stream;

identifying that metadata associated with the second input source format required by an encoder of a transcoding pipeline is not present in the frame;

searching a cache for the metadata associated with the second input source format required by the encoder;

determining that the metadata required by the encoder cannot be extracted and provided to the encoder; and

responsive to determining that the metadata required by the encoder cannot be extracted and provided to the encoder:

creating one or more of: a synthesizing encoder and a synthesizing decoder, wherein the creating includes providing an input configuration to the one or more of the synthesizing encoder and the synthesizing decoder;

constructing, using the one or more of the synthesizing encoder and the synthesizing decoder, replacement metadata for the frame, wherein the replacement metadata for the encoder is not located in the cache;

transmitting the frame and the replacement metadata to the encoder; and

generating, by the encoder, an audio/video output stream in a target media format using the replacement metadata, wherein the target media format unifies the second input source format of the frame and the first input source format of the one or more previous frames to the target media format.

9 . The system of claim 8 , wherein constructing the replacement metadata comprises:

providing video data to the synthesizing encoder;

receiving an encoded output from the synthesizing encoder; and

providing the encoded output to the synthesizing decoder.

10 . The system of claim 8 , wherein when executing the program instructions, the processing device performs operations comprising:

accessing an additional frame from the decoded data;

identifying additional metadata that matches characteristics of the additional frame;

appending the additional metadata to the additional frame; and

transmitting the additional frame and the additional metadata to the encoder.

11 . The system of claim 8 , wherein when executing the program instructions, the processing device performs operations comprising:

accessing an additional frame from the decoded data;

responsive to determining that cached metadata for the additional frame is available:

adding the cached metadata to the additional frame; and

providing the additional frame and the cached metadata to the encoder.

12 . The system of claim 8 , wherein when executing the program instructions, the processing device performs operations comprising:

identifying that the frame is an audio frame, wherein determining whether cached metadata for the audio frame is available is performed responsive to identifying that audio data in the audio frame is a raw format.

13 . The system of claim 8 , wherein when executing the program instructions, the processing device performs operations comprising:

identifying an input source change for a data stream with a new input source type; and

responsive to identifying the input source change, adding an additional decoder for the new input source type and decoding the frame with the additional decoder.

14 . The system of claim 8 , wherein when executing the program instructions, the processing device performs operations comprising:

configuring a plurality of transcoder pipelines for the stream, each of the plurality of transcoder pipelines having a different output configuration and an additional encoder with a different configuration; and

adding a separate decoder for a new input source type to each of the plurality of transcoder pipelines, each separate decoder configured to output for input requirements of a respective encoder in a respective additional transcoder pipeline.

15 . A non-transitory machine-readable storage medium that provides instructions that, if executed by a processor, will cause the processor to perform operations comprising:

accessing a frame from a stream of decoded data decoded by a decoder;

determining that the stream has a second input source format, wherein the second input source format is different from a first input source format of one or more previous frames from the stream;

identifying that metadata associated with the second input source format required by an encoder of a transcoding pipeline is not present in the frame;

searching a cache for the metadata associated with the second input source format required by the encoder;

determining that the metadata required by the encoder cannot be extracted and provided to the encoder; and

responsive to determining that the metadata required by the encoder cannot be extracted and provided to the encoder:

creating one or more of: a synthesizing encoder and a synthesizing decoder, wherein the creating includes providing an input configuration to the one or more of the synthesizing encoder and the synthesizing decoder;

constructing, using the one or more of the synthesizing encoder and the synthesizing decoder, replacement metadata for the frame, wherein the replacement metadata for the encoder is not located in the cache;

transmitting the frame and the replacement metadata to the encoder; and

generating, by the encoder, an audio/video output stream in a target media format using the replacement metadata, wherein the target media format unifies the second input source format of the frame and the first input source format of the one or more previous frames to the target media format.

16 . The non-transitory machine-readable storage medium of claim 15 , wherein constructing the replacement metadata comprises:

providing video data to the synthesizing encoder;

receiving an encoded output from the synthesizing encoder; and

providing the encoded output to the synthesizing decoder.

17 . The non-transitory machine-readable storage medium of claim 15 , wherein the instructions, if executed by the processor, will cause the processor to perform operations comprising:

accessing an additional frame from the decoded data;

identifying additional metadata that matches characteristics of the additional frame;

appending the additional metadata to the additional frame; and

transmitting the additional frame and the additional metadata to the encoder.

18 . The non-transitory machine-readable storage medium of claim 15 , wherein the instructions, if executed by the processor, will cause the processor to perform operations comprising:

accessing an additional frame from the decoded data;

responsive to determining that cached metadata for the additional frame is available:

adding the cached metadata to the additional frame; and

providing the additional frame and the cached metadata to the encoder.

19 . The non-transitory machine-readable storage medium of claim 15 , wherein the instructions, if executed by the processor, will cause the processor to perform operations comprising:

identifying that the frame is an audio frame, wherein determining whether cached metadata for the audio frame is available is performed responsive to identifying that audio data in the audio frame is a raw format.

20 . The non-transitory machine-readable storage medium of claim 15 , wherein the instructions, if executed by the processor, will cause the processor to perform operations comprising:

identifying an input source change for the stream with a new input source type; and

responsive to identifying the input source change, adding an additional decoder for the new input source type and decoding the frame with the additional decoder.