Alessandro Decina
aea09188dc
flvmux: don't release request pads going PAUSED->READY
...
Don't release request pads but just reset them. This makes pipelines using
flvmux reusable.
2011-09-12 10:00:59 +02:00
Vincent Penquerc'h
d17d13219c
ac3parse: use bsid 9 and 10 to control sample rate
...
See http://matroska.org/technical/specs/codecid/index.html
The spec is silent about this though...
https://bugzilla.gnome.org/show_bug.cgi?id=658546
2011-09-09 13:59:31 +02:00
Mark Nauwelaerts
95b5ece2c9
rtspsrc: ensure some initial state variable setup
...
... which might otherwise be skipped if the PLAY command is issued before
the OPEN command had a chance to actually be acted upon.
Fixes #657376 .
2011-09-09 10:53:08 +02:00
Mark Nauwelaerts
ef1ad78eee
matroskademux: tweak gap handling
...
... so as to avoid buffers before and after gap to have identical running time.
2011-09-08 15:10:43 +02:00
Thiago Santos
ed3adece77
qtmux: remove one G_UNLIKELY for user property
...
Using G_UNLIKELY on user properties isn't nice, specially when
that is the default option.
2011-09-07 11:46:07 -03:00
Andoni Morales Alastruey
782fc78d57
matroskamux: handle GstForceKeyUnit event
...
... by starting a new cluster after forwarding event.
Fixes #644154 .
2011-09-07 14:51:56 +02:00
Sebastian Dröge
c29069fd11
ac3parse: Add Converter to the classification because it can convert between different alignments
...
This allows decodebin2 to let it negotiate properly.
2011-09-07 12:11:39 +02:00
Sebastian Dröge
786d35f53f
audioparsers: Improve src template caps
...
Remove the parsed/framed fields and add all fields to the template
caps that always exist.
2011-09-07 12:10:48 +02:00
Mark Nauwelaerts
625e7a6143
aacparse: parse codec_data to determine number of samples per frame
...
Fixes #656734 .
2011-09-07 11:20:03 +02:00
Mark Nauwelaerts
aa0ae490d0
matroskamux: make default duration check less sensitive
...
Frame duration might vary for 1 usecond, in this case matroskamux
decides to create BLOCKGROUP instead of SIMPLEBLOCK.
Convert duration to timecodescale which is (typically) less precise, and
then also allow the difference of 1/-1 to arrange for less sensitive check.
Based on patch by Alexey Fisher <bug-track@fisher-privat.net>
Fixes #653080 .
2011-09-06 15:09:13 +02:00
Mark Nauwelaerts
06f8e356a6
rtpmp4gdepay: improve bogus interleaved index compensating
...
Patch by <gudake@gmail.com>
Fixes #654585 .
2011-09-06 13:20:23 +02:00
Mark Nauwelaerts
b9a54a38b0
amrparse: fix and streamline valid frame checking
...
... to handle various combinations of sync or not, and sufficient data
or not as might be expected.
Fixes #650714 .
2011-09-05 15:51:48 +02:00
Mark Nauwelaerts
4b8ead4340
qtdemux: fragmented support; avoid adjustment for keyframe seek
...
... since all index data may not yet be available at that time.
2011-09-05 14:56:18 +02:00
Mark Nauwelaerts
08d25a69d5
qtdemux: fragmented support; mark all audio track samples as keyframe
2011-09-05 14:56:18 +02:00
Brian Li
a3e9b676c0
qtdemux: fragmented support; properly init return variable value
...
Fixes #655918 .
2011-09-05 14:56:08 +02:00
Mark Nauwelaerts
2603c2079d
rtspsrc: add gtk-doc for new short-header property
2011-09-05 13:32:17 +02:00
Marc Leeman
ce276d903c
rtspsrc: allow sending short RTSP requests to a server
...
Some encoders (Arecont) do not like the long OPTIONS sent at startup as sent by
GStreamer, but do accept the short header as sent by Live555.
This patch makes the extending the request optional by adding a property
(short-header).
Fixes #655805 .
API: GstRTSPSrc:short-header
2011-09-05 13:26:06 +02:00
Olivier Crête
d4778dbe43
rtph263ppay: Set H263-2000 if thats what the other side wants
...
The static caps states this element supports H263-2000, but setcaps never
sets it, so it was lie.
See https://bugzilla.gnome.org/show_bug.cgi?id=577784
2011-09-05 12:58:55 +02:00
Olivier Crête
b2e8362767
rtpsession: Initialise the last_keyframe_request variable
2011-09-02 19:24:46 -04:00
Peter Korsgaard
d73410c4af
multiudpsink: make add/remove/clear/get-stats action signals
...
http://bugzilla.gnome.org/show_bug.cgi?id=657830
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-09-01 22:54:27 +01:00
Mark Nauwelaerts
e15d29ffe4
qtdemux: push mode; perform some extra checks prior to upstream seeking
2011-08-30 14:24:04 +02:00
Mark Nauwelaerts
9de9d7e4d4
qtdemux: push mode; fix buffered streaming
...
That is, in case where no seek is peformed to moov, but preceding
limited mdat is buffered.
2011-08-30 14:23:49 +02:00
Mark Nauwelaerts
5ea19b0696
qtdemux: avoid overflow wraparound in timestamp when adding durations
...
Do some type juggling to avoid overflow, while still allowing for 'negative'
durations (which would need a wraparound effect).
2011-08-29 15:16:16 +02:00
Vincent Penquerc'h
f3fc3e1f69
aacparse: only require two frames in a row when we do not have sync
...
This avoids a single bit error dropping two frames unnecessarily.
The two consecutive frames check is still required when we don't
have sync.
https://bugzilla.gnome.org/show_bug.cgi?id=657080
2011-08-24 08:26:31 +02:00
David Schleef
88557c4792
breakmydata: element is not passthrough
2011-08-21 15:15:14 -07:00
David Schleef
2a83da13fc
multifilesrc: quiet debugging
2011-08-21 15:15:14 -07:00
David Schleef
0446787e65
deinterlace: change field handling through methods
...
This likely breaks stuff. The good: all of the methods now create
field images aligned with input frames, without timestamp mangling.
The bad: this touches a lot of code, much of which is hairy and in
need of cleanup. However, at this point we can reasonably create a
PSNR-based test.
2011-08-21 15:15:14 -07:00
Alessandro Decina
ad996feb28
multifilesink: reset ->streamheaders to NULL on _stop
...
Fixes invalid memory access reusing multifilesink
2011-08-21 14:41:59 +02:00
Vincent Penquerc'h
e032d26674
matroskademux: ensure no-more-pads is always emitted
...
In particular, do so even if failing to read while prerolling,
such as when reading from a partial file (eg, while it is being
downloaded).
This fixes a wedge in playbin2.
https://bugzilla.gnome.org/show_bug.cgi?id=651965
2011-08-18 11:30:07 +02:00
Vincent Penquerc'h
f8a9f5bc1c
spectrum: avoid crashing by resetting the correct number of channels
...
https://bugzilla.gnome.org/show_bug.cgi?id=656606
2011-08-16 22:44:07 +01:00
Vincent Penquerc'h
6ac7ad8a2c
flacparse: fix off by one in frame size check
...
Yes, I was tracking another bug and the small test file I generated
to test with improbably just happened to trigger this, with a second
and last frame of 1615 bytes.
https://bugzilla.gnome.org/show_bug.cgi?id=656649
2011-08-16 13:25:30 +01:00
Tim-Philipp Müller
5866c3a413
id3demux: remove specs from git as well now that parsing code is in -base
2011-08-14 20:46:01 +01:00
Mark Nauwelaerts
1ca89389e4
id3demux: use -base provided id3 tag parsing
...
https://bugzilla.gnome.org/show_bug.cgi?id=654388
2011-08-13 23:19:32 +01:00
Stefan Kost
a1b1d19105
qtdemux: initialize bitrate variable and reset for each loop
...
Don't check eventually unset variable and don't accidentially use values from last
cycle.
2011-08-12 16:32:58 +02:00
Edward Hervey
d08e0ccc48
rtspsrc: Properly error out if SDP contains no streams
...
Also fixes unitialized variable error on macosx.
2011-08-09 11:28:17 +02:00
Jan Schmidt
1438bf26ac
matroska: Register new debug category
...
Register the matroskareadcommon debug category when the
plugin is loaded to avoid assertion output when debug is turned on.
2011-08-03 22:52:07 +10:00
Philippe Normand
0424368cfc
qtdemux: soften assertion check on stream size
...
https://bugzilla.gnome.org/show_bug.cgi?id=655570
2011-08-03 10:11:59 +02:00
Robert Krakora
f7893b8721
rtpjpegpay: Add support for H.264 payload in MJPEG container
...
See http://www.quickcamteam.net/uvc-h264/USB_Video_Payload_H.264_0.87.pdf
Fixes bug #655530 .
2011-08-03 10:09:42 +02:00
Tim-Philipp Müller
a1712ad87c
docs: fix two more Since: tags
2011-08-02 23:42:58 +01:00
Mart Raudsepp
62cd1215c7
deinterlace: Fix Since tags for fieldanalysis related new properties
...
commit c1b100cf9c
is after 0.10.29 and 0.10.30 was a branched release.
So fix Since tags from 0.10.29 to 0.10.31 for the new properties.
2011-08-02 23:38:13 +01:00
Mark Nauwelaerts
c03648c8bb
rtpsession: properly init rtcp_min_interval
2011-07-29 12:08:42 +02:00
Mark Nauwelaerts
3a98f6f0fd
rtpssrcdemux: keep a ref on the src pad while using it
...
Prevent a possible race if clear_ssrc() is called between getting the pad and
doing the push.
Based on patch by <olivier.crete@collabora.com>
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:51:01 +02:00
Olivier Crête
c7b9b98648
rtpssrcdemux: Make the pads lock recursive and hold it across the signal emit
...
We need to keep the lock held because we don't want a push before the "new-ssrc-pad"
handler has completed. But we may want to push an event from inside that handler, hence
the recursive mutex.
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:59 +02:00
Olivier Crête
e26b5391c2
rtpssrcdemux: Use PADs lock
...
https://bugzilla.gnome.org/show_bug.cgi?id=650916
2011-07-28 14:50:57 +02:00
Sjoerd Simons
4c73439ee3
rtph264depay: Cope with FU-A E bit not being set
...
Some h264 payloaders are unfortunately buggy and don't correctly set the
E bit in FU-A NAL when they have ended. Work around this by assuming
such a fragmentation unit has ended when there was no packet loss and a
new NAL is started
2011-07-27 18:18:13 +01:00
Arun Raghavan
89564fcb69
ac3parse: Support switching alignment on-the-fly
...
This allows switching of alignment for E-AC3 streams at run-time. This
is requested by downstream elements via a custom event.
https://bugzilla.gnome.org/show_bug.cgi?id=650313
2011-07-27 20:43:56 +05:30
Arun Raghavan
96972eb462
ac3parse: Add support for IEC 61937 alignment
...
When pushing out buffers over S/PDIF or HDMI, IEC 61937 payloading
requires each buffer to contain 6 blocks from each substream. This adds
code to collect all the frames needed to meet this requirement before
pushing out a buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=650313
2011-07-26 10:40:00 +05:30
Olivier Crête
6095d2a3f0
rtpsession: Always send application requested feedback in immediate mode
...
Send as many application requested feedback messages in immediate mode, even if they
have already been sent.
https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 17:20:59 +02:00
Olivier Crête
354faabda0
rtpsession: Don't let the computed RTP bandwidth fall too low
...
If it falls too low, the computed RTCP bandwidth will be near zero and
the RTCP thread will be stopped.
https://bugzilla.gnome.org/show_bug.cgi?id=654583
2011-07-25 16:19:00 +02:00
Olivier Crête
4d48109f9d
rtpsession: Wait longer to timeout SSRC collision
...
Using the current RTCP interval to timeout SSRC collision can lead to
collisions being timed out immediately if a BYE packet is sent because
it is sent immediately, so the interval is 0. This is not what we
want. So just set a static 10 times the default RTCP interval, it
should be enough
https://bugzilla.gnome.org/show_bug.cgi?id=648642
2011-07-25 16:18:58 +02:00
Mark Nauwelaerts
9764b57b0a
rtspsrc: set SOURCE flag at init time
...
Fixes #654816 .
2011-07-25 12:44:38 +02:00
Olivier Crête
2591a882ae
rtph264depay: Complete merged AU on marker bit
...
The marker bit on a RTP packet means the AU has been completed, so push it out
immediately to reduce the latency.
https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:08 +02:00
Olivier Crête
118a7cc36a
rtph264pay: Only set the marker bit on the last NALU of a multi-NALU access unit
...
An access unit could contain multiple NAL units, in that case, only the last
RTP packet of the last NALU should have its marker bit set.
https://bugzilla.gnome.org/show_bug.cgi?id=654850
2011-07-21 17:11:06 +02:00
Alessandro Decina
216dc602c3
multipart: fix compiler warning
2011-07-20 08:53:25 +02:00
Mark Nauwelaerts
1880c4145e
auparse: avoid hanging on invalid short input
...
... as in such case there is no srcpad yet on which to forward EOS.
2011-07-19 12:05:51 +02:00
Mark Nauwelaerts
471904032d
rtph264depay: reset upon FLUSH_STOP
...
... which is particularly needed when merging NAL units, where not resetting
would lead to output of an older (pre-flush) AU (with unintended timestamp).
2011-07-18 14:32:26 +02:00
Mark Nauwelaerts
6c0aec783a
multifilesink: do not use g_slist_free_full
...
... as that is only in GLib 2.28, which is not yet required at this time.
2011-07-18 14:31:40 +02:00
Alessandro Decina
072bd74cc4
multifilesink: add max-files property
...
Add max-files property to limit the number of files saved on disk.
API: multifilesink::max-files
2011-07-18 10:21:41 +02:00
Alessandro Decina
c9096c6829
multifilesink: refactor file opening and closing code
2011-07-17 23:36:55 +02:00
Alexey Fisher
69c14012c9
matroskademux: fix pixel-aspect-ratio if header has only one display variable
...
Current matroska demux calculates the pixel aspect ratio only if both
DisplayHeight and DisplayWidth are set, but it is legal to use only
one variable if the other is equal to PixelWidth or PixelHeight, at
least the mkclean utility is doing that. So this makse mkcleaned
files play correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=654744
2011-07-17 00:11:03 +01:00
Antoine Jacoutot
df3cee6606
goom: fix build on PPC on openbsd
...
A missing sys/param.h include results in:
/usr/include/sys/proc.h:64: error: 'MAXLOGNAME' undeclared here (not in a
function)
/usr/include/sys/proc.h:285: error: 'MAXCOMLEN' undeclared here (not in a
function)
when compiling goom on openbsd/ppc. We can just remove the two sys/ includes
here, they are not needed for anything.
https://bugzilla.gnome.org/show_bug.cgi?id=654749
2011-07-16 23:50:25 +01:00
Olivier Crête
87c7f303b0
rtppcmApay/depay: Static clock rates on static payloads, dynamic on dynamic
...
Partially reverts 397dc60b
2011-07-14 20:13:01 -04:00
Olivier Crête
57a832cbb1
rtph264pay: Implement getcaps
...
Convert profile-level-id from RTP caps into video/x-h264 style caps (with profile and level)
2011-07-13 14:10:35 -04:00
Mark Nauwelaerts
b98585df82
rtspsrc: fix seeking regression
...
... introduced when shuffling around code for the async implementation
by setting state of source (and udp sources) in _play before downstream
flushing is undone.
2011-07-12 15:13:25 +02:00
René Stadler
fd38772d3e
ac3parse: fix buffer duration on blocks-per-frame change
...
The gst_base_parse_set_frame_rate call was predicated on a change to
sample rate, duration or profile. However, the block count per frame can
also change between packets, which would result in incorrect buffer
durations.
2011-07-11 15:35:46 +03:00
David Schleef
abb646dcd1
multifilesrc: Improve looping
...
Add start-index and stop-index properties.
2011-07-09 19:23:41 -07:00
Jonny Lamb
9149ce8d9d
multifile: add loop property to multifilesrc
...
Fixes : #652727
Signed-off-by: Jonny Lamb <jonnylamb@jonnylamb.com>
Signed-off-by: David Schleef <ds@schleef.org>
2011-07-09 18:58:52 -07:00
Alexey Fisher
a2e0bda3b5
matroskademux: handle blocks with duration=0
...
Some video frames, for example alt-ref frame in VP8, will be
never displayed. This is why it has duration=0.
This patch allow to use this duration.
Bug: 654175
Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
2011-07-08 09:58:29 +02:00
David Schleef
4dcc9ee42a
qtmux: Add direct dirac mapping
2011-07-07 11:27:52 -07:00
David Schleef
f2c8761a50
goom: Don't answer lantency queries before negotiation
2011-07-04 12:59:50 -07:00
Mark Nauwelaerts
b307c74e9e
flvmux: pass along segment info to collectpads
...
... so it can track this and be subsequently used to determine running time etc.
2011-07-04 11:36:48 +02:00
Mark Nauwelaerts
350b9b9d2d
flvdemux: indicate raw format in aac caps
2011-07-04 11:36:46 +02:00
David Schleef
32aa80cda8
multipartmux: Add \r\n to tail of pushed buffers
...
Clients such as Firefox require the \r\n after the payload.
2011-07-03 18:27:17 -07:00
Branko Subasic
e385108f84
matroskademux: avoid looping when searching for clusters
...
Fixes some bugs that results in the demuxer looping when seaching
for clusters in non-finalized files.
https://bugzilla.gnome.org/show_bug.cgi?id=652195
2011-07-01 17:19:40 +01:00
Debarshi Ray
c8619aa0fd
matroskaparse: fix reference counting of parse->streamheader
...
https://bugzilla.gnome.org/show_bug.cgi?id=652286
Signed-off-by: David Schleef <ds@schleef.org>
2011-06-29 23:56:53 -07:00
Mark Nauwelaerts
cc526d2e52
qtmux: free date tag
2011-06-29 12:05:23 +02:00
Jonas Larsson
1912c86946
aacparse: not so greedy minimum frame size
...
Fixes #653559 .
2011-06-28 12:40:27 +02:00
Miguel Angel Cabrera Moya
977a5eee7a
rtpjitterbuffer: return correct type when assertion fails
2011-06-24 11:59:01 +02:00
Mark Nauwelaerts
3daf1ecc21
rtpmp4adepay: fix output buffer timestamps in case of multiple frames
2011-06-21 15:15:33 +02:00
Olivier Crête
581a30d892
rtpsession: The signal has 5 arguments, not 4
2011-06-20 16:47:36 -04:00
Stefan Kost
6c3e77964a
audioecho: fix param flags
...
If the parameter cannot be changed in paused&playing, it is not controlable. Set
the appropriate mutability flag instead.
2011-06-17 03:07:09 +03:00
Stefan Kost
b5d5fa2bb9
matroska: add missing stdio include for sscanf
2011-06-14 01:07:57 +03:00
Mark Nauwelaerts
d17d6d74be
audioparsers: not so greedy minimum frame size
...
... which will be determined by parsing anyway, and avoids introducing
redundant additional latency.
2011-06-13 17:06:37 +02:00
Raimo Järvi
4f15c9e30e
udp: Fix compiler warning on mingw-w64
...
Fixes : #652144 .
gstudpnetutils.h:32:0: error: "WINVER" redefined
/usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:231:0: note: this is the
location of the previous definition
2011-06-11 18:02:17 -07:00
Debarshi Ray
9175a903fb
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_chapters
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:54:23 +02:00
Debarshi Ray
05778b85d5
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_attachments
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:43:12 +02:00
Debarshi Ray
d8a8326d7c
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_attached_file
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:43:04 +02:00
Debarshi Ray
366f064e73
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_info
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:55 +02:00
Debarshi Ray
2d282a6c79
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_metadata
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:46 +02:00
Debarshi Ray
493e197588
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_metadata_id_tag
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:33 +02:00
Debarshi Ray
febfcce0fd
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_metadata_id_simple_tag
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:41:51 +02:00
Mark Nauwelaerts
785247cfb3
rtspsrc: reset state tracking variable when appropriate
...
... so we don't end up interrupting an operation that should not be interrupted
based on the indication of a previous interruptable operation.
2011-06-06 12:59:23 +02:00
David Schleef
f6c348430e
interleave: Work around changes in g_atomic API
...
See #651514 for details.
2011-06-04 13:49:52 -07:00
Debarshi Ray
25e0da562b
matroskaparse: Use ARTIST tag instead of AUTHOR for GST_TAG_ARTIST
...
AUTHOR only existed in an old version of the spec and ARTIST is
the new replacement for this. We are still reading both to still
be compatible with old files.
Fixes bug #644875 .
2011-06-04 13:43:27 -07:00
David Schleef
0672232b26
matroskamux: For streaming files, push tags first
2011-06-01 17:20:44 -07:00
Thijs Vermeir
cdc3b20ba9
udpsrc: allow skip-first-bytes of full buffer size
2011-06-01 10:19:31 +02:00
Debarshi Ray
399fc9cd1c
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_header
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 17:43:01 +02:00
Antonio Frediani
63d350ceb3
qtmux: Use GST_TAG_IMAGE for coverart too
...
Fixes bug #638107 .
2011-05-30 12:09:31 +02:00
Debarshi Ray
bc7d61abca
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_get_seek_track
- gst_matroska_{demux,parse}_reset_streams
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:57:30 +02:00
Debarshi Ray
17ff8a73d8
matroska: refactor code common to matroskademux and matroskaparse
...
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska{demux,parse}_found_global_tag
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:57:06 +02:00