platform/upstream/gst-plugins-good.git
15 years agogst/rtpmanager/: Protect lists and structures with locks.
Wim Taymans [Fri, 13 Apr 2007 09:20:55 +0000 (09:20 +0000)]
gst/rtpmanager/: Protect lists and structures with locks.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
(gst_rtp_bin_init), (gst_rtp_bin_finalize), (new_ssrc_pad_found),
(create_recv_rtp), (gst_rtp_bin_request_new_pad):
* gst/rtpmanager/gstrtpbin.h:
* gst/rtpmanager/gstrtpclient.c:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(gst_rtp_session_init), (gst_rtp_session_finalize),
(gst_rtp_session_event_recv_rtp_sink),
(gst_rtp_session_event_recv_rtcp_sink),
(gst_rtp_session_chain_recv_rtcp),
(gst_rtp_session_request_new_pad):
Protect lists and structures with locks.
Return FLOW_OK from RTCP messages for now.

15 years agogst/rtpmanager/gstrtpbin.c: Emit pt map requests and cache results.
Wim Taymans [Thu, 12 Apr 2007 08:18:32 +0000 (08:18 +0000)]
gst/rtpmanager/gstrtpbin.c: Emit pt map requests and cache results.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
(create_stream), (gst_rtp_bin_class_init), (pt_map_requested):
Emit pt map requests and cache results.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init),
(gst_jitter_buffer_sink_parse_caps),
(gst_jitter_buffer_sink_setcaps),
(gst_rtp_jitter_buffer_get_clock_rate),
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/gstrtpjitterbuffer.h:
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
Emit request-pt-map signals.

15 years agogst/rtpmanager/gstrtpbin-marshal.list: Some more custom marshallers.
Wim Taymans [Wed, 11 Apr 2007 13:49:54 +0000 (13:49 +0000)]
gst/rtpmanager/gstrtpbin-marshal.list: Some more custom marshallers.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin-marshal.list:
Some more custom marshallers.
* gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map),
(clock_rate_request), (create_stream), (gst_rtp_bin_class_init),
(pt_map_requested), (new_ssrc_pad_found), (create_recv_rtp):
* gst/rtpmanager/gstrtpbin.h:
Prepare for caching pt maps.
Connect to signals to collect pt maps.
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_class_init),
(gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_loop):
* gst/rtpmanager/gstrtpjitterbuffer.h:
Add request_clock_rate signal.
Use scale insteat of scale_int because the later does not deal with
negative numbers.
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init),
(gst_rtp_pt_demux_chain):
* gst/rtpmanager/gstrtpptdemux.h:
Implement request-pt-map signal.

15 years agogst/rtpmanager/: Added custom marshallers for signals.
Wim Taymans [Tue, 10 Apr 2007 09:14:07 +0000 (09:14 +0000)]
gst/rtpmanager/: Added custom marshallers for signals.

Original commit message from CVS:
* gst/rtpmanager/.cvsignore:
* gst/rtpmanager/Makefile.am:
* gst/rtpmanager/gstrtpbin-marshal.list:
Added custom marshallers for signals.
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init):
* gst/rtpmanager/gstrtpbin.h:
Prepare for emiting pt map signals.
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init):
* gst/rtpmanager/gstrtpssrcdemux.c:
(gst_rtp_ssrc_demux_class_init):
Fix signals.

15 years agogst/rtpmanager/gstrtpbin.*: Provide a clock.
Wim Taymans [Fri, 6 Apr 2007 12:28:29 +0000 (12:28 +0000)]
gst/rtpmanager/gstrtpbin.*: Provide a clock.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init),
(gst_rtp_bin_init), (gst_rtp_bin_provide_clock):
* gst/rtpmanager/gstrtpbin.h:
Provide a clock.

15 years agogst/rtpmanager/gstrtpbin.c: Fix pad template name parsing.
Wim Taymans [Fri, 6 Apr 2007 12:07:30 +0000 (12:07 +0000)]
gst/rtpmanager/gstrtpbin.c: Fix pad template name parsing.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (create_rtcp):
Fix pad template name parsing.

15 years agogst/rtpmanager/gstrtpjitterbuffer.c: Add some debug and comments.
Wim Taymans [Thu, 5 Apr 2007 16:10:24 +0000 (16:10 +0000)]
gst/rtpmanager/gstrtpjitterbuffer.c: Add some debug and comments.

Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_loop):
Add some debug and comments.
Fix double unref() in error cases.

