MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / avcodec_parameters_to_context

Function avcodec_parameters_to_context

libavcodec/codec_par.c:205–272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

203}
204
205int avcodec_parameters_to_context(AVCodecContext *codec,
206 const AVCodecParameters *par)
207{
208 int ret;
209
210 codec->codec_type = par->codec_type;
211 codec->codec_id = par->codec_id;
212 codec->codec_tag = par->codec_tag;
213
214 codec->bit_rate = par->bit_rate;
215 codec->bits_per_coded_sample = par->bits_per_coded_sample;
216 codec->bits_per_raw_sample = par->bits_per_raw_sample;
217 codec->profile = par->profile;
218 codec->level = par->level;
219
220 switch (par->codec_type) {
221 case AVMEDIA_TYPE_VIDEO:
222 codec->pix_fmt = par->format;
223 codec->width = par->width;
224 codec->height = par->height;
225 codec->field_order = par->field_order;
226 codec->color_range = par->color_range;
227 codec->color_primaries = par->color_primaries;
228 codec->color_trc = par->color_trc;
229 codec->colorspace = par->color_space;
230 codec->chroma_sample_location = par->chroma_location;
231 codec->sample_aspect_ratio = par->sample_aspect_ratio;
232 codec->has_b_frames = par->video_delay;
233 codec->framerate = par->framerate;
234 codec->alpha_mode = par->alpha_mode;
235 break;
236 case AVMEDIA_TYPE_AUDIO:
237 codec->sample_fmt = par->format;
238 ret = av_channel_layout_copy(&codec->ch_layout, &par->ch_layout);
239 if (ret < 0)
240 return ret;
241 codec->sample_rate = par->sample_rate;
242 codec->block_align = par->block_align;
243 codec->frame_size = par->frame_size;
244 codec->delay =
245 codec->initial_padding = par->initial_padding;
246 codec->trailing_padding = par->trailing_padding;
247 codec->seek_preroll = par->seek_preroll;
248 break;
249 case AVMEDIA_TYPE_SUBTITLE:
250 codec->width = par->width;
251 codec->height = par->height;
252 break;
253 }
254
255 av_freep(&codec->extradata);
256 codec->extradata_size = 0;
257 if (par->extradata) {
258 codec->extradata = av_mallocz(par->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
259 if (!codec->extradata)
260 return AVERROR(ENOMEM);
261 memcpy(codec->extradata, par->extradata, par->extradata_size);
262 codec->extradata_size = par->extradata_size;

Callers 15

ds_openFunction · 0.85
update_stream_avctxFunction · 0.85
codec_closeFunction · 0.85
read_frame_internalFunction · 0.85
flac_read_timestampFunction · 0.85
dump_stream_formatFunction · 0.85
dump_stream_groupFunction · 0.85
dash_initFunction · 0.85
old_flac_headerFunction · 0.85
stream_component_openFunction · 0.85
dec_openFunction · 0.85

Calls 5

av_channel_layout_copyFunction · 0.85
av_freepFunction · 0.85
av_packet_side_data_freeFunction · 0.85
av_malloczFunction · 0.50

Tested by 4

video_decodeFunction · 0.68
seek_testFunction · 0.68
dump_stream_metaFunction · 0.68
video_decode_exampleFunction · 0.68