Wim Taymans
8c67b5d7dd
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.
2009-08-11 02:30:24 +01:00
Wim Taymans
a6aa41dc21
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.
2009-08-11 02:30:24 +01:00
Wim Taymans
1b0ae2608f
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.
2009-08-11 02:30:24 +01:00
Wim Taymans
63dbc75734
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.
2009-08-11 02:30:24 +01:00
Wim Taymans
9bfc641f0d
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.
2009-08-11 02:30:24 +01:00
Wim Taymans
a9d14ed310
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.
2009-08-11 02:30:23 +01:00
Wim Taymans
5351f0cb51
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.
2009-08-11 02:30:23 +01:00
Wim Taymans
fdae491de7
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.
2009-08-11 02:30:23 +01:00
Wim Taymans
f0d1ab1c1f
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.
2009-08-11 02:30:23 +01:00
Mark Nauwelaerts
96e72522fc
avidemux: push mode; cater for chunk padding
2009-08-10 14:41:52 +02:00
Mark Nauwelaerts
f67db2a089
avidemux: only use stream's pad after having checked it exists
2009-08-10 14:41:34 +02:00
Mark Nauwelaerts
4249f52c6c
avidemux: sprinkle some more GST_DEBUG_FUNCPTR
2009-08-10 14:41:29 +02:00
Mark Nauwelaerts
6d26594eef
avidemux: post error message if no pads to push EOS event on
2009-08-10 14:41:27 +02:00
Mark Nauwelaerts
b0a0c06155
avidemux: fix typo in warning message
2009-08-10 14:41:23 +02:00
Mark Nauwelaerts
7750173244
avidemux: fix some buffer ref handling
2009-08-10 14:41:19 +02:00
Mark Nauwelaerts
5b0f7f04e7
avidemux: do not exceed maximum number of supported streams
2009-08-10 14:41:16 +02:00
Mark Nauwelaerts
effa7b4660
avidemux: prevent double unref; gst_avi_demux_parse_avih already unrefs
2009-08-10 14:41:14 +02:00
Mark Nauwelaerts
42bc085d95
avidemux: verify size of INFO LIST to satisfy subsequent expectations
2009-08-10 14:41:12 +02:00
Mark Nauwelaerts
f4f8e8532c
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.
2009-08-10 14:41:09 +02:00
Mark Nauwelaerts
3863871100
avidemux: streamline stream duration calculation
2009-08-10 14:41:07 +02:00
Edward Hervey
d29ba8d48f
matroska: remove dead assignments
2009-08-10 09:58:33 +02:00
Edward Hervey
0d6f0801f5
rtp: Remove dead assignments and resulting unneeded variables.
2009-08-10 09:58:33 +02:00
Thiago Santos
08862850a7
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.
2009-08-09 20:34:05 -03:00
Thiago Santos
df442b4727
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
2009-08-09 20:34:04 -03:00
LoneStar
494555cecd
id3demux: Try GST_*_TAG_ENCODING and locale encoding if tags are not UTF8
...
Fixes bug #499242 .
2009-08-09 12:52:17 +02:00
Vincent Penquerc'h
19b7001bf9
matroska: add kate subtitle support to matroska muxer and demuxer
...
See #525743 .
2009-08-08 12:54:48 +01:00
Tim-Philipp Müller
b0bcb27517
id3demux: add ID3 v2.3 spec as well
2009-08-07 16:51:45 +01:00
Tim-Philipp Müller
0417283077
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.
2009-08-07 16:42:39 +01:00
Tim-Philipp Müller
3ec0a31d64
id3demux: fix typo in debug message
2009-08-07 16:36:55 +01:00
Tim-Philipp Müller
2e05af3876
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.
2009-08-07 16:02:23 +01:00
Wim Taymans
ddfa9961c6
rtph264pay: use array instead of queue
2009-08-06 11:14:44 +02:00
Mark Nauwelaerts
2bfb42c5f8
rtph264pay: push NALs only after SPS/PPS
...
parse complete (bytestream) buffer for SPS/PPS before pushing NALs.
Fixes #564501 .
2009-08-06 11:14:44 +02:00
Edward Hervey
d65d542e9d
rtpqdm2depay: Fix debug statement.
2009-08-04 11:17:17 +02:00
Edward Hervey
20c7977b9b
rtpqdm2depay,rtpsv3vdepay: Add debugging category.
2009-08-03 21:26:31 +02:00
Edward Hervey
25c5514fab
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 :)
2009-08-03 21:26:30 +02:00
Edward Hervey
6aff520a24
rtpqdmdepay: Fix CRC calculation and remove commented code.
2009-08-03 21:26:30 +02:00
Edward Hervey
d39c057e42
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).
2009-08-03 21:26:30 +02:00
Edward Hervey
e2b3665ae6
rtpsv3vdepay: Properly fill codec_data and cleanup code a bite more.
2009-08-03 21:26:30 +02:00
Edward Hervey
65a2871e90
rtpsv3vdepay: Only output buffers once we're configured.
2009-08-03 21:26:30 +02:00
Edward Hervey
1743763c0b
rtpsv3vdepay: Add more encoding-name variants
2009-08-03 21:26:30 +02:00
Sebastian Dröge
8b9d547c14
flvmux: Fix writing of the index for < 128 buffers
...
Partially fixes bug #590447 .
2009-08-03 20:08:00 +02:00
Sebastian Dröge
cb4eb5714c
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 .
2009-08-03 20:07:00 +02:00
Wim Taymans
784b95ddbf
rtspsrc: don't add non-utf8 chars to structures
2009-08-03 18:13:46 +02:00
Luc Deschenaux
654ca56d85
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
2009-08-03 18:02:31 +02:00
Wim Taymans
efb9c17975
RTP docs: update with attributes in caps
2009-08-03 18:01:27 +02:00
Luc Deschenaux
f96e900a64
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
2009-08-03 17:21:44 +02:00
Tim-Philipp Müller
6c323f5b0d
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.
2009-08-02 11:50:43 +01:00
Tim-Philipp Müller
93690bfdd6
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.
2009-07-31 23:54:47 +01:00
Sebastian Dröge
22d712786c
avidemux: Fix last commit and improve readability
2009-07-29 14:31:48 +02:00
Руслан Ижбулатов
3702fcdb80
Fixed the fix for TIME->DEFAULT conversion.
...
Fixes bug #578052 again.
2009-07-29 13:58:33 +02:00