Lines 30-39
Link Here
|
30 |
|
30 |
|
31 |
} // namespace |
31 |
} // namespace |
32 |
|
32 |
|
33 |
// Why FF_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are |
33 |
// Why AV_INPUT_BUFFER_PADDING_SIZE? FFmpeg assumes all input buffers are |
34 |
// padded. Check here to ensure FFmpeg only receives data padded to its |
34 |
// padded. Check here to ensure FFmpeg only receives data padded to its |
35 |
// specifications. |
35 |
// specifications. |
36 |
static_assert(DecoderBuffer::kPaddingSize >= FF_INPUT_BUFFER_PADDING_SIZE, |
36 |
static_assert(DecoderBuffer::kPaddingSize >= AV_INPUT_BUFFER_PADDING_SIZE, |
37 |
"DecoderBuffer padding size does not fit ffmpeg requirement"); |
37 |
"DecoderBuffer padding size does not fit ffmpeg requirement"); |
38 |
|
38 |
|
39 |
// Alignment requirement by FFmpeg for input and output buffers. This need to |
39 |
// Alignment requirement by FFmpeg for input and output buffers. This need to |
Lines 429-439
Link Here
|
429 |
} else { |
429 |
} else { |
430 |
codec_context->extradata_size = config.extra_data().size(); |
430 |
codec_context->extradata_size = config.extra_data().size(); |
431 |
codec_context->extradata = reinterpret_cast<uint8_t*>( |
431 |
codec_context->extradata = reinterpret_cast<uint8_t*>( |
432 |
av_malloc(config.extra_data().size() + FF_INPUT_BUFFER_PADDING_SIZE)); |
432 |
av_malloc(config.extra_data().size() + AV_INPUT_BUFFER_PADDING_SIZE)); |
433 |
memcpy(codec_context->extradata, &config.extra_data()[0], |
433 |
memcpy(codec_context->extradata, &config.extra_data()[0], |
434 |
config.extra_data().size()); |
434 |
config.extra_data().size()); |
435 |
memset(codec_context->extradata + config.extra_data().size(), '\0', |
435 |
memset(codec_context->extradata + config.extra_data().size(), '\0', |
436 |
FF_INPUT_BUFFER_PADDING_SIZE); |
436 |
AV_INPUT_BUFFER_PADDING_SIZE); |
437 |
} |
437 |
} |
438 |
} |
438 |
} |
439 |
|
439 |
|
Lines 561-571
Link Here
|
561 |
} else { |
561 |
} else { |
562 |
codec_context->extradata_size = config.extra_data().size(); |
562 |
codec_context->extradata_size = config.extra_data().size(); |
563 |
codec_context->extradata = reinterpret_cast<uint8_t*>( |
563 |
codec_context->extradata = reinterpret_cast<uint8_t*>( |
564 |
av_malloc(config.extra_data().size() + FF_INPUT_BUFFER_PADDING_SIZE)); |
564 |
av_malloc(config.extra_data().size() + AV_INPUT_BUFFER_PADDING_SIZE)); |
565 |
memcpy(codec_context->extradata, &config.extra_data()[0], |
565 |
memcpy(codec_context->extradata, &config.extra_data()[0], |
566 |
config.extra_data().size()); |
566 |
config.extra_data().size()); |
567 |
memset(codec_context->extradata + config.extra_data().size(), '\0', |
567 |
memset(codec_context->extradata + config.extra_data().size(), '\0', |
568 |
FF_INPUT_BUFFER_PADDING_SIZE); |
568 |
AV_INPUT_BUFFER_PADDING_SIZE); |
569 |
} |
569 |
} |
570 |
} |
570 |
} |
571 |
|
571 |
|