Browse Source

avcodec/utils: use the unpack_dictionary function

Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.2-rc1
Ben Boeckel Michael Niedermayer 12 years ago
parent
commit
34b7c82dd3
1 changed files with 4 additions and 21 deletions
  1. +4
    -21
      libavcodec/utils.c

+ 4
- 21
libavcodec/utils.c View File

@@ -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…
Cancel
Save