Commit graph

1361 commits

Author SHA1 Message Date
Thiago Santos
5d62ead83c tests: capsfilter: add test for pending_events pushing
make sure that pending events are pushed when caps are already
set when a buffer is received
2014-01-29 14:59:43 -03:00
Thiago Santos
fdfc6dc983 basesrc: preserve seqnum of eos events sent by the user
Store the eos event seqnum and use it when creating the
new eos event to be pushed downstream. To know if the eos
was caused by the eos events received on send_event, a
'forced_eos' flag is used to use the correct seqnum on
the event pushed downstream.

Useful if the application wants to check if the EOS message
was generated from its own pushed EOS or from another source
(stream really finished).

Also adds a test for this

https://bugzilla.gnome.org/show_bug.cgi?id=722791
2014-01-24 09:31:44 -03:00
Fabian Kirsch
702e5d11c3 parse: Additional tests for parser
https://bugzilla.gnome.org/show_bug.cgi?id=710034
2014-01-20 16:18:40 +01:00
Sebastian Dröge
af84535569 iterator: Add unit tests for filtering, recursive filtering and locking
https://bugzilla.gnome.org/show_bug.cgi?id=711138
2014-01-18 14:48:54 +01:00
Sebastian Dröge
96f454d0ba tee: Add unit test for requesting pad names 2014-01-14 16:47:38 +01:00
Sebastian Dröge
c47f0f2ec5 parse-launch: Add some more failing pipelines
Also convert some comments about valgrind warnings to
FIXME comments. These were leaking since some time already.
2014-01-14 13:46:24 +01:00
Fabian Kirsch
2b33d33185 parse: Refactor grammar, make it more consistent and fix conflicts
https://bugzilla.gnome.org/show_bug.cgi?id=710034
2014-01-14 13:46:22 +01:00
Thiago Santos
4f9d382a0a tests: baseparse: add test for reverse playback on passthrough
Baseparse stores buffers for reverse playback to push on the next
DISCONT, the issue was that it wouldn't ever check for a discont
on passthrough mode as it skips all real parsing. This test
was create to verify this issue and prevent it from happening again

https://bugzilla.gnome.org/show_bug.cgi?id=721941
2014-01-13 08:43:28 -03:00
Thiago Santos
aad8123ff9 tests: baseparse: add basic test for baseparse
Just a small test to check that basic playback works
2014-01-13 08:43:28 -03:00
Wim Taymans
6c95262447 tests: improve check, also check stream-time 2014-01-08 15:47:10 +01:00
Wim Taymans
b5e4e24e75 tests: add unit test for segment _offset_running_time()
Add a unit test to check that positive and negative offsets are applied
correctly in various cases.
2014-01-08 15:31:28 +01:00
Sebastian Dröge
9e125e7bab pad: Add unit test for adding/removing blocking probes while a pad is blocked
And make sure that these new probes are actually called if they should
instead of silently blocking the pad forever.

https://bugzilla.gnome.org/show_bug.cgi?id=721289
2014-01-02 13:34:52 +01:00
Tim-Philipp Müller
430df345c4 tests: add unit test for bitreader, bytereader and bytewriter with no inlining used 2013-12-14 21:20:45 +00:00
Edward Hervey
3ea6b04c10 gstvalue: Fix comparision of double range
Checking twice the lower bound is great (you never know, it might change
between the two calls by someone using emacs butterfly-mode), but it's a bit
more useful to check the higher bound are also identical.

Detected by Coverity
2013-12-10 18:01:52 -05:00
Tim-Philipp Müller
9a62f007fc tests: add unit test for registering the same category twice 2013-12-07 19:04:16 +00:00
Sebastian Rasmussen
e8ecf3c407 Fix some typos in code comments and debug messages
https://bugzilla.gnome.org/show_bug.cgi?id=720029
2013-12-07 17:09:39 +00:00
Tim-Philipp Müller
47679cf2f8 tests: fix GstBus unit test with latest GLib
g_source_remove() works on the default main context, and
we're doing things with a custom context. Fixes warning
with newer GLib versions.
2013-11-18 15:28:32 +00:00
Sebastian Dröge
5286479467 value: Lists with all equal elements are equal to a single value
Otherwise caps containing f={X, X} are not compatible with f=X

