[FFmpeg-trac] #11218(undetermined:new): Encodes are failing in 7.1 with error parsing options for output file, error opening output files

FFmpeg trac at avcodec.org
Wed Oct 2 01:56:13 EEST 2024


#11218: Encodes are failing in 7.1 with error parsing options for output file,
error opening output files
-------------------------------------+-------------------------------------
             Reporter:  John Hauer   |                    Owner:  (none)
                 Type:  defect       |                   Status:  new
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  unspecified  |               Resolution:
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Description changed by John Hauer:

Old description:

> I am try to transcode from h.264 to h.265
>
> The encode is failing with the following error on every .mkv file I try
> to transcode:
>
> Stream type specified multiple times
> Error parsing options for output file D:\Directory\filename.mkv.
> Error opening output files: Invalid argument
>
> The exact command I am using, which works properly in 6.x and 7.0.x:
>
> ffmpeg -v 9 -loglevel 99 -y -i eureka.mkv -c:v libx265 -pix_fmt
> yuv420p10le -preset medium -crf 22 -c:a libopus -mapping_family:a 255
> -map 0 -disposition:s:s 0 -c:s copy eureka_x265.mkv
>
> C:\Temp>ffmpeg -v 9 -loglevel 99 -y -i eureka.mkv -c:v libx265 -pix_fmt
> yuv420p10le -preset medium -crf 22 -c:a libopus -mapping_family:a 255
> -map 0 -disposition:s:s 0 -c:s copy eureka_x265.mkv
> ffmpeg version 7.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the
> FFmpeg developers
>   built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
>   configuration: --enable-gpl --enable-version3 --enable-static
> --disable-w32threads --disable-autodetect --enable-fontconfig --enable-
> iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib
> --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-
> libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-
> libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-
> libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg
> --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi
> --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-
> libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-
> libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-
> libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-
> frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz
> --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg
> --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-
> d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-
> nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan
> --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme
> --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb
> --enable-libmp3lame --enable-libshine --enable-libtheora --enable-
> libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc
> --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-
> libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-
> libbs2b --enable-libflite --enable-libmysofa --enable-librubberband
> --enable-libsoxr --enable-chromaprint
>   libavutil      59. 39.100 / 59. 39.100
>   libavcodec     61. 19.100 / 61. 19.100
>   libavformat    61.  7.100 / 61.  7.100
>   libavdevice    61.  3.100 / 61.  3.100
>   libavfilter    10.  4.100 / 10.  4.100
>   libswscale      8.  3.100 /  8.  3.100
>   libswresample   5.  3.100 /  5.  3.100
>   libpostproc    58.  3.100 / 58.  3.100
> Splitting the commandline.
> Reading option '-v' ... matched as option 'v' (set logging level) with
> argument '9'.
> Reading option '-loglevel' ... matched as option 'loglevel' (set logging
> level) with argument '99'.
> Reading option '-y' ... matched as option 'y' (overwrite output files)
> with argument '1'.
> Reading option '-i' ... matched as input url with argument 'eureka.mkv'.
> Reading option '-c:v' ... matched as option 'c' (select encoder/decoder
> ('copy' to copy stream without reencoding)) with argument 'libx265'.
> Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel
> format) with argument 'yuv420p10le'.
> Reading option '-preset' ... matched as AVOption 'preset' with argument
> 'medium'.
> Reading option '-crf' ... matched as AVOption 'crf' with argument '22'.
> Reading option '-c:a' ... matched as option 'c' (select encoder/decoder
> ('copy' to copy stream without reencoding)) with argument 'libopus'.
> Reading option '-mapping_family:a' ... matched as AVOption
> 'mapping_family:a' with argument '255'.
> Reading option '-map' ... matched as option 'map' (set input stream
> mapping) with argument '0'.
> Reading option '-disposition:s:s' ... matched as option 'disposition'
> (disposition) with argument '0'.
> Reading option '-c:s' ... matched as option 'c' (select encoder/decoder
> ('copy' to copy stream without reencoding)) with argument 'copy'.
> Reading option 'eureka_x265.mkv' ... matched as output url.
> Finished splitting the commandline.
> Parsing a group of options: global .
> Applying option v (set logging level) with argument 9.
> Applying option y (overwrite output files) with argument 1.
> Successfully parsed a group of options.
> Parsing a group of options: input url eureka.mkv.
> Successfully parsed a group of options.
> Opening an input file: eureka.mkv.
> [AVFormatContext @ 0000029b000797c0] Opening 'eureka.mkv' for reading
> [file @ 0000029b00078640] Setting default whitelist 'file,crypto,data'
> Probing matroska,webm score:100 size:2048
> [matroska,webm @ 0000029b000797c0] Format matroska,webm probed with
> size=2048 and score=100
> st:0 removing common factor 1000000 from timebase
> st:1 removing common factor 1000000 from timebase
> [matroska,webm @ 0000029b000797c0] Before avformat_find_stream_info()
> pos: 2582 bytes read:33580 seeks:2 nb_streams:2
> [h264 @ 0000029b0007c080] nal_unit_type: 7(SPS), nal_ref_idc: 3
> [h264 @ 0000029b0007c080] Decoding VUI
> [h264 @ 0000029b0007c080] nal_unit_type: 8(PPS), nal_ref_idc: 3
> For transform of length 128, inverse, mdct_float, flags: [aligned,
> out_of_place], found 3 matches:
>     1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]:
> [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
>     2: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2,
> any], flags: [unaligned, out_of_place, inv_only], prio: 96
>     3: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞],
> factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio:
> -130976
> For transform of length 64, inverse, fft_float, flags: [aligned, inplace,
> preshuf, asm_call], found 3 matches:
>     1: fft_sr_asm_float_fma3 - type: fft_float, len: [64, 2097152],
> factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call],
> prio: 448
>     2: fft_sr_asm_float_avx2 - type: fft_float, len: [64, 2097152],
> factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call],
> prio: 447
>     3: fft_sr_asm_float_avx - type: fft_float, len: [64, 2097152],
> factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call],
> prio: 416
> Transform tree:
>     mdct_inv_float_avx2 - type: mdct_float, len: 128, factors[2]: [2,
> any], flags: [aligned, out_of_place, inv_only]
>         fft_sr_asm_float_fma3 - type: fft_float, len: 64, factor: 2,
> flags: [aligned, inplace, out_of_place, preshuf, asm_call]
> For transform of length 256, inverse, mdct_float, flags: [aligned,
> out_of_place], found 3 matches:
>     1: mdct_inv_float_avx2 - type: mdct_float, len: [16, ∞], factors[2]:
> [2, any], flags: [aligned, out_of_place, inv_only], prio: 511
>     2: mdct_inv_float_c - type: mdct_float, len: [2, ∞], factors[2]: [2,
> any], flags: [unaligned, out_of_place, inv_only], prio: 96
>     3: mdct_naive_inv_float_c - type: mdct_float, len: [2, ∞],
> factors[2]: [2, any], flags: [unaligned, out_of_place, inv_only], prio:
> -130976
> For transform of length 128, inverse, fft_float, flags: [aligned,
> inplace, preshuf, asm_call], found 3 matches:
>     1: fft_sr_asm_float_fma3 - type: fft_float, len: [64, 2097152],
> factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call],
> prio: 448
>     2: fft_sr_asm_float_avx2 - type: fft_float, len: [64, 2097152],
> factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call],
> prio: 447
>     3: fft_sr_asm_float_avx - type: fft_float, len: [64, 2097152],
> factor: 2, flags: [aligned, inplace, out_of_place, preshuf, asm_call],
> prio: 416
> Transform tree:
>     mdct_inv_float_avx2 - type: mdct_float, len: 256, factors[2]: [2,
> any], flags: [aligned, out_of_place, inv_only]
>         fft_sr_asm_float_fma3 - type: fft_float, len: 128, factor: 2,
> flags: [aligned, inplace, out_of_place, preshuf, asm_call]
> [h264 @ 0000029b0007c080] nal_unit_type: 7(SPS), nal_ref_idc: 3
> [h264 @ 0000029b0007c080] Decoding VUI
> [h264 @ 0000029b0007c080] nal_unit_type: 8(PPS), nal_ref_idc: 3
> [h264 @ 0000029b0007c080] Decoding VUI
> [h264 @ 0000029b0007c080] ct_type:4 pic_struct:0
> [h264 @ 0000029b0007c080] nal_unit_type: 9(AUD), nal_ref_idc: 0
> [h264 @ 0000029b0007c080] nal_unit_type: 7(SPS), nal_ref_idc: 3
> [h264 @ 0000029b0007c080] nal_unit_type: 8(PPS), nal_ref_idc: 3
> [h264 @ 0000029b0007c080] nal_unit_type: 6(SEI), nal_ref_idc: 0
>     Last message repeated 1 times
> [h264 @ 0000029b0007c080] nal_unit_type: 5(IDR), nal_ref_idc: 3
>     Last message repeated 3 times
> [h264 @ 0000029b0007c080] Decoding VUI
> [h264 @ 0000029b0007c080] Format yuv420p chosen by get_format().
> [h264 @ 0000029b0007c080] Reinit context to 1920x1088, pix_fmt: yuv420p
> [h264 @ 0000029b0007c080] ct_type:4 pic_struct:0
> [h264 @ 0000029b0007c080] no picture
> [h264 @ 0000029b0007c080] ct_type:4 pic_struct:0
>     Last message repeated 1 times
> [matroska,webm @ 0000029b000797c0] All info found
> [matroska,webm @ 0000029b000797c0] stream 0: start_time: 0 duration:
> NOPTS
> [matroska,webm @ 0000029b000797c0] stream 1: start_time: 0 duration:
> NOPTS
> [matroska,webm @ 0000029b000797c0] format: start_time: 0 duration: 12.012
> (estimate from stream) bitrate=1763 kb/s
> [matroska,webm @ 0000029b000797c0] After avformat_find_stream_info() pos:
> 11044 bytes read:66348 seeks:2 frames:6
> Input #0, matroska,webm, from 'eureka.mkv':
>   Metadata:
>     title           : REVENGE
>     encoder         : libmakemkv v1.17.6 (1.3.10/1.5.2) win(x64-release)
>     creation_time   : 2024-01-30T03:52:25.000000Z
>   Duration: 00:00:12.01, start: 0.000000, bitrate: 1763 kb/s
>   Stream #0:0(eng), 3, 1/1000: Video: h264 (High), 1 reference frame,
> yuv420p(tv, bt709, progressive, left), 1920x1080 [SAR 1:1 DAR 16:9], 0/1,
> 23.98 fps, 23.98 tbr, 1k tbn
>       Metadata:
>         BPS-eng         : 1311607
>         DURATION-eng    : 00:00:12.012000000
>         NUMBER_OF_FRAMES-eng: 288
>         NUMBER_OF_BYTES-eng: 1969379
>         SOURCE_ID-eng   : 001011
>         _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
>         _STATISTICS_WRITING_DATE_UTC-eng: 2024-01-30 03:52:25
>         _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES
> NUMBER_OF_BYTES SOURCE_ID
>   Stream #0:1(eng), 3, 1/1000: Audio: ac3, 48000 Hz, stereo, fltp, 448
> kb/s (default)
>       Metadata:
>         title           : Stereo
>         BPS-eng         : 448000
>         DURATION-eng    : 00:00:12.000000000
>         NUMBER_OF_FRAMES-eng: 375
>         NUMBER_OF_BYTES-eng: 672000
>         SOURCE_ID-eng   : 001100
>         _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
>         _STATISTICS_WRITING_DATE_UTC-eng: 2024-01-30 03:52:25
>         _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES
> NUMBER_OF_BYTES SOURCE_ID
> Successfully opened the file.
> Parsing a group of options: output url eureka_x265.mkv.
> Applying option c:v (select encoder/decoder ('copy' to copy stream
> without reencoding)) with argument libx265.
> Parsing stream specifier: v
> Parsed media type: video; remainder:
> Applying option pix_fmt (set pixel format) with argument yuv420p10le.
> Parsing stream specifier:
> Applying option c:a (select encoder/decoder ('copy' to copy stream
> without reencoding)) with argument libopus.
> Parsing stream specifier: a
> Parsed media type: audio; remainder:
> Applying option map (set input stream mapping) with argument 0.
> Parsing stream specifier:
> Applying option disposition:s:s (disposition) with argument 0.
> Parsing stream specifier: s:s
> Parsed media type: subtitle; remainder: :s
> Stream type specified multiple times
> Error parsing options for output file eureka_x265.mkv.
> Error opening output files: Invalid argument
> [AVIOContext @ 0000029b00081f40] Statistics: 66348 bytes read, 2 seeks