15 years agogst/rtpmanager/gstrtpbin.*: Add debugging category.
Wim Taymans [Thu, 5 Apr 2007 13:54:23 +0000 (13:54 +0000)]
gst/rtpmanager/gstrtpbin.*: Add debugging category.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (find_session_by_id),
(create_session), (find_stream_by_ssrc), (create_stream),
(gst_rtp_bin_class_init), (new_payload_found),
(new_ssrc_pad_found), (create_recv_rtp), (create_recv_rtcp),
(create_send_rtp), (create_rtcp):
* gst/rtpmanager/gstrtpbin.h:
Add debugging category.
Added RTPStream to manage stream per SSRC, each with its own
jitterbuffer and ptdemux.
Added SSRCDemux.
Connect to various SSRC and PT signals and create ghostpads, link stuff.
* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
Added rtpbin to elements.
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain):
Fix caps and forward GstFlowReturn
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init),
(gst_rtp_session_event_recv_rtp_sink),
(gst_rtp_session_chain_recv_rtp),
(gst_rtp_session_event_recv_rtcp_sink),
(gst_rtp_session_chain_recv_rtcp),
(gst_rtp_session_event_send_rtp_sink),
(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
(create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src),
(gst_rtp_session_request_new_pad):
Add debug category.
Add event handling
* gst/rtpmanager/gstrtpssrcdemux.c: (find_rtp_pad_for_ssrc),
(create_rtp_pad_for_ssrc), (gst_rtp_ssrc_demux_class_init),
(gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_chain),
(gst_rtp_ssrc_demux_change_state):
* gst/rtpmanager/gstrtpssrcdemux.h:
Add debug category.
Add new-pt-pad signal.

15 years agogst/rtpmanager/: Added simple SSRC demuxer.
Wim Taymans [Wed, 4 Apr 2007 10:23:15 +0000 (10:23 +0000)]
gst/rtpmanager/: Added simple SSRC demuxer.

Original commit message from CVS:
* gst/rtpmanager/Makefile.am:
* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
* gst/rtpmanager/gstrtpssrcdemux.c: (find_pad_for_ssrc),
(create_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init),
(gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_init),
(gst_rtp_ssrc_demux_finalize), (gst_rtp_ssrc_demux_sink_event),
(gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_src_event),
(gst_rtp_ssrc_demux_change_state):
* gst/rtpmanager/gstrtpssrcdemux.h:
Added simple SSRC demuxer.

15 years agogst/rtpmanager/: Some more ghostpad magic.
Wim Taymans [Tue, 3 Apr 2007 11:35:39 +0000 (11:35 +0000)]
gst/rtpmanager/: Some more ghostpad magic.

Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (find_session_by_id),
(create_session), (gst_rtp_bin_base_init), (create_recv_rtp),
(create_recv_rtcp), (create_send_rtp), (create_rtcp),
(gst_rtp_bin_request_new_pad):
* gst/rtpmanager/gstrtpbin.h:
* gst/rtpmanager/gstrtpclient.c:
Some more ghostpad magic.

15 years agogst/rtpmanager/Makefile.am: Add .h file so it can be disted properly.
Wim Taymans [Tue, 3 Apr 2007 09:51:13 +0000 (09:51 +0000)]
gst/rtpmanager/Makefile.am: Add .h file so it can be disted properly.

Original commit message from CVS:
* gst/rtpmanager/Makefile.am:
Add .h file so it can be disted properly.

15 years agoAdd RTP session management elements. Still in progress.
Wim Taymans [Tue, 3 Apr 2007 09:13:17 +0000 (09:13 +0000)]
Add RTP session management elements. Still in progress.

Original commit message from CVS:
* configure.ac:
* gst/rtpmanager/Makefile.am:
* gst/rtpmanager/async_jitter_queue.c: (async_jitter_queue_new),
(signal_waiting_threads), (async_jitter_queue_ref),
(async_jitter_queue_ref_unlocked),
(async_jitter_queue_set_low_threshold),
(async_jitter_queue_set_high_threshold),
(async_jitter_queue_set_max_queue_length),
(async_jitter_queue_get_g_queue), (calculate_ts_diff),
(async_jitter_queue_length_ts_units_unlocked),
(async_jitter_queue_unref_and_unlock), (async_jitter_queue_unref),
(async_jitter_queue_lock), (async_jitter_queue_unlock),
(async_jitter_queue_push), (async_jitter_queue_push_unlocked),
(async_jitter_queue_push_sorted),
(async_jitter_queue_push_sorted_unlocked),
(async_jitter_queue_insert_after_unlocked),
(async_jitter_queue_pop_intern_unlocked), (async_jitter_queue_pop),
(async_jitter_queue_pop_unlocked), (async_jitter_queue_length),
(async_jitter_queue_length_unlocked),
(async_jitter_queue_set_flushing_unlocked),
(async_jitter_queue_unset_flushing_unlocked),
(async_jitter_queue_set_blocking_unlocked):
* gst/rtpmanager/async_jitter_queue.h:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init),
(gst_rtp_bin_class_init), (gst_rtp_bin_init),
(gst_rtp_bin_finalize), (gst_rtp_bin_set_property),
(gst_rtp_bin_get_property), (gst_rtp_bin_change_state),
(gst_rtp_bin_request_new_pad), (gst_rtp_bin_release_pad):
* gst/rtpmanager/gstrtpbin.h:
* gst/rtpmanager/gstrtpclient.c: (new_pad), (create_stream),
(free_stream), (find_stream_by_ssrc), (gst_rtp_client_base_init),
(gst_rtp_client_class_init), (gst_rtp_client_init),
(gst_rtp_client_finalize), (gst_rtp_client_set_property),
(gst_rtp_client_get_property), (gst_rtp_client_change_state),
(gst_rtp_client_request_new_pad), (gst_rtp_client_release_pad):
* gst/rtpmanager/gstrtpclient.h:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_base_init),
(gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init),
(gst_rtp_jitter_buffer_dispose), (gst_rtp_jitter_buffer_getcaps),
(gst_jitter_buffer_sink_setcaps), (free_func),
(gst_rtp_jitter_buffer_flush_start),
(gst_rtp_jitter_buffer_flush_stop),
(gst_rtp_jitter_buffer_src_activate_push),
(gst_rtp_jitter_buffer_change_state), (priv_compare_rtp_seq_lt),
(compare_rtp_buffers_seq_num), (gst_rtp_jitter_buffer_sink_event),
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop),
(gst_rtp_jitter_buffer_query),
(gst_rtp_jitter_buffer_set_property),
(gst_rtp_jitter_buffer_get_property):
* gst/rtpmanager/gstrtpjitterbuffer.h:
* gst/rtpmanager/gstrtpmanager.c: (plugin_init):
* gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_base_init),
(gst_rtp_pt_demux_class_init), (gst_rtp_pt_demux_init),
(gst_rtp_pt_demux_finalize), (gst_rtp_pt_demux_chain),
(gst_rtp_pt_demux_getcaps), (find_pad_for_pt),
(gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release),
(gst_rtp_pt_demux_change_state):
* gst/rtpmanager/gstrtpptdemux.h:
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init),
(gst_rtp_session_class_init), (gst_rtp_session_init),
(gst_rtp_session_finalize), (gst_rtp_session_set_property),
(gst_rtp_session_get_property), (gst_rtp_session_change_state),
(gst_rtp_session_chain_recv_rtp),
(gst_rtp_session_chain_recv_rtcp),
(gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink),
(create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src),
(gst_rtp_session_request_new_pad), (gst_rtp_session_release_pad):
* gst/rtpmanager/gstrtpsession.h:
Add RTP session management elements. Still in progress.