https://bugzilla.gnome.org/show_bug.cgi?id=709253
2013-11-13 19:57:23 +01:00
Alessandro Decina
f52b5ddcd2 tests: collectpads: add flushing seek tests
https://bugzilla.gnome.org/show_bug.cgi?id=708416
2013-11-11 16:50:42 +01:00
Alessandro Decina
d063623851 tests: collectpads: tweak stub _collect to push all buffers
https://bugzilla.gnome.org/show_bug.cgi?id=708416
2013-11-11 16:50:42 +01:00
Alessandro Decina
01b4565a9a tests: collectpads: update my email address
https://bugzilla.gnome.org/show_bug.cgi?id=708416
2013-11-11 16:50:42 +01:00
Wim Taymans
02b64ee03b systemclock: Add gst_system_clock_set_default
Used for setting the default system clock that is obtained through
gst_system_clock_obtain(), which is sometimes needed for unit
testing.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711269
2013-11-11 12:25:14 +01:00
Olivier Crête
789eda5a37 parse: Make the FATAL_ERRORS flag also work without a GError
Also add a unit tests
2013-11-01 17:02:25 +00:00
Sebastian Rasmussen
1479aba1cf tests/filesrc: Set location in wrong state
Also remove incorrect comment about code possibly not being reachable
that is now exercised by the filesrc unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=709831
2013-10-13 12:18:57 -04:00
Jan Schmidt
75b7387f8b parse: Fix transfer annotations for parse_launch functions.
gst_parse_launchv, gst_parse_launchv_full and gst_parse_launch_full
all return floating refs, the same as gst_parse_launch, which just
calls gst_parse_launch_full internally anyway.

Add a unit test assertion to check it's true.

Spotted by nemequ on IRC.
2013-10-12 16:20:50 +11:00
Sebastian Dröge
4429ea53c4 caps: Skip test_subset_duplication until the bug is fixed
https://bugzilla.gnome.org/show_bug.cgi?id=709253
2013-10-10 13:19:09 +02:00
Sebastian Dröge
eb0d978e1e caps: Add a testcase for subset checks on lists with duplicated items
https://bugzilla.gnome.org/show_bug.cgi?id=709253
2013-10-10 12:42:52 +02:00
Tim-Philipp Müller
10981f781c tests: use tcase_skip_broken_test() to skip broken multiqueue test
So that we get a warning in the output that reminds us that
something needs to be fixed.
2013-10-02 12:30:54 +01:00
Edward Hervey
3537ad8ae1 check: Disable multiqueue test_output_order check
The check itself is racy.

 (CK_FORK=no GST_CHECK=test_output_order make elements/multiqueue.forever).

The problem is indeed the test and not the actual element behaviour.

The objects to push are being pulled out of the single internal queues in the
right order and at the right time...

But between:
* the moment the global multiqueue lock is released (which was used to detect
if we should pop and push downstream the next buffer)
* and the moment it is received by the source pad (which does the check)

=> another single queue (like the unlinked pad) might pop and push a buffer
downstream

What should we do ? Putting a bigger margin of error (say 5 buffers) doesn't
help, it'll eventually fail.

I can't see how we can detect this reliably.

https://bugzilla.gnome.org/show_bug.cgi?id=708661
2013-10-02 11:26:09 +02:00
Thiago Santos
007c0e5fe1 value: fix caps serialization when there are caps inside caps
Wrap caps strings so that it can handle serialization and deserialization
of caps inside caps. Otherwise the values from the internal caps are parsed
as if they were from the upper one

