Browse Source

avdevice/lavfi: Use av_packet_pack_dictionary() to pack dictionary

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.4
Andreas Rheinhardt 4 years ago
parent
commit
26469aebd3
1 changed files with 8 additions and 17 deletions
  1. +8
    -17
      libavdevice/lavfi.c

+ 8
- 17
libavdevice/lavfi.c View File

@@ -444,25 +444,16 @@ static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt)


frame_metadata = frame->metadata; frame_metadata = frame->metadata;
if (frame_metadata) { if (frame_metadata) {
uint8_t *metadata;
AVDictionaryEntry *e = NULL;
AVBPrint meta_buf;

av_bprint_init(&meta_buf, 0, AV_BPRINT_SIZE_UNLIMITED);
while ((e = av_dict_get(frame_metadata, "", e, AV_DICT_IGNORE_SUFFIX))) {
av_bprintf(&meta_buf, "%s", e->key);
av_bprint_chars(&meta_buf, '\0', 1);
av_bprintf(&meta_buf, "%s", e->value);
av_bprint_chars(&meta_buf, '\0', 1);
}
if (!av_bprint_is_complete(&meta_buf) ||
!(metadata = av_packet_new_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA,
meta_buf.len))) {
av_bprint_finalize(&meta_buf, NULL);
int size;
uint8_t *metadata = av_packet_pack_dictionary(frame_metadata, &size);

if (!metadata)
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
if ((ret = av_packet_add_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA,
metadata, size)) < 0) {
av_freep(&metadata);
return ret;
} }
memcpy(metadata, meta_buf.str, meta_buf.len);
av_bprint_finalize(&meta_buf, NULL);
} }


if ((ret = create_subcc_packet(avctx, frame, min_pts_sink_idx)) < 0) { if ((ret = create_subcc_packet(avctx, frame, min_pts_sink_idx)) < 0) {


Loading…
Cancel
Save