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
Edward Hervey
050e91995e
rtpsv3depay: Fix width/height calculation, bring up to marginal rank.
...
Based on documentation found on http://wiki.multimedia.cx/
2009-07-29 13:39:08 +02:00
Thiago Santos
52482a3741
avimux: adds support to wma
2009-07-28 00:30:43 -03:00
Thiago Santos
f43b442cf9
avimux: adds support to wmv
2009-07-28 00:07:15 -03:00
Thiago Santos
40abf68562
qtdemux: Downgrade warning message to debug
2009-07-27 21:39:57 -03:00
Sebastian Dröge
f0054bcc82
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.
2009-07-24 19:54:05 +02:00
Sebastian Dröge
6eada080a0
warptv: Make the sine table global instead of having it in every instance
2009-07-24 19:54:05 +02:00
Sebastian Dröge
aa02444768
flvdemux: Implement SEEKING query
...
Also add some more query types to the answer of the query type function.
Fixes bug #589424 .
2009-07-23 11:51:07 +02:00
Stefan Kost
8990398733
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.
2009-07-21 10:07:00 +03:00
Sebastian Dröge
b7bf2f6820
matroskademux: Answer SEEKING queries in the original format
2009-07-21 07:52:00 +02:00
Josep Torra
efcfb89b5c
udputils: initialize struct content with 0.
...
Fixes some random crashes.
2009-07-21 01:12:44 +02:00
Sebastian Dröge
bb03d8ff18
matroskademux: Implement SEEKING query
2009-07-20 16:52:19 +02:00
Sebastian Dröge
c5b420068a
effectv: Chain up finalize to the parent class in warptv
...
Fixes a memory leak.
2009-07-16 17:10:21 +02:00
Sebastian Dröge
2abd58de9d
effectv: Add rippletv element
...
This produces a water ripple effect on the video input,
based on motion or a rain drop algorithm.
Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.
Fixes bug #588695 .
2009-07-16 12:05:31 +02:00
Sebastian Dröge
433255304e
effectv: Add streaktv effect filter element
...
This combines the StreakTV and BaltanTV filters from the
effectv project.
Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.
Fixes bug #588368 .
2009-07-16 12:04:38 +02:00
Sebastian Dröge
f981bec99d
effectv: Fix processing on big endian architectures
2009-07-16 12:04:36 +02:00
Sebastian Dröge
c17134c6de
effectv: Add radioactv effect filter
...
This filter adds a radiation-like motion blur effect
to the video stream.
Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.
Fixes bug #588359 .
2009-07-16 12:04:08 +02:00
Sebastian Dröge
3ad603be84
effectv: Make the optv threshold property an uint
2009-07-16 12:04:06 +02:00
Sebastian Dröge
2c2611b6bf
effect: Add optv effect filter from the effectv project
...
This filter binarizes input frames and combines them with various
optical pattern.
Kindly relicensed to LGPL2+ by Kentaro Fukuchi <fukuchi@megaui.net>.
Fixes bug #588349 .
2009-07-16 12:03:29 +02:00
Marc Leeman
7484b631b7
mpvpay: Rework the timestamping
...
Rework the timestamping in the mpv payloader so that the timestamps are more
accurate.
Fixes #587680
2009-07-13 17:55:25 +02:00
Sebastian Dröge
91ad86c0f9
videomixer: Random cleanup
2009-07-10 19:54:25 +02:00
Sebastian Dröge
f19ef7eada
videomixer: Send queries to the master pad by default instead of all pads
2009-07-10 19:54:13 +02:00
Sebastian Dröge
0bf61ecfaf
videomixer: Add RGB, BGR, xRGB, RGBx, xBGR, BGRx support
2009-07-10 19:35:49 +02:00
Sebastian Dröge
bbcb4f8f15
videomixer: Clean up debugging a bit
2009-07-10 17:43:07 +02:00
Sebastian Dröge
0775db4455
videomixer: Remove some redundant checks and error out immediately if not negotiated
...
Also stop leaking the output buffer in some error cases.
2009-07-10 17:33:40 +02:00
Sebastian Dröge
4ccd9c92ae
videomixer: Remove the calculate_frame_size() function and use libgstvideo instead
2009-07-10 17:23:03 +02:00
Edward Hervey
34c97c0c6f
videomixer: Remove unused link/unlink pad methods
2009-07-10 14:37:16 +02:00
Edward Hervey
b02949faeb
videomixer: I420 mode: Add fast path for 0.0 and 1.0 alpha
...
If the source alpha is 0.0, we take nothing.
If the source alpha is 1.0, we overwrite everything.
2009-07-10 14:37:13 +02:00
Edward Hervey
3c88249d48
videomixer: I420 blending : Fix main algorithm.
...
When blending a source layer with an alpha of 'a' on top of another
destination layer we take the sum of:
* 'a' percent of the source layer
* (100 - 'a') percent of the destination layer (the remainder)
2009-07-10 14:37:10 +02:00
Edward Hervey
ace4cb2295
videomixer: Make debugging category global to all the code.
2009-07-10 14:37:07 +02:00
Edward Hervey
3ebf5e9a2a
videomixer: improve readability of debugging statements.
2009-07-10 14:37:04 +02:00
Mark Nauwelaerts
a905ef233e
rtspsrc: do not leak timeout message
2009-07-09 11:34:40 +02:00
Sebastian Dröge
63115fe72c
avi: Don't forward NEWSEGMENT events from upstream
...
New ones are generated later and simply forwarding them can
result in NEWSEGMENT events of different format going downstream.
Fixes bug #587983 .
2009-07-09 07:14:23 +02:00
Sebastian Dröge
356972740a
videomixer: Make checker pattern lookup table constant
2009-07-08 18:19:45 +02:00
Sebastian Dröge
69f9b7c8d6
videomixer: Add support for ARGB
...
And clean up the caps parsing.
2009-07-08 18:17:48 +02:00
Benjamin Gaignard
abd383a2a6
udp: Initialize pointer to NULL
...
Otherwise we're calling free() with some random
memory address in error cases.
Fixes bug #587982 .
2009-07-08 15:19:03 +02:00
Mark Nauwelaerts
977796fd07
qtdemux: sprinkle some more const
2009-07-08 11:20:30 +02:00
Mark Nauwelaerts
a4d586daac
qtdemux: perform some more (careful) data buffering
...
Once buffering has started (with an mdat atom), continue buffering
until moov atom is reached, which handles cases with multiple
mdat atoms. Also keep adapter/offset better in sync with upstream
and fix some debug statements. Fixes #587426 .
2009-07-08 11:20:27 +02:00
Philip Jgenstedt
0ebff2d14c
avidemux: Replace deprecated GST_DISABLE_DEBUG with correct macro. Fixes #587826
2009-07-06 10:40:31 +02:00
Tim-Philipp Müller
2bcf52dde7
qtdemux: error out instead of dividing by 0
...
Error out if timescale is 0.
2009-07-01 13:07:48 +01:00
Tim-Philipp Müller
f6a1211495
Revert "qtdemux: Make sure we don't blacklist streams by wrongly comparing their"
...
This reverts commit 5503a59a57
.
Reverting this since it causes regressions with a lot of sample files
I have, all of which worked fine with the last -good release (#586891 ).
2009-07-01 09:32:42 +01:00
Tim-Philipp Müller
ae27524be0
qtdemux: comment out unused structure
2009-07-01 09:24:38 +01:00
Tim-Philipp Müller
8fa148d2f1
qtdemux: more size checks, and use g_try_new0() instead of g_new0()
...
Whenever we alloc something based on a user-supplied size, we should
really use g_try_new(), otherwise we can easily be made to abort by
passing a ridiculously large number to us for allocing. Fixes
problems with some fuzzed files.
2009-07-01 09:24:38 +01:00
Tim-Philipp Müller
405aae4568
qtdemux: guard against bogus atom sizes and short reads
...
Check the possibly 64-bit atom size more carefully before casting it
to an int and passing it to gst_pad_pull_range(), otherwise we might
end up pulling 0 bytes, getting an empty buffer as requested and
dereferencing not available data whilst thinking we actually asked
for and got 0x1000000000000 bytes. Similar fix for push mode operation
where neededbytes ends up being 0 bytes, which makes us assert. Fixes
crash with broken or fuzzed file (NB #122378 ).
2009-07-01 09:24:38 +01:00
Tim-Philipp Müller
c730912f67
qtdemux: use 0x prefix when logging numbers in hex
2009-07-01 09:24:38 +01:00
LRN
122d40a742
Don't use sendmsg()-dependent code on Windows
...
Fixes #585842
2009-06-30 20:38:33 +02:00
Wim Taymans
89f0c37c9f
law: fix caps and negotiation
...
Fix the caps to include the depth (instead of width twice) in the caps of
audio/x-raw-int.
Fix negotiation to not only copy the rate/channels of the first structure.
2009-06-30 15:59:20 +02:00
Tim-Philipp Müller
1fb30a154a
qtdemux: don't process track_num/track_count tags with a 0 value
...
Number/count values of 0 mean they're not set. Don't put those in the
taglist.
2009-06-26 13:29:27 +01:00
Julien Moutte
5503a59a57
qtdemux: Make sure we don't blacklist streams by wrongly comparing their
...
duration with entire clip duration.
2009-06-25 13:23:40 +02:00
Krzysztof Błaszkowski
9fbdfefc56
rtpdec: fix some buffer leaks
2009-06-25 13:18:14 +02:00
Edward Hervey
32a3d6e717
flvparse: Add missing break in switch/case.
2009-06-25 08:11:09 +02:00
Edward Hervey
67ca4c57b1
flvdemux: Remove unused variable, hint branch likeliness, add comments.
2009-06-25 08:10:38 +02:00
Edward Hervey
ff3730fb7b
avidemux: Removed unused variable
2009-06-25 08:09:57 +02:00
Edward Hervey
4780d17894
qtdemux: Remove dead assignments and unused variables.
...
Also add branch likeliness macros.
2009-06-25 07:41:44 +02:00
Edward Hervey
b9d7f2527e
qtdemux: Fix uninitialized variables. Fixes build on macosx
2009-06-25 07:41:43 +02:00
Tim-Philipp Müller
632bb7818a
avidemux: short-circuit gst_avi_demux_src_convert() when parsing the index
...
Don't call gst_avi_demux_src_convert() for each single index entry. Not
only do we already have the pointer to the stream context, we also know
the formats we want to convert from and to already, so we may just as
well use optimised conversion routines that bypass some of the checks
and lookups made in gst_avi_demux_src_convert().
2009-06-24 13:04:01 +01:00
Edward Hervey
86c2299ed1
qtdemux: Another round of G_*LIKELY micro-optimisations.
2009-06-24 12:48:32 +02:00
Edward Hervey
30dd458567
qtdemux: Take last sample duration for dummy segment calculation.
...
This fixes the cases where files without EDL wouldn't output their
last buffer.
2009-06-24 12:48:32 +02:00
Edward Hervey
4e6808bc52
avidemux: Sprinkle branch likeliness macros over the code.
2009-06-24 12:37:39 +02:00