徐慧书:
> Andreas Rheinhardt 于2020年10月16日周五 下午9:32写道:
>
>> javashu2...@gmail.com:
>>> From: bevis
>>>
>>> Signed-off-by: bevis
>>> ---
>>> libavformat/hls.c | 5 +++--
>>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/libavformat/hls.c b/libavformat/hls.c
>>> index 72e28ab9
> On Oct 19, 2020, at 10:42 AM, Xiaohui Zhang wrote:
>
> From: Zhang Xiaohui
>
> Hi, I think function mov_read_cmov fails to perform proper bounds
> checking on atom.size and cmov_len, which may lead to integer
> overflow and invalid memory allocation.
>
> Signed-off-by: Zhang Xiaohui
> ---
javashu2...@gmail.com:
> From: bevis
>
> Start planning to submit in two, This is my complete modification.
>
> Signed-off-by: bevis
> ---
> libavcodec/pthread_frame.c | 25 +
> 1 file changed, 13 insertions(+), 12 deletions(-)
>
> diff --git a/libavcodec/pthread_fr
Prepare use of s337m_get_packet from outside.
---
libavformat/s337m.c | 26 --
libavformat/s337m.h | 37 +
2 files changed, 57 insertions(+), 6 deletions(-)
create mode 100644 libavformat/s337m.h
diff --git a/libavformat/s337m.c b/libav
Fixes pts generation.
Setting frame_size in dolby_e_init() or get_audio_frame_duration()
can result in a bad duration value for the first packet if dolby_e is
muxed in a container having a different sample_rate (ex:
container @48KHz, DolbyE @44.8KHz).
Maybe adding a parser to dolby_e would fix the
Updates:
* patch 1 : commit msg amended (anton)
* patch 3 : 'if' line split (tomas)
Everthing else: unchanged since v4
For remembering: the test sample 512.wav can be downloaded here:
https://0x0.st/zdW-.wav
Nicolas Gaullier (9):
avcodec/dolby_e: set constant frame_size
avformat/s337m: Split
Add s337m probing/reading similarly to spdif.
---
libavformat/wavdec.c | 37 -
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index d6ab0dde35..b755ab5514 100644
--- a/libavformat/wavdec.c
+++ b/libavfo
---
libavformat/wavdec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index 5b287680e2..9f48ff067b 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -80,7 +80,7 @@ static void set_spdif_s337m(AVFormatContext *s,
WAVD
Similar to ff_spdif_probe() with just an additional checking of
the bit resolution of the container as it may be 16 or 24 for s337m.
---
libavformat/s337m.c | 32
libavformat/s337m.h | 16
2 files changed, 48 insertions(+)
diff --git a/libavformat
Prepare the support of s337m in muxers other than raw (ex: wav).
For example, this forbids reading 16 bits DolbyE stream from a 24 bit wav file.
---
libavformat/s337m.c | 21 +++--
libavformat/s337m.h | 3 ++-
2 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/libavfo
---
libavformat/wavdec.c | 16
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index b755ab5514..5b287680e2 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -768,14 +768,14 @@ smv_out:
size = FFMIN(S
Test s337m probing in wav container.
Test dolby_e demuxing for 20 bits with program config '5.1+2'.
---
tests/Makefile | 1 +
tests/fate/audio.mak | 3 +++
tests/ref/fate/s337m-wav | 11 +++
3 files changed, 15 insertions(+)
create mode 100644 tests/ref/fate/s337m-wav
dif
Allows user to disable codec auto-detection.
Probe requests are ignored, including spdif/s337m submux detection in wavdec.
Note: this option is required to pass-through dolby_e data from a wav file.
---
doc/formats.texi| 3 +++
libavformat/avformat.h | 9 -
libavformat/opt
From: ffmpeg-devel on behalf of Steven Liu
Sent: Monday, October 19, 2020 7:43 AM
To: FFmpeg development discussions and patches
Subject: Re: [FFmpeg-devel] [PATCH] libavformat/hls: add support for SAMPLE-AES
decryption in HLS demuxer
Nachiket Tarate
> 2020年10月19日 下午4:10,Nachiket Tarate 写道:
>
>
>
>
> From: ffmpeg-devel on behalf of Steven Liu
>
> Sent: Monday, October 19, 2020 7:43 AM
> To: FFmpeg development discussions and patches
> Subject: Re: [FFmpeg-devel] [PATCH] libavformat/hls: add supp
On 16/10/20 4:22 pm, Zane van Iperen wrote:
>
> adpcm_swf support in WAV is completely broken. block_align isn't set
> correctly, so
> the demuxer gives incorrect packets to the decoder. The encoder doesn't
> provide a
> value for block_align, so it's set to 1.
>
> All of this has no bearing
This decoder has the FF_CODEC_CAP_INIT_CLEANUP set.
Signed-off-by: Andreas Rheinhardt
---
libavcodec/on2avc.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/libavcodec/on2avc.c b/libavcodec/on2avc.c
index 3b566e1e4b..2453343be9 100644
--- a/libavcodec/on2avc.c
+++ b/libavcodec/on2avc.c
@@ -9
Signed-off-by: Andreas Rheinhardt
---
libavcodec/on2avc.c | 35 ++-
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/libavcodec/on2avc.c b/libavcodec/on2avc.c
index 625e733ca3..3b566e1e4b 100644
--- a/libavcodec/on2avc.c
+++ b/libavcodec/on2avc.c
@@
Am 12.10.20 um 09:35 schrieb Jean-Baptiste Kempf:
> General Assembly + Main Elections
> ---
> doc/dev_community/community.md | 80 ++
> 1 file changed, 80 insertions(+)
> create mode 100644 doc/dev_community/community.md
pushed. Thx!
-Thilo
__
Quoting Andreas Rheinhardt (2020-10-19 13:07:05)
> Signed-off-by: Andreas Rheinhardt
> ---
> libavcodec/on2avc.c | 35 ++-
> 1 file changed, 18 insertions(+), 17 deletions(-)
>
I don't quite see the point of this. I cannot imagine it is measurably
faster, the mem
On Sat, 2020-10-17 at 19:52 +0200, Andreas Rheinhardt wrote:
> Joakim Tjernlund:
> > On Fri, 2020-10-16 at 01:38 +0200, Andreas Rheinhardt wrote:
> > > CAUTION: This email originated from outside of the organization. Do not
> > > click links or open attachments unless you recognize the sender and
Quoting Zane van Iperen (2020-10-16 08:22:41)
> Allows it to be muxed to WAVs.
>
> Signed-off-by: Zane van Iperen
> ---
> libavcodec/adpcmenc.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
Looks sane
--
Anton Khirnov
___
ffmpeg-devel
Quoting Zane van Iperen (2020-10-16 08:22:50)
> Signed-off-by: Zane van Iperen
> ---
> libavcodec/adpcmenc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
Sure
--
Anton Khirnov
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https
Quoting Zane van Iperen (2020-10-18 04:13:57)
>
>
> On 16/10/20 4:22 pm, Zane van Iperen wrote:
> >
> > adpcm_swf support in WAV is completely broken. block_align isn't set
> > correctly, so
> > the demuxer gives incorrect packets to the decoder. The encoder doesn't
> > provide a
> > value for
Fixes: signed integer overflow: 9223372036854775807 + 1 cannot be represented
in type 'long'
Fixes: Timeout
Fixes:
26434/clusterfuzz-testcase-minimized-ffmpeg_dem_MV_fuzzer-5752845451919360
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signe
Fixes: signed integer overflow: 190587 * 11585 cannot be represented in type
'int'
Fixes:
26407/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VP9_fuzzer-5086348408782848
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michae
Fixes: division by 0
Fixes:
26208/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FITS_fuzzer-6270472117026816
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
libavcodec/fits.c | 2 ++
1 file changed,
No benchmark because this is not used in any speed relevant pathes nor is it
used where __builtin_add_overflow is available.
So I do not know how to realistically benchmark it.
Signed-off-by: Michael Niedermayer
---
libavutil/common.h | 9 -
1 file changed, 4 insertions(+), 5 deletions(-
Fixes: left shift of 90 by 3 places cannot be represented in type 'int'
Fixes:
26437/clusterfuzz-testcase-minimized-ffmpeg_dem_NISTSPHERE_fuzzer-4886896091856896
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Nie
Fixes: signed integer overflow: 345801500790256 + 642568637304000
cannot be represented in type 'long'
Fixes:
26430/clusterfuzz-testcase-minimized-ffmpeg_dem_BRSTM_fuzzer-5761175004119040
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Fixes: Infinite loop
Fixes:
26392/clusterfuzz-testcase-minimized-ffmpeg_dem_GIF_fuzzer-5713658237419520
Fixes:
26435/clusterfuzz-testcase-minimized-ffmpeg_dem_SUBVIEWER_fuzzer-6548251853193216
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Si
Michael Niedermayer (12020-10-19):
> Fixes: signed integer overflow: 345801500790256 + 642568637304000
> cannot be represented in type 'long'
> Fixes:
> 26430/clusterfuzz-testcase-minimized-ffmpeg_dem_BRSTM_fuzzer-5761175004119040
>
> Found-by: continuous fuzzing process
> https://githu
Quoting Michael Niedermayer (2020-10-16 13:30:28)
> Fixes: pixel decode issue.ts
> Fixes: raw frame.hevc
This is useless when there is no indication as to where to get these
files.
If those are valid files that we did not handle properly before then we
need new tests to cover this case.
--
Anto
Quoting James Almer (2020-10-14 19:26:51)
> On 10/14/2020 2:09 PM, Michael Niedermayer wrote:
> > On Wed, Oct 14, 2020 at 10:53:10AM +0200, Anton Khirnov wrote:
> >> Use a floating-point score value to take into account bitrate, when
> >> multiple streams with the same resolution are present.
> >>
Quoting Gyan Doshi (2020-10-14 20:43:59)
>
>
> On 14-10-2020 02:23 pm, Anton Khirnov wrote:
> > Use a floating-point score value to take into account bitrate, when
> > multiple streams with the same resolution are present.
> >
> > Stop accessing private AVStream.codec_info_nb_frames field, as the
On Mon, 19 Oct 2020, at 16:44, Anton Khirnov wrote:
> > The saner way is to select best stream from each input and then select
> > from that shortlist without considering disposition.
>
> Watches pelcome. I am not bringing about world peace here, I just want
> ffmpeg.c to be a well-behaved user a
Quoting James Almer (2020-10-14 16:19:00)
> Signed-off-by: James Almer
> ---
> libavdevice/alldevices.c | 72
> libavdevice/avdevice.c | 46 -
> 2 files changed, 72 insertions(+), 46 deletions(-)
Looks ok
--
Anton Khirnov
_
From: ffmpeg-devel on behalf of Steven Liu
Sent: Monday, October 19, 2020 3:17 PM
To: FFmpeg development discussions and patches
Cc: Steven Liu
Subject: Re: [FFmpeg-devel] [PATCH] libavformat/hls: add support for SAMPLE-AES
decryption in HLS demuxer
Quoting James Almer (2020-10-10 05:45:27)
> Signed-off-by: James Almer
> ---
> libavformat/options.c | 23 +--
> 1 file changed, 13 insertions(+), 10 deletions(-)
>
Looks good
--
Anton Khirnov
___
ffmpeg-devel mailing list
ffmpeg
Quoting James Almer (2020-10-10 05:45:52)
> Signed-off-by: James Almer
> ---
> tools/target_dem_fuzzer.c | 10 +-
> 1 file changed, 5 insertions(+), 5 deletions(-)
LGTM
--
Anton Khirnov
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
ht
Quoting James Almer (2020-10-10 05:46:17)
> They are no-ops.
>
> Signed-off-by: James Almer
> ---
> tools/target_dec_fuzzer.c | 3 ---
> 1 file changed, 3 deletions(-)
Not exactly no-ops yet, but looks ok anyway.
--
Anton Khirnov
___
ffmpeg-devel ma
On 10/19/2020 11:59 AM, Anton Khirnov wrote:
> Quoting James Almer (2020-10-10 05:46:17)
>> They are no-ops.
>>
>> Signed-off-by: James Almer
>> ---
>> tools/target_dec_fuzzer.c | 3 ---
>> 1 file changed, 3 deletions(-)
>
> Not exactly no-ops yet, but looks ok anyway.
Yeah, i wrote that commen
Fixes: left shift of 21378748 by 10 places cannot be represented in type 'int'
Fixes:
26449/clusterfuzz-testcase-minimized-ffmpeg_dem_MVI_fuzzer-5680463374712832
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
Fixes: infinite loop
Fixes:
26440/clusterfuzz-testcase-minimized-ffmpeg_dem_GENH_fuzzer-5632134020333568
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
libavformat/genh.c | 3 +++
1 file changed, 3 inse
Fixes: signed integer overflow: 1 * 30 cannot be represented in type
'int'
Fixes:
26448/clusterfuzz-testcase-minimized-ffmpeg_dem_JACOSUB_fuzzer-5638440374501376
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Ni
Fixes: Infinite loop
Fixes:
26445/clusterfuzz-testcase-minimized-ffmpeg_dem_WTV_fuzzer-5125558331244544
Found-by: continuous fuzzing process
https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer
---
libavformat/wtvdec.c | 5 +
1 file changed, 5 i
Hi Yaroslav
First of all, thanks for your wonderful work!, works as described, I
started to use it in another Open source project "Opencast".
Well I started to make some tests and I wrote a more comprehensive
example in Stack Overflow of it:
https://stackoverflow.com/questions/63471028/how
On Mon, Oct 12, 2020 at 09:35:57AM +0200, Jean-Baptiste Kempf wrote:
> General Assembly + Main Elections
> ---
> doc/dev_community/community.md | 80 ++
> 1 file changed, 80 insertions(+)
> create mode 100644 doc/dev_community/community.md
>
> diff --git a/doc/dev
Yo,
On Mon, 19 Oct 2020, at 19:02, Michael Niedermayer wrote:
> > +## Voting
> > +
>
> > +Voting is done using a ranked voting system, currently running on
> > https://vote.ffmpeg.org/ .
>
> I think Voting should be defined more precissely
That's a good point. What would like to see here? The
On Sat, Oct 17, 2020 at 3:32 AM Jan Ekström wrote:
>
> On Fri, Oct 16, 2020, 22:47 Michael Niedermayer
> wrote:
>>
>> On Fri, Oct 16, 2020 at 04:16:46PM +0300, Jan Ekström wrote:
>> > - For video, this means a single initialization point in do_video_out.
>> > - For audio we unfortunately need to
On Mon, Oct 19, 2020 at 05:59:53PM +0200, Michael Niedermayer wrote:
> Fixes: Infinite loop
> Fixes:
> 26445/clusterfuzz-testcase-minimized-ffmpeg_dem_WTV_fuzzer-5125558331244544
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-of
On Mon, Oct 19, 2020 at 07:22:48PM +0200, Jean-Baptiste Kempf wrote:
> Yo,
>
> On Mon, 19 Oct 2020, at 19:02, Michael Niedermayer wrote:
> > > +## Voting
> > > +
> >
> > > +Voting is done using a ranked voting system, currently running on
> > > https://vote.ffmpeg.org/ .
> >
> > I think Voting
For incoming packets from WAV.
Signed-off-by: Zane van Iperen
---
libavcodec/adpcm.c | 15 +--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/libavcodec/adpcm.c b/libavcodec/adpcm.c
index f7da3dcf89..fef1e6714c 100644
--- a/libavcodec/adpcm.c
+++ b/libavcodec/adpcm.c
adpcm_swf support in WAV is completely broken. block_align isn't set correctly,
so
the demuxer gives incorrect packets to the decoder. The encoder doesn't provide
a
value for block_align, so it's set to 1.
All of this has no bearing on (de)muxing to FLV.
See https://trac.ffmpeg.org/ticket/5829.
Prefer to error than to create a broken file. Closes ticket #5829.
Effectively disables remuxing adpcm_swf from flv -> wav.
Signed-off-by: Zane van Iperen
---
libavformat/riffenc.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/libavformat/riffenc.c b/libavformat/riffenc.c
index 04a2
Signed-off-by: Zane van Iperen
---
libavcodec/adpcmenc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index 5b485e7d26..42b83c2b48 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -153,7 +153,7 @@ static av_cold
Allows it to be muxed to WAVs.
Signed-off-by: Zane van Iperen
---
libavcodec/adpcmenc.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index b2be83b84e..5b485e7d26 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc
Signed-off-by: Zane van Iperen
---
tests/fate/acodec.mak | 4
tests/ref/acodec/adpcm-swf-wav | 4
2 files changed, 8 insertions(+)
create mode 100644 tests/ref/acodec/adpcm-swf-wav
diff --git a/tests/fate/acodec.mak b/tests/fate/acodec.mak
index 50932095dc..8ac71b1b27 100644
Signed-off-by: Zane van Iperen
---
libavcodec/adpcmenc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index 42b83c2b48..6ecdab96d6 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -552,7 +552,7 @@ static int adp
On Sat, 17 Oct 2020 09:37:38 +0200
Andreas Rheinhardt wrote:
> Background colour was never initialized if no style was available.
> Use a sane default of zero (i.e. completely transparent).
>
> Fixes Coverity issue #1461471.
>
> Signed-off-by: Andreas Rheinhardt
> ---
> No change for this patc
> 2020年10月19日 下午4:10,Nachiket Tarate 写道:
>
>
>
>
> From: ffmpeg-devel on behalf of Steven Liu
>
> Sent: Monday, October 19, 2020 7:43 AM
> To: FFmpeg development discussions and patches
> Subject: Re: [FFmpeg-devel] [PATCH] libavformat/hls: add supp
Steven Liu 于2020年8月17日周一 下午8:30写道:
>
> if the length of the root url is 0, unnecessary process the root_url
>
> Signed-off-by: Steven Liu
> ---
> libavformat/dashdec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> index c
Steven Liu 于2020年9月18日周五 上午9:53写道:
>
> fix ticket: 8636
> When write keyframe and the keyframe is the frist packet of the segment,
> then compute the size of the keyframe which have been write into segment
> first packet. and set the start position of the segment, should not use
> avio_tell(vs->ou
Steven Liu 于2020年10月13日周二 下午3:06写道:
>
> fix ticket: 8904
> parse the SPS from extradata and get profile_tier_level
> write the profile_tier_level info into CODECS Attribute
>
> HLS CODECS Attribute reference to
> :https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specifi
MSA2 optimizations are attached to MSA macros in generic_macros_msa.h.
It's difficult to do runtime check for them. Remove this part of code
can make it more robust.
Impact on performance is not obvious(167fps==>166fps).
---
configure | 7 +--
libavutil/mips/generic_
H264 decoding speed: 154fps ==> 165fps, 5.14x ==> 5.53x (tested on 3A4000)
V2: Fixed a build error in [PATCH 2/3].
"Error: opcode not supported on this processor: mips32r2 (mips32r2) `dsbh
$10,$10'"
V3: Add a fix patch to make MSA optimization more robust.
[PATCH v3 1/4] avcodec/mips: Restore t
From: gxw
Speed of decoding H264: 5.45x ==> 5.53x
Signed-off-by: Shiyou Yin
---
libavcodec/mips/Makefile| 3 +-
libavcodec/mips/h264_deblock_msa.c | 153
libavcodec/mips/h264dsp_init_mips.c | 2 +
libavcodec/mips/h264dsp_mips.h | 4 +
The MSA version has been refined in commit 93218c2 and ce0a52e,
and is better than MMI version now.
Speed of decoding H264: 5.14x ==> 5.23x (tested on 3A4000).
---
libavcodec/mips/h264chroma_init_mips.c | 19 +--
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/libavc
1. Refined function get_cabac_inline_mips.
2. Optimize function get_cabac_bypass and get_cabac_bypass_sign.
Speed of decoding h264: 5.23x ==> 5.45x(tested on 3A4000).
---
libavcodec/mips/cabac.h | 131 +---
1 file changed, 102 insertions(+), 29 deletion
Steven Liu 于2020年8月18日周二 上午10:44写道:
>
> The target duration will be a negative value when there are
> some b frames after prevous frame, the pts after current packet
> is large than the pts of current packet, so the target duration
> will compute as 0.04 - 0.08, then the value of the targe
On 19-10-2020 08:14 pm, Anton Khirnov wrote:
Quoting Gyan Doshi (2020-10-14 20:43:59)
On 14-10-2020 02:23 pm, Anton Khirnov wrote:
Use a floating-point score value to take into account bitrate, when
multiple streams with the same resolution are present.
Stop accessing private AVStream.codec
On 10/19/2020 11:42 AM, Anton Khirnov wrote:
> Quoting James Almer (2020-10-14 19:26:51)
>> On 10/14/2020 2:09 PM, Michael Niedermayer wrote:
>>> On Wed, Oct 14, 2020 at 10:53:10AM +0200, Anton Khirnov wrote:
Use a floating-point score value to take into account bitrate, when
multiple str
72 matches
Mail list logo