https://bugzilla.gnome.org/show_bug.cgi?id=708772
2013-09-30 16:20:48 -03:00
Sebastian Dröge
8f0c9c7055 context: Add test for the context caching in GstBin
https://bugzilla.gnome.org/show_bug.cgi?id=708668
2013-09-24 13:11:47 +02:00
Wim Taymans
cba26c9ed9 tests: handle unscheduled entries correctly
Make the testclock return GST_CLOCK_UNSCHEDULED when an unscheduled entry is
used for gst_clock_wait() or gst_clock_wait_async().

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708605
2013-09-23 11:47:14 +02:00
Sebastian Dröge
921ab73340 context: Fix unit test for GstContext changes 2013-09-18 21:42:42 +02:00
Sebastian Dröge
26e27417d7 tests/capsfilter: Fix memory leak and compare caps directly instead of strcmp() 2013-09-09 14:21:56 +02:00
Sebastian Rasmussen
7854e392dd tests/capsfilter: Test caps-related queries and property 2013-09-09 14:18:39 +02:00
Alessandro Decina
924acf5e92 filesink: flush (discard data) on FLUSH_STOP
Reset the write position to 0 and truncate the file on FLUSH_STOP.
2013-08-27 08:00:09 +02:00
Alessandro Decina
b19d0518cb tests: filesink: small refactoring 2013-08-27 07:58:29 +02:00
Olivier Crête
f90f3cde5f buffer: Fix gst_buffer_memcmp() where the buffer is smaller than size
Also add unit tests for gst_buffer_memcmp

https://bugzilla.gnome.org/show_bug.cgi?id=706162
2013-08-20 14:41:27 -04:00
Sebastian Dröge
0b3bd4b954 tests: Remove other interface structs from the ABI tests too 2013-07-24 10:31:02 +02:00
Thiago Santos
6da1778dad tests: Remove GstTagSetter from ABI checks
Interfaces can have new members added without breaking ABI, so
remove it from the check.

https://bugzilla.gnome.org/show_bug.cgi?id=623799
2013-07-24 10:31:02 +02:00
Olivier Crête
915f418cc4 adapter: Take account of the skip in gst_adapter_take_buffer_fast()
Include regression test
2013-07-16 15:38:11 -04:00
Olivier Crête
5920491597 adapter: Add function to return buffer composed of multiple memories
API: gst_adapter_take_fast()
2013-07-16 14:07:48 -04:00
Olivier Crête
bbb26f8756 funnel: Re-push all sticky events when buffers come from a different pad
Don't special case segment/caps, just push all sticky events when they are
received on the currently active pad or when the active pad changes.
2013-07-01 20:45:42 -04:00
Olivier Crête
2ba75ddfef tests: Remove funnel pad_alloc test 2013-07-01 20:18:58 -04:00
Jonas Holmberg
0ea8748c6b check: Added gst_check_setup_events_with_stream_id()
Added a new function gst_check_setup_events_with_stream_id(), since
gst_check_setup_events() does not work with multiple pads.

https://bugzilla.gnome.org/show_bug.cgi?id=703377
2013-07-01 15:54:11 +02:00
Sebastian Dröge
4fc1ba1e60 buffer: Add unit test for map_range()
https://bugzilla.gnome.org/show_bug.cgi?id=702617
2013-06-19 10:45:45 +02:00
Wim Taymans
10099e1e70 check: fix position unit test 2013-05-30 07:03:40 +02:00
Sebastian Dröge
2253f8fa6f pad: Fix memory leak in the unit test 2013-05-29 11:36:38 +02:00
Sebastian Dröge
114f9584d4 tests: Fix event order warnings and dataflow before stream-start/segment event 2013-05-09 13:32:07 +02:00
Sebastian Dröge
f38496067d basetransform: Properly port unit test to actually use caps and check results 2013-05-09 13:31:38 +02:00
Tim-Philipp Müller
913b1e6f20 tests: add some basic checks for gst_buffer_fill() 2013-05-08 10:26:15 +01:00
Tim-Philipp Müller
e1c6a56596 typefind: fix caps leak when used in connection with uridecodebin and playbin
Don't leak forced sink caps.
2013-04-27 00:05:45 +01:00
Alessandro Decina
ef0e9b6840 tests: add check for FLUSH pad probes 2013-04-25 07:26:29 +02:00
Tim-Philipp Müller
c7a8318452 tests: ignore new test binary 2013-04-18 10:14:09 +01:00
Sebastian Dröge
03c3738b67 context: Add gst_context_writable_structure() and let get_structure() return const again 2013-04-18 10:18:22 +02:00
Tim-Philipp Müller
e8a9f7acdf printf: fix handling of old printf extension specifiers for ABI compatibility
Fixes abort when the old specifiers are used. Fix up the conversion
specifier, it would get overwritten with 'c' below to the extension
format char, which then later is unhandled, leading to the abort.
Also fix up and enable unit test for this.

