From: James Almer <jamrial@gmail.com> To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH 16/30] avformat: remove deprecated FF_API_ALLOW_FLUSH Date: Sun, 23 Feb 2025 19:06:16 -0300 Message-ID: <20250223220630.18756-17-jamrial@gmail.com> (raw) In-Reply-To: <20250223220630.18756-1-jamrial@gmail.com> Deprecated since 2023-10-02. Signed-off-by: James Almer <jamrial@gmail.com> --- libavdevice/pulse_audio_enc.c | 4 ---- libavformat/avformat.h | 3 --- libavformat/fifo.c | 4 ---- libavformat/hlsenc.c | 4 ---- libavformat/matroskaenc.c | 13 ----------- libavformat/movenc.c | 40 ++-------------------------------- libavformat/mpegtsenc.c | 4 ---- libavformat/oggenc.c | 20 ----------------- libavformat/tee.c | 4 ---- libavformat/tests/fifo_muxer.c | 4 ---- libavformat/version_major.h | 1 - 11 files changed, 2 insertions(+), 99 deletions(-) diff --git a/libavdevice/pulse_audio_enc.c b/libavdevice/pulse_audio_enc.c index 80136d1e20..d1652bf8d7 100644 --- a/libavdevice/pulse_audio_enc.c +++ b/libavdevice/pulse_audio_enc.c @@ -796,11 +796,7 @@ const FFOutputFormat ff_pulse_muxer = { .get_output_timestamp = pulse_get_output_timestamp, .get_device_list = pulse_get_device_list, .control_message = pulse_control_message, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_NOFILE, -#endif .p.priv_class = &pulse_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; diff --git a/libavformat/avformat.h b/libavformat/avformat.h index a3bb1f1ee3..08e3206290 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -485,9 +485,6 @@ typedef struct AVProbeData { #define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fall back on binary search via read_timestamp */ #define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fall back on generic search */ #define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */ -#if FF_API_ALLOW_FLUSH -#define AVFMT_ALLOW_FLUSH 0x10000 /**< @deprecated: Just send a NULL packet if you want to flush a muxer. */ -#endif #define AVFMT_TS_NONSTRICT 0x20000 /**< Format does not require strictly increasing timestamps, but they must still be monotonic */ diff --git a/libavformat/fifo.c b/libavformat/fifo.c index 23e4149ad6..936a153a49 100644 --- a/libavformat/fifo.c +++ b/libavformat/fifo.c @@ -717,11 +717,7 @@ const FFOutputFormat ff_fifo_muxer = { .p.name = "fifo", .p.long_name = NULL_IF_CONFIG_SMALL("FIFO queue pseudo-muxer"), .p.priv_class = &fifo_muxer_class, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, -#else .p.flags = AVFMT_NOFILE | AVFMT_TS_NEGATIVE, -#endif .priv_data_size = sizeof(FifoContext), .init = fifo_init, .write_header = fifo_write_header, diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 6148685f40..f1f03dbd49 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -3256,11 +3256,7 @@ const FFOutputFormat ff_hls_muxer = { .p.audio_codec = AV_CODEC_ID_AAC, .p.video_codec = AV_CODEC_ID_H264, .p.subtitle_codec = AV_CODEC_ID_WEBVTT, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_NOFILE | AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_NODIMENSIONS, -#else .p.flags = AVFMT_NOFILE | AVFMT_GLOBALHEADER | AVFMT_NODIMENSIONS, -#endif .p.priv_class = &hls_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, .priv_data_size = sizeof(HLSContext), diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 2e06f68304..6d0d791f18 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -3601,11 +3601,7 @@ const FFOutputFormat ff_matroska_muxer = { .write_packet = mkv_write_flush_packet, .write_trailer = mkv_write_trailer, .p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS | -#if FF_API_ALLOW_FLUSH - AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH, -#else AVFMT_TS_NONSTRICT, -#endif .p.codec_tag = (const AVCodecTag* const []){ ff_codec_bmp_tags, ff_codec_wav_tags, additional_audio_tags, additional_subtitle_tags, 0 @@ -3645,11 +3641,7 @@ const FFOutputFormat ff_webm_muxer = { .query_codec = webm_query_codec, .check_bitstream = mkv_check_bitstream, .p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS | -#if FF_API_ALLOW_FLUSH - AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH, -#else AVFMT_TS_NONSTRICT, -#endif .p.priv_class = &matroska_webm_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; @@ -3671,12 +3663,7 @@ const FFOutputFormat ff_matroska_audio_muxer = { .write_packet = mkv_write_flush_packet, .write_trailer = mkv_write_trailer, .check_bitstream = mkv_check_bitstream, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NONSTRICT | - AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NONSTRICT, -#endif .p.codec_tag = (const AVCodecTag* const []){ ff_codec_wav_tags, additional_audio_tags, 0 }, diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 76dce9e6e5..daac6e8957 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -8713,11 +8713,7 @@ const FFOutputFormat ff_mov_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, - .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS -#if FF_API_ALLOW_FLUSH - | AVFMT_ALLOW_FLUSH -#endif - , + .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS, .p.codec_tag = (const AVCodecTag* const []){ ff_codec_movvideo_tags, ff_codec_movaudio_tags, ff_codec_movsubtitle_tags, 0 }, @@ -8739,11 +8735,7 @@ const FFOutputFormat ff_tgp_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, -#else .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE, -#endif .p.codec_tag = codec_3gp_tags_list, .check_bitstream = mov_check_bitstream, .p.priv_class = &mov_isobmff_muxer_class, @@ -8765,11 +8757,7 @@ const FFOutputFormat ff_mp4_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, - .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS -#if FF_API_ALLOW_FLUSH - | AVFMT_ALLOW_FLUSH -#endif - , + .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE | AVFMT_VARIABLE_FPS, .p.codec_tag = mp4_codec_tags_list, .check_bitstream = mov_check_bitstream, .p.priv_class = &mov_isobmff_muxer_class, @@ -8790,11 +8778,7 @@ const FFOutputFormat ff_psp_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, -#else .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE, -#endif .p.codec_tag = mp4_codec_tags_list, .check_bitstream = mov_check_bitstream, .p.priv_class = &mov_isobmff_muxer_class, @@ -8814,11 +8798,7 @@ const FFOutputFormat ff_tg2_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, -#else .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE, -#endif .p.codec_tag = codec_3gp_tags_list, .check_bitstream = mov_check_bitstream, .p.priv_class = &mov_isobmff_muxer_class, @@ -8839,11 +8819,7 @@ const FFOutputFormat ff_ipod_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, -#else .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE, -#endif .p.codec_tag = (const AVCodecTag* const []){ codec_ipod_tags, 0 }, .check_bitstream = mov_check_bitstream, .p.priv_class = &mov_isobmff_muxer_class, @@ -8864,11 +8840,7 @@ const FFOutputFormat ff_ismv_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, -#else .p.flags = AVFMT_GLOBALHEADER | AVFMT_TS_NEGATIVE, -#endif .p.codec_tag = (const AVCodecTag* const []){ codec_mp4_tags, codec_ism_tags, 0 }, .check_bitstream = mov_check_bitstream, @@ -8890,11 +8862,7 @@ const FFOutputFormat ff_f4v_muxer = { .write_packet = mov_write_packet, .write_trailer = mov_write_trailer, .deinit = mov_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_GLOBALHEADER, -#endif .p.codec_tag = (const AVCodecTag* const []){ codec_f4v_tags, 0 }, .check_bitstream = mov_check_bitstream, .p.priv_class = &mov_isobmff_muxer_class, @@ -8914,11 +8882,7 @@ const FFOutputFormat ff_avif_muxer = { .write_packet = mov_write_packet, .write_trailer = avif_write_trailer, .deinit = mov_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_GLOBALHEADER, -#endif .p.codec_tag = codec_avif_tags_list, .p.priv_class = &mov_avif_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 399ba21d29..6935b71cfe 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -2413,11 +2413,7 @@ const FFOutputFormat ff_mpegts_muxer = { .write_trailer = mpegts_write_end, .deinit = mpegts_deinit, .check_bitstream = mpegts_check_bitstream, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_ALLOW_FLUSH | AVFMT_VARIABLE_FPS | AVFMT_NODIMENSIONS, -#else .p.flags = AVFMT_VARIABLE_FPS | AVFMT_NODIMENSIONS, -#endif .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, .p.priv_class = &mpegts_muxer_class, }; diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index 0647111396..e1bb7dd972 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -773,11 +773,7 @@ const FFOutputFormat ff_ogg_muxer = { .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, .deinit = ogg_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT, -#endif .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; @@ -796,11 +792,7 @@ const FFOutputFormat ff_oga_muxer = { .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, .deinit = ogg_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_TS_NEGATIVE, -#endif .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; @@ -822,11 +814,7 @@ const FFOutputFormat ff_ogv_muxer = { .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, .deinit = ogg_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_TS_NEGATIVE | AVFMT_TS_NONSTRICT, -#endif .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; @@ -845,11 +833,7 @@ const FFOutputFormat ff_spx_muxer = { .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, .deinit = ogg_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_TS_NEGATIVE, -#endif .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; @@ -868,11 +852,7 @@ const FFOutputFormat ff_opus_muxer = { .write_packet = ogg_write_packet, .write_trailer = ogg_write_trailer, .deinit = ogg_free, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_TS_NEGATIVE | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_TS_NEGATIVE, -#endif .p.priv_class = &ogg_muxer_class, .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; diff --git a/libavformat/tee.c b/libavformat/tee.c index 1a2a8ead82..0150ee9f22 100644 --- a/libavformat/tee.c +++ b/libavformat/tee.c @@ -610,10 +610,6 @@ const FFOutputFormat ff_tee_muxer = { .write_trailer = tee_write_trailer, .write_packet = tee_write_packet, .p.priv_class = &tee_muxer_class, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, -#else .p.flags = AVFMT_NOFILE | AVFMT_TS_NEGATIVE, -#endif .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; diff --git a/libavformat/tests/fifo_muxer.c b/libavformat/tests/fifo_muxer.c index 222761fed3..1ba440b301 100644 --- a/libavformat/tests/fifo_muxer.c +++ b/libavformat/tests/fifo_muxer.c @@ -154,11 +154,7 @@ const FFOutputFormat ff_fifo_test_muxer = { .write_trailer = fifo_test_trailer, .deinit = failing_deinit, .p.priv_class = &failing_muxer_class, -#if FF_API_ALLOW_FLUSH - .p.flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH, -#else .p.flags = AVFMT_NOFILE, -#endif .flags_internal = FF_OFMT_FLAG_ALLOW_FLUSH, }; diff --git a/libavformat/version_major.h b/libavformat/version_major.h index e189ed90ac..f76d811889 100644 --- a/libavformat/version_major.h +++ b/libavformat/version_major.h @@ -42,7 +42,6 @@ * */ #define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62) -#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62) #define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62) #define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62) -- 2.48.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2025-02-23 22:10 UTC|newest] Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-02-23 22:06 [FFmpeg-devel] [PATCH 00/31] Major library soname bump James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 01/30] avcodec: remove deprecated FF_API_SUBFRAMES James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 02/30] avcodec: remove deprecated FF_API_TICKS_PER_FRAME James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 03/30] avcodec: remove deprecated FF_API_DROPCHANGED James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 04/30] avcodec: remove deprecated FF_API_AVFFT James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 05/30] avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 06/30] avcodec: remove deprecated FF_API_AVCODEC_CLOSE James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 07/30] avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 08/30] avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 09/30] avcodec: remove deprecated FF_API_QUALITY_FACTOR James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 10/30] avcodec/version_major: postpone some deprecations until the next bump James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 11/30] avdevice: remove deprecated FF_API_BKTR_DEVICE James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 12/30] avdevice: remove deprecated FF_API_OPENGL_DEVICE James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 13/30] avdevice: remove deprecated FF_API_SDL2_DEVICE James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 14/30] avdevice/version_major: postpone some deprecations until the next bump James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 15/30] avformat: remove deprecated FF_API_LAVF_SHORTEST James Almer 2025-02-23 22:06 ` James Almer [this message] 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 17/30] avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 18/30] avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 19/30] avformat/version_major: postpone some deprecations until the next bump James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 20/30] avfilter: remove deprecated FF_API_LINK_PUBLIC James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 21/30] avfilter/version_major: postpone some deprecations until the next bump James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 22/30] avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 23/30] avutil: remove deprecated FF_API_FRAME_PKT James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 24/30] avutil: remove deprecated FF_API_INTERLACED_FRAME James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 25/30] avutil: remove deprecated FF_API_FRAME_KEY James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 26/30] avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 27/30] avutil: remove deprecated FF_API_VULKAN_CONTIGUOUS_MEMORY James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 28/30] avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 29/30] avutil/version_major: postpone some deprecations until the next bump James Almer 2025-02-23 22:06 ` [FFmpeg-devel] [PATCH 30/30] libs: bump major version for all libraries James Almer
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20250223220630.18756-17-jamrial@gmail.com \ --to=jamrial@gmail.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git