lavc/mediacodecdec_h264: add missing NAL headers to SPS/PPS buffers
Fixes a regression introduced by 0cd5e281df.
This commit is contained in:
parent
8a3221cc67
commit
db0af7250a
1 changed files with 19 additions and 2 deletions
|
|
@ -112,8 +112,25 @@ static av_cold int mediacodec_decode_init(AVCodecContext *avctx)
|
|||
}
|
||||
|
||||
if (pps && sps) {
|
||||
ff_AMediaFormat_setBuffer(format, "csd-0", (void*)sps->data, sps->data_size);
|
||||
ff_AMediaFormat_setBuffer(format, "csd-1", (void*)pps->data, pps->data_size);
|
||||
static const uint8_t nal_headers[] = { 0x00, 0x00, 0x00, 0x01 };
|
||||
|
||||
uint8_t *data = NULL;
|
||||
size_t data_size = sizeof(nal_headers) + FFMAX(sps->data_size, pps->data_size);
|
||||
|
||||
data = av_mallocz(data_size);
|
||||
if (!data) {
|
||||
ret = AVERROR(ENOMEM);
|
||||
goto done;
|
||||
}
|
||||
|
||||
memcpy(data, nal_headers, sizeof(nal_headers));
|
||||
memcpy(data + sizeof(nal_headers), sps->data, sps->data_size);
|
||||
ff_AMediaFormat_setBuffer(format, "csd-0", (void*)data, sizeof(nal_headers) + sps->data_size);
|
||||
|
||||
memcpy(data + sizeof(nal_headers), pps->data, pps->data_size);
|
||||
ff_AMediaFormat_setBuffer(format, "csd-1", (void*)data, sizeof(nal_headers) + pps->data_size);
|
||||
|
||||
av_freep(&data);
|
||||
} else {
|
||||
av_log(avctx, AV_LOG_ERROR, "Could not extract PPS/SPS from extradata");
|
||||
ret = AVERROR_INVALIDDATA;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue