mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-27 13:10:37 +00:00
avcodec/utils: use the unpack_dictionary function
Signed-off-by: Ben Boeckel <mathstuf@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
fcb1b0078d
commit
34b7c82dd3
@ -2012,32 +2012,15 @@ fail:
|
||||
|
||||
static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame)
|
||||
{
|
||||
int size, ret = 0;
|
||||
int size;
|
||||
const uint8_t *side_metadata;
|
||||
const uint8_t *end;
|
||||
|
||||
AVDictionary **frame_md = avpriv_frame_get_metadatap(frame);
|
||||
|
||||
side_metadata = av_packet_get_side_data(avctx->internal->pkt,
|
||||
AV_PKT_DATA_STRINGS_METADATA, &size);
|
||||
if (!side_metadata)
|
||||
goto end;
|
||||
end = side_metadata + size;
|
||||
if (size && end[-1])
|
||||
return AVERROR_INVALIDDATA;
|
||||
while (side_metadata < end) {
|
||||
const uint8_t *key = side_metadata;
|
||||
const uint8_t *val = side_metadata + strlen(key) + 1;
|
||||
int ret;
|
||||
|
||||
if (val >= end)
|
||||
return AVERROR_INVALIDDATA;
|
||||
|
||||
ret = av_dict_set(avpriv_frame_get_metadatap(frame), key, val, 0);
|
||||
if (ret < 0)
|
||||
break;
|
||||
side_metadata = val + strlen(val) + 1;
|
||||
}
|
||||
end:
|
||||
return ret;
|
||||
return av_packet_unpack_dictionary(side_metadata, size, frame_md);
|
||||
}
|
||||
|
||||
int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
|
||||
|
Loading…
Reference in New Issue
Block a user