X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Futils.c;h=13d4c6b1ee57ffd0b9bd49e3705b97c5d705f17c;hb=097bf149c92aeae8af7f3559878e046a047e892d;hp=6ebbe6cbd921206fbcb2ab2526c2ceddf8f3b45f;hpb=8862c49661fb0655882a78547ca70561f2c5d766;p=ffmpeg diff --git a/libavformat/utils.c b/libavformat/utils.c index 6ebbe6cbd92..13d4c6b1ee5 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -278,11 +278,11 @@ static int set_codec_from_probe_data(AVFormatContext *s, AVStream *st, if (!strcmp(fmt->name, fmt_id_type[i].name)) { st->codec->codec_id = fmt_id_type[i].id; st->codec->codec_type = fmt_id_type[i].type; - break; + return score; } } } - return score; + return 0; } /************************************************************/ @@ -1286,6 +1286,7 @@ static int read_from_packet_buffer(AVPacketList **pkt_buffer, static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) { int ret = 0, i, got_packet = 0; + AVDictionary *metadata = NULL; av_init_packet(pkt); @@ -1411,6 +1412,14 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) av_packet_merge_side_data(pkt); } + av_opt_get_dict_val(s, "metadata", AV_OPT_SEARCH_CHILDREN, &metadata); + if (metadata) { + s->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED; + av_dict_copy(&s->metadata, metadata, 0); + av_dict_free(&metadata); + av_opt_set_dict_val(s, "metadata", NULL, AV_OPT_SEARCH_CHILDREN); + } + if (s->debug & FF_FDEBUG_TS) av_log(s, AV_LOG_DEBUG, "read_frame_internal stream=%d, pts=%s, dts=%s, " @@ -3275,7 +3284,7 @@ int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options) if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO) { if (st->codec->codec_id == AV_CODEC_ID_RAWVIDEO && !st->codec->codec_tag && !st->codec->bits_per_coded_sample) { uint32_t tag= avcodec_pix_fmt_to_codec_tag(st->codec->pix_fmt); - if (avpriv_find_pix_fmt(ff_raw_pix_fmt_tags, tag) == st->codec->pix_fmt) + if (avpriv_find_pix_fmt(avpriv_get_raw_pix_fmt_tags(), tag) == st->codec->pix_fmt) st->codec->codec_tag= tag; }