https://bugzilla.gnome.org/process_bug.cgi
2013-04-18 00:46:58 +01:00
Tim-Philipp Müller
c398c842f5 tests: add unit test for old printf extension specifiers
To make sure we maintain binary compatibility with the old
specifiers.

https://bugzilla.gnome.org/show_bug.cgi?id=698242
2013-04-18 00:28:00 +01:00
Sebastian Dröge
f5f0dd50c8 context: Add unit test for GstContext 2013-04-17 12:44:29 +02:00
Tim-Philipp Müller
637e8b5e1c tests: skip all GstPoll tests on Windows
As they don't work there, and it's non-trivial to fix.

https://bugzilla.gnome.org/show_bug.cgi?id=697609
2013-04-13 12:20:06 +01:00
Руслан Ижбулатов
ff62f3f1e0 libsabi: Special struct size values for W32
These account for both possible type size mismatch AND -mms-bitfields
packing. Sizes are taken from an i686-w64-mingw32-built GStreamer,
gcc 4.8.0, mingw-w64 svn-r5685.

Fixes #697551
2013-04-09 20:10:46 +02:00
Руслан Ижбулатов
54aaba5f21 tests: fix GstPad test on windows and in CK_FORK=no mode
Need to clear buffer lists at the end of each test.

https://bugzilla.gnome.org/show_bug.cgi?id=697610
2013-04-09 09:56:57 +01:00
Sebastian Dröge
1de3b0f9e8 caps: Add test for operations on caps with ANY features 2013-04-06 21:21:39 +02:00
Tim-Philipp Müller
24cac0afa3 docs: more since markers and other docs fixes 2013-04-02 23:51:06 +01:00
Sebastian Dröge
65c650d7d4 capsfeatures: Add GST_CAPS_FEATURES_ANY
This is equal to any other caps features but results in unfixed caps. It
would be used by elements that only look at the buffer metadata or are
currently working in passthrough mode, and as such don't care about any
specific features.
2013-04-02 22:17:22 +02:00
Sebastian Dröge
7477b25df5 caps: Add new data type for handling caps features to the caps
These are meant to specify features in caps that are required
for a specific structure, for example a specific memory type
or meta.

Semantically they could be though of as an extension of the media
type name of the structures and are handled exactly like that.
2013-03-31 18:15:52 +02:00
Tim-Philipp Müller
0e5c1dcf64 event: add stream flags to stream-start event
API: gst_event_set_stream_flags()
API: gst_event_parse_stream_flags()
API: GST_STREAM_FLAG_NONE
API: GST_STREAM_FLAG_SPARSE

https://bugzilla.gnome.org/show_bug.cgi?id=600648
2013-03-31 11:47:40 +01:00
Sebastian Dröge
7b00fd3701 caps: Add unit test for GST_CAPS_{ANY,NONE} and GST_STATIC_CAPS_{ANY,NONE}
https://bugzilla.gnome.org/show_bug.cgi?id=696435
2013-03-25 09:22:50 +01:00
Jonas Holmberg
afbba8974a tests: fix spurious failure in test_collect collectpads test
pop() in collected callback.

There were three threads in the test cases that hanged: the test thread and two
threads that push buffers. Each thread push one buffer on one pad. There are
two pads in the collectpads so the second buffer will trigger the
collect-callback.

This is what happens when the hang occurs:

The first thread pushes a buffer and initializes a cookie to the value of a
counter in the collectpads object and waits on a cond for the counter to change
and for someone to consume the buffer (i.e. _pop() it).

The second thread pushes a buffer and calls the collected callback, which
signals the cond that the test thread is waiting for.

The test thread pops both buffers (without holding any lock). Each call to
_pop() increases the counter broadcasts the condition that the first thread is
now waiting for. It then joins both threads (hangs).

The first thread wakes up and returns, since its buffer has been consumed.

