Michael Niedermayer
c9c3db0799
avformat/utils: Check dts - (1<<pts_wrap_bits) overflow
...
Fixes: signed integer overflow: -9223372036842389247 - 2147483648 cannot be represented in type 'long long'
Fixes: 26910/clusterfuzz-testcase-minimized-ffmpeg_dem_FLV_fuzzer-4845007531671552
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit d82ee907d6 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-10-17 21:34:53 +02:00
Michael Niedermayer
8691447d5d
libavformat/utils: consider avio_size() failure in ffio_limit()
...
Fixes: Timeout (>20sec -> 3ms)
Fixes: 26918/clusterfuzz-testcase-minimized-ffmpeg_dem_THP_fuzzer-5750425191710720
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 1b1dac2716 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-10-17 21:34:53 +02:00
Michael Niedermayer
8b8a912211
avformat/utils: check for integer overflow in av_get_frame_filename2()
...
Fixes: signed integer overflow: 317316873 * 10 cannot be represented in type 'int'
Fixes: 24708/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5731180885049344
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 03c479ce23 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2021-10-17 21:34:53 +02:00
Michael Niedermayer
542bfa483c
avformat/utils: reorder duration computation to avoid overflow
...
Fixes: signed integer overflow: 8 * 9223372036854774783 cannot be represented in type 'long'
Fixes: 23381/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-4818340509122560
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 10cc82c35b )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-07-05 13:01:36 +02:00
Dale Curtis
efaa2a05c0
avformat/utils: Fix undefined behavior in ff_configure_buffers_for_index()
...
When e2_pts == INT64_MIN and e1_pts >= 0 the calculation of
e2_pts - e1_pts will overflow an int64_t.
Signed-off-by: Dale Curtis <dalecurtis@chromium.org >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit f15007afa9 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-04-23 21:29:01 +02:00
Michael Niedermayer
73556665ec
avformat/utils: Check rfps_duration_sum for overflow
...
Fixes: signed integer overflow: 9151595917793558550 + 297519050751678697 cannot be represented in type 'long'
Fixes: 15496/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5722866475073536
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 5c46fdf305 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-12-02 19:41:48 +01:00
Michael Niedermayer
dc13bac6de
avformat/utils: Never store negative values in last_IP_duration
...
Fixes: integer overflow compute_pkt_fields()
Fixes: compute_pkt_usan
Reported-by: Thomas Guilbert <tguilbert@chromium.org >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 079d1a7175 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-10-18 12:52:59 +02:00
Michael Niedermayer
6ce3fee455
avformat/utils: Fix integer overflow in discontinuity check
...
Fixes: signed integer overflow: 7738135736989908991 - -7954308516317364223 cannot be represented in type 'long'
Fixes: find_stream_info_usan
Reported-by: Thomas Guilbert <tguilbert@google.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 4e19cfcfa3 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-10-18 12:49:46 +02:00
James Almer
7ae182e0b7
avformat/utils: fix mixed declarations and code
...
Signed-off-by: James Almer <jamrial@gmail.com >
(cherry picked from commit 31de45d20b )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-07-10 10:51:01 +02:00
Michael Niedermayer
25ecdac8be
avformat/utils: Check cur_dts in update_initial_timestamps() more
...
Fixes: runtime error: signed integer overflow: 18133149658382192 - -9223090561878065151 cannot be represented in type 'long long'
Fixes: crbug 831552
Reported-by: Matt Wolenetz <wolenetz@google.com >
Reviewed-by: Matt Wolenetz <wolenetz@google.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 37d46dc21d )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-07-10 01:52:55 +02:00
Michael Niedermayer
4bcfe9f19c
avformat/utils: Fix integer overflow of fps_first/last_dts
...
Fixes: runtime error: signed integer overflow: 7738135736989908991 - -7898362169240453118 cannot be represented in type 'long'
Fixes: Chromium bug 796778
Reported-by: Matt Wolenetz <wolenetz@google.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 1b1362e408 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-07-10 01:18:52 +02:00
Dale Curtis
2543475730
avformat/utils: Prevent undefined shift with wrap_bits > 64.
...
2LL << (wrap_bits=64 - 1) does not fit in int64_t; change the
code to use a uint64_t (2ULL) and add an av_assert2() to
ensure wrap_bits <= 64.
Signed-off-by: Dale Curtis <dalecurtis@chromium.org >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 03fbc0daa7 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-01-31 22:56:14 +01:00
Luca Barbato
907a704c9f
avformat: Free the internal codec context at the end
...
Avoid a use after free in avformat_find_stream_info.
(cherry picked from commit 9e4a5eb51b )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-01-31 22:56:14 +01:00
Steven Siloti
f0f45d8404
avformat/utils: fix memory leak in avformat_free_context
...
The pointer to the packet queue is stored in the internal structure
so the queue needs to be flushed before internal is freed.
Signed-off-by: Steven Siloti <ssiloti@bittorrent.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 949debd1d1 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-08-05 23:25:05 +02:00
Aaron Levinson
0109a152a1
avformat/utils: free AVStream.codec properly in free_stream()
...
Fixes memory leaks.
Signed-off-by: James Almer <jamrial@gmail.com >
(cherry picked from commit b9d2005ea5 )
2017-05-19 23:37:49 -03:00
Michael Niedermayer
1825f7670a
avformat/utils: Print verbose error message if stream count exceeds max_streams
...
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit f0bdd53871 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-08 21:17:50 +01:00
Michael Niedermayer
c6fbff1358
avformat: Add max_streams option
...
This allows user apps to stop OOM due to excessive number of streams
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 1296f84495 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-08 21:17:50 +01:00
Michael Niedermayer
3af916db37
avformat/utils: Check start/end before computing duration in update_stream_timings()
...
Fixes undefined behavior
Fixes: 637428.ogg
Found-by: Matt Wolenetz <wolenetz@google.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 90da187f1d )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-12-03 04:10:19 +01:00
Andreas Cadhalpun
e14da0578c
avformat: prevent triggering request_probe assert in ff_read_packet
...
If probe_codec is called with pkt == NULL, it sets probe_packets to 0
and request_probe to -1.
However, request_probe can change when calling s->iformat->read_packet
and thus a probe_packets value of 0 doesn't guarantee a request_probe
value of -1.
In that case calling probe_codec again is necessary to prevent
triggering the assert.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com >
(cherry picked from commit a5b4476a60 )
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com >
2016-11-27 00:46:30 +01:00
Xinzheng Zhang
0bdfdd6d2f
avformat/utils: fix timebase error in avformat_seek_file()
...
When there is only one stream and stream_index has not specified,
The ts has been transferd by the timebase of stream0 without modifying the stream_index
In this condation it cause seek failure.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit ecc04b4f2f )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-09-18 00:18:11 +02:00
Chris Cunningham
c1c6cb21b7
avformat/utils: Check negative bps before shifting in ff_get_pcm_codec_id()
...
Fixes: undefined shift.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 2875745d35 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-08-15 18:54:34 +02:00
Michael Niedermayer
2e0af764b3
avformat/utils: Do not compute the bitrate from duration == 0
...
Fixes division by 0 in fate-acodec-ra144
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 635b2ec5f2 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-08-15 18:54:34 +02:00
Michael Niedermayer
fc6f314838
avformat/utils: Check bps before using it in a shift in ff_get_pcm_codec_id()
...
Fixes undefined shift
Fixes: usan_shift
Found-by: Thomas Guilbert <tguilbert@google.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit ea791c080d )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-08-15 18:54:34 +02:00
Michael Niedermayer
bf76124c51
avformat/utils: fix dts from pts code in compute_pkt_fields() during ascending delay
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit de1de49324 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-04-27 04:40:11 +02:00
Michael Niedermayer
cb4ba7456a
avformat: Add integer fps from 31 to 60 to get_std_framerate()
...
Fixes Ticket 5106
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 2039b3e751 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2016-01-15 12:30:40 +01:00
Rainer Hochecker
5e105aca01
avformat/utils: estimate_timings_from_pts - increase retry counter, fixes invalid duration for ts files with hevc codec
...
Fixes a mpegts file with hevc that fails estimating duration. Increasing number of
retries fixes the issue.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 2d8c2f1a28 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-12-09 20:46:47 +01:00
Michael Niedermayer
859a6edaed
avformat/utils: Do not init parser if probing is unfinished
...
Fixes assertion failure
Fixes: 136f8b8d47af7892306625e597dee655/signal_sigabrt_7ffff6ae7cc9_8941_ab11bea57c84796418f481f873dc31ba.dvr_ms
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 1ef336e912 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-11-26 16:06:39 +01:00
Marton Balint
26a0cd1b4b
lavf: add V as a video stream specifier which is not an attached picture
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: Marton Balint <cus@passwd.hu >
2015-09-02 21:35:21 +02:00
Carl Eugen Hoyos
670d8ecfae
lavf: Remove probesize32 and max_analyze_duration32 on version bump.
...
Add FF_API_PROBESIZE_32 to allow removing 32bit probesize and 32bit
max_analyze_duration after the next libavformat version bump.
2015-09-01 09:19:49 +02:00
Michael Niedermayer
b4d68e7cdb
avformat: Remove use of AVFrac and AVStream->pts
...
Move field to internal part of AVStream and struct to internal.h
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-08-23 04:16:02 +02:00
Michael Niedermayer
29d147c94d
Merge commit '059a934806d61f7af9ab3fd9f74994b838ea5eba'
...
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
lavc: Consistently prefix input buffer defines
Conflicts:
doc/examples/decoding_encoding.c
libavcodec/4xm.c
libavcodec/aac_adtstoasc_bsf.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.h
libavcodec/asvenc.c
libavcodec/avcodec.h
libavcodec/avpacket.c
libavcodec/dvdec.c
libavcodec/ffv1enc.c
libavcodec/g2meet.c
libavcodec/gif.c
libavcodec/h264.c
libavcodec/h264_mp4toannexb_bsf.c
libavcodec/huffyuvdec.c
libavcodec/huffyuvenc.c
libavcodec/jpeglsenc.c
libavcodec/libxvid.c
libavcodec/mdec.c
libavcodec/motionpixels.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo.c
libavcodec/noise_bsf.c
libavcodec/nuv.c
libavcodec/nvenc.c
libavcodec/options.c
libavcodec/parser.c
libavcodec/pngenc.c
libavcodec/proresenc_kostya.c
libavcodec/qsvdec.c
libavcodec/svq1enc.c
libavcodec/tiffenc.c
libavcodec/truemotion2.c
libavcodec/utils.c
libavcodec/utvideoenc.c
libavcodec/vc1dec.c
libavcodec/wmalosslessdec.c
libavformat/adxdec.c
libavformat/aiffdec.c
libavformat/apc.c
libavformat/apetag.c
libavformat/avidec.c
libavformat/bink.c
libavformat/cafdec.c
libavformat/flvdec.c
libavformat/id3v2.c
libavformat/isom.c
libavformat/matroskadec.c
libavformat/mov.c
libavformat/mpc.c
libavformat/mpc8.c
libavformat/mpegts.c
libavformat/mvi.c
libavformat/mxfdec.c
libavformat/mxg.c
libavformat/nutdec.c
libavformat/oggdec.c
libavformat/oggparsecelt.c
libavformat/oggparseflac.c
libavformat/oggparseopus.c
libavformat/oggparsespeex.c
libavformat/omadec.c
libavformat/rawdec.c
libavformat/riffdec.c
libavformat/rl2.c
libavformat/rmdec.c
libavformat/rtpdec_latm.c
libavformat/rtpdec_mpeg4.c
libavformat/rtpdec_qdm2.c
libavformat/rtpdec_svq3.c
libavformat/sierravmd.c
libavformat/smacker.c
libavformat/smush.c
libavformat/spdifenc.c
libavformat/takdec.c
libavformat/tta.c
libavformat/utils.c
libavformat/vqf.c
libavformat/westwood_vqa.c
libavformat/xmv.c
libavformat/xwma.c
libavformat/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-27 23:15:19 +02:00
Michael Niedermayer
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-27 22:50:18 +02:00
Vittorio Giovara
059a934806
lavc: Consistently prefix input buffer defines
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2015-07-27 15:24:59 +01:00
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2015-07-27 15:24:58 +01:00
Michael Niedermayer
4afc3429be
avformat/utils: Fix regression with H264 stream probing
...
Fixes Ticket4725
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-16 03:37:43 +02:00
Michael Niedermayer
cdca400c5e
avformat/utils: Print stream number in max_analyze_duration exit path
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-16 03:30:24 +02:00
Michael Niedermayer
90dd6ad22c
avformat/utils: inform the user if the protocol cannot be determined
...
Assuming the wrong protocol can lead to suboptimal seeking performance
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-15 04:09:09 +02:00
Michael Niedermayer
901922e047
avformat/utils: adjust short skip threshold in ff_configure_buffers_for_index() to avoid seeking if a packet is skiped
...
Fixes Ticket4126
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-15 03:35:08 +02:00
wm4
130a8e0eef
avformat: don't crash API users when demuxing mp4
...
This code is one big chunk of WTF.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-14 22:41:35 +02:00
Michael Niedermayer
b513661251
avformat/utils: Skip ff_configure_buffers_for_index() for local files
...
Theres no known case where its use on local files improves performance
if you know of such a case, please contact us
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-13 14:27:02 +02:00
Michael Niedermayer
b183fb4767
avformat: Add ff_configure_buffers_for_index()
...
This allows configuring the io buffer in such way that few seeks are needed for playback
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-07-13 12:38:21 +02:00
Michael Niedermayer
838c5f3df7
avformat/utils: Redesign scoring in av_find_default_stream_index()
...
This avoids empty streams from being selected if a equivalent non empty one is available
The new system is also clearer and more systematic
This may need finetuning, which should be easy to do ...
Fixes Ticket2687
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-07-01 22:51:48 +02:00
Michael Niedermayer
42c41e96ff
avformat/utils: Do not select audio streams with unknown sample rate in av_find_best_stream()
...
Together with the next commit this prevents non-PCM S302M from being selected unless either
it can be decoded or the user selects passthrough/copy
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-06 01:02:43 +02:00
Michael Niedermayer
1e0c34fe71
avformat/utils: Simplify get_std_framerate() check
...
This also avoids using a floating point operation
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-01 04:31:37 +02:00
Carl Eugen Hoyos
57eecd9e4f
lavf: Use av_codec_get_tag2() in avformat_query_codec().
...
av_codec_get_tag() can return 0 both in case of error and success.
2015-05-28 12:31:40 +02:00
Michael Niedermayer
541d75f9a0
avformat: add callback for opening further files
...
Previous version reviewed-by: wm4 <nfxjfg@googlemail.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-05-11 21:55:18 +02:00
Vittorio Giovara
32da94fa7f
lavf: Reset global flag on deinit
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-23 13:55:55 +02:00
wm4
7dd8bf53bd
avformat: add common mechanism for skipping samples at the start of file
...
This makes using the generic indexing code with mp3 easier at a later
point.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-22 14:05:46 +02:00
Michael Niedermayer
ba631b7914
avformat/utils: Ensure that AVFMT_FLAG_CUSTOM_IO is set before use
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-21 00:58:11 +02:00
Michael Niedermayer
5380c9afb9
Merge commit '98cab39798612dcaea4f9b6d1e7974bc60d84e13'
...
* commit '98cab39798612dcaea4f9b6d1e7974bc60d84e13':
lavf: Fix variables constness in ff_iso8601_to_unix_time()
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-20 23:00:08 +02:00