15 years agoavidemux: push mode; cater for chunk padding
Mark Nauwelaerts [Mon, 10 Aug 2009 11:30:23 +0000 (13:30 +0200)]
avidemux: push mode; cater for chunk padding

15 years agoavidemux: only use stream's pad after having checked it exists
Mark Nauwelaerts [Tue, 4 Aug 2009 17:45:43 +0000 (19:45 +0200)]
avidemux: only use stream's pad after having checked it exists

15 years agoavidemux: sprinkle some more GST_DEBUG_FUNCPTR
Mark Nauwelaerts [Tue, 4 Aug 2009 11:38:09 +0000 (13:38 +0200)]
avidemux: sprinkle some more GST_DEBUG_FUNCPTR

15 years agoavidemux: post error message if no pads to push EOS event on
Mark Nauwelaerts [Tue, 4 Aug 2009 11:36:36 +0000 (13:36 +0200)]
avidemux: post error message if no pads to push EOS event on

15 years agoavidemux: fix typo in warning message
Mark Nauwelaerts [Tue, 4 Aug 2009 09:39:59 +0000 (11:39 +0200)]
avidemux: fix typo in warning message

15 years agoavidemux: fix some buffer ref handling
Mark Nauwelaerts [Tue, 4 Aug 2009 09:39:39 +0000 (11:39 +0200)]
avidemux: fix some buffer ref handling

15 years agoavidemux: do not exceed maximum number of supported streams
Mark Nauwelaerts [Tue, 4 Aug 2009 09:37:16 +0000 (11:37 +0200)]
avidemux: do not exceed maximum number of supported streams

15 years agoavidemux: prevent double unref; gst_avi_demux_parse_avih already unrefs
Mark Nauwelaerts [Tue, 4 Aug 2009 09:35:18 +0000 (11:35 +0200)]
avidemux: prevent double unref; gst_avi_demux_parse_avih already unrefs

15 years agoavidemux: verify size of INFO LIST to satisfy subsequent expectations
Mark Nauwelaerts [Tue, 4 Aug 2009 09:32:27 +0000 (11:32 +0200)]
avidemux: verify size of INFO LIST to satisfy subsequent expectations

15 years agoavidemux: check video stream framerate against avi header frame duration
Mark Nauwelaerts [Wed, 29 Jul 2009 13:25:38 +0000 (15:25 +0200)]
avidemux: check video stream framerate against avi header frame duration

The former might be bogus in silly cases, and the latter seems to
carry more weight.

15 years agoavidemux: streamline stream duration calculation
Mark Nauwelaerts [Tue, 4 Aug 2009 10:16:13 +0000 (12:16 +0200)]
avidemux: streamline stream duration calculation