The second thread starts executing again. When the callback, called by the
second thread, has returned it initializes a cookie to the value of a counter,
which has already prematurely been increased by the test thread when it popped
the buffers, and wait's on a cond for the counter to change and for someone to
consume the buffer (i.e. _pop() it). Since the buffer has already been poped
and the counter has already been increased it will be stuck forever.

https://bugzilla.gnome.org/show_bug.cgi?id=685555
2013-03-18 10:45:13 +00:00
Stefan Sauer
c342d54571 controller: code cleanups
Use a property for accessing the control-source on the binding. Drop base_init
on the test object.
2013-03-08 13:16:40 +01:00
Stefan Sauer
9db3c83d2e controller: remove a bogus test
We previously forgot to initilize the amplitde property to the default and thus it was 0.0. Therefore a default lfo controlsource returned a series of 0.0 and the test was asserting on that.
2013-03-07 11:37:21 +01:00
Tim-Philipp Müller
0cbe23995f utils: avoid unexpected side-effects of GST_WRITE_* macros
Make sure the data argument is only evaluated once.
2013-02-19 18:00:48 +00:00
Tim-Philipp Müller
22b7c0bf58 check: add some more fail_unless_*() macros for convenience
API: fail_unless_equals_int_hex
API: assert_equals_int_hex
API: fail_unless_equals_int64_hex
API: assert_equals_int64_hex
API: fail_unless_equals_uint64_hex
API: assert_equals_uint64_hex
API: fail_unless_equals_pointer
API: assert_equals_pointer
2013-02-19 17:40:20 +00:00
Stefan Sauer
03e81ca8a2 collectpads: add two more tests using collectpads within an element
Add a static plugin with a rudimentary element using collectpads and do some
pipeline based tests.
2013-02-18 20:49:07 +01:00
Tim-Philipp Müller
5fc34add25 message: accept NULL error argument in gst_message_parse_{error,warning,info}
And simplify code a bit while at it.

https://bugzilla.gnome.org/show_bug.cgi?id=693704
2013-02-13 16:52:13 +00:00
Sebastian Dröge
fb3b53328f value: Remove set-style bitmask intersection/union/subtraction functions
Set operations on the bitmasks don't make much sense and result
in invalid caps when used as a channel-mask. They are now handled
exactly like integers.

This functionality was not used anywhere except for tests.

https://bugzilla.gnome.org/show_bug.cgi?id=691370
2013-02-13 17:07:47 +01:00
Sebastian Dröge
171c79c9a7 structure: Make sure that subsets have all fields of the superset
"video/x-h264,parsed=(boolean)true" is not a superset of
"video/x-h264,stream-format=(string)byte-stream,alignment=(string)nal"
for example.

https://bugzilla.gnome.org/show_bug.cgi?id=693365
2013-02-13 10:46:37 +01:00
Wim Taymans
51ebcaef74 tests: add basesink test 2013-02-05 17:22:37 +01:00
Alexander Schrab
745821d5f1 tests: unit test to trigger the queue/flushing race condition bug for allocation queries
https://bugzilla.gnome.org/show_bug.cgi?id=692691
2013-01-30 12:07:52 +00:00
Tim-Philipp Müller
8ea19a48ce tests: check return value of gst_queue_array_drop_element() too
Was added when the API was made public in git master.

https://bugzilla.gnome.org/show_bug.cgi?id=692691
2013-01-30 11:34:15 +00:00
Tim-Philipp Müller
bc397c780c tests: one more test for gst_queue_array_drop_element()
https://bugzilla.gnome.org/show_bug.cgi?id=692691

Conflicts:
	tests/check/libs/queuearray.c
2013-01-30 11:32:21 +00:00
B.Prathibha
9fddb6c3cd tests: use g_timeout_add_seconds in pipeline stress test
https://bugzilla.gnome.org/show_bug.cgi?id=692612
2013-01-27 14:52:39 +00:00
Tim-Philipp Müller
c0926dc7cc pad: add gst_pad_get_stream_id() utility function
API: gst_pad_get_stream_id()
2013-01-19 12:51:56 +00:00
Daniel Díaz
a26a98209b tests: fix ABI check struct sizes for ARM
and re-enable ABI check for ARM.

