Tim-Philipp Müller
6afa355856
taglist: avoid looking up GstTagInfo twice in a row
...
Pass the info structure to our internal function if already available.
Also clean up warnings for unknown tags.
2009-11-05 18:39:15 +00:00
Edward Hervey
6f7519704d
gstregistrychunks: We're certain plugin_name is an intern string.
...
The only place this method is called from creates the plugin_name argument
with g_intern_string().
Shaves off 1% from registry loading.
2009-11-05 18:55:30 +01:00
Bastien Nocera
9581e5887c
implement buffering-left argument to buffer messages
...
Using the current fill level of the queue, and the average input
rate, we can determine how long it will take to finish downloading
the whole stream to the temporary file.
Fixes #600726
2009-11-05 15:22:35 +01:00
Wim Taymans
7da9eb0f74
query: whitespace fixes
2009-11-05 15:14:13 +01:00
Wim Taymans
473594b3a4
ghostpad: fix locking
2009-11-05 14:02:28 +01:00
Stefan Kost
0467799f22
ghostpad: don't release mutex twice
2009-11-05 14:30:48 +02:00
Stefan Kost
df2341684f
ghostpad: skip type check in internal api
2009-11-05 14:30:48 +02:00
Wim Taymans
64a4037f63
pad: indentation fix
2009-11-05 12:36:10 +01:00
Stefan Kost
f63ecd04a8
pad: rename new api from _refed to _reffed.
...
Due to popular demand rename the new api as we still can.
API: gst_pad_get_caps_reffed(), gst_pad_peer_get_caps_reffed()
2009-11-05 12:54:32 +02:00
Stefan Kost
211b2e4338
element: access padtemplate list directly to avoid call and type check.
2009-11-04 22:42:52 +02:00
Sebastian Dröge
82f66b4036
event: Add a FIXME 0.11 for having flush events that don't reset running time
2009-11-04 18:59:23 +01:00
Jan Schmidt
94bb0ee718
registrychunks: Fix a printf compile warning on 64-bit platforms
2009-11-04 17:52:21 +00:00
Sebastian Dröge
6042793c26
ghostpad: Make sure that nobody sets the proxypad or ghostpad itself as target
...
Doing this will lead to very interesting crashes, like stack overflows.
2009-11-04 17:17:17 +01:00
Jan Schmidt
f425b2711f
plugin loader: Don't fail after a short read/write
...
The logic to handle short reads/writes was incorrect, causing the
packet handler to attempt to handle incomplete packets.
Grow the packet transmit buffer in proportion to observed usage,
causing fewer reallocs.
Add some more debug in the registry chunks code.
2009-11-04 11:36:20 +00:00
Jan Schmidt
cebbcb1cdf
plugin loader: Don't crash on bogus plugin details
...
When invalid registry chunks are received from the child, and parsing
fails, don't access an invalid plugin pointer. Instead attempt to
figure out which plugin caused the problem and blacklist it.
2009-11-04 11:36:20 +00:00
Jan Schmidt
35e1103446
gst-indent: Use the same logic to find gnuindent as the git hook
2009-11-04 11:36:19 +00:00
Stefan Kost
69ea131cfa
build: include stdio.h for FILE
2009-11-03 17:30:14 +02:00
Tim-Philipp Müller
5f8b121619
docs: add another example to the gst-launch man page
...
Add an example that shows how to refer to specific pads by name
when constructing a pipeline string. Fixes #600382 .
2009-11-03 01:23:03 +00:00
Tim-Philipp Müller
5790c33fe4
gsttypefind: avoid one more run-time type check
2009-11-02 08:50:04 +00:00
Sebastian Dröge
f9e3b72ff6
structure: API: Add gst_structure_id_has_field{,_typed}
2009-11-02 09:24:10 +01:00
Edward Hervey
0aff2c55b7
gsttypefind: Use _CAST variants when the type has alredy been checked.
...
This avoids checking the type n_typefinders * 4 times when loading the
registry.
2009-11-02 08:30:24 +01:00
Sebastian Dröge
15229ab669
ghostpad: Implement iterate internal links
...
The internally linked pad of the ghost pad is its
proxy pad, which is the pad that is linked to the ghost
pads target.
2009-11-01 11:24:40 +01:00
Sebastian Dröge
28493b04ec
parser: Make sure that signal user data is freed by setting a GClosureNotify
...
...instead of using a second mechanism and storing the user data
inside the GObjects qdata.
2009-10-31 16:56:17 +01:00
Sebastian Dröge
02d044e291
parser: Use GSlice for allocating the structs
2009-10-31 16:49:03 +01:00
Sebastian Dröge
5b5718cd20
parser: Always get DelayedLink information from the objects qdata
...
This makes sure that it is always valid.
2009-10-31 16:43:26 +01:00
Edward Hervey
a6cbe26164
po: queue2 has moved to core
2009-10-31 09:48:19 +01:00
Sebastian Dröge
9ff8c9a7bb
queue2: Add to the docs
2009-10-29 11:41:33 +01:00
Sebastian Dröge
22fbce48bb
queue2: Use "Queue 2" as long name
2009-10-29 11:38:21 +01:00
Sebastian Dröge
0f1c4ab188
queue2: Use GST_BOILERPLATE_FULL() and add pad templates/set details in base_init
2009-10-29 11:35:08 +01:00
Sebastian Dröge
5c821a0df5
queue2: Use gst_element_class_set_details_simple()
2009-10-29 11:30:57 +01:00
Sebastian Dröge
40732dd308
queue2: Integrate into coreplugins
2009-10-29 11:30:11 +01:00
Sebastian Dröge
08e3cb531c
queue2: Move struct declarations to a separate header
2009-10-29 11:21:36 +01:00
Sebastian Dröge
9236921a34
queue2: Move queue2 to gstreamer coreplugins
...
Fixes bug #599996 .
2009-10-29 11:18:20 +01:00
Tim-Philipp Müller
d98dc4788c
Remove GST_DEBUG_FUNCPTR where they're pointless
...
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
2009-10-29 11:17:18 +01:00
Wim Taymans
141e06b547
queue2: add custom acceptcaps function
2009-10-29 11:17:17 +01:00
Mark Nauwelaerts
f766708c17
queue2: post error message when pausing task if so appropriate
...
If a downstream element returns an error while upstream has already
put all data into queue2 (including EOS), upstream will no longer
chain into queue2, so it is up to queue2 to perform some
EOS handling / message posting in such cases. See #589991 .
2009-10-29 11:17:17 +01:00
Wim Taymans
ec81bbf713
queue2: fix leak and improve buffering
...
Keep track of the max requested position and compare this to the write position
in the temp file to get the current amount of buffered data.
Fix memleak of all incomming buffers.
Fixes #588551
2009-10-29 11:17:17 +01:00
Wim Taymans
49c01cce93
queue2: flush differently, avoiding deadlocks
...
Don't flush the file by closing and opening it but instead use g_freopen. This
avoids a deadlock in shutdown because we emit the temp-location property change
with the wrong lock held.
2009-10-29 11:17:17 +01:00
Wim Taymans
affe0aef6f
queue2: add temp-template property
...
Add a new temp-template property so that queue2 can securely allocate a
temporary filename. Deprecate the temp-location property for setting the
location but still use it to notify the allocated temp file.
2009-10-29 11:17:17 +01:00
LRN
4843c0947b
win32: fix seeking in large files
...
Fix Seeking in large files by using the 64-bit seek functions.
Fixes #576019
2009-10-29 11:17:17 +01:00
Frederic Crozat
4ec6f02e8a
Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding ( #546822 ).
...
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/alsa/gstalsaplugin.c: (plugin_init):
* ext/cdparanoia/gstcdparanoiasrc.c: (plugin_init):
* ext/gnomevfs/gstgnomevfs.c: (plugin_init):
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init):
* gst-libs/gst/pbutils/pbutils.c: (gst_pb_utils_init):
* gst-libs/gst/tag/tags.c: (gst_tag_register_tags_internal):
* gst/playback/gstdecodebin.c: (plugin_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_plugin_init):
* gst/playback/gstplayback.c: (plugin_init):
* gst/playback/gstqueue2.c: (plugin_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_plugin_init):
* sys/v4l/gstv4l.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822 ).
2009-10-29 11:17:16 +01:00
Stefan Kost
f9fdf30406
Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe...
...
Original commit message from CVS:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-overrides.txt:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/gst-plugins-base-plugins.args:
* docs/plugins/gst-plugins-base-plugins.hierarchy:
* docs/plugins/gst-plugins-base-plugins.interfaces:
* docs/plugins/gst-plugins-base-plugins.prerequisites:
* docs/plugins/gst-plugins-base-plugins.signals:
* docs/plugins/inspect/plugin-adder.xml:
* docs/plugins/inspect/plugin-alsa.xml:
* docs/plugins/inspect/plugin-audioconvert.xml:
* docs/plugins/inspect/plugin-audiorate.xml:
* docs/plugins/inspect/plugin-audioresample.xml:
* docs/plugins/inspect/plugin-audiotestsrc.xml:
* docs/plugins/inspect/plugin-cdparanoia.xml:
* docs/plugins/inspect/plugin-decodebin.xml:
* docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
* docs/plugins/inspect/plugin-gdp.xml:
* docs/plugins/inspect/plugin-gnomevfs.xml:
* docs/plugins/inspect/plugin-libvisual.xml:
* docs/plugins/inspect/plugin-ogg.xml:
* docs/plugins/inspect/plugin-pango.xml:
* docs/plugins/inspect/plugin-playback.xml:
* docs/plugins/inspect/plugin-queue2.xml:
* docs/plugins/inspect/plugin-subparse.xml:
* docs/plugins/inspect/plugin-tcp.xml:
* docs/plugins/inspect/plugin-theora.xml:
* docs/plugins/inspect/plugin-typefindfunctions.xml:
* docs/plugins/inspect/plugin-uridecodebin.xml:
* docs/plugins/inspect/plugin-video4linux.xml:
* docs/plugins/inspect/plugin-videorate.xml:
* docs/plugins/inspect/plugin-videoscale.xml:
* docs/plugins/inspect/plugin-videotestsrc.xml:
* docs/plugins/inspect/plugin-volume.xml:
* docs/plugins/inspect/plugin-vorbis.xml:
* docs/plugins/inspect/plugin-ximagesink.xml:
* docs/plugins/inspect/plugin-xvimagesink.xml:
* ext/alsa/gstalsamixer.c:
* ext/alsa/gstalsasink.c:
* ext/alsa/gstalsasrc.c:
* ext/gio/gstgiosink.c:
* ext/gio/gstgiosrc.c:
* ext/gio/gstgiostreamsink.c:
* ext/gio/gstgiostreamsrc.c:
* ext/gnomevfs/gstgnomevfssink.c:
* ext/gnomevfs/gstgnomevfssrc.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/pango/gstclockoverlay.c:
* ext/pango/gsttextoverlay.c:
* ext/pango/gsttextrender.c:
* ext/pango/gsttimeoverlay.c:
* ext/theora/theoradec.c:
* ext/theora/theoraenc.c:
* ext/theora/theoraparse.c:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisenc.c:
* ext/vorbis/vorbisparse.c:
* ext/vorbis/vorbistag.c:
* gst/adder/gstadder.c:
* gst/audioconvert/gstaudioconvert.c:
* gst/audioresample/gstaudioresample.c:
* gst/audiotestsrc/gstaudiotestsrc.c:
* gst/ffmpegcolorspace/gstffmpegcolorspace.c:
* gst/gdp/gstgdpdepay.c:
* gst/gdp/gstgdppay.c:
* gst/playback/gstdecodebin2.c:
* gst/playback/gstplaybin.c:
* gst/playback/gstplaybin2.c:
* gst/playback/gstqueue2.c:
* gst/playback/gsturidecodebin.c:
* gst/tcp/gstmultifdsink.c:
* gst/tcp/gsttcpserversink.c:
* gst/videorate/gstvideorate.c:
* gst/videoscale/gstvideoscale.c:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/volume/gstvolume.c:
* sys/ximage/ximagesink.c:
* sys/xvimage/xvimagesink.c:
Cleanup Plugin docs. Link to signals and properties. Fix sub-section
titles. Drop mentining that all our example pipelines are "simple"
pipelines.
2009-10-29 11:17:16 +01:00
Stefan Kost
917d1c4be0
gst/playback/gstqueue2.c: Do not double notify. Remove the unsued return value.
...
Original commit message from CVS:
* gst/playback/gstqueue2.c:
Do not double notify. Remove the unsued return value.
2009-10-29 11:17:16 +01:00
Wim Taymans
ca7828940d
docs/design/draft-keyframe-force.txt: Fix typo.
...
Original commit message from CVS:
* docs/design/draft-keyframe-force.txt:
Fix typo.
* gst/playback/gstqueue2.c: (update_buffering),
(gst_queue_handle_src_query):
Set buffering mode in the messages.
Set buffering percent in the query.
* tests/examples/seek/seek.c: (update_fill), (msg_state_changed),
(do_stream_buffering), (do_download_buffering), (msg_buffering):
Do some more fancy things based on the buffering method in use.
2009-10-29 11:17:16 +01:00
Wim Taymans
e9d3f79139
gst/playback/gstqueue2.c: Include extra buffering stats in the buffering message.
...
Original commit message from CVS:
* gst/playback/gstqueue2.c: (update_buffering),
(gst_queue_close_temp_location_file), (gst_queue_handle_src_query),
(gst_queue_src_checkgetrange_function):
Include extra buffering stats in the buffering message.
Implement BUFFERING query.
* gst/playback/gsturidecodebin.c: (do_async_start),
(do_async_done), (type_found), (setup_streaming), (setup_source),
(gst_uri_decode_bin_change_state):
Only add decodebin2 when the type is found in streaming mode.
Make uridecodebin async to PAUSED even when we don't have decodebin2
added yet.
2009-10-29 11:17:16 +01:00
Wim Taymans
fc13a73038
gst/playback/gstqueue2.c: Update the estimated input data when we push out a buffer.
...
Original commit message from CVS:
* gst/playback/gstqueue2.c: (update_out_rates),
(gst_queue_open_temp_location_file),
(gst_queue_close_temp_location_file), (gst_queue_handle_src_event),
(gst_queue_handle_src_query), (gst_queue_set_property):
Update the estimated input data when we push out a buffer.
Add some debug info about the temp file.
Only forward src events when we are not using a temp file.
Don't block the duration query, we need to find something better.
Don't leak the temp filename.
2009-10-29 11:17:16 +01:00
Wim Taymans
0e7fb0ffa5
gst/playback/gstqueue2.c: The queue is never filled when there are no buffers in the queue at all.
...
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_is_filled):
The queue is never filled when there are no buffers in the queue at all.
Fixes #523993 .
2009-10-29 11:17:15 +01:00
Sebastian Dröge
301b7ba7b9
Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u...
...
Original commit message from CVS:
* configure.ac:
* ext/alsa/gstalsamixerelement.c:
(gst_alsa_mixer_element_class_init):
* ext/alsa/gstalsasink.c: (gst_alsasink_class_init):
* ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init):
* ext/cdparanoia/gstcdparanoiasrc.c:
(gst_cd_paranoia_src_class_init):
* ext/gio/gstgiosink.c: (gst_gio_sink_class_init):
* ext/gio/gstgiosrc.c: (gst_gio_src_class_init):
* ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_class_init):
* ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_class_init):
* ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init):
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init):
* ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init):
* ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init):
* ext/pango/gsttextrender.c: (gst_text_render_class_init):
* ext/theora/theoradec.c: (gst_theora_dec_class_init):
* ext/theora/theoraenc.c: (gst_theora_enc_class_init):
* ext/theora/theoraparse.c: (gst_theora_parse_class_init):
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_class_init):
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
(gst_audio_filter_template_class_init):
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_class_init):
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_class_init):
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_class_init):
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init):
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_class_init):
* gst/audioresample/gstaudioresample.c:
(gst_audioresample_class_init):
* gst/audiotestsrc/gstaudiotestsrc.c:
(gst_audio_test_src_class_init):
* gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(preroll_unlinked):
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
* gst/playback/gstplaybin2.c: (gst_play_bin_class_init):
* gst/playback/gstplaysink.c: (gst_play_sink_class_init):
* gst/playback/gstqueue2.c: (gst_queue_class_init):
* gst/playback/gststreaminfo.c: (gst_stream_info_class_init):
* gst/playback/gststreamselector.c: (gst_selector_pad_class_init),
(gst_stream_selector_class_init):
* gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init):
* gst/subparse/gstsubparse.c: (gst_sub_parse_class_init):
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init):
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init):
* gst/videorate/gstvideorate.c: (gst_video_rate_class_init):
* gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init):
* gst/videotestsrc/gstvideotestsrc.c:
(gst_video_test_src_class_init):
* gst/volume/gstvolume.c: (gst_volume_class_init):
* sys/v4l/gstv4lelement.c: (gst_v4lelement_class_init):
* sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init):
* sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init):
* sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init):
* sys/ximage/ximagesink.c: (gst_ximagesink_class_init):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init):
Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use
static strings (i.e. all). This gives us less memory usage,
fewer allocations and thus less memory defragmentation. Depend
on core CVS for this. Fixes bug #523806 .
2009-10-29 11:17:15 +01:00
Wim Taymans
4de6a788b8
gst/playback/gstqueue2.c: Use separate timers for input and output rates.
...
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_init), (gst_queue_finalize),
(reset_rate_timer), (update_in_rates), (update_out_rates),
(gst_queue_locked_enqueue), (gst_queue_locked_dequeue),
(gst_queue_chain), (gst_queue_loop):
Use separate timers for input and output rates.
Pause measuring the output rate when we block for more data.
See #503262 .
2009-10-29 11:17:15 +01:00
Wim Taymans
3fb28dfc90
gst/playback/gstqueue2.c: Pause the timer to measure the input rate when we block because the queue is filled. See #5...
...
Original commit message from CVS:
* gst/playback/gstqueue2.c: (gst_queue_chain):
Pause the timer to measure the input rate when we block because the
queue is filled. See #503262 .
2009-10-29 11:17:15 +01:00