Thomas Vander Stichele
99185cc8f5
multisocketsink: fix refcounting bug
2012-02-12 22:17:56 +01:00
Thomas Vander Stichele
604ddc8740
multihandlesink: further refactoring
2012-02-12 22:17:56 +01:00
Thomas Vander Stichele
d21c42a709
multihandlesink: fix one bug in multisocketsink refactoring
2012-02-12 22:10:51 +01:00
Thomas Vander Stichele
c024274261
multihandlesink: first stab at common base class
2012-02-12 22:10:50 +01:00
Thomas Vander Stichele
684aa4baaf
gst/tcp: Factor out common symbols; fix tests.
2012-02-12 22:07:29 +01:00
Thomas Vander Stichele
3b0fae73ae
multifdsink: put back multifdsink before refactoring
2012-02-12 22:07:29 +01:00
Wim Taymans
e22f406a9a
videoconvert: improve error reporting
2012-02-10 15:41:19 +01:00
Wim Taymans
c3478b2da0
Merge branch 'master' into 0.11
...
Conflicts:
ext/vorbis/gstvorbisparse.c
gst-libs/gst/video/video.c
gst/videoscale/gstvideoscale.c
sys/v4l/gstv4lxoverlay.c
sys/v4l/v4l_calls.c
sys/v4l/v4lsrc_calls.c
tests/check/libs/video.c
2012-02-10 15:41:06 +01:00
Tim-Philipp Müller
e832929080
typefindfunctions: make h264 typefinder more picky when returning "likely" probability
...
Only return LIKELY probability if we've seen an SPS, PPS and an
IDR slice nal, i.e. try harder to avoid false positives such
as with certain VC-1 files.
https://bugzilla.gnome.org/show_bug.cgi?id=668565
2012-02-10 10:28:40 +00:00
Wim Taymans
6e1288bd00
videoconvert: avoid using _CATEGORY_GET
2012-02-09 16:00:59 +01:00
Wim Taymans
0dd59060d9
subtitleoverlay: fix merge error
...
Fix merge error from commit fb6d09055a
2012-02-09 15:51:10 +01:00
Wim Taymans
f31d5d7505
debug: add some performance debug
2012-02-09 15:28:54 +01:00
Tim-Philipp Müller
dc08c01935
typefindfunctions: minor cosmetic change
...
Don't write < 1 when we mean == 0.
2012-02-08 19:34:57 +00:00
Wim Taymans
a75e9102c5
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
2012-02-08 15:17:49 +01:00
Wim Taymans
5808721baa
volume: use right info structure for setup
2012-02-06 16:08:24 +01:00
David Schleef
beacccc396
videoscale: Add nearest/linear scaling for NV12
2012-02-04 13:41:47 -08:00
David Schleef
e4f01106d0
videoscale: Add AYUV64 path to Lanczos
2012-02-04 13:41:47 -08:00
Wim Taymans
3a11210bc2
gdppay: fixup for changed caps
...
Try to send the streamheader after the first buffer.
2012-02-03 11:38:15 +01:00
Wim Taymans
1dfb84e3c5
dataprotocol: don't define default Category
...
Since we now include this into the unit tests directly, don't define the default
category macro because it conflicts with check.
2012-02-03 11:37:21 +01:00
Wim Taymans
6c4367f6e2
audiorate: use default event handler
...
Use the default event handler for unknown events.
2012-02-03 09:56:56 +01:00
Wim Taymans
b3eb4e5bd4
playsink: call the right default query handler
...
We need to call the default query handler of the proxy pad because only that one
will forward the query to the target pad in case of the allocation query.
2012-02-02 12:14:15 +01:00
Tim-Philipp Müller
c61f794fc2
typefindfunctions, subparse: fix for gst_type_find_register() API change
2012-02-02 01:35:21 +00:00
Tim-Philipp Müller
4738e02bbf
playback: suppress GValueArray deprecation warnings for the time being
...
until this gets sorted out and we have a viable alternative.
https://bugzilla.gnome.org/show_bug.cgi?id=667228
2012-02-01 15:50:52 +00:00
Wim Taymans
be0cadac03
update for HEADER flag changes
2012-01-30 17:16:17 +01:00
Olivier Crête
e391118125
Use macros to register boxed types thread safely
2012-01-28 14:53:21 +00:00
Jason DeRose
91f8f414cd
audiorate: Use the number of samples for the in and out properties as documented
2012-01-27 18:16:05 +01:00
Andoni Morales Alastruey
7e97a21b10
tcpserversink: remove unused include
2012-01-26 15:26:43 +01:00
Sebastian Dröge
c07271ea02
adder: Update for new collectpads2 event handling API
2012-01-26 10:45:53 +01:00
Edward Hervey
0c60a5c7a3
adder: Remove deprecation disabling
...
It's actually fixed in 0.11
2012-01-25 15:02:09 +01:00
Edward Hervey
47fc70ea79
Suppress deprecations in selected files
2012-01-25 14:49:44 +01:00
Edward Hervey
629d734e83
Suppress deprecations in selected files
2012-01-25 12:51:46 +01:00
Vincent Penquerc'h
2de0a62381
subparse: factor memory freeing
2012-01-25 11:45:24 +00:00
Vincent Penquerc'h
17ea0308cf
subparse: fix parsing by not misusing non time segments
...
A simple filesrc ! subparse ! fakesink type pipeline now works again.
2012-01-25 11:45:24 +00:00
Wim Taymans
15b7375c44
subtitle: fix merge
2012-01-25 12:33:03 +01:00
Wim Taymans
fcdc385aa1
port to new map API
2012-01-25 12:30:53 +01:00
Sebastian Dröge
130a8335a0
Merge branch 'master' into 0.11
...
Conflicts:
gst/playback/gstdecodebin2.c
2012-01-25 12:29:11 +01:00
Sebastian Dröge
711e6a12ef
Revert "decodebin2: Prune old groups before switching to the new one"
...
This reverts commit e2a038acee
.
This wasn't entirely correct yet and needs some changes here
and there.
2012-01-25 12:25:05 +01:00
Sebastian Dröge
7e5aeba02f
decodebin2: Fix merge error
2012-01-25 12:04:24 +01:00
Sebastian Dröge
68c0790817
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/interfaces/propertyprobe.c
sys/xvimage/xvimagesink.c
2012-01-25 11:50:54 +01:00
Vincent Penquerc'h
c433ef9b70
playbin2: do not try to deactivate an inactive group
...
A group may have failed to activate due to an error (for instance,
having set the URI to a non existent location in about-to-finish).
https://bugzilla.gnome.org/show_bug.cgi?id=666395
2012-01-23 11:56:50 +00:00
Anssi Hannula
dd8f9aca92
subtitleoverlay: fix state change stall on PAUSED->READY->PAUSED
...
After a PAUSED->READY change the sink pads are currently not set to
blocking state. When the element is set back to PAUSED, the change will
be done asynchronously, but as the _pad_blocked_cb() callback is now not
called, the state change never completes.
Fix that by setting the sink pads to blocking state on a PAUSED->READY
change, which ensures that the _pad_blocked_cb() is called when needed
on any future READY->PAUSED change. The sink pads are already put to
blocking state on NULL->READY change, so this behavior is consistent.
Fixes bug #668097 .
2012-01-20 17:29:06 +00:00
Stefan Sauer
0e370d4902
controller: adapt to controller api changes
...
Don't use the convenience api for control sources.
2012-01-20 11:39:10 +01:00
Mark Nauwelaerts
71f70c98ef
streamsynchronizer: avoid unlikely NULL dereference
2012-01-19 16:43:40 +01:00
Mark Nauwelaerts
e82ff60a4c
videoscale: prevent implicit upgrade to integer type and sign extension
2012-01-19 16:43:38 +01:00
Mark Nauwelaerts
be34d4c78e
playsink: verify linking to overlay element
2012-01-19 16:43:32 +01:00
Mark Nauwelaerts
e5f6675ea3
playsink: avoid finding sink in NULL bin in corner case
2012-01-19 16:43:30 +01:00
Wim Taymans
3d42f0f6ed
port to new glib thread API
2012-01-19 11:36:17 +01:00
Wim Taymans
8dcb565221
tcp: work around compiler warnings
2012-01-19 09:17:31 +01:00
Youness Alaoui
e2a038acee
decodebin2: Prune old groups before switching to the new one
...
In order to allow for proper functionality when a decoder only supports
one instance at a time (dsp), we must block the demuxer pads when they
get created if they are not part of the active group, preventing buffers
from being sent to the decoder (and initializing it through setcaps),
then after we switch to a new group, we unblock the demuxer pads for
the active groups. In the callback for the unblock, we prune the old
groups, making sure the previous decoder instance is destroyed before
we push a buffer to the new instance.
2012-01-19 09:04:52 +01:00
Tim-Philipp Müller
576bbb4fd8
Remove compatibility code cruft for old GLib versions
2012-01-18 17:22:21 +00:00
Tim-Philipp Müller
6b12cee5a8
encoding: port to new GLib threading API
2012-01-18 17:21:36 +00:00
Sebastian Dröge
317894d314
gio: Move to gst subdirectory
...
It's a plugin without external dependencies now because we
unconditionally depend on GIO anyway.
2012-01-18 16:21:14 +01:00
Sebastian Dröge
6cb38409d1
tcp: Fix handling of closed connections
2012-01-17 12:21:54 +01:00
Sebastian Dröge
6d6593b757
tcp: Add support for IPv6
2012-01-17 12:08:17 +01:00
Sebastian Dröge
a649fe2d61
tcp: Only read as much as is currently available from the socket
2012-01-17 11:44:20 +01:00
Sebastian Dröge
c2438ba868
tcp: Don't leak the resolver if name resolval failed
2012-01-17 11:32:01 +01:00
Sebastian Dröge
7e4d0b0038
multisocketsink: Fix possible GType namespace conflicts with the private element enums
2012-01-16 12:29:35 +01:00
Sebastian Dröge
7794a11347
multisocketsink: Re-add QoS DSCP property
2012-01-16 12:17:00 +01:00
Sebastian Dröge
1148919ad0
tcp: Remove old socket helper functions
2012-01-16 11:31:46 +01:00
Sebastian Dröge
17254bbd23
tcpserversink: Port to GIO
...
And change multifdsink to GIO too and rename it to multisocketsink
because it only works on GSockets now, not generic fds.
2012-01-16 11:31:40 +01:00
Sebastian Dröge
d29c7826ab
tcpserversrc: Port to GIO
2012-01-16 11:13:37 +01:00
Sebastian Dröge
2a2acedde0
tcpclientsink: Port to GIO
2012-01-16 11:13:37 +01:00
Sebastian Dröge
075ec8b4e4
tcpclientsrc: Port to GIO
2012-01-16 11:13:31 +01:00
Mark Nauwelaerts
345b6a58f4
playsinkconvertbin: release extra ref on converter elements
2012-01-12 13:57:18 +01:00
Sebastian Dröge
a4104c54eb
streamsynchronizer: Don't unref the parent in the event function
2012-01-10 15:59:27 +01:00
Sebastian Dröge
dc8984d76c
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/app/gstappsrc.c
gst-libs/gst/audio/multichannel.h
gst-libs/gst/video/videooverlay.c
gst/playback/gstplaysink.c
gst/playback/gststreamsynchronizer.c
tests/check/Makefile.am
win32/common/libgstvideo.def
2012-01-10 13:15:12 +01:00
Mark Nauwelaerts
e8fd305623
playback: document DEINTERLACE flag
2012-01-09 12:34:07 +01:00
Mark Nauwelaerts
97a4f7e1e5
audioresample: fix debug message format specifier
2012-01-06 16:15:45 +01:00
Edward Hervey
f5f781e8fb
Revert "decodebin2: Try harder to get initial topology caps"
...
This reverts commit 6b3e3544d4
.
I really shouldn't put WIP commits in my main branch ...
2012-01-06 15:40:06 +01:00
Edward Hervey
6b3e3544d4
decodebin2: Try harder to get initial topology caps
...
Since caps are no longer 'shared' between two pads (but forwarded from
source pad to sink pad) we end up with the first chain pad not having
specified caps (i.e. typefind:src).
This solves the issues by getting the pad's peer caps.
It is not optimal since it will (for most demuxers) return the pad
template caps, which might contain non-fixed caps (ex : with
qtdemux "video/quicktime; video/mj2; audio/x-m4a; application/x-3gp")
https://bugzilla.gnome.org/show_bug.cgi?id=667337
2012-01-06 14:40:25 +01:00
Havard Graff
95be60de15
Fix various unlikely, but still potential memoryleaks in error code paths
...
https://bugzilla.gnome.org/show_bug.cgi?id=667311
2012-01-05 13:27:23 +00:00
Havard Graff
cfdb48ba8f
videotestsrc: keep the calculation fixed-point
...
https://bugzilla.gnome.org/show_bug.cgi?id=667315
2012-01-05 11:00:47 +00:00
Sebastian Dröge
2db0238450
audiotestsrc: Fix channel-mask handling
2012-01-05 10:34:25 +01:00
Sebastian Dröge
241de164ee
audioconvert: Fix channel-mask handling
2012-01-05 10:34:25 +01:00
Sebastian Dröge
8cd8965e19
gst: Add new layout field to all raw audio caps
2012-01-05 10:34:25 +01:00
Sebastian Dröge
5bdf6b3383
gst: Add new layout field to the raw audio caps
2012-01-05 10:34:25 +01:00
Sebastian Dröge
e0f9b4fffc
audioconvert: Port to the new multichannel caps
...
audioconvert still needs support for mixing all the new
channel positions, see:
https://bugzilla.gnome.org/show_bug.cgi?id=666506
2012-01-05 10:34:19 +01:00
Wim Taymans
24d405b609
multifdsink: use pad caps for streamheader
...
Instead of using the caps on the buffer, use the caps on the pad.
2012-01-04 17:57:39 +01:00
Tim-Philipp Müller
b15b03ee6f
videotestsrc: don't build generate_sine_table utility by default
2012-01-03 21:20:04 +00:00
Mark Nauwelaerts
3e0d35aec4
streamsynchronizer: force fallback buffer_alloc when other pad not available
...
... to avoid unnecessary spurious errors (upon e.g. shutdown).
If a real error is applicable in this unusual circumstance (missing other pad),
other (STREAM_LOCK protected) call paths can take care of that.
2012-01-03 11:07:17 +01:00
Mark Nauwelaerts
af28016d0a
streamsynchronizer: avoid crashing when operating on released pad
2012-01-03 11:07:15 +01:00
Wim Taymans
e2f91075e4
streamcombiner: fix srcpad query caps
...
The caps query on the srcpad should return the template caps instead of
forwarding the query.
2012-01-02 18:28:46 +01:00
Wim Taymans
30a66af4e2
videorate: chain up to parent event function
2012-01-02 17:42:11 +01:00
Wim Taymans
f4e58e3e8e
videorate: fix caps negotiation function
2012-01-02 17:28:12 +01:00
Wim Taymans
8a9a0bf6da
audioresample: truncate in fixation
2012-01-02 15:59:09 +01:00
Tim-Philipp Müller
26e612aeda
playback, mixerutils: gst_registry_get_default() -> gst_registry_get()
2012-01-02 14:32:11 +00:00
Wim Taymans
ff4efd075f
audioconvert: handle unpositioned channels
...
Refuse to convert between unpositioned layouts.
2012-01-02 15:03:54 +01:00
Edward Hervey
f562a29284
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/theora/gsttheoraenc.c
gst-libs/gst/tag/gstexiftag.c
gst/adder/gstadder.c
gst/adder/gstadder.h
gst/playback/gstdecodebin2.c
gst/playback/gstsubtitleoverlay.c
tests/check/libs/tag.c
2011-12-30 13:21:35 +01:00
Tim-Philipp Müller
862d9f741e
gdp: move dataprotocol library into gdp plugin and make private
...
We have removed things like protocol=gdp in the tcp elements
in favour of explicit gdppay/depay elements, so there's no need
to keep a public API and library for now. We can still add it
back later. Someone needs to think hard about 0.11 and gdp
anyway one of these days.
2011-12-25 23:25:42 +00:00
Tim-Philipp Müller
9414306d06
Merge branch 'merge-dataprotocol-library-into-gdp-plugin' into 0.11
2011-12-25 23:25:34 +00:00
Tim-Philipp Müller
17359744f3
tcp: remove some dataprotocol cruft
...
The protocol=gdp property has been removed in favour
of explicit gdppay/depay.
2011-12-25 23:25:31 +00:00
Wim Taymans
3be7c22bd4
gdp: fix header files
...
Ensure correct indentation and retab
Make sure all structure have padding
2011-12-25 22:49:59 +00:00
Wim Taymans
9cd50cad38
gdp: rename buffer PREROLL -> LIVE flag
...
Rename the GST_BUFFER_FLAG_PREROLL to GST_BUFFER_FLAG_LIVE and give the new flag
a meaning. The old PREROLL flag never had a clear meaning.
2011-12-25 22:49:59 +00:00
Wim Taymans
bc11a6fd17
gdp: make new _buffer_allocate method
...
Make a new method to allocate a buffer + memory that takes the allocator and the
alignment as parameters. Provide a macro for the old method but prefer to use
the new method to encourage plugins to negotiate the allocator properly.
2011-12-25 22:49:59 +00:00
Wim Taymans
7c7920e0e2
gdp: Rework GstSegment handling
...
Improve GstSegment, rename some fields. The idea is to have the GstSegment
structure represent the timing structure of the buffers as they are generated by
the source or demuxer element.
gst_segment_set_seek() -> gst_segment_do_seek()
Rename the NEWSEGMENT event to SEGMENT.
Make parsing of the SEGMENT event into a GstSegment structure.
Pass a GstSegment structure when making a new SEGMENT event. This allows us to
pass the timing info directly to the next element. No accumulation is needed in
the receiving element, all the info is inside the element.
Remove gst_segment_set_newsegment(): This function as used to accumulate
segments received from upstream, which is now not needed anymore because the
segment event contains the complete timing information.
2011-12-25 22:49:59 +00:00
Wim Taymans
1d9482190d
gdp: Hide the GstStructure in GstEvent
...
Hide the GstStructure of the event in the implementation specific part so that
we can change it.
Add methods to check and make the event writable.
Add a new method to get a writable GstStructure of the element.
Avoid directly accising the event structure.
2011-12-25 22:49:59 +00:00
Stefan Kost
f8cdb67fa5
gdp: add docs for GstDPPacketizer
2011-12-25 22:49:59 +00:00
Wim Taymans
d7b3ff8413
gdp: port code to new buffer data API
2011-12-25 22:49:59 +00:00
Wim Taymans
a9cec31b97
gdp: remove deprecated code
2011-12-25 22:49:59 +00:00
Tim-Philipp Müller
a24e138493
gdp: make public enum _get_type() functions thread-safe
...
Not that it is likely to matter in practice, but since these are public
API they should probably be thread-safe.
2011-12-25 22:49:59 +00:00
Tim-Philipp Müller
700e745167
gdp: dataprotocol, lfocontrolsource: fix enum value name in enums that are public API
...
So run-time bindings can introspect the names correctly (we abuse this
field as description field only in elements, not for public API
(where the description belongs into the gtk-doc chunk).
https://bugzilla.gnome.org/show_bug.cgi?id=629946
2011-12-25 22:49:59 +00:00
Benjamin Otte
779da2ef0b
gdp: Fixes for -Wmissing-declarations -Wmissing-prototypes
...
Also adds those flags to the configure warning flags
https://bugzilla.gnome.org/show_bug.cgi?id=611692
2011-12-25 22:49:59 +00:00
Benjamin Otte
6e44ef60fa
gdp: Make code safe for -Wredundant-decls
...
Adds that warning to configure.ac
Includes a tiny change of the GST_BOILERPLATE_FULL() macro:
The get_type() function is no longer declared before being defined.
https://bugzilla.gnome.org/show_bug.cgi?id=611692
2011-12-25 22:49:59 +00:00
Stefan Kost
0dc9475fa9
gdp: fix broken xrefs in docs
2011-12-25 22:49:59 +00:00
Sebastian Dröge
31a9af5a2b
gdp: Don't write to the same region of memory as a uint64 and uint16 as this breaks ...
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
Don't write to the same region of memory as a uint64 and uint16
as this breaks strict aliasing rules and apparantly breaks on PPC
and s390. Thanks to Sjoerd Simons for analysing. Fixes bug #348114 .
2011-12-25 22:49:59 +00:00
Michael Smith
d8942dc0db
gdp: When calculating GDP body CRC, use the correct pointer.
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_packet_from_event_1_0):
When calculating GDP body CRC, use the correct pointer.
Fixes part of #522401 .
2011-12-25 22:49:58 +00:00
Sebastian Dröge
1998871b39
gdp: Correct all relevant warnings found by the sparse semantic code analyzer. This include marking several symbols static...
...
Original commit message from CVS:
* gst/gstconfig.h.in:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_read_buffer):
* libs/gst/check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func), (gst_check_drop_buffers),
(gst_check_element_push_buffer_list):
* libs/gst/controller/gstcontroller.c: (gst_controller_get),
(gst_controller_get_type):
* libs/gst/controller/gsthelper.c: (gst_object_control_properties),
(gst_object_get_controller), (gst_object_get_control_source):
* libs/gst/controller/gstinterpolationcontrolsource.c:
(gst_interpolation_control_source_new):
* libs/gst/controller/gstlfocontrolsource.c:
(gst_lfo_control_source_new):
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_event_from_packet_0_2):
* plugins/elements/gstfdsrc.c:
* plugins/elements/gstmultiqueue.c:
* plugins/elements/gsttee.c:
* plugins/elements/gsttypefindelement.c:
* plugins/indexers/gstfileindex.c: (_file_index_id_save_xml),
(gst_file_index_add_association):
* plugins/indexers/gstmemindex.c:
* tests/benchmarks/gstpollstress.c: (mess_some_more):
* tests/check/elements/queue.c: (setup_queue):
* tests/check/gst/gstpipeline.c:
* tests/check/libs/collectpads.c: (setup), (teardown),
(gst_collect_pads_suite):
* tests/examples/adapter/adapter_test.c:
* tests/examples/metadata/read-metadata.c: (make_pipeline):
* tests/examples/xml/createxml.c:
* tests/examples/xml/runxml.c:
* tools/gst-inspect.c:
* tools/gst-run.c:
Correct all relevant warnings found by the sparse semantic code
analyzer. This include marking several symbols static, using
NULL instead of 0 for pointers, not using variable sized arrays
on the stack, moving variable declarations to the beginning of
a block and using "foo (void)" instead of "foo ()" for declarations.
2011-12-25 22:49:58 +00:00
Damien Lespiau
ecb3018196
gdp: Fix empty prototypes. Fixes bug #507957 .
...
Original commit message from CVS:
Patch by: Damien Lespiau <damien.lespiau@gmail.com>
* libs/gst/controller/gstcontroller.h:
* libs/gst/controller/gstcontrolsource.h:
* libs/gst/controller/gstinterpolationcontrolsource.h:
* libs/gst/controller/gstlfocontrolsource.h:
* libs/gst/dataprotocol/dataprotocol.h:
Fix empty prototypes. Fixes bug #507957 .
2011-12-25 22:49:58 +00:00
Tim-Philipp Müller
16e18f3e1a
gdp: g_type_class_ref() other types as well, see #349410 and #64764 .
...
Original commit message from CVS:
* gst/gst.c: (init_post):
* gst/gstevent.c: (_gst_event_initialize):
* gst/gstquery.c: (_gst_query_initialize):
* libs/gst/dataprotocol/dataprotocol.c (gst_dp_init):
g_type_class_ref() other types as well, see #349410 and #64764 .
* gst/gstbuffer.c: (_gst_buffer_initialize):
* gst/gstmessage.c: (_gst_message_initialize):
Simplify existing g_type_class_ref().
2011-12-25 22:49:58 +00:00
Tim-Philipp Müller
5cc09472a0
gdp: Printf fixes.
...
Original commit message from CVS:
* gst/gstpad.c: (pre_activate):
* gst/gstregistry.c: (gst_registry_scan_path_level):
* gst/gstregistryxml.c: (load_plugin):
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_set_interpolation_mode):
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_packet_from_event_1_0):
* libs/gst/net/gstnetclientclock.c:
(gst_net_client_clock_observe_times):
* plugins/elements/gstfdsrc.c: (gst_fd_src_create):
Printf fixes.
2011-12-25 22:49:58 +00:00
Andy Wingo
e43c4dd2ff
gdp: GST_DISABLE_DEPRECATED is only for users of API that don't want to see deprecated functions in the headers; people th...
...
Original commit message from CVS:
2006-08-11 Andy Wingo <wingo@pobox.com>
* configure.ac:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packetizer_new):
* tests/check/libs/gdp.c: (gst_dp_suite): GST_DISABLE_DEPRECATED
is only for users of API that don't want to see deprecated
functions in the headers; people that want to compile out
deprecated code should pass -DGST_REMOVE_DEPRECATED into the
CFLAGS. Fixes the build of multifdsink, or will soon..
2011-12-25 22:49:58 +00:00
Stefan Kost
cfd6f763a7
gdp: add gst_object_{s,g}et_control_rate(), add private data section, fix docs
...
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/controller/gstcontroller.c:
(_gst_controller_get_property), (_gst_controller_set_property),
(_gst_controller_init), (_gst_controller_class_init):
* libs/gst/controller/gstcontroller.h:
* libs/gst/controller/gsthelper.c: (gst_object_get_control_rate),
(gst_object_set_control_rate):
API: add gst_object_{s,g}et_control_rate(), add private data section,
fix docs
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packetizer_new):
* libs/gst/dataprotocol/dataprotocol.h:
add deprecation guards to make gtk-doc happy and allow disabling cruft
2011-12-25 22:49:58 +00:00
Wim Taymans
073ad7d9c9
gdp: Make debug category static
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer_any), (gst_dp_packet_from_caps_any),
(gst_dp_crc), (gst_dp_header_payload_length),
(gst_dp_header_payload_type), (gst_dp_packet_from_event),
(gst_dp_packet_from_event_1_0), (gst_dp_buffer_from_header),
(gst_dp_caps_from_packet), (gst_dp_event_from_packet_0_2),
(gst_dp_event_from_packet), (gst_dp_validate_header),
(gst_dp_validate_payload):
Make debug category static
Constify the crc table.
Do some more arg checking in public functions.
Fix some docs and do some small cleanups.
* tests/check/libs/gdp.c: (GST_START_TEST), (gst_dp_suite):
Add some more checks to see if GDP deals with bogus input.
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
6dc77f5db1
gdp: fix failure to deserialize event packets with empty payload (only ev...
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_event_from_packet_1_0):
Fixes #347337 : failure to deserialize event packets with
empty payload (only event type)
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
714f14783e
gdp: add a gdp image to the docs
...
Original commit message from CVS:
* docs/README:
* docs/images/gdp-header.svg:
add a gdp image
* docs/libs/Makefile.am:
* docs/libs/gdp-header.png:
* libs/gst/dataprotocol/dataprotocol.c:
add it to the API docs
* docs/manual/intro-motivation.xml:
fix typo
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
b09b5bc073
gdp: add note to docs about GDP versioning; remove tmpl file
...
Original commit message from CVS:
add note to docs about GDP versioning; remove tmpl file
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
99e9c6d633
gdp: add a GstDPPacketizer object, and create/free functions
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer_any), (gst_dp_packet_from_caps_any),
(gst_dp_version_get_type), (gst_dp_init),
(gst_dp_header_from_buffer), (gst_dp_header_from_buffer_1_0),
(gst_dp_packet_from_caps), (gst_dp_packet_from_caps_1_0),
(gst_dp_packet_from_event), (gst_dp_packet_from_event_1_0),
(gst_dp_event_from_packet_0_2), (gst_dp_event_from_packet_1_0),
(gst_dp_event_from_packet), (gst_dp_packetizer_new),
(gst_dp_packetizer_free):
* libs/gst/dataprotocol/dataprotocol.h:
API: add a GstDPPacketizer object, and create/free functions
API: add GstDPVersion enum
Add 1.0 event function that uses the string serialization
Serialize more useful buffer flags
Fixes #343988
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
207c0ce3f1
gdp: factor out CRC code
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
(gst_dp_packet_from_event):
factor out CRC code
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
cbb7337a93
gdp: factor out some common header init code
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
(gst_dp_packet_from_event):
factor out some common header init code
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
c0fc54e2b4
gdp: make gst_dp_crc() public
...
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* docs/libs/tmpl/gstdataprotocol.sgml:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_crc):
* libs/gst/dataprotocol/dataprotocol.h:
API: make gst_dp_crc() public
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
e0e93cd3d1
gdp: make sure we zero the whole ABI-compatible area
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer):
make sure we zero the whole ABI-compatible area
2011-12-25 22:49:58 +00:00
Thomas Vander Stichele
8afe1aa8e9
gdp: whitespace, comment, doc fixup
...
Original commit message from CVS:
whitespace, comment, doc fixup
2011-12-25 22:49:58 +00:00
Michael Smith
039571d013
gdp: Fixes in reading/writing events over GDP (not currently used?) - dereferencing ...
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Fixes in reading/writing events over GDP (not currently used?) -
dereferencing NULL events for unknown/invalid event types, memory
leak, and change g_warning to GST_WARNING.
2011-12-25 22:49:58 +00:00
Michael Smith
ed4d76a9f0
gdp: Fix docs for dataprocotol to not get the return types completely wrong for a fe...
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
Fix docs for dataprocotol to not get the return types completely
wrong for a few functions.
2011-12-25 22:49:57 +00:00
Wim Taymans
76424103fe
gdp: Documentation updates.
...
Original commit message from CVS:
* libs/gst/base/gstadapter.c:
* libs/gst/base/gstadapter.h:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_get_position):
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_default_query), (gst_base_src_default_do_seek),
(gst_base_src_do_seek), (gst_base_src_perform_seek),
(gst_base_src_send_event), (gst_base_src_update_length),
(gst_base_src_get_range), (gst_base_src_loop),
(gst_base_src_start):
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstcollectpads.h:
* libs/gst/base/gstpushsrc.c:
* libs/gst/base/gstpushsrc.h:
* libs/gst/dataprotocol/dataprotocol.c:
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/net/gstnetclientclock.h:
* libs/gst/net/gstnettimeprovider.h:
Documentation updates.
2011-12-25 22:49:57 +00:00
Andy Wingo
8572c5fc76
gdp: Fix Timmeke Waymans bug.
...
Original commit message from CVS:
2005-10-13 Andy Wingo <wingo@pobox.com>
* libs/gst/dataprotocol/dataprotocol.c (gst_dp_packet_from_caps):
Fix Timmeke Waymans bug.
(gst_dp_caps_from_packet): Make sure we pass a NUL-terminated
string of the proper length to gst_caps_from_string. There's a
potential for, before this fix, that this could cause someone
connecting over the network to cause a segfault if the payload is
not NUL-terminated.
2011-12-25 22:49:57 +00:00
Thomas Vander Stichele
68158437c5
gdp: fix more valgrind warnings before turning up the heat
...
Original commit message from CVS:
fix more valgrind warnings before turning up the heat
2011-12-25 22:49:57 +00:00
Wim Taymans
cc0ba720a4
gdp: It's about time we bump the version number.
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
(gst_dp_packet_from_event):
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/dataprotocol/dp-private.h:
It's about time we bump the version number.
Since event types don't fit in the guint8 anymore describing
the payload type, make payload type 16 bits wide.
2011-12-25 22:49:57 +00:00
Andy Wingo
80ccce89c1
gdp: Fix error-checking return values.
...
Original commit message from CVS:
2005-09-27 Andy Wingo <wingo@pobox.com>
* libs/gst/dataprotocol/dataprotocol.c: Fix error-checking return
values.
2011-12-25 22:49:57 +00:00
Wim Taymans
784ffd1b4f
gdp: Fix serialization of seek events.
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Fix serialization of seek events.
2011-12-25 22:49:57 +00:00
Wim Taymans
0d96e7ec13
gdp: Some docs updates
...
Original commit message from CVS:
* CHANGES-0.9:
* docs/design/part-TODO.txt:
* docs/design/part-events.txt:
Some docs updates
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_activate_push), (gst_base_sink_activate_pull):
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_event_handler),
(gst_base_src_loop):
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
(gst_base_transform_event), (gst_base_transform_handle_buffer),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough):
* gst/elements/gstfakesink.c: (gst_fake_sink_event):
* gst/elements/gstfilesink.c: (gst_file_sink_event):
Event updates.
* gst/gstbuffer.h:
Use faster casts.
* gst/gstelement.c: (gst_element_seek):
* gst/gstelement.h:
Update gst_element_seek.
* gst/gstevent.c: (gst_event_finalize), (_gst_event_copy),
(gst_event_new), (gst_event_new_custom), (gst_event_get_structure),
(gst_event_new_flush_start), (gst_event_new_flush_stop),
(gst_event_new_eos), (gst_event_new_newsegment),
(gst_event_parse_newsegment), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_filler), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_new_seek),
(gst_event_parse_seek), (gst_event_new_navigation):
* gst/gstevent.h:
Make GstEvent use GstStructure. Add parsing code, make sure the
API is sufficiently generic.
Mark possible directions of events and serialization.
* gst/gstmessage.c: (gst_message_init), (gst_message_finalize),
(_gst_message_copy), (gst_message_new_segment_start),
(gst_message_new_segment_done), (gst_message_new_custom),
(gst_message_parse_segment_start),
(gst_message_parse_segment_done):
Small cleanups.
* gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
(gst_pad_set_caps), (gst_pad_send_event):
Update for new events.
Catch events sent in wrong directions.
* gst/gstqueue.c: (gst_queue_link_src),
(gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
(gst_queue_handle_src_query):
Event updates.
* gst/gsttag.c:
* gst/gsttag.h:
Remove event code from this file.
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Event updates.
2011-12-25 22:49:57 +00:00
Wim Taymans
9e03fd9fc0
gdp: Ported dataprotol to 0.9.
...
Original commit message from CVS:
* configure.ac:
* libs/gst/dataprotocol/Makefile.am:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_validate_packet):
* libs/gst/dataprotocol/dataprotocol.h:
* pkgconfig/Makefile.am:
* pkgconfig/gstreamer-dataprotocol-uninstalled.pc.in:
* pkgconfig/gstreamer-dataprotocol.pc.in:
Ported dataprotol to 0.9.
Added pkgconfig files.
2011-12-25 22:49:57 +00:00
David Schleef
9485580372
gdp: remove GstData checks
...
Original commit message from CVS:
* check/Makefile.am: remove GstData checks
* check/gst-libs/gdp.c: (START_TEST): fix for API changes
* gst/Makefile.am: add miniobject, remove data
* gst/gst.h: add miniobject, remove data
* gst/gstdata.c: remove
* gst/gstdata.h: remove
* gst/gstdata_private.h: remove
* gst/gsttypes.h: remove GstEvent and GstMessage
* gst/gstelement.c: (gst_element_post_message): fix for API changes
* gst/gstmarshal.list: change BOXED -> OBJECT
Implement GstMiniObject.
* gst/gstminiobject.c:
* gst/gstminiobject.h:
Modify to be subclasses of GstMiniObject.
* gst/gstbuffer.c: (_gst_buffer_initialize), (gst_buffer_get_type),
(gst_buffer_class_init), (gst_buffer_finalize), (_gst_buffer_copy),
(gst_buffer_init), (gst_buffer_new), (gst_buffer_new_and_alloc),
(gst_subbuffer_get_type), (gst_subbuffer_init),
(gst_buffer_create_sub), (gst_buffer_is_span_fast),
(gst_buffer_span):
* gst/gstbuffer.h:
* gst/gstevent.c: (_gst_event_initialize), (gst_event_get_type),
(gst_event_class_init), (gst_event_init), (gst_event_finalize),
(_gst_event_copy), (gst_event_new):
* gst/gstevent.h:
* gst/gstmessage.c: (_gst_message_initialize),
(gst_message_get_type), (gst_message_class_init),
(gst_message_init), (gst_message_finalize), (_gst_message_copy),
(gst_message_new), (gst_message_new_error),
(gst_message_new_warning), (gst_message_new_tag),
(gst_message_new_state_changed), (gst_message_new_application):
* gst/gstmessage.h:
* gst/gstprobe.c: (gst_probe_perform),
(gst_probe_dispatcher_dispatch):
* gst/gstprobe.h:
* gst/gstquery.c: (_gst_query_initialize), (gst_query_get_type),
(gst_query_class_init), (gst_query_finalize), (gst_query_init),
(_gst_query_copy), (gst_query_new):
Update elements for GstData -> GstMiniObject changes
* gst/gstquery.h:
* gst/gstqueue.c: (gst_queue_finalize), (gst_queue_locked_flush),
(gst_queue_chain), (gst_queue_loop):
* gst/elements/gstbufferstore.c:
(gst_buffer_store_add_buffer_func),
(gst_buffer_store_cleared_func), (gst_buffer_store_get_buffer):
* gst/elements/gstfakesink.c: (gst_fakesink_class_init),
(gst_fakesink_render):
* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
* gst/elements/gstfilesrc.c: (gst_mmap_buffer_get_type),
(gst_mmap_buffer_class_init), (gst_mmap_buffer_init),
(gst_mmap_buffer_finalize), (gst_filesrc_map_region),
(gst_filesrc_create_read):
* gst/elements/gstidentity.c: (gst_identity_class_init):
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_src_event), (free_entry_buffers),
(gst_type_find_element_handle_event):
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer):
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/dataprotocol/dp-private.h:
2011-12-25 22:49:57 +00:00
Andy Wingo
9867259b81
gdp: GCC 4 fixen.
...
Original commit message from CVS:
2005-05-04 Andy Wingo <wingo@pobox.com>
* check/Makefile.am:
* docs/gst/tmpl/gstatomic.sgml:
* docs/gst/tmpl/gstplugin.sgml:
* gst/base/gstbasesink.c: (gst_basesink_activate):
* gst/base/gstbasesrc.c: (gst_basesrc_class_init),
(gst_basesrc_init), (gst_basesrc_set_dataflow_funcs),
(gst_basesrc_query), (gst_basesrc_set_property),
(gst_basesrc_get_property), (gst_basesrc_check_get_range),
(gst_basesrc_activate):
* gst/base/gstbasesrc.h:
* gst/base/gstbasetransform.c: (gst_base_transform_sink_activate),
(gst_base_transform_src_activate):
* gst/elements/gstelements.c:
* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
(gst_fakesrc_set_property), (gst_fakesrc_get_property):
* gst/elements/gsttee.c: (gst_tee_sink_activate):
* gst/elements/gsttypefindelement.c: (find_element_get_length),
(gst_type_find_element_checkgetrange),
(gst_type_find_element_activate):
* gst/gstbin.c: (gst_bin_save_thyself), (gst_bin_restore_thyself):
* gst/gstcaps.c: (gst_caps_do_simplify), (gst_caps_save_thyself),
(gst_caps_load_thyself):
* gst/gstelement.c: (gst_element_pads_activate),
(gst_element_save_thyself), (gst_element_restore_thyself):
* gst/gstpad.c: (gst_pad_load_and_link), (gst_pad_save_thyself),
(gst_ghost_pad_save_thyself), (gst_pad_check_pull_range):
* gst/gstpad.h:
* gst/gstxml.c: (gst_xml_write), (gst_xml_parse_doc),
(gst_xml_parse_file), (gst_xml_parse_memory),
(gst_xml_get_element), (gst_xml_make_element):
* gst/indexers/gstfileindex.c: (gst_file_index_load),
(_file_index_id_save_xml), (gst_file_index_commit):
* gst/registries/gstlibxmlregistry.c: (read_string), (read_uint),
(read_enum), (load_pad_template), (load_feature), (load_plugin),
(load_paths):
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_caps),
(gst_dp_packet_from_event), (gst_dp_caps_from_packet):
* tools/gst-complete.c: (main):
* tools/gst-compprep.c: (main):
* tools/gst-inspect.c: (print_element_properties_info):
* tools/gst-launch.c: (xmllaunch_parse_cmdline):
* tools/gst-xmlinspect.c: (print_element_properties):
GCC 4 fixen.
2011-12-25 22:49:57 +00:00
Wim Taymans
1e5ba07cbb
gdp: Next big merge.
...
Original commit message from CVS:
Next big merge.
Added GstBus for mainloop integration.
Added GstMessage for sending notifications on the bus.
Added GstTask as an abstraction for pipeline entry points.
Removed GstThread.
Removed Schedulers.
Simplified GstQueue for multithreaded core.
Made _link threadsafe, removed old capsnego.
Added STREAM_LOCK and PREROLL_LOCK in GstPad.
Added pad blocking functions.
Reworked scheduling functions in GstPad to prepare for
scheduling updates soon.
Moved events out of data stream.
Simplified GstEvent types.
Added return values to push/pull.
Removed clocking from GstElement.
Added prototypes for state change function for next merge.
Removed iterate from bins and state change management.
Fixed some elements, disabled others for now.
Fixed -inspect and -launch.
Added check for GstBus.
2011-12-25 22:49:57 +00:00
Wim Taymans
d29a498d86
gdp: First THREADED backport attempt, focusing on adding locks and making sure the API is threadsafe. Needs more work. Mor...
...
Original commit message from CVS:
First THREADED backport attempt, focusing on adding locks and
making sure the API is threadsafe. Needs more work. More docs
follow this week.
2011-12-25 22:49:57 +00:00
Zaheer Abbas Merali
a3562d1fda
gdp: Allocate the 1 byte more memory that was forgotten!!!!!
...
Original commit message from CVS:
2005-02-18 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_dump_byte_array):
Allocate the 1 byte more memory that was forgotten!!!!!
2011-12-25 22:49:57 +00:00
Wim Taymans
c6ebc31067
gdp: Fix threadsafety of the crc checking function.
...
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_crc):
Fix threadsafety of the crc checking function.
2011-12-25 22:49:57 +00:00
Thomas Vander Stichele
e8ef3dac6e
gdp: fix for #150242
...
Original commit message from CVS:
fix for #150242
2011-12-25 22:49:57 +00:00
Thomas Vander Stichele
6235216793
gdp: doc style fixes
...
Original commit message from CVS:
doc style fixes
2011-12-25 22:49:57 +00:00
Thomas Vander Stichele
b07fa6fc05
gdp: bump GDP to 0.1, add buffer flags
...
Original commit message from CVS:
bump GDP to 0.1, add buffer flags
2011-12-25 22:49:57 +00:00
Thomas Vander Stichele
047718e576
gdp: wrap header in _NEW
...
Original commit message from CVS:
wrap header in _NEW
2011-12-25 22:49:57 +00:00
Thomas Vander Stichele
44dc4f9608
Original commit message from CVS:
...
use GST macros; add asserts
2011-12-25 22:49:56 +00:00
Thomas Vander Stichele
889f9e1464
gdp: private prototype
...
Original commit message from CVS:
private prototype
2011-12-25 22:49:56 +00:00
Thomas Vander Stichele
b9dd8ca076
gdp: add dataprotocol
...
Original commit message from CVS:
clean up libs docs; add dataprotocol
2011-12-25 22:49:56 +00:00
Stefan Sauer
34cf6d1924
controller: port to new controlbinding api
2011-12-23 18:41:49 +01:00
Wim Taymans
a5f3d21723
videofilter: improve video filter
...
Flesh out the video filter base class. Make it parse the input and output caps
and turn them into GstVideoInfo. Map buffers as video frames and pass them to
the transform functions.
This allows us to also implement the propose and decide_allocation vmethods.
Implement the transform size method as well.
Update subclasses with the new improvements.
2011-12-21 23:46:53 +01:00
Wim Taymans
8a9c4ed69f
videofilter: implement propose_allocation
...
With the new video bufferpool we can now implement the propose_allocation
vmethod on some video filter elements so that we can also use video metadata and
bufferpools when not operating in passthrough mode.
2011-12-21 18:58:42 +01:00
Wim Taymans
db4d5af9b6
subtitle: don't use GST_CAPS_NONE macro
...
This macro returns a singleton.
2011-12-20 12:53:16 +01:00
Vincent Penquerc'h
85c10b0b24
adder: do not send too many flush-stop events
...
GstCollectPads2 now allows us to override the event function,
so we can withhold flush stop events if none are to be sent.
https://bugzilla.gnome.org/show_bug.cgi?id=666379
2011-12-16 20:12:01 +00:00