15 years agodv1394src: Fix element for live usage... which has been broken for 2 years :(
Edward Hervey [Fri, 3 Jul 2009 12:04:13 +0000 (14:04 +0200)]
dv1394src: Fix element for live usage... which has been broken for 2 years :(

This is a live source, therefore:
* Use GST_FORMAT_TIME as the default format
* set_timestamp to True
* properly implement query latency.

This allows expected live usage like : playbin2 uri=dv://

15 years agoraw1394: Remove unneeded variable
Edward Hervey [Sun, 9 Aug 2009 07:43:41 +0000 (09:43 +0200)]
raw1394: Remove unneeded variable

15 years agomatroska: remove dead assignments
Edward Hervey [Sun, 9 Aug 2009 07:43:29 +0000 (09:43 +0200)]
matroska: remove dead assignments

15 years agortp: Remove dead assignments and resulting unneeded variables.
Edward Hervey [Sun, 9 Aug 2009 07:43:00 +0000 (09:43 +0200)]
rtp: Remove dead assignments and resulting unneeded variables.

15 years agowavpack: Use GLib GChecksum instead of our own MD5 implementation
Sebastian Dröge [Mon, 10 Aug 2009 07:53:28 +0000 (09:53 +0200)]
wavpack: Use GLib GChecksum instead of our own MD5 implementation

This requires GLib 2.16 but that version is already required by core anyway.

15 years agomatroska: Adds support to muxing/demuxing WMA
Thiago Santos [Sat, 8 Aug 2009 03:47:48 +0000 (00:47 -0300)]
matroska: Adds support to muxing/demuxing WMA

Adds support for muxing wma audio family and fixes
demuxing of wma family in matroskademux. matroskademux
was broken because it missed codec_data.

15 years agomatroskamux: adds support for wmv family
Thiago Santos [Thu, 6 Aug 2009 23:15:17 +0000 (20:15 -0300)]
matroskamux: adds support for wmv family

Adds support to WMV1, WMV2, WMV3 and other family formats that
are signaled by the 'format' field in the caps (i.e. WVC1).
Partially fixes #576378

15 years agov4l2src: if max == min width/height put an int in the probed caps, not an int range
Tim-Philipp Müller [Sun, 9 Aug 2009 13:19:42 +0000 (14:19 +0100)]
v4l2src: if max == min width/height put an int in the probed caps, not an int range

Fixes #560033.

15 years agoosxaudiosrc: if max_channels == min_channels, use an int instead of an int range...
Tim-Philipp Müller [Sun, 9 Aug 2009 12:58:07 +0000 (13:58 +0100)]
osxaudiosrc: if max_channels == min_channels, use an int instead of an int range in the caps

15 years agoid3demux: Try GST_*_TAG_ENCODING and locale encoding if tags are not UTF8
LoneStar [Sun, 9 Aug 2009 10:52:17 +0000 (12:52 +0200)]
id3demux: Try GST_*_TAG_ENCODING and locale encoding if tags are not UTF8

Fixes bug #499242.

15 years agoconfigure: bump core/base requirements to latest release
Tim-Philipp Müller [Sun, 9 Aug 2009 00:29:50 +0000 (01:29 +0100)]
configure: bump core/base requirements to latest release

To avoid confusion.

15 years agocheck: fix flvmux unit test on big endian machines
Tim-Philipp Müller [Sun, 9 Aug 2009 00:27:01 +0000 (01:27 +0100)]
check: fix flvmux unit test on big endian machines

flvmux only accepts raw audio in little endian, but audiotestsrc
produces audio in the native endianness, which makes linking
between audiotestsrc and flvmux fail on big endian machines. Add
an audioconvert element in between the two to fix this.

15 years agomatroska: add kate subtitle support to matroska muxer and demuxer
Vincent Penquerc'h [Sun, 15 Feb 2009 18:49:44 +0000 (18:49 +0000)]
matroska: add kate subtitle support to matroska muxer and demuxer

See #525743.

15 years agoid3demux: add ID3 v2.3 spec as well
Tim-Philipp Müller [Fri, 7 Aug 2009 15:51:45 +0000 (16:51 +0100)]
id3demux: add ID3 v2.3 spec as well

15 years agoid3demux: sizes in ID3 v2.3 are unlikely to be sync-safe integers
Tim-Philipp Müller [Fri, 7 Aug 2009 15:42:39 +0000 (16:42 +0100)]
id3demux: sizes in ID3 v2.3 are unlikely to be sync-safe integers

In ID3 v2.3 compressed frames will have a 4-byte data length indicator
after the frame header to indicate the size of the decompressed data.
This integer is unlikely to be a sync-safe integer for v2.3 tags,
only in v2.4 it's sync-safe.

15 years agoid3demux: fix typo in debug message
Tim-Philipp Müller [Fri, 7 Aug 2009 15:36:55 +0000 (16:36 +0100)]
id3demux: fix typo in debug message

15 years agoid3demux: fix parsing of unsync'ed ID3 v2.4 tags and frames
Tim-Philipp Müller [Fri, 7 Aug 2009 15:02:23 +0000 (16:02 +0100)]
id3demux: fix parsing of unsync'ed ID3 v2.4 tags and frames

Reversing the unsynchronisation seems to work slightly differently
for ID3 v2.3 tags and v2.4 tags: v2.3 tags don't have syncsafe frame
sizes in the frame header, so the unsynchronisation is applied to
the whole frame data including all the frame headers. v2.4 frames
have sync-safe sizes, however, so the unsynchronisation only needs
to be applied to the actual frame data, and it seems that's what's
being done as well. So we need to undo the unsynchronisation on a
per-frame basis for v2.4 tags for things to work properly.

Fixes extraction of coverart/images from APIC frames in ID3 v2.4
tags (#588148).

Add unit test for this as well.

15 years agosouphttpsrc: Use SOUP_METHOD_GET instead of "GET" string
Sebastian Dröge [Thu, 6 Aug 2009 19:24:14 +0000 (21:24 +0200)]
souphttpsrc: Use SOUP_METHOD_GET instead of "GET" string

Fixes bug #590970.

15 years agopulsesrc: set the default slave method to skew
Wim Taymans [Thu, 6 Aug 2009 11:00:59 +0000 (13:00 +0200)]
pulsesrc: set the default slave method to skew

Set the default slave method to the much better skew algorithm. This is the
default in the new base class but we override this here as well for the
upcomming release.

15 years agopulsesrc: fix compilation with --disable-gst-debug
Tim-Philipp Müller [Thu, 6 Aug 2009 09:20:34 +0000 (10:20 +0100)]
pulsesrc: fix compilation with --disable-gst-debug

15 years agortph264pay: use array instead of queue
Wim Taymans [Mon, 3 Aug 2009 16:59:32 +0000 (18:59 +0200)]
rtph264pay: use array instead of queue

15 years agortph264pay: push NALs only after SPS/PPS
Mark Nauwelaerts [Mon, 3 Aug 2009 16:55:19 +0000 (18:55 +0200)]
rtph264pay: push NALs only after SPS/PPS

parse complete (bytestream) buffer for SPS/PPS before pushing NALs.

Fixes #564501.

15 years agov4l2: Directly use GST_PTR_FORMAT for printing caps with the LOG_CAPS macro
Sebastian Dröge [Tue, 4 Aug 2009 12:44:36 +0000 (14:44 +0200)]
v4l2: Directly use GST_PTR_FORMAT for printing caps with the LOG_CAPS macro

15 years agortpqdm2depay: Fix debug statement.
Edward Hervey [Tue, 4 Aug 2009 09:17:17 +0000 (11:17 +0200)]
rtpqdm2depay: Fix debug statement.

15 years agov4l2: Remove some OMAP specific hacks
Sebastian Dröge [Tue, 4 Aug 2009 07:32:07 +0000 (09:32 +0200)]
v4l2: Remove some OMAP specific hacks

They require special build flags and are not useful in general.

15 years agov4l2sink: change where buffers get dequeued
Rob Clark [Tue, 4 Aug 2009 07:22:29 +0000 (09:22 +0200)]
v4l2sink: change where buffers get dequeued

It seems to cause strange occasional high latencies (almost 200ms) when dequeuing buffers from _buffer_alloc().  It is simpler and seems to work much better to dqbuf from the same thread that is queuing the next buffer.

15 years agov4l2: Add v4l2sink element
Rob Clark [Tue, 4 Aug 2009 07:14:20 +0000 (09:14 +0200)]
v4l2: Add v4l2sink element

This also does the following changes:
(1) pull the bufferpool code out into gstv4l2bufferpool.c, and make a
    bit more generic so it can be used both for v4l2src and v4l2sink
(2) move some of the device probing/configuration/caps stuff into
    gstv4l2object.c so it does not have to be duplicated between
    v4l2src and v4l2sink

Fixes bug #590280.

15 years agoflvmux: Enable unit test now that it passes
Sebastian Dröge [Tue, 4 Aug 2009 05:07:45 +0000 (07:07 +0200)]
flvmux: Enable unit test now that it passes

15 years agortpqdm2depay,rtpsv3vdepay: Add debugging category.
Edward Hervey [Mon, 3 Aug 2009 19:21:39 +0000 (21:21 +0200)]
rtpqdm2depay,rtpsv3vdepay: Add debugging category.

15 years agortpqdm2depay: Handle gaps in incoming packets.
Edward Hervey [Mon, 3 Aug 2009 19:22:48 +0000 (21:22 +0200)]
rtpqdm2depay: Handle gaps in incoming packets.

Whenever we see a gap, we flush the temporary packets (but not the adapter). If we
had some data temporarily stored it will be outputted (the sound will sound a bit
garbled... but that's how it sounds on MacOSX :)

15 years agortpqdmdepay: Fix CRC calculation and remove commented code.
Edward Hervey [Mon, 3 Aug 2009 17:01:07 +0000 (19:01 +0200)]
rtpqdmdepay: Fix CRC calculation and remove commented code.

15 years agortp: New QDM2 rtp depayloader.
Edward Hervey [Sun, 2 Aug 2009 11:42:12 +0000 (13:42 +0200)]
rtp: New QDM2 rtp depayloader.

Reverse-engineered by comparing:
* A rtp hinted file provided by DarwinStreamingServer
* The output procued by DSS for that same file

Also used various streaming sources available on the internet to fine-tune
the code.

The header/codec_data extraction methods are from FFMpeg (LGPL).

15 years agortpsv3vdepay: Properly fill codec_data and cleanup code a bite more.
Edward Hervey [Mon, 3 Aug 2009 19:24:44 +0000 (21:24 +0200)]
rtpsv3vdepay: Properly fill codec_data and cleanup code a bite more.

15 years agortpsv3vdepay: Only output buffers once we're configured.
Edward Hervey [Mon, 3 Aug 2009 17:02:17 +0000 (19:02 +0200)]
rtpsv3vdepay: Only output buffers once we're configured.

15 years agortpsv3vdepay: Add more encoding-name variants
Edward Hervey [Mon, 3 Aug 2009 17:02:00 +0000 (19:02 +0200)]
rtpsv3vdepay: Add more encoding-name variants

15 years agoflvmux: Fix unit test to correctly handle request pads
Sebastian Dröge [Mon, 3 Aug 2009 18:08:33 +0000 (20:08 +0200)]
flvmux: Fix unit test to correctly handle request pads

Request pads are removed by the element instance in PAUSED->READY
so we need to re-request pads for every run and link them again.

Last fix for bug #590447.

15 years agoflvmux: Fix writing of the index for < 128 buffers
Sebastian Dröge [Mon, 3 Aug 2009 18:08:00 +0000 (20:08 +0200)]
flvmux: Fix writing of the index for < 128 buffers

Partially fixes bug #590447.

15 years agoflvmux: Fix resetting of the element
Sebastian Dröge [Mon, 3 Aug 2009 18:07:00 +0000 (20:07 +0200)]
flvmux: Fix resetting of the element

Reset the have_video/have_audio flags and make sure to
properly release the request pads.

Partially fixes bug #590447.

15 years agortspsrc: don't add non-utf8 chars to structures
Wim Taymans [Mon, 3 Aug 2009 16:13:46 +0000 (18:13 +0200)]
rtspsrc: don't add non-utf8 chars to structures

15 years agojpegdepay: use attributes for extra properties
Luc Deschenaux [Mon, 3 Aug 2009 16:02:31 +0000 (18:02 +0200)]
jpegdepay: use attributes for extra properties

Use some of the SDP attributes when they are present to specify the output
dimension and framerate. This allows us to receive jpeg frames larger than
2040 width/height.

Fixes #564437

15 years agoRTP docs: update with attributes in caps
Wim Taymans [Mon, 3 Aug 2009 16:01:27 +0000 (18:01 +0200)]
RTP docs: update with attributes in caps

15 years agortspsrc: put all SDP attributes on caps
Luc Deschenaux [Mon, 3 Aug 2009 15:21:44 +0000 (17:21 +0200)]
rtspsrc: put all SDP attributes on caps

Put the SDP attributes on the caps too so that they can be used by
depayloaders.

See #564437

15 years agopulsesrc: initialize the probe with the server
Jonathan Tellier [Mon, 3 Aug 2009 11:32:12 +0000 (13:32 +0200)]
pulsesrc: initialize the probe with the server

When creating a new probe, pass the server instead of the device string.

fixes #590401

15 years agomultiudpsink: don't do things with side-effects inside g_return_val_if_fail()
Tim-Philipp Müller [Sun, 2 Aug 2009 10:44:03 +0000 (11:44 +0100)]
multiudpsink: don't do things with side-effects inside g_return_val_if_fail()

Someone might compile this code with -DG_DISABLE_ASSERT some day.

15 years agopulsesink: don't do logic within g_assert() statements
Tim-Philipp Müller [Sat, 1 Aug 2009 20:39:30 +0000 (21:39 +0100)]
pulsesink: don't do logic within g_assert() statements

Otherwise that code will just be expanded to nothing when compiled
-DG_DISABLE_ASSERT (PS: why is mainloop_start() called in the init
function and not when changing state to READY?)

15 years agoflacdec: send newsegment event when operating push-based and unframed
Tim-Philipp Müller [Sat, 1 Aug 2009 16:07:42 +0000 (17:07 +0100)]
flacdec: send newsegment event when operating push-based and unframed

For some reason flac doesn't call our metadata callback when we operate
in push mode with unframed input, but that's where we set up the
newsegment event (since that's where we'd get the duration from the
stream info header), so we didn't send a newsegment event at all in this
case. Hack around this by storing a generic newsegment event for now
which will be used if we don't replace it with a better one that
includes the duration.

15 years agoflacdec: small cleanups
Tim-Philipp Müller [Sat, 1 Aug 2009 15:48:36 +0000 (16:48 +0100)]
flacdec: small cleanups

Remove some callback indirections which are no longer needed because
there's only one decoder object type now. Also remove unused variable.

15 years agoflacdec: use gst_adapter_copy() to avoid unnecessary buffer merges
Tim-Philipp Müller [Sat, 1 Aug 2009 14:22:49 +0000 (15:22 +0100)]
flacdec: use gst_adapter_copy() to avoid unnecessary buffer merges

gst_adapter_peek() will merge buffers as needed, which we can avoid
here since we're doing a memcpy anyway and then flush the copied
data from the adapter right away.

15 years agoflacdec: repair some broken indenting
Tim-Philipp Müller [Fri, 31 Jul 2009 23:00:41 +0000 (00:00 +0100)]
flacdec: repair some broken indenting

15 years agochecks: add basic unit test for flvmux, but disable it for now
Tim-Philipp Müller [Sat, 1 Aug 2009 11:19:41 +0000 (12:19 +0100)]
checks: add basic unit test for flvmux, but disable it for now

Basic unit test for flvmux. Fails miserably, hence disabled for now.

15 years agocheck: add basic unit test for flvdemux
Tim-Philipp Müller [Fri, 31 Jul 2009 22:28:12 +0000 (23:28 +0100)]
check: add basic unit test for flvdemux

In particular, test re-use of flvdemux in both pull and push mode
(see #583030).

15 years agoflvmux: fix invalid write caused by using sizeof("string") as length
Tim-Philipp Müller [Fri, 31 Jul 2009 19:25:17 +0000 (20:25 +0100)]
flvmux: fix invalid write caused by using sizeof("string") as length

sizeof("foo") includes the string's NUL-terminator in the size returned,
but we're writing strings here with an explicit size at the beginning
and no NUL-terminator. In most cases using sizeof("foo") as length in
memcpy is not harmful, but it is where the string goes right at the
end of our buffer to write, since we don't allocate space for that
NUL terminator.

15 years agosoup: Use "GET" instead of SOUP_METHOD_GET. Fixes build with libsoup-2.7.*
Edward Hervey [Mon, 27 Jul 2009 16:44:45 +0000 (18:44 +0200)]
soup: Use "GET" instead of SOUP_METHOD_GET. Fixes build with libsoup-2.7.*

This is due to a quality API change in libsoup 2.7. SOUP_METHOD_* are now
integers and not strings... they could have changed the names.

15 years agojpeg: use longer macro names to not clash with some stupid windows defines
Stefan Kost [Thu, 30 Jul 2009 14:57:53 +0000 (17:57 +0300)]
jpeg: use longer macro names to not clash with some stupid windows defines

libjpeg headers pull some windows system inlcudes (on windows) that contain a
define for DEFAULT_QUALITY.

15 years agoavidemux: Fix last commit and improve readability
Sebastian Dröge [Wed, 29 Jul 2009 12:31:48 +0000 (14:31 +0200)]
avidemux: Fix last commit and improve readability

15 years agoFixed the fix for TIME->DEFAULT conversion.
Руслан Ижбулатов [Fri, 24 Jul 2009 15:04:31 +0000 (19:04 +0400)]
Fixed the fix for TIME->DEFAULT conversion.

Fixes bug #578052 again.

15 years agortpsv3depay: Fix width/height calculation, bring up to marginal rank.
Edward Hervey [Wed, 29 Jul 2009 11:38:03 +0000 (13:38 +0200)]
rtpsv3depay: Fix width/height calculation, bring up to marginal rank.

Based on documentation found on http://wiki.multimedia.cx/

15 years agopulse: conditionally compile newer stuff
Wim Taymans [Wed, 29 Jul 2009 10:13:20 +0000 (12:13 +0200)]
pulse: conditionally compile newer stuff

configured_sink/source_usec in the timing_info is only since 0.9.11 so
conditionally compile this information.

fixes #590038

15 years agopulsesrc: cleanups
Wim Taymans [Tue, 28 Jul 2009 16:29:07 +0000 (18:29 +0200)]
pulsesrc: cleanups

Keep track of the paused state of the source and leave the read function when
paused.
don't wait for a latency update when the delay is not yet known but simply
return 0 instead of blocking.
Keep track of the corked state of the stream.
Fix the state changes.

15 years agopulsesrc: set maxlength always to -1
Wim Taymans [Tue, 28 Jul 2009 14:11:18 +0000 (16:11 +0200)]
pulsesrc: set maxlength always to -1

15 years agopulsesrc; cleanups, report real latency
Wim Taymans [Tue, 28 Jul 2009 13:53:57 +0000 (15:53 +0200)]
pulsesrc; cleanups, report real latency

Add some more debug info
Avoid some type casts
Report the real latency to the application.

15 years agojpegdec: when scanning for 0xff marker ends, ensure desired result
Mark Nauwelaerts [Tue, 28 Jul 2009 14:11:36 +0000 (16:11 +0200)]
jpegdec: when scanning for 0xff marker ends, ensure desired result

Otherwise, any non 0xff byte at end of data would be mistaken for
a tag byte, and in case of a frame_len 0 tag subsequently lead to an
infinite loop.

15 years agoavimux: adds support to wma
Thiago Santos [Tue, 28 Jul 2009 03:30:43 +0000 (00:30 -0300)]
avimux: adds support to wma

15 years agoavimux: adds support to wmv
Thiago Santos [Tue, 28 Jul 2009 03:07:15 +0000 (00:07 -0300)]
avimux: adds support to wmv

15 years agoqtdemux: Downgrade warning message to debug
Thiago Santos [Tue, 28 Jul 2009 00:34:22 +0000 (21:34 -0300)]
qtdemux: Downgrade warning message to debug

15 years agopulsesink: avoid using ivalid stream indexes
Wim Taymans [Mon, 27 Jul 2009 09:51:39 +0000 (11:51 +0200)]
pulsesink: avoid using ivalid stream indexes

when we get an invalid stream index from pulse because we were just starting,
avoid using it for getting and setting the volume.

Fixes #589365

15 years agoeffectv: Don't allow caps changes for some effectv filters
Sebastian Dröge [Fri, 24 Jul 2009 17:38:07 +0000 (19:38 +0200)]
effectv: Don't allow caps changes for some effectv filters

These filters use information from previous frames to
generate the current frame and a caps change will make
the effect start from the beginning again.

15 years agowarptv: Make the sine table global instead of having it in every instance
Sebastian Dröge [Fri, 24 Jul 2009 17:37:09 +0000 (19:37 +0200)]
warptv: Make the sine table global instead of having it in every instance

15 years agojpeg: make encoder work with libjpeg v7
Stefan Kost [Fri, 24 Jul 2009 07:47:44 +0000 (10:47 +0300)]
jpeg: make encoder work with libjpeg v7

We have to specify do_fancy_downsampling = FALSE in the encoder with did not exist before.

15 years agoAutomatic update of common submodule
Stefan Kost [Thu, 23 Jul 2009 21:42:33 +0000 (00:42 +0300)]
Automatic update of common submodule

From fedaaee to 94f95e3

15 years agoflacdec: Implement SEEKING query
Sebastian Dröge [Thu, 23 Jul 2009 10:06:27 +0000 (12:06 +0200)]
flacdec: Implement SEEKING query

Fixes bug #589423.

15 years agopulsesink: Fix a couple error messages that mentioned incorrect function names.
Colin Guthrie [Wed, 22 Jul 2009 10:16:06 +0000 (11:16 +0100)]
pulsesink: Fix a couple error messages that mentioned incorrect function names.

Fixes #589459.

15 years agoflvdemux: Implement SEEKING query
Sebastian Dröge [Thu, 23 Jul 2009 09:50:16 +0000 (11:50 +0200)]
flvdemux: Implement SEEKING query

Also add some more query types to the answer of the query type function.

Fixes bug #589424.

15 years agoflacdec: fix intermittent FLAC__STREAM_DECODER_ABORTED errors when seeking
Tim-Philipp Müller [Tue, 21 Jul 2009 18:46:55 +0000 (19:46 +0100)]
flacdec: fix intermittent FLAC__STREAM_DECODER_ABORTED errors when seeking

When seeking in a local flac file (ie. operating pull-based), the decoder
would often just error out after the loop function sees a DECODER_ABORTED
status. This, however, is the read callback's way of telling our loop
function that pull_range failed and streaming should stop, in this case
because of the flush-start event that the seek handler pushed upstream
from the seeking thread. Handle this slightly better by storing the last
flow return from pull_range, so the loop function can evaluate it properly
when it encounters a DECODER_ABORTED and take the right action.

Fixes #578612.

15 years agointerleave: fix indenting and upgrade two debugs to warnings.
Stefan Kost [Tue, 21 Jul 2009 07:07:00 +0000 (10:07 +0300)]
interleave: fix indenting and upgrade two debugs to warnings.

Fix newlines in variable decls. Change two debugs to become warnings as they
indicate that things will not work.

15 years agojpeg: code cleanups for encoder
Stefan Kost [Tue, 21 Jul 2009 07:04:36 +0000 (10:04 +0300)]
jpeg: code cleanups for encoder

Remove some disabled code in encoder. Try #if 0'ed code and add comments about
why it is disabled. Move idct-method enum to jpeg.c and use in both encoder and
decoder. Add idct-method property to encoder.

15 years agomatroskademux: Answer SEEKING queries in the original format
Sebastian Dröge [Tue, 21 Jul 2009 05:50:46 +0000 (07:50 +0200)]
matroskademux: Answer SEEKING queries in the original format