PR #20885 opened by Martin Storsjö (mstorsjo) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20885 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20885.patch
This reverts commit 7b18eafabd7cfd9e179eeeedc28ae93911437faa. That commit added tests that don't work on Windows, and which also fail in setups with cross/remote testing (with --target-exec and --target-path). See https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20876 for more discussions about issues with that commit. From 032bdf8ebd470e649d25cb884e124b3b621db3ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <[email protected]> Date: Mon, 10 Nov 2025 14:00:08 +0200 Subject: [PATCH] Revert "Re-initialize stream on new metadata." This reverts commit 7b18eafabd7cfd9e179eeeedc28ae93911437faa. That commit added tests that don't work on Windows, and which also fail in setups with cross/remote testing (with --target-exec and --target-path). See https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20876 for more discussions about issues with that commit. --- libavformat/oggenc.c | 34 ++++++---------------------------- tests/fate/ogg-flac.mak | 4 ---- tests/fate/ogg-opus.mak | 4 ---- tests/fate/ogg-vorbis.mak | 4 ---- 4 files changed, 6 insertions(+), 40 deletions(-) diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index 5cd94b49bc..e1bb7dd972 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -40,9 +40,6 @@ #define MAX_PAGE_SIZE 65025 -static int ogg_write_trailer(AVFormatContext *s); -static void ogg_deinit(AVFormatContext *s); - typedef struct OGGPage { int64_t start_granule; int64_t granule; @@ -69,7 +66,6 @@ typedef struct OGGStreamContext { OGGPage page; ///< current page unsigned serial_num; ///< serial number int64_t last_granule; ///< last packet granule - int packet_written; } OGGStreamContext; typedef struct OGGPageList { @@ -644,24 +640,6 @@ static int ogg_write_packet_internal(AVFormatContext *s, AVPacket *pkt) OGGStreamContext *oggstream = st->priv_data; int ret; int64_t granule; - const uint8_t *side_metadata; - size_t size; - - side_metadata = av_packet_get_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA, &size); - if (side_metadata && oggstream->packet_written) { - ogg_write_trailer(s); - ogg_deinit(s); - - av_dict_free(&st->metadata); - ret = av_packet_unpack_dictionary(side_metadata, size, &st->metadata); - if (ret < 0) - return ret; - - ogg_init(s); - ogg_write_header(s); - } - - oggstream->packet_written = 1; if (st->codecpar->codec_id == AV_CODEC_ID_THEORA) { int64_t pts = oggstream->vrev < 1 ? pkt->pts : pkt->pts + pkt->duration; @@ -742,7 +720,7 @@ static int ogg_write_trailer(AVFormatContext *s) return 0; } -static void ogg_deinit(AVFormatContext *s) +static void ogg_free(AVFormatContext *s) { OGGContext *ogg = s->priv_data; OGGPageList *p = ogg->page_list; @@ -794,7 +772,7 @@ const FFOutputFormat ff_ogg_muxer = { .write_header = ogg_write_header, .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, - .deinit = ogg_deinit, + .deinit = ogg_free, .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT, .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, @@ -813,7 +791,7 @@ const FFOutputFormat ff_oga_muxer = { .write_header = ogg_write_header, .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, - .deinit = ogg_deinit, + .deinit = ogg_free, .p.flags = AVFMT_TS_NEGATIVE, .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, @@ -835,7 +813,7 @@ const FFOutputFormat ff_ogv_muxer = { .write_header = ogg_write_header, .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, - .deinit = ogg_deinit, + .deinit = ogg_free, .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT, .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, @@ -854,7 +832,7 @@ const FFOutputFormat ff_spx_muxer = { .write_header = ogg_write_header, .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, - .deinit = ogg_deinit, + .deinit = ogg_free, .p.flags = AVFMT_TS_NEGATIVE, .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, @@ -873,7 +851,7 @@ const FFOutputFormat ff_opus_muxer = { .write_header = ogg_write_header, .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, - .deinit = ogg_deinit, + .deinit = ogg_free, .p.flags = AVFMT_TS_NEGATIVE, .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, diff --git a/tests/fate/ogg-flac.mak b/tests/fate/ogg-flac.mak index 038d4c0b42..07bdb232cb 100644 --- a/tests/fate/ogg-flac.mak +++ b/tests/fate/ogg-flac.mak @@ -2,10 +2,6 @@ FATE_OGG_FLAC += fate-ogg-flac-chained-meta fate-ogg-flac-chained-meta: REF = $(SRC_PATH)/tests/ref/fate/ogg-flac-chained-meta.txt fate-ogg-flac-chained-meta: CMD = run $(APITESTSDIR)/api-dump-stream-meta-test$(EXESUF) $(TARGET_SAMPLES)/ogg-flac/chained-meta.ogg -FATE_OGG_FLAC += fate-ogg-flac-copy-chained-meta -fate-ogg-flac-copy-chained-meta: REF = $(SRC_PATH)/tests/ref/fate/ogg-flac-chained-meta.txt -fate-ogg-flac-copy-chained-meta: CMD = run $(FFMPEG) -nostdin -hide_banner -loglevel quiet -i $(TARGET_SAMPLES)/ogg-flac/chained-meta.ogg -c copy -f ogg - | $(APITESTSDIR)/api-dump-stream-meta-test$(EXESUF) /dev/stdin - FATE_OGG_FLAC-$(call DEMDEC, OGG, FLAC, FLAC_PARSER) += $(FATE_OGG_FLAC) FATE_SAMPLES_DUMP_STREAM_META += $(FATE_OGG_FLAC-yes) diff --git a/tests/fate/ogg-opus.mak b/tests/fate/ogg-opus.mak index 82c03d1bae..54b6fbabde 100644 --- a/tests/fate/ogg-opus.mak +++ b/tests/fate/ogg-opus.mak @@ -2,10 +2,6 @@ FATE_OGG_OPUS += fate-ogg-opus-chained-meta fate-ogg-opus-chained-meta: REF = $(SRC_PATH)/tests/ref/fate/ogg-opus-chained-meta.txt fate-ogg-opus-chained-meta: CMD = run $(APITESTSDIR)/api-dump-stream-meta-test$(EXESUF) $(TARGET_SAMPLES)/ogg-opus/chained-meta.ogg -FATE_OGG_OPUS += fate-ogg-opus-copy-chained-meta -fate-ogg-opus-copy-chained-meta: REF = $(SRC_PATH)/tests/ref/fate/ogg-opus-chained-meta.txt -fate-ogg-opus-copy-chained-meta: CMD = run $(FFMPEG) -nostdin -hide_banner -loglevel quiet -i $(TARGET_SAMPLES)/ogg-opus/chained-meta.ogg -c copy -f ogg - | $(APITESTSDIR)/api-dump-stream-meta-test$(EXESUF) /dev/stdin - FATE_OGG_OPUS-$(call DEMDEC, OGG, OPUS) += $(FATE_OGG_OPUS) FATE_SAMPLES_DUMP_STREAM_META += $(FATE_OGG_OPUS-yes) diff --git a/tests/fate/ogg-vorbis.mak b/tests/fate/ogg-vorbis.mak index c3cec99fa4..74805d591e 100644 --- a/tests/fate/ogg-vorbis.mak +++ b/tests/fate/ogg-vorbis.mak @@ -2,10 +2,6 @@ FATE_OGG_VORBIS += fate-ogg-vorbis-chained-meta fate-ogg-vorbis-chained-meta: REF = $(SRC_PATH)/tests/ref/fate/ogg-vorbis-chained-meta.txt fate-ogg-vorbis-chained-meta: CMD = run $(APITESTSDIR)/api-dump-stream-meta-test$(EXESUF) $(TARGET_SAMPLES)/ogg-vorbis/chained-meta.ogg -FATE_OGG_VORBIS += fate-ogg-vorbis-copy-chained-meta -fate-ogg-vorbis-copy-chained-meta: REF = $(SRC_PATH)/tests/ref/fate/ogg-vorbis-chained-meta.txt -fate-ogg-vorbis-copy-chained-meta: CMD = run $(FFMPEG) -nostdin -hide_banner -loglevel quiet -i $(TARGET_SAMPLES)/ogg-vorbis/chained-meta.ogg -c copy -f ogg - | $(APITESTSDIR)/api-dump-stream-meta-test$(EXESUF) /dev/stdin - FATE_OGG_VORBIS-$(call DEMDEC, OGG, VORBIS) += $(FATE_OGG_VORBIS) FATE_SAMPLES_DUMP_STREAM_META += $(FATE_OGG_VORBIS-yes) -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