New description:

 I am try to transcode from h.264 to h.265

 The encode is failing with the following error on every .mkv file I try to
 transcode:

 Stream type specified multiple times
 Error parsing options for output file eureka_x265.mkv.
 Error opening output files: Invalid argument

 The exact command I am using, which works properly in 6.x and 7.0.x:

 ffmpeg -v 9 -loglevel 99 -y -i eureka.mkv -c:v libx265 -pix_fmt
 yuv420p10le -preset medium -crf 22 -c:a libopus -mapping_family:a 255 -map
 0 -disposition:s:s 0 -c:s copy eureka_x265.mkv

 c:\Temp>ffmpeg -v 9 -loglevel 99 -y -i eureka.mkv -c:v libx265 -pix_fmt
 yuv420p10le -preset medium -crf 22 -c:a libopus -mapping_family:a 255 -map
 0 -disposition:s:s 0 -c:s copy eureka_x265.mkv
 ffmpeg version 7.1-full_build-www.gyan.dev Copyright (c) 2000-2024 the
 FFmpeg developers
   built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 w32threads --disable-autodetect --enable-fontconfig --enable-iconv
 --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma
 --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt
 --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray
 --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption
 --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc
 --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode
 --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp
 --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve
 --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-
 mediafoundation --enable-libass --enable-frei0r --enable-libfreetype
 --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-
 libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-
 llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va
 --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-
 vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-
 opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-
 libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-
 libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc
 --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3
 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-
 libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-
 libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
   libavutil      59. 39.100 / 59. 39.100
   libavcodec     61. 19.100 / 61. 19.100
   libavformat    61.  7.100 / 61.  7.100
   libavdevice    61.  3.100 / 61.  3.100
   libavfilter    10.  4.100 / 10.  4.100
   libswscale      8.  3.100 /  8.  3.100
   libswresample   5.  3.100 /  5.  3.100
   libpostproc    58.  3.100 / 58.  3.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-y' ... matched as option 'y' (overwrite output files)
 with argument '1'.
 Reading option '-i' ... matched as input url with argument 'eureka.mkv'.
 Reading option '-c:v' ... matched as option 'c' (select encoder/decoder
 ('copy' to copy stream without reencoding)) with argument 'libx265'.
 Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel
 format) with argument 'yuv420p10le'.
 Reading option '-preset' ... matched as AVOption 'preset' with argument
 'medium'.
 Reading option '-crf' ... matched as AVOption 'crf' with argument '22'.
 Reading option '-c:a' ... matched as option 'c' (select encoder/decoder
 ('copy' to copy stream without reencoding)) with argument 'libopus'.
 Reading option '-mapping_family:a' ... matched as AVOption
 'mapping_family:a' with argument '255'.
 Reading option '-map' ... matched as option 'map' (set input stream
 mapping) with argument '0'.
 Reading option '-disposition:s:s' ... matched as option 'disposition'
 (disposition) with argument '0'.
 Reading option '-c:s' ... matched as option 'c' (select encoder/decoder
 ('copy' to copy stream without reencoding)) with argument 'copy'.
 Reading option 'eureka_x265.mkv' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Applying option y (overwrite output files) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input url eureka.mkv.
 Successfully parsed a group of options.
 Opening an input file: eureka.mkv.
 [AVFormatContext @ 000002642bdb0340] Opening 'eureka.mkv' for reading
 [file @ 000002642bdc8640] Setting default whitelist 'file,crypto,data'
 Probing matroska,webm score:100 size:2048
 Probing mp3 score:1 size:2048
 [matroska,webm @ 000002642bdb0340] Format matroska,webm probed with
 size=2048 and score=100
 st:0 removing common factor 1000000 from timebase
 [matroska,webm @ 000002642bdb0340] Before avformat_find_stream_info() pos:
 900 bytes read:32768 seeks:0 nb_streams:1
 [h264 @ 000002642bdcb5c0] nal_unit_type: 7(SPS), nal_ref_idc: 3
 [h264 @ 000002642bdcb5c0] Decoding VUI
 [h264 @ 000002642bdcb5c0] nal_unit_type: 8(PPS), nal_ref_idc: 3
 [h264 @ 000002642bdcb5c0] nal_unit_type: 7(SPS), nal_ref_idc: 3
 [h264 @ 000002642bdcb5c0] Decoding VUI
 [h264 @ 000002642bdcb5c0] nal_unit_type: 8(PPS), nal_ref_idc: 3
 [h264 @ 000002642bdcb5c0] nal_unit_type: 6(SEI), nal_ref_idc: 0
 [h264 @ 000002642bdcb5c0] nal_unit_type: 5(IDR), nal_ref_idc: 3
 [h264 @ 000002642bdcb5c0] Format yuv420p chosen by get_format().
 [h264 @ 000002642bdcb5c0] Reinit context to 960x544, pix_fmt: yuv420p
 [h264 @ 000002642bdcb5c0] no picture
 [matroska,webm @ 000002642bdb0340] All info found
 [matroska,webm @ 000002642bdb0340] stream 0: start_time: 0 duration: NOPTS
 [matroska,webm @ 000002642bdb0340] format: start_time: 0 duration: 13.346
 (estimate from stream) bitrate=790 kb/s
 [matroska,webm @ 000002642bdb0340] After avformat_find_stream_info() pos:
 59631 bytes read:65536 seeks:0 frames:4
 Input #0, matroska,webm, from 'eureka.mkv':
   Metadata:
     COMPATIBLE_BRANDS: mp42mp41isomavc1
     MAJOR_BRAND     : mp42
     MINOR_VERSION   : 0
     ENCODER         : Lavf57.83.100
   Duration: 00:00:13.35, start: 0.000000, bitrate: 790 kb/s
   Stream #0:0, 4, 1/1000: Video: h264 (High), 1 reference frame,
 yuv420p(progressive, left), 960x540, 0/1, 29.97 fps, 29.97 tbr, 1k tbn
 (default)
       Metadata:
         HANDLER_NAME    : L-SMASH Video Handler
         ENCODER         : Lavc57.107.100 libx264
         DURATION        : 00:00:13.346000000
 Successfully opened the file.
 Parsing a group of options: output url eureka_x265.mkv.
 Applying option c:v (select encoder/decoder ('copy' to copy stream without
 reencoding)) with argument libx265.
 Parsing stream specifier: v
 Parsed media type: video; remainder:
 Applying option pix_fmt (set pixel format) with argument yuv420p10le.
 Parsing stream specifier:
 Applying option c:a (select encoder/decoder ('copy' to copy stream without
 reencoding)) with argument libopus.
 Parsing stream specifier: a
 Parsed media type: audio; remainder:
 Applying option map (set input stream mapping) with argument 0.
 Parsing stream specifier:
 Applying option disposition:s:s (disposition) with argument 0.
 Parsing stream specifier: s:s
 Parsed media type: subtitle; remainder: :s
 Stream type specified multiple times
 Error parsing options for output file eureka_x265.mkv.
 Error opening output files: Invalid argument
 [AVIOContext @ 000002642bdb0a40] Statistics: 65536 bytes read, 0 seeks

--
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11218#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list