https://bugzilla.gnome.org/show_bug.cgi?id=691828
2013-01-17 09:27:48 +00:00
Tim-Philipp Müller
47c2fc4aba tests: disable ABI checks for architectures where the struct sizes are not up-to-date
https://bugzilla.gnome.org/show_bug.cgi?id=691828
2013-01-16 11:29:47 +00:00
Tim-Philipp Müller
64eee27ebc Use GST_*_1_0 environment variables everywhere
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-15 13:47:32 +00:00
Tim-Philipp Müller
e9497b7bf0 tests: fix leak in ghostpad unit test
The created pad is never used and overwritten with
another newly-created pad a few lines below.
2013-01-05 16:31:06 +00:00
Tim-Philipp Müller
2d85c0f18c tests: fix clock unit test build failure after header changes
https://bugzilla.gnome.org/show_bug.cgi?id=688785
2012-11-23 13:32:07 +00:00
Wim Taymans
aa777bb315 tests: don't use deprecated thread API 2012-11-20 16:34:28 +01:00
Tim-Philipp Müller
abc805ca95 tests: gst_adapter_prev_timestamp -> gst_adapter_prev_pts
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-13 23:11:34 +00:00
Tim-Philipp Müller
c6cc50e6de testclock: minor cleanups, add since markers for gtk-doc
https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 22:43:04 +00:00
Sebastian Rasmussen
4eeb471e11 check: allow GstTestClock to handle clock notifications
API: gst_test_clock_peek_id_count()
API: gst_test_clock_has_id()
API: gst_test_clock_peek_next_pending_id()
API: gst_test_clock_wait_for_next_pending_id()
API: gst_test_clock_wait_for_pending_id_count()
API: gst_test_clock_process_next_clock_id()
API: gst_test_clock_get_next_entry_time()

https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 21:47:01 +00:00
Sebastian Rasmussen
e58da2a22d check: add GstTestClock as a deterministic clock for testing
API: GstTestClock
API: gst_test_clock_new()
API: gst_test_clock_new_with_start_time()
API: gst_test_clock_set_time()
API: gst_test_clock_advance_time()

https://bugzilla.gnome.org/show_bug.cgi?id=683012
2012-11-13 21:19:57 +00:00
Alessandro Decina
c257b19ead queue: don't fail in _sink_event for sticky events
Implement the same behaviour as gst_pad_push_event when pushing sticky events
fails, that is don't fail immediately but fail when data flow resumes and upstream
can aggregate properly.

This fixes segment seeks with decodebin and unlinked audio or video branches.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=687899
2012-11-09 18:42:16 +01:00
Tim-Philipp Müller
666c8c11c6 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:44:48 +00:00
Jan Schmidt
9a37de9408 check: Add a simple test for the CollectPads buffer collect callback 2012-10-30 10:03:43 +11:00
Sebastian Dröge
05bd82cf61 queuearray: Fix unit test 2012-10-25 15:27:23 +02:00
Tim-Philipp Müller
36b2cb2a97 tests: update struct_i386.h for ABI checks
Fixes make check on 32-bit x86.
2012-10-07 00:16:48 +01:00
Tim-Philipp Müller
856e61c2dd tests: update struct_ppc32.h for ABI checks
Fixes make check on 32-bit PowerPC.
2012-10-06 17:26:21 +01:00
Wim Taymans
ed19974e25 meta: do metadata registration threadsafe
We need to use g_once to register the metadata implementations
only once.

See https://bugzilla.gnome.org/show_bug.cgi?id=685332
2012-10-03 13:45:22 +02:00
Tim-Philipp Müller
507fc9cea7 value: avoid duplicates when intersecting lists
Fixes negotiation taking a ridiculous amount of
time (multiple 10s of seconds on a core2) when
there are duplicate entries in lists.

Could have a negative performance impact on other
scenarios because we now have to iterate the
dest list to avoid duplicates, but we don't
have a lot of lists any more these days, and
they tend to be small anyway. The negatives
are hopefully countered by the positive effects
of reducing the list length early on in the
process. And in any case, it's the right thing
to do.

Based on patch by Andre Moreira Magalhaes.

https://bugzilla.gnome.org/show_bug.cgi?id=684981
2012-09-29 14:35:58 +01:00