Sebastian Dröge
d585bd7bbd
rtptheorapay: Don't send headers twice if we got them from the caps already
2013-12-04 21:58:29 +01:00
Sebastian Dröge
d105de6e0f
rtptheorapay: Don't leak config data when receiving a second CAPS event
2013-12-04 21:58:29 +01:00
Sebastian Dröge
0915d696c7
rtpvorbispay: Don't send headers twice if we got them from the caps already
2013-12-04 21:58:29 +01:00
Sebastian Dröge
967280df42
rtpvorbispay: Don't leak config data when receiving a second CAPS event
2013-12-04 21:58:29 +01:00
Sebastian Dröge
d87f6cf483
rtpstreamdepay: Add RFC4571 RTP stream depayloading element
...
https://bugzilla.gnome.org/show_bug.cgi?id=719829
2013-12-04 21:58:29 +01:00
Sebastian Dröge
c5284dc047
rtpstreampay: Add RFC4571 RTP stream payloading element
...
https://bugzilla.gnome.org/show_bug.cgi?id=719829
2013-12-04 21:58:29 +01:00
Thiago Santos
1fd094d96b
qtdemux: improve fragment-start tracking
...
Some buffers can have multiple moov atoms inside and the strategy
of using the gst_adapter_prev_pts timestamp to get the base timestamp
for the media of the fragment would fail as it would reuse the same
base timestamp for all moofs in the buffer instead of accumulating
the durations for all of them.
Heres a better explanation of the issue:
qtdemux receives a buffer where PTS(buf) = X
buf -> moofA | moofB | moofC
The problem was that PTS(buf) was used as the base timestamp for
all 3 moofs, causing all buffers to be X based. In this case we want
only moofA to be X based as it is what the PTS on buf means, and the
other moofB and moofC just use the accumulated timestamp from the
previous moofs durations.
To solve this, this patch uses gst_adapter_prev_pts distance
result, this allows qtdemux to calculate if it should use the
resulting pts or just accumulate the samples as it can identify
if the moofs belong to the same upstream buffer or not.
https://bugzilla.gnome.org/show_bug.cgi?id=719783
2013-12-04 10:36:38 -03:00
Wim Taymans
0d55724a2b
audioparsers: don't leak template caps
2013-12-04 09:12:07 +01:00
Wim Taymans
e0a5c07e8d
audioparsers: use ACCEPT_INTERSECT flag
...
The parser can accept input that is not completely specified. Use the
ACCEPT_INTERSECT flag on the sinkpad to tweak the acceptcaps function to
check for intersection only. This allows us to proxy downstream
constraints while still allowing non-subset caps as input.
We can then also remove the appended template caps workaround.
Make a unit-test to check the new feature.
This reverts commit 26040ee38c
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=705024
2013-12-03 22:26:44 +01:00
Wim Taymans
e3f393f7e6
audioparsers: remove fields from filter
...
We need to remove the fields from the filter when we can convert
between them.
2013-12-03 21:39:57 +01:00
Wim Taymans
e8313a1e70
audioparsers: refactor code to remove caps fields
2013-12-03 21:29:13 +01:00
Tim-Philipp Müller
a424fb289b
deinterlace: microoptimisation: avoid some unnecessary GValue copies
2013-12-02 00:10:43 +00:00
Tim-Philipp Müller
63b0e84add
deinterlace: fix off-by-one crash when downstream caps contain a list of framerates
...
https://bugzilla.gnome.org/show_bug.cgi?id=719544
2013-12-01 23:33:04 +00:00
Thiago Santos
079dde49ed
qtdemux: Use the timestamp of the moof as the base fragment start
...
In SmoothStreaming fragmented scenario, the timestamps are calculated
starting from the fragment buffer timestamp. When there is a not-linked
return from downstream, qtdemux will return upstream and will keep the
non-pushed data into its adapter.
On a new fragment buffer pushed to qtdemux, the new buffer timestamp
would overwrite the previous one that should be used on the still
to be pushed buffers. Because of this, this patch will also
update the fragment_start timestamp from the adapter last pts
to make sure the moof and timestamps are in sync and will result
in correct timestamps for all fragments.
2013-11-29 17:28:48 -03:00
Thiago Santos
45c16599ff
qtdemux: avoid re-reading the same moov and entering into loop
...
In the scenario of "mdat | moov (with fragmented artifacts)" qtdemux
could read the moov again after the mdat because it was considering the
media as a fragmented one.
To avoid this loop this patch makes it store
the last processed moov_offset to avoid parsing it again.
And it also checks if there are any samples to play before
resturning to the mdat, so that it knows there is new data to be played.
https://bugzilla.gnome.org/show_bug.cgi?id=691570
2013-11-29 17:28:48 -03:00
Thiago Santos
fcc78aa3bd
qtdemux: do not free streams if they were not created locally
...
When parsing a trak only free streams on failures if those streams
were created locally. They could have been created from a previous
fragment, in this case we they have valid info from the other fragment.
Including pads.
https://bugzilla.gnome.org/show_bug.cgi?id=691570
2013-11-29 17:28:48 -03:00
Sebastian Dröge
220a947dc7
videomixer: Simplify NV12/21 blending code macros
2013-11-29 19:57:46 +01:00
Sebastian Dröge
b0529e0fe8
videomixer: Fix segfault when filling the background of a UYVY frame
...
https://bugzilla.gnome.org/show_bug.cgi?id=712401
2013-11-29 19:52:34 +01:00
Tim-Philipp Müller
4278ab18ff
qtdemux: fix compilation with gst debuging disabled
...
qtdemux.c:9452:1: error: label at end of compound statement
2013-11-29 09:21:52 +00:00
Jonas Holmberg
0ab0421759
rtph264pay: Map inbuffer once only
...
Do not call gst_buffer_extract() twice since each call will map and
unmap the biffer.
https://bugzilla.gnome.org/show_bug.cgi?id=719434
2013-11-28 16:08:40 -05:00
Tim-Philipp Müller
b8f689a9d9
videoflip: don't crash on tag events without orientation tag
...
Would crash in g_free() trying to free an uninitialised pointer.
https://bugzilla.gnome.org/show_bug.cgi?id=719497
2013-11-28 16:09:04 +00:00
Wim Taymans
e8edecc56e
rtpsession: don't unref buffer twice
...
Cleaning the packet info will already unref the buffer.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=715078
2013-11-28 16:51:13 +01:00
Jan Schmidt
b3b89dfec1
qtdemux: Add HydrogenAudio ReplayGain tags
...
Identical to the itunes (tm) version, but labelled with
org.hydrogenaudio.replaygain as the producer.
2013-11-28 22:36:44 +11:00
Mathieu Duponchelle
532598e360
videomixer: explicitly fail when alpha information would have been lost.
2013-11-27 16:35:46 +01:00
Sebastian Dröge
fb14f66696
matroska-demux: Allow a bit more variation when detecting common framerates
...
Instead of +/- 1ns we allow 2ns now. Due to rounding errors there are
some Matroska files out there with 33.333331ms per frame for 30fps.
2013-11-26 11:17:42 +01:00
Sebastian Dröge
20ad174679
matroska-demux: Use gst_util_double_to_fraction() instead of GValue magic
2013-11-26 10:21:04 +01:00
Nicolas Dufresne
c42bc9efa0
videoflip: Set default method at contruction
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712333
2013-11-25 14:03:21 -05:00
Wim Taymans
710d1f3a2a
rtpjitterbuffer: improve clear-pt-map handling
...
Don't reset the expected output seqnum when clearing the pt map because this
could stall the jitterbuffer forever.
Add a unit test for this.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709800
2013-11-25 15:52:22 +01:00
Jan Schmidt
fdfc6a2a86
qtdemux: Discard 2 byte subpicture packets
...
As for text subtitles and as suggested in #712643 , throw
away the 2 byte terminator packets that some encoders insert.
This will make things better when remuxing and causes generation
of gap events.
2013-11-25 12:24:22 +11:00
Tim-Philipp Müller
901ec63462
rtpjitterbuffer: fix wake-up when new buffers come in after running empty
...
Spotted by 'gratias' on IRC. Probably introduced in recent refactoring.
https://bugzilla.gnome.org/show_bug.cgi?id=715039
2013-11-25 00:37:50 +00:00
Mark Nauwelaerts
643e6fdc36
matroskamux: correctly handle negative relative timestamps
...
... rather than scaling these as unsigned.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712744
Based on patch by Krzysztof Kotlenga <pocek@users.sf.net>
2013-11-23 12:25:05 +01:00
MathieuDuponchelle
83f8ee1d41
videomixer2: Merge tag events to send them in collected.
...
Otherwise there were race conditions where we would send tags
on a flushing srcpad.
We have a test for that in GES, but this should be tested
systematically with harness in the future as I believe it
is useful for exactly that kind of cases.
https://bugzilla.gnome.org/show_bug.cgi?id=708165
2013-11-22 18:54:35 -03:00
Thibault Saunier
a45d470236
qtdemux: Use GstVideoInfo helper to create caps for raw video
...
This way we do not miss mandatory fields in caps.
At the same time use the gst_pb_utils_get_codec_description
helper to get codec description.
https://bugzilla.gnome.org/show_bug.cgi?id=712335
2013-11-22 18:52:54 -03:00
Thibault Saunier
6ff7522ba2
matroskademux: Use GstVideoInfo helper to create caps for raw video
...
This way we do not miss mandatory fields in caps.
At the same time use the gst_pb_utils_get_codec_description helper to
get codec description.
https://bugzilla.gnome.org/show_bug.cgi?id=712328
2013-11-22 18:52:54 -03:00
Thibault Saunier
1fc591238b
multifilesrc: Implement seeking in case of multiple images
...
https://bugzilla.gnome.org/show_bug.cgi?id=712254
2013-11-22 18:52:54 -03:00
Wim Taymans
4c9474905b
rtpjitterbuffer: pass downstream flowreturn to upstream
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712722
2013-11-22 12:27:31 +01:00
Tim-Philipp Müller
d9c2914c90
g_memmove() is deprecated
...
Just use plain memmove(), g_memmove() is deprecated in
recent GLib versions.
https://bugzilla.gnome.org/show_bug.cgi?id=712811
2013-11-21 15:30:34 +00:00
Wim Taymans
3a1199c2f7
rtpvorbisdepay: handle packets > 0xffff
...
Handle input packet sizes larger than 16 bits in the depayloader.
Remove size restrictions on the payloader.
2013-11-21 11:32:15 +01:00
Wim Taymans
43e9b56122
rtptheoradepay: handle packets > 0xffff
...
Reorganize some things in the depayloader so that it can handle packets larger
than 16 bits.
Remove the size restriction on the payloader.
2013-11-21 11:30:28 +01:00
Jan Schmidt
81e2c8130a
isomp4: Handle mp4s subpicture streams better.
...
Clean up the handling of mp4s streams. Use the generic esds
descriptor function to extract the palette, instead of hard coding
a wrong magic offset.
Add some more size safety checks when parsing ES descriptors, and
replace magic numbers with the descriptive constants that are already
defined.
Enhance dump output for stsd atoms.
Streams from both bug 712643 and historic bug 568278 now both work
correctly.
Fixes : #712643
2013-11-21 02:28:27 +11:00
Jan Schmidt
217d2d8deb
qtdemux: Sort fourcc declarations and remove duplicates
2013-11-20 22:08:25 +11:00
Jan Schmidt
b6f581eecc
qtdemux: Merge all the fourcc headers into one
...
Remove qtdemux_fourcc.h and ftypcc.h and put it all in fourcc.h
2013-11-20 21:48:03 +11:00
Wim Taymans
0c6f4efe4a
rtpjitterbuffer: avoid mapping the buffer
...
Reuse the parsed structure to get the timestamps.
2013-11-19 10:12:00 +01:00
Tim-Philipp Müller
28f524a551
rtspsrc: fix 'make check'
...
Fix generic/states check. Also, g_return_if_fail() is
not for internal state checking.
2013-11-18 17:13:49 +00:00
Tim-Philipp Müller
d506409af5
docs: get rid of 'Since: 0.10.x' markers
...
And some gtk-doc markup fixes.
2013-11-18 14:47:35 +00:00
Tim-Philipp Müller
548e756e0a
rtpmanager: fix Since markers
...
Should be next stable release series version
2013-11-16 12:15:14 +00:00
George Kiagiadakis
387e3b918a
rtpjitterbuffer: Fix stats property field names and documentation
2013-11-15 16:23:34 +02:00
Torrie Fischer
acf74435e3
gstrtpsession: Implement a number of feedback packet statistics
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711693
2013-11-15 15:21:19 +01:00
Thiago Santos
cfdadd4114
qtdemux: remove math operation from loop
...
The elst_offset doesn't change inside the loop, so compute it
outside
2013-11-14 18:15:20 -03:00
Stefan Sauer
1a4e7338d9
qtmux: fix playback regression
...
In ae1150e85c
flipping a condition misaligned the
else branch, where for there condition that was change there is none.
Fixes #712303
2013-11-14 20:56:36 +01:00
Wim Taymans
b450d31503
rtpjitterbuffer: rename property to 'stats'
...
This makes the unit test work.
We can later also add more stats, not specific to retransmission.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711411
2013-11-14 09:24:26 +01:00
Torrie Fischer
22ceb80ba9
rtpjitterbuffer: implement rtx statistics
2013-11-14 09:24:26 +01:00
Wim Taymans
2e5b462ae3
jitterbuffer: advance expected seqnum after dropping
...
After dropping a buffer, move our expected seqnum
Conflicts:
gst/rtpmanager/gstrtpjitterbuffer.c
2013-11-13 12:02:57 +01:00
Wim Taymans
a065b4fcde
gstpay: only send one caps
...
Only send one caps in a packet. Two caps can happen when setcaps is called and
the config-interval expires at the same time.
2013-11-13 12:02:57 +01:00
Sebastian Dröge
9ae6981578
rtspsrc: Use the synced buffer mode in auto mode if a clock provider is in the SDP
2013-11-13 10:54:19 +01:00
Wim Taymans
e4bc81d7d2
rtpsession: remove collision reconfigure event
...
Remove bogus reconfigure event on collision, we don't want to send the event on
the receiving RTP pad and the collision event is now handling this
case.
See https://bugzilla.gnome.org/show_bug.cgi?id=711560
2013-11-11 15:27:18 +01:00
Julien Isorce
b32fc6f416
gstrtpsession: send custom upstream event "GstRTPCollision" on send_rtp_sink pad
...
See https://bugzilla.gnome.org/show_bug.cgi?id=711560
2013-11-11 15:25:52 +01:00
Mark Nauwelaerts
49d52a64d6
ac3parse: correctly handle timestamps when parsing x-private1-ac3
...
... the way it has always worked fine in a52dec.
2013-11-11 13:35:29 +01:00
George Kiagiadakis
b81b2efa3e
rtpjitterbuffer: fix crash when do-retransmission=true and a lot of buffers are lost
...
The problem here was that the jitterbuffer lock was unlocked to push
the event, but that caused another thread to remove the timer currently
being processed, probably because the amount of rtx events
(and therefore timers) was getting too high. The solution is to
unlock and push the event only after timer processing has finished.
fixes https://bugzilla.gnome.org/show_bug.cgi?id=711131
2013-11-11 11:51:45 +01:00
Per x Johansson
b3e0b1dbca
matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos
...
https://bugzilla.gnome.org/show_bug.cgi?id=711829
2013-11-11 11:30:54 +01:00
Philippe Normand
0ee332378b
wavenc: generate a non-empty data header
...
Restore the behavior of the element to the state before commit
db29522a43
. A non-empty header is
generated and when the EOS event is received the header is generated
again, this time with the correct size.
https://bugzilla.gnome.org/show_bug.cgi?id=711699
2013-11-09 11:22:12 +01:00
Wim Taymans
c8db05d610
rtpsource: update receiver stats for sender
...
An internal sender in a session is also a receiver of its own packets so update
the receiver stats. Other senders in the session will use this info to generate
correct RB blocks in their SR reports.
2013-11-07 16:24:30 +01:00
Wim Taymans
268a75e705
rtpsource: refactor receiver stats update
2013-11-07 16:24:30 +01:00
Thiago Santos
33ebda8ecf
qtdemux: handle fragmented files with mdat before moofs
...
Assume a file with atoms in the following order: moov, mdat, moof,
mdat, moof ...
The first moov usually doesn't contain any sample entries atoms (or
they are all set to 0 length), because the real samples are signaled
at the moofs. In push mode, qtdemux parses the moov and then finds the mdat,
but then it has 0 entries and assumes it is EOS.
This patch makes it continue parsing in case it is a fragmented file so that
it might find the moofs and play the media.
https://bugzilla.gnome.org/show_bug.cgi?id=710623
2013-11-07 11:22:04 -03:00
Thiago Santos
0e78ffc9d6
qtdemux: When using a buffered mdat, store all received data for later use
...
In push mode, when qtdemux can't use a seek to skip the mdat buffer it has
to buffer it for later use.
The issue is that after parsing the next moov/moof, there might be some
trailing bytes from the next atom in the file. This data was being discarded
along with the already parsed moov/moof and playback would fail to continue
after the contents of this moov/moof are played.
This is particularly bad on fragmented files that have the mdat before the
corresponding moof. So you'd get:
mdat|moof|mdat|moof ...
When a moof was received, it usually came with some extra bytes that would
belong to the next mdat (because upstream doesn't care about atoms alignment).
So those bytes were being discarded and playback would fail.
This patch makes qtdemux store those extra bytes to reuse them later after the
mdat is emptied.
https://bugzilla.gnome.org/show_bug.cgi?id=710623
2013-11-07 11:22:03 -03:00
Sebastian Dröge
fd89e36c8a
multiudpsink: Also use the bind-port property if no bind-address was given
2013-11-07 09:50:39 +01:00
Sebastian Dröge
111982de28
rtpvp8pay: Make Picture ID mode configurable and default to no picture ID
...
Some implementations (linphone) only support no picture at all in the
stream and will fail if one is provided.
https://bugzilla.gnome.org/show_bug.cgi?id=711497
2013-11-05 17:26:49 +01:00
Paul HENRYS
8eceb8f327
Add call to gst_rtp_h264_pay_clear_sps_pps() when receiving a STREAM_START event
...
https://bugzilla.gnome.org/show_bug.cgi?id=692787
2013-11-04 14:36:28 -05:00
Rico Tzschichholz
b137f79581
rtsp: Add missing gio-2.0 deps and includes
2013-11-02 23:12:13 +01:00
Sebastian Dröge
f180f3d1ba
audioiirfilter: Fix initialization coefficient handling
...
Broke unit test.
2013-11-01 18:31:36 +01:00
Aleix Conchillo Flaque
82b8374af8
rtspsrc: allow setting tls certificate validation flags
...
Added a new property "tls-validation-flags". If the url transport is
TLS, the validation flags will be set to the rtsp connection.
https://bugzilla.gnome.org/show_bug.cgi?id=711230
2013-11-01 16:47:36 +01:00
Sebastian Dröge
2559557ff1
audioiirfilter: Don't crash if no filter coefficients are provided
...
...and by default use a identity filter.
https://bugzilla.gnome.org/show_bug.cgi?id=710215
2013-10-31 22:43:49 +01:00
Wim Taymans
e96f8f519c
rtspsrc: proxy new buffer mode
2013-10-31 10:38:35 +01:00
Wim Taymans
43645d5981
jitterbuffer: add new timestamp mode
...
Add a new timestamp mode that assumes the local and remote clock are
synchronized. It takes the first timestamp as a base time and then uses the RTP
timestamps for the output PTS.
2013-10-31 10:15:25 +01:00
Sebastian Dröge
4a8082856a
matroska-demux: Fix compiler warning
...
matroska-demux.c: In function 'gst_matroska_demux_add_stream':
matroska-demux.c:1379:7: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'guint64' [-Werror=format=]
"%03u", context->uid);
^
2013-10-30 22:13:06 +01:00
Matthieu Bouron
52d0588c21
videomixer: remove unneeded guint comparaison
...
https://bugzilla.gnome.org/show_bug.cgi?id=711010
2013-10-29 16:38:26 +00:00
Matthieu Bouron
ec8c141d6a
y4menc: fix uninitialized variable warning
...
https://bugzilla.gnome.org/show_bug.cgi?id=711011
2013-10-28 14:20:13 +00:00
Thiago Santos
2eec7909aa
qtdemux: check if the end_time is defined before using it
...
Avoids sending EOS too soon because of overflow. Can happen on
fragmented mp4 playback.
2013-10-25 11:30:36 -03:00
Thiago Santos
673301ef48
qtdemux: use correct unref function
...
Events aren't GstObjects, but GstMiniObjects
2013-10-23 13:38:56 -03:00
Stefan Sauer
ae1150e85c
qtdemux: rename chunks_are_chunks to chunks_are_samples and flip the logic
...
As the variable name suggests, sometimes chunks are chunks. Rename the variable
to tell what they are when they are not chunks.
2013-10-15 09:53:30 +02:00
Stefan Sauer
6789ba1ece
qtdemux: fix typos and add more logging for unhandled parts
2013-10-15 09:53:30 +02:00
Ognyan Tonchev
c81ce6b152
multiudpsink: Fix memory leak
...
Unmap all GstMemory of the current buffer when flushing.
https://bugzilla.gnome.org/show_bug.cgi?id=710110
2013-10-14 18:21:54 +02:00
Tim-Philipp Müller
771ffe5609
flvmux: fix broken sample pipeline
...
which was muxing raw audio and video into flvmux, which won't work,
even if there were converters.
2013-10-12 20:44:31 +01:00
Tim-Philipp Müller
29effb522a
flvmux: require stream-format=raw for mpeg-2 too, but don't require framed field
...
raw implies that it's framed already. Fixes .. ! faac ! flvmux
2013-10-12 20:37:41 +01:00
Sebastian Dröge
b8f9e966d5
wavenc: A-Law and Mu-Law don't have width/depth/signed caps fields
...
https://bugzilla.gnome.org/show_bug.cgi?id=709614
2013-10-08 11:28:04 +02:00
Sebastian Dröge
a5bf9f24c9
deinterlace: Fix handling of planar video formats in greedyh method
...
https://bugzilla.gnome.org/show_bug.cgi?id=709507
2013-10-07 12:54:11 +02:00
Reynaldo H. Verdejo Pinochet
38c5e5efdc
matroska: Trivial grammar fix on debug msg
2013-10-06 10:02:09 -07:00
Reynaldo H. Verdejo Pinochet
1cb31eeacc
matroskamux: Add context flag for WebM
...
WebM has a couple of specific requirements we need to handle.
Idea is to set this flag once and just rely on mux->is_webm
at run time instead of repeatedly figuring this out from
GST_MATROSKA_DOCTYPE_WEBM (which requires a strcmp()).
2013-10-06 09:54:28 -07:00
Reynaldo H. Verdejo Pinochet
edeed575ae
matroska: Do not write SegmentUID for WebM mux
...
WebM spec states SegmentUID is Unsupported. Files produced
with gstreamer without this change will spit an error like
this when passed to mkvalidator:
ERR201: Invalid 'SegmentUID' for profile 'webm' in Info at 192
2013-10-06 08:12:50 -07:00
Matej Knopp
cf12017ef8
matroskademux: make dvd palette change event sticky
...
So they don't get lost.
https://bugzilla.gnome.org/show_bug.cgi?id=709454
2013-10-05 10:55:03 +01:00
Nicolas Dufresne
ed77b22f2b
videoflip: Add automatic flip mode driven by image-orientation tag
...
https://bugzilla.gnome.org/show_bug.cgi?id=709312
2013-10-04 14:52:57 -04:00
Wim Taymans
d4892859d4
jitterbuffer: fix race in flush-start/flush-stop
...
When flush-stop arrives before we process the result of the _push() in the
loop function, we might pause even though we are not flushing anymore. Fix this
race by waiting for the srcpad loop function to completely pause after doing the
flush-start.
2013-10-04 12:35:18 +02:00
Mathieu Duponchelle
ef548c2b28
videomixer: Update videoconvert copy
...
https://bugzilla.gnome.org/show_bug.cgi?id=709390
2013-10-04 10:57:36 +02:00
Mathieu Duponchelle
3d780c5c6d
videomixer: Check if the pad needs reconfiguration in collected
...
https://bugzilla.gnome.org/show_bug.cgi?id=709384
2013-10-04 10:53:26 +02:00
Sebastian Dröge
21947f9d13
qtdemux: Add support for the mp2v fourcc for MPEG-2 video
...
https://bugzilla.gnome.org/show_bug.cgi?id=709270
2013-10-03 11:59:25 +02:00
Ognyan Tonchev
30f62a2eec
matroskademux: Fix memory leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=709266
2013-10-02 16:17:33 +02:00
Sreerenj Balachandran
e779b6587b
qtdemux: Add HEVC support
...
https://bugzilla.gnome.org/show_bug.cgi?id=709093
2013-10-02 11:54:24 +02:00
Ognyan Tonchev
93d5e182d2
rtpgstpay: Fix memory leak
...
We were leaking the GList nodes of the pending buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=709079
2013-10-02 11:07:16 +02:00
Wim Taymans
00056965e8
rtpjitterbuffer: fix race when updating the next_seqnum
...
If we were not waiting for the missing seqnum when we insert the lost packet
event in the jitterbuffer, we end up not updating the next_seqnum and wait
forever for the lost packets to arrive. Instead, keep track of the amount of
packets contained by the jitterbuffer item and update the next expected
seqnum only after pushing the buffer/event. This makes sure we correctly handle
GAPS in the sequence numbers.
2013-09-30 12:31:00 +02:00
Wim Taymans
fde438791e
rtpjitterbuffer: small debug improvement
2013-09-30 12:30:23 +02:00
Wim Taymans
6e7d547be4
rtpjitterbuffer: reset skew does not reset clock-rate
...
Don't reset the clock-rate when we reset the skew correction algorithm.
Reset the skew correction algorithm when we change the clock-rate.
2013-09-30 11:53:08 +02:00
Wim Taymans
03d520eb69
rtpjitterbuffer: pause timer when PAUSED
...
Also pause the timer when we go to the PAUSED state. It is possible that we
don't have a clock or base-time in PAUSED to perform the timeouts.
2013-09-30 11:16:32 +02:00
Wim Taymans
4a31aec513
rtpjitterbuffer: improve debug
2013-09-30 11:15:25 +02:00
Hans Månsson
041946423a
mp4mux: Do not require framerate in peer video caps
...
Remove the framerate restriction on the caps.
Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708864
2013-09-28 13:02:11 +02:00
Wim Taymans
8c5ce0dbdc
rtspsrc: also go into the loop function after connect
...
When we have opened the stream, go into the loop function so that we can
receive messages from the server.
2013-09-27 15:08:31 +02:00
Matej Knopp
40c0586c17
matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8
...
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-27 14:38:19 +02:00
Wim Taymans
d4b4b4e924
rtpjitterbuffer: don't calculate skew without rtptime
...
Skip trying to calculate the skew when we don't have an rtptime.
It causes problems when lost packet events are placed in the jitterbuffer.
2013-09-26 16:21:33 +02:00
Wim Taymans
6095e2e859
rtspsrc: disable checks when linking pads
...
We know the pad links will work (and we don't check the return value
anyway).
2013-09-25 17:42:02 +02:00
Wim Taymans
2efd58fc84
rtpbin: avoid some pad link checks
...
Link pads without checks, we know it will work.
2013-09-25 17:38:31 +02:00
Sebastian Dröge
4a91a93d4e
qtmux: Don't error out if downstream is not seekable for non-fragmented variants
...
Doing so would be a regression over 1.0 and breaks the unit test.
However the result will be most likely unusable, so let's post
a warning message on the bus.
2013-09-25 13:25:34 +02:00
Wim Taymans
97f4674655
rtpjitterbuffer: calculate some stats
2013-09-25 10:50:05 +02:00
Wim Taymans
b1d29483bb
rtpjitterbuffer: move send_lost_event function
...
Move the send_lost_event function to the do_lost_event handling, there is no
need to have a separate function.
2013-09-25 10:50:05 +02:00
Thiago Santos
dc02d91c14
qtdemux: add code to parse creation time earlier than 1970
...
Use g_date_time seconds manipulation to allow to cover the quicktime
spec for creation_time. It uses seconds since 1904.
Both paths could be done using the generic approach of seconds since
1904 with GDateTime handling, but the first path using seconds from
1970 should be more commonly found and avoids a few objects creation and
ref/unref, so keep it there for performance.
Additionally, the code for handling seconds since 1970 changed from >
to >= because having 0 seconds since 1970 is also a valid case for that
path to handle.
https://bugzilla.gnome.org/show_bug.cgi?id=707975
2013-09-24 15:16:54 -07:00
Matej Knopp
a1a493dae4
matroskademux: update stream->pos when sending buffers so that gap events are not sent unnecessarily
...
https://bugzilla.gnome.org/show_bug.cgi?id=708505
2013-09-24 15:12:44 -07:00
Wim Taymans
adf5d96044
rtpmanager: update docs
2013-09-23 16:34:15 +02:00
Wim Taymans
e5019de80d
docs: update docs with 1.0 element names
2013-09-23 15:36:47 +02:00
Wim Taymans
8ce674da87
rtpjitterbuffer: always store lost event in jitterbuffer
...
Always prepare a lost event in the jitterbuffer, it is to wake up and make the
pushing thread continue. We drop the event when we are not supposed to push lost
events downstream.
2013-09-23 14:45:27 +02:00
Wim Taymans
9f3345fcc2
rtpjitterbuffer: schedule lost event differently
...
Schedule the lost event by placing it inside the jitterbuffer with the seqnum
that was lost so that the pushing thread can interleave and push it properly.
2013-09-23 14:45:27 +02:00
Wim Taymans
ae389aeb0c
rtpjitterbuffer: remove list debug
2013-09-23 14:45:26 +02:00
Wim Taymans
28641e3145
rtpjitterbuffer: add type to the item
...
So that the upper layer can know what data is contained in the item.
2013-09-23 14:45:26 +02:00
Wim Taymans
479c7642fd
rtpjitterbuffer: fix flush
...
Pass function to flush to properly free the queue items.
2013-09-23 14:45:25 +02:00
Wim Taymans
0cc887eb98
rtpjitterbuffer: append seqnum -1 packets
2013-09-23 14:45:25 +02:00
Wim Taymans
39a2ba669d
rtpjitterbuffer: use structure to hold packet information
...
Make the jitterbuffer operate on a structure containing all the packet
information. This avoids mapping the buffer multiple times just to get the RTP
information. It will also make it possible to store other miniobjects such as
events later.
2013-09-23 14:45:25 +02:00
Wim Taymans
1760817005
rtpjitterbuffer: update expected timer when possible
...
When we receive a packet and we have some missing packets, we can update their
estimated arrival times based on the timestamp difference.
2013-09-23 14:45:25 +02:00
Wim Taymans
fdc1ed1680
rtpjitterbuffer: fix order of timeout events
...
Improve the order of the timeout events, if there are timers with the same
timeout, we want to trigger the lowest seqnum first. For this we need to loop
over the complete array of timers to find the best one before triggering the
timeout.
2013-09-23 14:45:25 +02:00
Wim Taymans
0b1a7edfea
rtpjitterbuffer: send lost event before signaling next buffer
...
First send the lost event, then update the next_seqnum counter and then
send the signal to the pushing thread that it can retry to push a buffer. This
avoids pushing out buffers before the lost event is pushed.
2013-09-23 14:45:25 +02:00
Wim Taymans
5051f51f0a
jitterbuffer: configure clock-rate on jitterbuffer
...
Add a get and setter to configure the clock-rate in the jitterbuffer instead of
passing it as an argument to the insert method.
2013-09-23 14:45:24 +02:00
Wim Taymans
3c421e7e48
rtpjitterbuffer: add option to reset retransmission timers
2013-09-23 14:45:24 +02:00
Wim Taymans
6f4deab298
rtpjitterbuffer: stop the timer thread
...
The timeout code could release the lock so we need to check if we are allowed to
wait for the clock some more.
2013-09-23 14:45:24 +02:00
Wim Taymans
cba4e6a707
rtpjitterbuffer: unlock only once
2013-09-23 14:45:24 +02:00
Wim Taymans
5dc207948c
rtpjitterbuffer: improve flush and shutdown
...
There is no need to unschedule the timer in flush-start, flush-stop will remove
the timers and unschedule.
Unschedule the current timer before attempting to join the timer thread.
2013-09-23 14:45:23 +02:00
Wim Taymans
a512cc2d3c
rtpjitterbuffer: set correct expected time
...
When we already have a timer for a packet, skip it but don't forget to adjust
the dts to the expected dts of the next packet.
2013-09-23 14:45:23 +02:00
Wim Taymans
517ea0f4d9
jitterbuffer: improve debug
2013-09-23 14:45:23 +02:00
Wim Taymans
c395bf62dd
alpha: use POFFSET instead of OFFSET
...
Use the more correct POFFSET macro to get the offset of a component in its
plane. The offset macro gives the offset of the component relative to the start
of the frame.
2013-09-23 14:45:23 +02:00
Sebastian Dröge
94ad6724ba
goom: Fix MMX assembly compilation with clang
...
clang does not want or need a clobber list for emms:
error: clobbers must be last on the x87 stack
Patch taken from the FreeBSD ports, provided by
Dan McGregor <dan.mcgregor@usask.ca>
2013-09-21 18:48:19 +02:00
Sebastian Dröge
d8841b4832
matroska-demux: Make sure that subtitle buffers are \0-terminated
...
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-20 10:22:40 +02:00
Andoni Morales Alastruey
cfefdaebb6
qtmux: handle issues correctly when downstream is not seekable
...
The streamable property only make sense for fragmented formats.
For regular MP4, when downstream is not seekable we can't rewrite
the headers, so qtmux can only work with fast-start=TRUE, where
the headers are written finishing the file.
For fragmented MP4, when streamable is not seekable and the streamable
property is FALSE, we must enforce streamable=TRUE warning the user
about this change
https://bugzilla.gnome.org/show_bug.cgi?id=707242
2013-09-20 10:09:48 +02:00
Andoni Morales Alastruey
9ae5082204
qtmux: make "streamable" TRUE as default
...
The most common use case for fragmented MP4 (Dash and Smooth Streaming)
is producing streamable content (even for VOD). streamable=FALSE would only
be used to generate fragmented MP4 with and index of MOOF's that could
be reproduced without a playlist/manifest
https://bugzilla.gnome.org/show_bug.cgi?id=707242
2013-09-20 10:09:48 +02:00
Andoni Morales Alastruey
5732684e18
qtmux: deprecate the streamable property for non-fragmented MP4
...
The streamable property only makes sense for fragmented MP4.
https://bugzilla.gnome.org/show_bug.cgi?id=707242
2013-09-20 10:09:48 +02:00
Wim Taymans
926e2fa93b
alpha: don't assume planar formats have just 1 block
...
Don't assume planar formats have just one memory block with the data but use the
macros to access the right memory block where a component can be found.
2013-09-19 16:50:44 +02:00
Wim Taymans
fd6c57cf10
rtpjitterbuffer: keep delay as a separate variable in timer
...
Keep a separate delay in the timer so that we still know the original timestamp
of the packet that this timer refers to. We can then place the correct
running-time in the Retransmission event.
2013-09-19 14:32:48 +02:00
Wim Taymans
d34184dd03
rtpjitterbuffer: fix writability of properties
2013-09-19 14:32:48 +02:00
Wim Taymans
6bb2626498
rtpjitterbuffer: reevaluate the current timer after timeout
...
When we trigger the timeout logic of a timer, reevaluate it because it is
possible that it still has the lowest timeout.
2013-09-18 16:33:40 +02:00
Wim Taymans
8d021b6ede
rtpjitterbuffer: don't update time when unscheduled
...
Don't try to estimate the current time when we got unscheduled.
2013-09-18 16:31:26 +02:00
Wim Taymans
65606a25bf
rtpjitterbuffer: init packet spacing on first buffer
...
Already init the packet spacing variables on the first buffer so that we can
calculate the spacing on the second buffer already.
2013-09-18 16:29:37 +02:00
Wim Taymans
f2efdf28f5
rtpjitterbuffer: push the lost event from the timer thread
...
Instead of pushing the lost event from the chain function, schedule a timeout
that will push the lost event from the timer thread. This avoid blocking the
upstream thread while we push and sync the event.
2013-09-18 14:57:09 +02:00
Wim Taymans
5d5fc03e04
rtpjitterbuffer: round gap duration to multiple of duration
...
Make sure the gap duration in the lost event is a multiple of the packet
duration.
Enable another test.
2013-09-18 14:12:47 +02:00
Wim Taymans
6e4a051d40
rtpjitterbuffer: keep track of duration
...
Keep track of the estimated duration of missing packets and use it in the lost
event.
Enable another unit test
2013-09-18 12:29:38 +02:00
Wim Taymans
ac3bb3acf6
rtpjitterbuffer: handle large gaps with one lost event
...
When we have a large number of missing packets, generate one lost event for all
the packets that have no chance of being pushed out in time.
Fix and activate unit test for large gaps.
2013-09-18 11:59:28 +02:00
Wim Taymans
26402e1c21
rtpjitterbuffer: refactor lost event sending
...
Also make sure we only increment the expected seqnum and last
output timestamp.
2013-09-18 11:57:06 +02:00
Wim Taymans
f49981a597
jitterbuffer: refactor timeout triggers
2013-09-17 23:29:56 +02:00
Wim Taymans
047021c443
jitterbuffer: simplify the timeout code
...
Keep track of the current time in the timeout loop.
Loop over all timers and trigger all the expired ones, we can do this in the
same loop that selects the new best timer.
2013-09-17 23:29:56 +02:00
Wim Taymans
fa1ef3328b
jitterbuffer: rearrange timer update code
...
Also update the timers when retransmission is disabled. We need to
do this because when we added LOST timers when we detected missing packets and
we need to remove those timers when the packet finally arrives.
2013-09-17 23:29:56 +02:00
Tim-Philipp Müller
7a76595b22
videomixer: link to libm for maths stuff
...
Fixes undefined references to rint and pow on ubuntu
build bot.
2013-09-17 22:02:04 +01:00
Wim Taymans
232fdd8b56
jitterbuffer: release lock on shutdown
2013-09-17 15:19:42 +02:00
Matej Knopp
b2982bb749
qtmux: remove MAX_TOLERATED_LATENESS
...
https://bugzilla.gnome.org/show_bug.cgi?id=707411
2013-09-16 11:11:12 -03:00
Wim Taymans
4de919a17a
jitterbuffer: use separate thread for timeouts
...
Use a separate thread for scheduling the timeouts instead of using the
downstream streaming thread that might block at any time.
2013-09-16 15:55:55 +02:00
Matej Knopp
b363832c2c
qtmux: set first_ts to DTS for streams that have DTS
...
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:14:00 +02:00
Matej Knopp
39f7e52266
qtmux: make sure duration is a valid number for last buffer
...
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:14:00 +02:00
Matej Knopp
4e3c13c87c
qtmux: use segment.start or last buffer end time in case of missing DTS
...
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:14:00 +02:00
Matej Knopp
85728c04c4
Revert qtmux: Use buffer PTS if DTS is not set"
...
This reverts commit f72c3cf71fde622067f41f31a53978ba4c94469d.
https://bugzilla.gnome.org/show_bug.cgi?id=707340
2013-09-16 12:13:54 +02:00
Sebastian Dröge
d646a34681
videomixer: Update orc generated files
...
https://bugzilla.gnome.org/show_bug.cgi?id=708131
2013-09-16 11:03:06 +02:00
Olivier Crête
b9ceafe5af
rtpsession: Demux RTCP buffers from the RTP stream
...
If there are RTCP buffers in the RTP stream, process them as
RTCP. This way, we want receive streams following RFC 5761
https://bugzilla.gnome.org/show_bug.cgi?id=687657
2013-09-13 16:25:49 +02:00
Jan Schmidt
299d3f5c42
rtp: Remove bogus extra caps from L24 template.
...
The extra caps entry in the template was making it sometimes
get plugged for any dynamically allocated payload type.
2013-09-13 23:27:49 +10:00
Wim Taymans
28e5f90988
rtpbin: use PacketInfo for the sender
...
Avoid mapping the packet multiple times when sending RTP.
2013-09-13 14:34:28 +02:00
Wim Taymans
a02c9473d8
rtpbin: store more in the PacketInfo
...
Store all info in the PacketInfo so that we can avoid mapping the packet
multiple times.
2013-09-13 14:34:28 +02:00
Wim Taymans
e5c789abd6
session: store more in the PacketInfo structure
2013-09-13 14:34:28 +02:00
Wim Taymans
47662f9ca4
rtpbin: RTPArrivalStats -> RTPPacketInfo
...
Rename a structure because we are also going to use this for the sender
bits.
2013-09-13 14:34:28 +02:00
Wim Taymans
c795b72988
source: small cleanups
2013-09-13 14:34:27 +02:00
Thiago Santos
566b0dce40
qtdemux: only update stop position if seek requests it
...
Check for GST_SEEK_TYPE_NONE for stop poistion and only update
the stop time if it is requested. Otherwise just maintain whatever
was stored at the segment
https://bugzilla.gnome.org/show_bug.cgi?id=707530
2013-09-13 09:21:12 -03:00
Rico Tzschichholz
8ed1ff6821
rtp: Add missing headers tp fix make dist
...
In addition to a956a6ceb2
2013-09-13 14:06:13 +02:00
Sebastian Dröge
b95ddd55cd
flacparse: Make sure we have enough data to read image tags
...
Thanks to iputinei for reporting this on IRC.
2013-09-12 15:39:51 +02:00
Wim Taymans
9f9ba21404
jitterbuffer: handle segments with non-0 start
...
We keep the DTS and PTS in running-time inside the jitterbuffer. Make sure to
transform it back to a buffer timestamp before pushing out the buffer.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707931
2013-09-12 15:04:30 +02:00
Seán de Búrca
9d3dbd6581
matroskademux: Fix off-by-one in validation of UTF-8
...
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-12 09:19:15 +02:00
Thibault Saunier
9f4a8ccdf4
videomixer: Do not check if caps are empty when they are NULL
...
In the case the caps are actually NULL, we should just concider it the
same way as empty caps in that case.
2013-09-11 14:33:31 -03:00
Seán de Búrca
268058eb37
videomixer: fix build if orc is not installed
...
https://bugzilla.gnome.org/show_bug.cgi?id=707886
2013-09-11 00:17:44 +01:00
Thiago Santos
193ce9110e
matroskademux: Preserve seqnum when pushing seek upstream
...
After converting a seek from time to bytes, use the same seqnum
on the event that goes upstream
2013-09-10 17:57:49 -03:00
Thiago Santos
be0eeae491
qtdemux: track streams that are EOS on push mode to finish earlier
...
When the segment has a defined stop position, qtdemux should check
when streams reach this position and mark those as EOS. When all
streams are EOS it will return GST_FLOW_EOS to upstream to allow
the pipeline to finish instead of continuously consume buffers
from upstream that are not useful for the segment.
https://bugzilla.gnome.org/show_bug.cgi?id=707530
2013-09-10 16:43:17 -03:00
Thiago Santos
33cf8b679d
qtdemux: preserve stop of segment when doing seeks in push mode
...
When handling seeks in push mode, qtdemux converts the seek to bytes
and pushes upstream. It needs to keep track of the seek and the
subsequent segment to be able to map them back to the requested
seek time and properly preserve the segment stop of the seek.
This is done by using the start offset in bytes of the seek,
that should be the same of the segment from upstream. And this
is also backwards compatible with what qtdemux already was using.
https://bugzilla.gnome.org/show_bug.cgi?id=707530
2013-09-10 16:42:36 -03:00
Mathieu Duponchelle
8db40a8c7f
videomixer: Add colorspace conversion
...
https://bugzilla.gnome.org/show_bug.cgi?id=704950
2013-09-10 10:37:23 +02:00
Mathieu Duponchelle
707e39fe7a
videomixer: Don't send reconfigure event when formats or PAR are different
...
It is racy with multiple pads.
https://bugzilla.gnome.org/show_bug.cgi?id=704950
2013-09-10 10:36:48 +02:00
Mathieu Duponchelle
8db3648544
videomixer: Bundle private copies of videoconvert code
...
Ideally, this would be part of libgstvideo.
Prefixes videoconvert symbols with videomixer_.
https://bugzilla.gnome.org/show_bug.cgi?id=704950
2013-09-10 10:36:30 +02:00
Wim Taymans
9f9bcbc405
rtspsrc: only wait if we flushed
...
Only wait for the STREAM_LOCK when we flushed something when sending
a command for PAUSED or PLAYING.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707611
2013-09-09 15:13:46 +02:00
Wim Taymans
7b2e002879
rtspsrc: return when a flush was issued
...
Make gst_rtspsrc_loop_send_cmd() return TRUE when the current
action has been flushed
2013-09-09 15:13:46 +02:00
David Holroyd
a956a6ceb2
rtp: add L24 pay and depayloader
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707734
2013-09-09 15:13:46 +02:00
Matej Knopp
a5ceab82dd
matroskademux: fix leaking buffer and caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=707688
2013-09-07 15:50:36 +01:00
Tim-Philipp Müller
60e72b0254
udpsrc: fix build on win32
...
gstudpsrc.c:855:15: error: #if with no expression
2013-09-05 19:46:37 +01:00
Wim Taymans
5d2ff288b3
avidemux: handle unseekable streams
...
Handle streams that we can't seek in and ignore them in the
seek logic.
2013-09-04 15:53:05 +02:00
Wim Taymans
6f0e8a8b87
avidemux: only check video compression for video streams
...
Or else we might deref a stream with a NULL strf.vids and segfault
2013-09-04 15:53:05 +02:00
Alex Ashley
a965185dee
qtdemux: Add support for the avc3 sample entry format of the AVC file format
...
Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
structure for fragmented MP4 called "avc3". The principal difference
between AVC1 and AVC3 is the location of the codec initialisation
data (e.g. SPS, PPS). In AVC1 this data is placed in the initial
MOOV box (moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data
goes in the first sample of every fragment (i.e. the first sample in
each mdat box). The principal reason for avc3 is to make it easier
for client implementations, because it removes the requirement to
insert the SPS+PPS in to the decoder pipeline every time there is a
representation change.
This commit adds support for the "avc3" atom, which is almost identical
to the "avc1" atom, except it does not contain any SPS or PPS data.
https://bugzilla.gnome.org/show_bug.cgi?id=702004
2013-09-04 13:33:22 +02:00
Mathieu Duponchelle
b68f419b6f
videomixer: Don't set EOS to FALSE when the collectpad *is* EOS
...
https://bugzilla.gnome.org/show_bug.cgi?id=707238
2013-09-04 11:09:04 +02:00
Matej Knopp
349afc633a
flacparse: cleanup on error after state change
...
https://bugzilla.gnome.org/show_bug.cgi?id=707229
2013-09-03 18:06:18 +02:00
Sebastian Dröge
7f59436979
udpsrc: Bind to multicast addresses on non-Windows systems
...
On Windows it's not possible to bind to a multicast address
but the OS will make sure to filter out all packets that
arrive not for the multicast address the socket joined.
On Linux and others it is necessary to bind to a multicast
address to let the OS filter out all packets that are received
on the same port but for different addresses than the multicast
address
And deprecate the multicast-group property and replace it with the
address property.
https://bugzilla.gnome.org/show_bug.cgi?id=707042
2013-09-03 11:23:24 +02:00
Matej Knopp
73751dbbe7
flacparse: Free GstBaseParseFrame if pushing a header failed
2013-09-03 10:10:49 +02:00
Sebastian Dröge
edf6d28765
udpsrc: Refactor address resolval into its own function
2013-09-03 10:10:49 +02:00
Tim-Philipp Müller
966f848edb
replaygain: fix taglist leak in rganalysis
...
And add some FIXMEs.
2013-09-02 23:00:29 +01:00
Sebastian Dröge
1971c43279
flacparse: Properly propagate downstream flow returns upstream
...
https://bugzilla.gnome.org/show_bug.cgi?id=707229
2013-09-02 11:56:33 +02:00
Tim-Philipp Müller
1dfc1f2686
Don't use setlocale in plugins()
...
Only apps should call setlocale(), not libraries.
2013-09-01 21:18:38 +01:00
Wim Taymans
d851b8a8b4
rtpmpvpay: Fix RTP buffer allocation in rtpmpvpay
...
RTP buffer allocation should not be done with padding for the specific MPEG2
header as the padding is done at the end of the buffer and the last byte is
the size of the padding.
https://bugzilla.gnome.org/show_bug.cgi?id=706970
2013-08-29 13:15:15 +02:00
Bernhard Miller
f7528d274b
autovideosink: add sync property
...
https://bugzilla.gnome.org/show_bug.cgi?id=706955
2013-08-29 12:23:24 +02:00
Bernhard Miller
2fa68fce07
autoaudiosink: introduce sync property
...
https://bugzilla.gnome.org/show_bug.cgi?id=706955
2013-08-29 12:23:23 +02:00
Thiago Santos
9549289a18
qtdemux: push buffers after segment stop until reaching a keyframe
...
This should make decoders able to precisely push buffers until the stop
time in case they need the next keyframe to do it.
Also, according to gst_segment_clip, it should only push a buffer that
the starting ts is strictly smaller than the segment stop, so we change
the min < comparison for <=
2013-08-28 12:58:56 -03:00
Sebastian Dröge
76293efd72
Release 1.1.4
2013-08-28 12:52:25 +02:00
Wim Taymans
2a8566ddec
matroska-mux: remove framerate restriction
...
Remove the framerate restriction on the caps.
2013-08-27 15:25:16 +02:00
Wim Taymans
f1106cde66
session: only update next check time when reconsidering
...
Don't update the next RTCP check time in all cases but only when we
reconsidered. This avoids delaying sending a full RTCP packet when we
are doing early feedback.
2013-08-27 09:55:52 +02:00
Wim Taymans
47065db0b6
session: add more debug
2013-08-27 09:55:52 +02:00
Wim Taymans
454d75951e
jitterbuffer: fix types of the retransmission event
2013-08-27 09:55:52 +02:00
Wim Taymans
dd4af0d11c
jitterbuffer: only timeout EXPECTED timers on gap
...
Only timeout the EXPECTED timers when we detect a large seqnum gap.
2013-08-27 09:44:18 +02:00
Wim Taymans
4b7bcc2ec1
rtsession: fix locking
...
We need to take the session lock when getting and manipulating the
source.
2013-08-26 11:50:27 +02:00
Wim Taymans
3f46527f75
rtpsession: add some more debug
2013-08-26 11:50:13 +02:00
Mathieu Duponchelle
5d21f8f2e3
videomixer: don't send flush_stop twice.
...
If we get flush start and a seek we need to only send flush_stop once.
More info at #706441
2013-08-23 20:17:11 -04:00
Tim-Philipp Müller
9b0bcc01a0
multipartdemux: propagate discont
2013-08-23 15:57:46 +01:00
Tim-Philipp Müller
c3af414cbf
multipartdemux: remove dynamic sourcpads when going from PAUSED to READY
2013-08-23 15:57:46 +01:00
Tim-Philipp Müller
7d78a68c8d
multipartdemux: timestamp output buffers based on first input buffer that provided bytes not last
...
https://bugzilla.gnome.org/show_bug.cgi?id=637754
2013-08-23 15:57:46 +01:00
Wim Taymans
54e7e7547a
rtxqueue: add property to configure queue size
2013-08-23 15:47:25 +02:00
Wim Taymans
84833bed11
rtpbin: proxy jitterbuffer do-retransmission property
2013-08-23 12:10:19 +02:00
Michael Olbrich
23d4044e2c
avimux: unmap the correct buffer
...
The audio buffer was mapped so unmap it and not the video buffer
https://bugzilla.gnome.org/show_bug.cgi?id=706642
2013-08-23 11:32:52 +02:00
Wim Taymans
89b9019e3e
rtx: various improvements
...
Use locking
Don't push from the event handler, collected packets in a queue and push from
the chain function.
Clear queues on shutdown.
2013-08-21 17:02:27 +02:00
Wim Taymans
ee15bc9284
session: generate events correctly
...
Do correct shifting of the bitmask for lost packets.
2013-08-21 17:02:27 +02:00
Wim Taymans
67523d3ecb
rtp: register rtx element better
2013-08-21 17:02:26 +02:00
Wim Taymans
f626e29897
jpegdepay: add some more debug
2013-08-21 12:56:35 +02:00
Wim Taymans
77ed44a88a
rtpgstdepay: only push events when they changed
...
Keep track of the STREAM_START and TAG events and only push them
when they changed.
2013-08-21 12:10:00 +02:00
Wim Taymans
b144809b7c
rtpgstpay: taglists should not be merged in 1.0
2013-08-21 10:52:59 +02:00
Wim Taymans
69b0dcd7df
rtpgstdepay: flush on FLUSH_STOP event
2013-08-21 10:28:50 +02:00
Wim Taymans
5ff9093843
rtpgstpay: reset on state change
...
Do full reset on state change to READY
2013-08-21 10:03:52 +02:00
Wim Taymans
ae9239aac7
rtpgstpay: reset on FLUSH_STOP
...
Clear the adapter and pending buffer list on FLUSH_STOP.
2013-08-21 09:55:20 +02:00
Wim Taymans
2e8955df39
rtpgstpay: don't use clock for config interval
...
We can't use the clock to time our config-interval because we are not
live (or there might not be a clock or the clock might not be running).
Instead just simply take the timestamp diff.
2013-08-21 09:39:30 +02:00
Wim Taymans
182f96ff79
rtpgstay: don't use // comments
2013-08-21 09:33:04 +02:00
Youness Alaoui
e22f7e91c4
rtspsrc: Fix response argument in handle-request signal
2013-08-21 09:06:02 +02:00
Youness Alaoui
6636efd31a
rtspsrc: Add sdes property and proxy it to rtpbin
2013-08-21 09:06:02 +02:00
Youness Alaoui
62a6f58697
Send a stream-start whenever we send tags
...
This is to make sure tags are cleared on the client if the
stream-start was previously lost, otherwise, the client may end
up with a merged taglist of multiple songs
2013-08-21 09:06:01 +02:00
Youness Alaoui
05bcfee5a3
rtpgstpay: Add a config-interval property to resend the caps/tags at a regular interval
...
This is useful in case the packet containing the inlined caps was lost
or if new client joins an already running RTP stream and they missed
the previous tag events.
This also makes the payloader keep a list of merged tags so the retransmitted
tag event contains all previously received. A STREAM_START event will
flush the list of tags.
2013-08-21 09:06:01 +02:00
Youness Alaoui
1f4ca28868
rtpgstpay: Refactor the setcaps and use new method to send arbitrary caps at any time
2013-08-21 09:06:01 +02:00
Youness Alaoui
9257409613
rtpgstpay: Do not flush events for stream-start and avoid conflict between event and pending inline caps
2013-08-21 09:06:01 +02:00
Youness Alaoui
2d53289b6b
rtpgstpay: Add a create_from_adapter API and use a list of GstBufferList
...
This is necessary to fix event/caps sending. If we send a STREAM_START
packet, it will cause an error because the stream didn't receive its
caps and new-segment events, so we must wait for the first buffer before
sending the stream-start event buffer. However, the caps will be sent
at the same time and so the 'inline caps' will be set for the event.
We need to be able to payload individual packets (data, caps or events)
and only send them when we call flush.
2013-08-21 09:06:01 +02:00
Youness Alaoui
0070ba76f2
rtpgstpay: Add etype=4 for payloading GST_EVENT_STREAM_START
2013-08-21 09:06:01 +02:00
Youness Alaoui
6155b27971
rtpgstpay: Fix typo, GST_EVENT_CUSTOM_BOTH has etype of 3
2013-08-21 09:06:01 +02:00
Wim Taymans
587dc055e9
jitterbuffer: handle EOS
...
When the queue is empty, and we received EOS, pause and push an EOS
event downstream.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=706387
2013-08-20 14:36:59 +02:00
Wim Taymans
533f26fc99
jitterbuffer: update docs
2013-08-20 10:26:15 +02:00
Wim Taymans
c7f9ef8012
jitterbuffer: update all timers
...
Keep looping over all registered timers so that we can mark them lost instead of
stopping as soon as we find the timer for the current seqnum.
2013-08-20 10:25:17 +02:00
Wim Taymans
5debda9ca1
jitterbuffer: remove unused variables
2013-08-20 08:55:50 +02:00
Wim Taymans
a88db5fa2c
jitterbuffer: reorganize timer handling
...
Restructure handling of incomming packet and the gap with the expected seqnum
and register all timers from the _chain function.
Convert a timer to a LOST packet timer when the max amount of retransmission
requests has been reached.
2013-08-19 22:04:51 +02:00
Wim Taymans
d9d6eac4bb
jitterbuffer: refactor packet spacing calculation
2013-08-19 22:04:50 +02:00
Wim Taymans
c4dc159656
jitterbuffer: keep track of last seqnum and dts
2013-08-19 22:04:50 +02:00
Wim Taymans
652ce95ca6
jitterbuffer: small cleanups
2013-08-19 22:04:50 +02:00
Wim Taymans
b4a35bbe82
jitterbuffer: reset retransmission timers in add/reschedule
...
Reset the retransmission timers when adding and rescheduling a timer.
2013-08-19 22:04:50 +02:00
Wim Taymans
cf8a0652f3
jitterbuffer: rename variables for packet spacing
2013-08-19 22:04:50 +02:00
Wim Taymans
ec82e4ab7c
jitterbuffer: remove lost timer when we get the packet
...
When we receive a packet, also remove the LOST timer for it.
2013-08-19 22:04:50 +02:00
Wim Taymans
2f03b43b21
jitterbuffer: expected seqnum must increase
...
Only update the expected seqnum when it is bigger than the previous expected
seqnum.
2013-08-19 22:04:50 +02:00
Wim Taymans
c5bf376bb5
jitterbuffer: add more debug
2013-08-19 22:04:50 +02:00
Wim Taymans
ff825a2919
rtxqueue: add retransmission queue element
2013-08-19 22:04:50 +02:00
Wim Taymans
5fe18ee432
session: add some docs
2013-08-19 22:04:49 +02:00
Wim Taymans
482dacfb54
session: handle NACK feedback and generate events
...
Handle and parse the feedback NACK packets and generate a Retransmission
event for each NACKed packet
2013-08-19 22:04:49 +02:00
Thibault Saunier
e47ffb203b
videomixer: Do not send flush_stop ourself after a flush_start
...
When we receive a flush_start, we should wait for the next flush_stop
and foward it, not create a flush_stop ourself.
2013-08-17 11:40:27 +02:00
Wim Taymans
db90f6e68d
h264depay: init debug category early
...
Init the debug variable when we register the element because it is also used by
the payloader element when it calls the add_sps_pps method.
2013-08-16 17:12:19 +02:00
Chris Bass
3e9dea3f8c
qtdemux: check denominator isn't zero before scaling duration.
...
When gst_qtdemux_configure_stream sets fps_d, check that n_samples is
non-zero before using it as a denominator to scale the stream duration.
https://bugzilla.gnome.org/show_bug.cgi?id=706076
2013-08-16 10:14:30 +02:00
Wim Taymans
f11c2c9b3b
jitterbuffer: forward flush before stopping dataflow
...
First forward the flush event and then stop our loop function.
2013-08-14 16:19:32 +02:00
Olivier Crête
4c6e636720
rtph264pay: Use the SPS/PPS handling function from the depayloader
...
Remove duplicated copies
https://bugzilla.gnome.org/show_bug.cgi?id=705553
2013-08-13 10:38:23 -04:00
Olivier Crête
742b90747d
rtph264depay: Make the SPS/PPS deduplication function generic
...
Make it not touch any internals of the depayloader
https://bugzilla.gnome.org/show_bug.cgi?id=705553
2013-08-13 10:38:23 -04:00
Chris Bass
b40bf67526
aacparse: allow conversion from raw AAC to ADTS
...
This patch will prepend ADTS headers to raw AAC audio frames, allowing
upstream elements to link to decoders that only support AAC in ADTS format.
Note that no error correction bits are added to ADTS frames in this code.
https://bugzilla.gnome.org/show_bug.cgi?id=615740
2013-08-13 15:58:23 +02:00
Sebastian Dröge
282afae244
rtspsrc: Only free GCheckSum after its last usage
...
https://bugzilla.gnome.org/show_bug.cgi?id=705760
2013-08-13 12:44:11 +02:00
Matej Knopp
2269ac8f28
qtdemux: elst should offset samples instead of buffers
...
The current approach where buffers are offset is not ideal, as during seek
and loop current time is compared to sample times.
https://bugzilla.gnome.org/show_bug.cgi?id=700264
2013-08-12 13:48:04 +02:00
Thibault Saunier
6c349d6ec3
videomixer: Send EOS if buf_end >= segment.stop
...
That means the whole segment is already played, and we are sure we
are EOS at that point.
Also handle segment seeks, and do not send EOS in that case.
2013-08-11 19:05:18 +02:00
Matej Knopp
96afba915a
avidemux: send proper stream_start event
...
https://bugzilla.gnome.org//show_bug.cgi?id=705449
2013-08-08 11:57:32 +02:00
Sebastian Dröge
9863e08839
matroskademux: Don't print warnings during flushing and stop as soon as possible
...
https://bugzilla.gnome.org//show_bug.cgi?id=705442
2013-08-08 11:53:15 +02:00
Tim-Philipp Müller
957c8e3e61
rtpvp8depay: mark key frames and delta frames properly
...
https://bugzilla.gnome.org/show_bug.cgi?id=705550
2013-08-07 11:14:38 +01:00
Wim Taymans
48174164eb
session: add NACK feedback in RTCP
2013-08-06 15:50:19 +02:00
Wim Taymans
4379ed1dee
source: add methods to register NACK
...
Add a method to register a missing packet for an ssrc along with
methods to get the missing packets and clear them.
2013-08-06 15:50:19 +02:00
Wim Taymans
50638b8106
session: handle Retransmission event and schedule NACK
...
Handle the retransmission event from downstream and use it to schedule a NACK
request.
2013-08-06 15:50:19 +02:00
Wim Taymans
0bddbd682d
session: pass data to remove func
...
Pass the data to the remove function because we are going to deref it when there
is pli or fir.
2013-08-06 15:50:19 +02:00
Thibault Saunier
38946bd9f4
qtdemux: Fix compilation
2013-08-06 15:31:38 +02:00
Thibault Saunier
593a31f2b4
qtdemux: Raw buffer DTS should always be CLOCK_TIME_NONE
2013-08-06 15:17:44 +02:00
Thibault Saunier
c5fa4666b7
videomixer: Make sure to send EOS if the buffer end time equals the segment end time
...
Otherwize EOS never gets sent in that particular case.
2013-08-06 12:21:33 +02:00
Sjoerd Simons
d14d4c436c
goom: Ensure src caps are writable
...
In some cases the src caps determined by goom weren't writable, causing
a bunch of assertion failures and failed caps. Fixed by always
explicitely making the caps writable
https://bugzilla.gnome.org/show_bug.cgi?id=705475
2013-08-05 15:33:39 +02:00
Wim Taymans
3c82de59f9
session: use common send_rtcp method
...
Reuse the send_rtcp method that already asks for the current time when
requesting a keyframe.
2013-08-05 15:02:59 +02:00
Wim Taymans
3c14c6021c
session: Don't use ClockTimeDiff for unsigned delays
2013-08-05 15:02:59 +02:00
Edward Hervey
4f4f6432cc
qtmux: Use buffer PTS if DTS is not set
...
Avoids ending up with completely bogus scaled duration/pts when new
buffers have invalid DTS.
2013-08-04 17:15:38 +02:00
Tim-Philipp Müller
7272dec5fe
rtpdec: use generic marshaller
2013-08-04 11:20:41 +01:00
Tim-Philipp Müller
fe098e3aff
udp: remove unused marshal and enumtypes files
2013-08-04 11:03:07 +01:00
Tim-Philipp Müller
7469cd3a4c
rtpmanager: use generic marshaller
2013-08-04 11:03:07 +01:00
Wim Taymans
7584f91f31
jitterbuffer: send event in right direction
2013-08-04 00:24:36 +02:00
Wim Taymans
9613e481ad
session: add FIR and PLI like other RTCP packets
...
Add the FIR and PLI packets like the other RTCP packet instead of from the
on-sending-rtcp default signal handler.
2013-08-03 00:33:24 +02:00
Wim Taymans
743e1b1191
jitterbuffer: fix property ranges
2013-08-02 17:22:55 +02:00
Wim Taymans
cd0164f4cc
jitterbuffer: push retransmission events
2013-08-02 16:43:59 +02:00
Wim Taymans
9a13267e85
jitterbuffer: add support for retransmission retry
...
When we didn't receive a packet after requesting retransmission, retry
asking for retransmission for a certain period.
2013-08-02 14:54:56 +02:00
Wim Taymans
e9ad5126db
jitterbuffer: add properties
...
Add properties to control retransmission parameters
2013-08-02 14:47:56 +02:00
Wim Taymans
a8c7ff7489
jitterbuffer: use corrected timeout when rescheduling
...
When we recalculate the timeout, use the corrected timeout value depending on
the timer type.
2013-08-02 12:44:58 +02:00
Wim Taymans
9c7e3e3455
jitterbuffer: update timers after queueing
...
Else we might update the timer needlessly for duplicates.
2013-08-02 12:43:00 +02:00
Wim Taymans
ebd6b8f8ab
jitterbuffer: move method up
2013-08-02 12:42:08 +02:00
Wim Taymans
f6b6797874
jitterbuffer: small cleanup
2013-08-02 06:28:32 +02:00
Wim Taymans
0e41414926
jitterbuffer: unschedule old expected packets
...
When we receive a new packet, unschedule old outstanding packets when their
seqnum is too far away.
2013-08-01 23:36:07 +02:00
Wim Taymans
70695466ed
jitterbuffer: refactor timer update
2013-08-01 23:32:00 +02:00
Wim Taymans
4ab3f5d3da
jitterbuffer: update timers when removing
...
Update the timers when we remove a timer.
Handle canceled timers, make them unschedule the current timer and
trigger the timeout code.
2013-08-01 23:24:29 +02:00
Wim Taymans
b983cf675b
jitterbuffer: fix typo
2013-08-01 23:22:02 +02:00
Wim Taymans
f3c658cbe6
jitterbuffer: improve timeout management
...
If we change the seqnum of an existing timer and we were waiting for
that timer, unschedule it. If we change the timeout of an existing timer and we
were waiting on it, only unschedule when the new time is smaller.
2013-08-01 15:40:52 +02:00
Wim Taymans
77e5d320ab
jitterbuffer: install timer for expected arrival
...
Install a timer that is triggered when the expected arrival time of a packet
expired.
2013-08-01 15:11:13 +02:00
Wim Taymans
f08d98404e
jitterbuffer: improve unschedule of timers
...
Conflicts:
gst/rtpmanager/gstrtpjitterbuffer.c
2013-08-01 14:57:11 +02:00
Wim Taymans
9d3b824e2a
jitterbuffer: move code around
2013-08-01 12:21:53 +02:00
Wim Taymans
fe32e80c92
jitterbuffer: estimate inter packet spacing
...
When we see two packets with consecutive seqnums and a different RTP time, use
the DTS difference as the inter packet spacing estimate.
2013-08-01 12:07:11 +02:00
Wim Taymans
255b7106f5
jitterbuffer: keep track of current timeout
2013-08-01 12:01:15 +02:00
Wim Taymans
7e43dba19b
jitterbuffer: cleanup timer handling
2013-08-01 11:49:10 +02:00
Wim Taymans
9d88ac9cbb
jitterbuffer: reset is only possible with a GAP
2013-08-01 11:40:41 +02:00
Wim Taymans
f864131227
jitterbuffer: operate on DTS
...
Make the jitterbuffer schedule the timeouts based on the DTS instead
of the PTS. This makes it all smoother with reordered frames and gives
the decoder time to reorder the frames in time.
2013-08-01 11:36:56 +02:00
Wim Taymans
80c5934290
jitterbuffer: rename timout variable
2013-08-01 11:14:12 +02:00
Wim Taymans
aa951433ee
jitterbuffer: small cleanup
2013-07-31 17:08:58 +02:00
Wim Taymans
69c78f72d5
jitterbuffer: block output in paused or buffering
2013-07-31 16:59:58 +02:00
Wim Taymans
4fbbc53a49
jitterbuffer: store pts in timer
...
Only store the pts in the timer so that we can both do timeouts with timings on
the input and output of the jitterbuffer.
2013-07-31 16:59:09 +02:00
Wim Taymans
77846d35c6
rtpjitterbuffer: refactor jitterbuffer
...
Refactor the jitterbuffer code. Make separate function for peeking a buffer,
pushing the next buffer, waiting for timeouts and handling the timeouts.
The main loop now tries to push as many buffers as it can until it runs out of
buffers or when it detects a seqnum discont. Then it will wait for some event to
happen before attempting to push more buffers.
Make methods to register timeouts in an array. These timeouts are registered
when we detect a missing packet, sync for the first packet or when we find an
estimation for the end-of-stream.
This greatly simplifies and clarifies the code and also makes it possible to
register more complicated timeout schemes later.
2013-07-30 23:24:23 +02:00
Wim Taymans
ea931d4f57
rtpjitterbuffer: use NULL to ignore percent
...
If we pass NULL to pop and push we ignore the percent result.
2013-07-30 23:24:23 +02:00
Wim Taymans
b3e8a85a54
jitterbuffer: refactor
...
Move eos estimation into separate function
2013-07-30 23:24:22 +02:00
Tim-Philipp Müller
a5532b4510
flvdemux: don't leak stream_id string
...
https://bugzilla.gnome.org/show_bug.cgi?id=705142
2013-07-30 14:28:19 +01:00
Sebastian Dröge
2e35b36aab
gst: Don't swap start/stop for negative rates in the SEGMENT query
2013-07-29 12:12:41 +02:00
Matej Knopp
47ed79fb1c
qtdemux: Check for data size when parsing h264 codec data from strf atom
2013-07-29 11:53:07 +02:00
Sebastian Dröge
722ef42196
matroskademux: Implement SEGMENT query
2013-07-29 10:53:54 +02:00
Sebastian Dröge
d135373beb
flvdemux: Implement SEGMENT query
2013-07-29 10:53:47 +02:00
Sebastian Dröge
4e78974c87
avidemux: Implement SEGMENT query
2013-07-29 10:50:59 +02:00
Matej Knopp
2dcdfe07f7
qtdemux: Support H264 fourcc
...
https://bugzilla.gnome.org/show_bug.cgi?id=704996
2013-07-29 09:11:39 +02:00
Sebastian Dröge
1fbb6d30a6
avidemux: Fix duration reporting in push mode
...
https://bugzilla.gnome.org/show_bug.cgi?id=700933
2013-07-28 17:38:56 +02:00
Sebastian Dröge
89a3dc2ecd
avidemux: Don't forget unmapping and unreffing buffer
2013-07-28 17:32:59 +02:00
Matej Knopp
1947587784
avidemux: unmap buffer
...
https://bugzilla.gnome.org/show_bug.cgi?id=704951
2013-07-28 17:32:59 +02:00
Wim Taymans
02359f9219
session: don't make buffer writable prematurely
...
There is no reason to make the SR buffer writable at this point. This is better
delayed until needed.
2013-07-26 22:31:41 +02:00
Wim Taymans
0261199fc4
session: ignore RTCP for inactive sources
2013-07-26 22:31:23 +02:00
Wim Taymans
a4b4ca53c0
session: small cleanup
2013-07-26 22:25:17 +02:00
Wim Taymans
e0abd2e9b5
session: handle partial RTCP report blocks
...
When we have more SSRCs to report than what fit in an RTCP packet, use a
generation counter to make sure all of them end up in a packet eventually.
2013-07-26 17:29:10 +02:00
Wim Taymans
6cce6fb04c
session: create SSRC before doing session cleanup
...
Make the internal source before we do session cleanup
2013-07-26 17:29:10 +02:00
Wim Taymans
5b0298c63e
session: reorganize the report block code
2013-07-26 17:29:10 +02:00
Matej Knopp
7335b81c47
matroskademux: fix memory leak in check_subtitle_buffer
...
https://bugzilla.gnome.org/show_bug.cgi?id=704921
2013-07-26 17:11:31 +02:00
Wim Taymans
3c44cd7c83
session: refactor active and sender checks
2013-07-26 14:21:40 +02:00
Wim Taymans
e952f7ba43
session: remove internal sources on timeout
...
When an internal source times out and becomes a receiver, remove it.
2013-07-26 12:18:01 +02:00
Wim Taymans
e9e2fe3950
session: create an internal source for RTCP
...
When we need to do RTCP and we don't have an internal source yet,
make one.
2013-07-26 12:18:01 +02:00
Wim Taymans
bd0709c15c
session: remove old code to change SSRC
...
Remove code used to change the SSRC after a collision. We now send
a RECONFIGURE event upstream to make the upstream element change the SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans
88f5a5f355
source: don't update packet SSRC
...
Remove the code to update the SSRC in packets, it can never be called now that
we always use a source with matching packet SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans
abc90da1dc
session: delay allocation of internal source
...
Allocate the internal source when we receive a caps with the SSRC or when we see
a buffer with the SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans
e0a1ce1291
session: generate reconfigure on collision
...
When we detect a collision, change the SSRC that we suggest upstream
and trigger RECONFIGURE. This should make upstream select a new SSRC.
2013-07-26 12:18:01 +02:00
Wim Taymans
495d43c089
session: produce RTCP for all internal sources
...
Loop over all the internal sources and produce RTCP. We also need
to queue the RTCP packets and send them when we are finished.
2013-07-26 12:18:00 +02:00
Wim Taymans
9505fd4150
session: deprecate internal source and ssrc properties
...
Deprecate the internal source and internal ssrc properties. There might
be more than one internal source.
2013-07-26 12:17:59 +02:00
Wim Taymans
3d6ee1fb5e
session: internal sources don't use probation
2013-07-26 12:17:59 +02:00
Wim Taymans
0e53e9109e
session: give caps to session
...
Let the session parse the caps and update its SSRC when needed.
2013-07-26 12:17:59 +02:00
Wim Taymans
c06482a2cb
session: make method to suggest available SSRC
...
Make a method to suggest the best available SSRC. This is the SSRC of the last
created internal source and is used to instruct upstream to produce this
SSRC.
2013-07-26 12:17:59 +02:00
Wim Taymans
33ce50e8b1
session: keep SDES and set on new internal sources
...
Keep track of the SDES ourselves and set it on all newly created
internal sources.
2013-07-26 12:17:59 +02:00
Wim Taymans
5652f02b76
session: make method to make internal sources
...
Add a method to obtain an internal source and use it to create
our internal source
2013-07-26 12:17:59 +02:00
Wim Taymans
7f83927c95
session: count internal sources and how many are senders
2013-07-26 12:17:58 +02:00
Wim Taymans
719343c206
rtpsession: separate BYE marking and scheduling
...
First mark sources with BYE and then schedule the BYE RTCP message.
2013-07-26 12:17:58 +02:00
Wim Taymans
391943ba82
session: get SSRC from RTCP packet itself
...
Get the SSRC from the RTCP packet instead.
2013-07-26 12:17:57 +02:00
Wim Taymans
a3f75a17ef
session: fix bandwidth calculation
...
We iterate over all sources and the internal one is also in the
hashtable so avoid adding it twice.
2013-07-26 12:17:57 +02:00
Wim Taymans
9eaef9d332
session: add some docs
2013-07-26 12:17:56 +02:00
Wim Taymans
2163355a47
session: Rearrange RTCP reporting a little
...
Make a function to generate an RTCP packet for a source, pass the source as a
parameter.
Move timeout of collisions to session cleanup phase.
2013-07-26 12:17:56 +02:00
Wim Taymans
a3bf374351
session: move check for is_early around
...
Move the check for the early RTCP to where it is needed and used.
2013-07-26 12:17:56 +02:00
Wim Taymans
b069db6a2e
session: parse packet outside of the session lock
2013-07-26 12:17:56 +02:00
Wim Taymans
57c27ec319
session: do nicer checks for internal sources
2013-07-26 12:17:56 +02:00
Wim Taymans
93d07298ff
session: let source keep track if it sent BYE
2013-07-26 12:17:56 +02:00
Wim Taymans
0c9c1434a8
source: reset more
2013-07-26 12:17:56 +02:00
Wim Taymans
1d02496d15
source: also use the source for bye_reason
...
Store the BYE reason in our internal source object. Rename the methods on the
source object a little because now the BYE can be received in RTCP or
set when the session wants to send BYE.
2013-07-26 12:17:56 +02:00
Wim Taymans
ddd071e54c
session: configure sdes with structure only
...
Remove code to configure the SDES with methods and types, only
allow configuration with GstStructure
2013-07-26 12:17:55 +02:00
Wim Taymans
0060e1d45d
session: refactor add and find source
...
Make functions to find and add a source to the hashtable.
2013-07-26 12:17:55 +02:00
Wim Taymans
adb0d68c07
session: remove source from sync_rtcp
...
We don't need to know the sender source of the session in the
callback, the SR packet is for all participants in the session.
2013-07-26 12:17:55 +02:00
Wim Taymans
bf7d8173b3
jitterbuffer: add some more debug
2013-07-26 12:17:55 +02:00
Vincent Penquerc'h
91d4abceaa
aacparse: allow conversion from ADTS to raw AAC
...
Some muxers (eg, qtmux) only support raw AAC, so this allows linking
an encoder that outputs ADTS only to those muxers.
The conversion is simple (omit the first 7 or 9 bytes of the frame),
but has to be done in pre_push instead of handle_frame as 1.0 does
not seem to allow skipping bytes there as 0.10 used to.
Other conversions are not supported (yet).
2013-07-26 09:44:11 +01:00
Vincent Penquerc'h
55e9338846
aacparse: fix object_type parsing off-by-one in ADTS frame
...
According to http://wiki.multimedia.cx/index.php?title=ADTS ,
the value stored in ADTS headers is one less than the object
type of the AAC stream.
A look at ffmpeg shows it also adds 1 to the value read off
the ADTS header.
Note that this might break other things that happen to have
an inverse off by one to match the existing code.
2013-07-26 09:44:10 +01:00
Thiago Santos
7eac4c7c03
avidemux: fix seqnum handling for seeks
...
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events
Fixes #676242
2013-07-25 15:24:31 -03:00
Thiago Santos
8bd12e12b3
matroskademux: fix seqnum handling for seeks
...
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events
Fixes #676242
2013-07-25 15:24:31 -03:00
Thiago Santos
e49b6e7c35
qtdemux: correctly handle seqnum for seeks and segments
...
Use the same seqnum on messages and events for derived events.
Fixed for flushes / stream-start / segment after a seek, and segment
after a segment.
Fixes #676242
2013-07-25 15:24:31 -03:00
Wim Taymans
c44a29bd53
bin: fix compilation
2013-07-24 14:17:45 +02:00
Wim Taymans
cc92ef1db2
vrawdepay: fix UYVP format
2013-07-24 12:42:31 +02:00
Wim Taymans
8191b6fcd2
vrawpay: fix UYVP format
2013-07-24 12:41:58 +02:00
Wim Taymans
37af93c361
vrawpay: fix caps
2013-07-24 12:41:44 +02:00
Wim Taymans
f87875e35b
rtpjitterbuffer: fix locking
...
Take the lock earlier so that we do things that follow with the right
locking.
2013-07-24 10:49:03 +02:00
Wim Taymans
dece8413ef
rtpsession: don't use invalid times in RTCP timeouts
...
An invalid timeout can be calculated when we disabled RTCP by setting the
bandwidth to 0. Make sure all code can handle this case.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674626
2013-07-23 17:41:48 +02:00
Wim Taymans
25e0f0d6b6
rtpsession: lock session when changing bandwidth
...
Take the session lock when changing the bandwidth properties so that we don't
end up with inconsistent behaviour.
2013-07-23 17:41:48 +02:00
Wim Taymans
c337265ee4
session: reset some RTCP variables
...
The early_send time was set to 0 and always triggering an early RTCP packet.
2013-07-23 17:41:48 +02:00
Edward Hervey
3d48d25756
qtdemux: Add all the mpeg XDCAM variants
...
This should cover all known XDCAM variants (which are all mpeg2 video)
Fixes #672227
2013-07-23 15:03:31 +02:00
Carlos Rafael Giani
95429f1d4b
rtpbin: added custom downstream sync event
...
rtpbin can now send a custom in-band downstream event which informs
downstream that the bin has received an RTCP SR packet. This is useful
for applications which want to drop the initial unsynchronized received
RTP packets.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703560
Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
2013-07-23 06:25:20 +02:00
Tim-Philipp Müller
f18b1f7e80
deinterlace: fix on-the-fly changing of "mode" and "fields" properties
...
We call setcaps() to reconfigure ourselves, but we need to pass
the current *sink* caps, not the source caps then. Also fix a
caps leak.
https://bugzilla.gnome.org/show_bug.cgi?id=641599
2013-07-22 18:00:16 +01:00
Sebastian Dröge
0c2ff91a5c
wavparse: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Sebastian Dröge
169b490664
rtspsrc: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Sebastian Dröge
5a9f4a3cbc
rtpsession: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Sebastian Dröge
57dd1189d5
matroskademux: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Sebastian Dröge
1a0278ed64
qtdemux: Add support for group-id in the stream-start event
2013-07-22 15:30:13 +02:00
Sebastian Dröge
1122698491
flvdemux: Add support for group-id in the stream-start event
2013-07-22 15:30:12 +02:00
Sebastian Dröge
6cc16da531
avidemux: Add support for group-id in the stream-start event
2013-07-22 15:30:12 +02:00
Mathieu Duponchelle
d67a671bfb
videomixer: use gst_util_uint64_scale*_round.
...
There could be a case where:
1) you do a new set_caps after buffers have been processed.
2) ts_offset gets set to a different value, eg 0.033333333
3) your pads get EOS, but the check dor that doesn't work
because you use ts_offset + a truncated value < segment.stop
4) so in the next collected, you end up comparing for example:
0.9999999999 > 1., which is false and means you don't send EOS.
Also adds scale_round in two other places where it potentially could
have caused problems.
2013-07-21 19:21:57 -04:00
Olivier Crête
96a8fb92e2
qtdemux: Add WRLE support
2013-07-19 14:58:30 -04:00
Tim-Philipp Müller
aa7d597120
qtdemux: make files from Vivotek camera play
...
Skip tracks of 'vivo' subtype with empty stsd instead of
erroring out saying that the file is broken.
https://bugzilla.gnome.org/show_bug.cgi?id=699791
2013-07-19 19:38:30 +01:00
Tim-Philipp Müller
ce52b319ff
qtmux: when streaming don't try to seek when stopping
...
It might cause errors in sinks that are not seekable and
have reported this (like e.g. fdsink)
https://bugzilla.gnome.org/show_bug.cgi?id=696228
2013-07-19 17:31:38 +01:00
Wim Taymans
bdd3c31902
qtdemux: simplify some helpers
...
Some helper functions are not needed anymore or can be simplified.
2013-07-19 17:26:54 +02:00
Wim Taymans
61a8937ced
qtdemux: for non-raw video, move palette in caps
...
We only need to append the palette to raw video buffers, non-raw video has the
palette in the caps still.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-19 17:14:46 +02:00
Arnaud Vrac
40ab78825c
qtdemux: nitpicking in esds parsing
2013-07-19 14:26:18 +02:00
Arnaud Vrac
d0d25a5e1f
qtdemux: set proper caps for mpeg-1 audio
...
Remove AAC specific fields from mpeg-1 audio caps, remove assumption
that the mpeg1 audio layer is 3, and set `parsed' field.
https://bugzilla.gnome.org/show_bug.cgi?id=704548
2013-07-19 14:26:08 +02:00
Arnaud Vrac
5def061d20
qtdemux: remove chapter stream
...
Remove all streams that are actually table of contents, since we will
never need the data after parsing them.
2013-07-18 11:48:12 +02:00
Arnaud Vrac
ae67c13416
qtdemux: send gap event for sparse streams in push mode
...
This allows to pre-roll at least if the next subtitle buffer
is far away.
2013-07-18 11:48:11 +02:00
Arnaud Vrac
1237898351
qtdemux: do not use indexes from sparse stream when seeking in push mode
...
This makes seeking more accurate in push mode, since the previous
keyframe on a sparse stream might be far away.
2013-07-18 11:48:11 +02:00
Arnaud Vrac
e561d12655
qtdemux: advertise subtitle streams as sparse
2013-07-18 11:48:11 +02:00
Arnaud Vrac
6e26f1d067
mastrokademux: do not push discont buffers if they aren't discont
...
Unset the discont flag instead of posssibly pushing a buffer with
a flag that's still set.
https://bugzilla.gnome.org/show_bug.cgi?id=682110
2013-07-17 18:10:11 +01:00
Wim Taymans
4c97701650
qtdemux: extract the palette from stsd
...
Sometimes a palette is inside the stsd, extract it instead of always using
the default one
2013-07-17 15:17:19 +02:00
Sebastian Dröge
9f73447229
goom2k1: Fix event handling and negotiate as soon as possible
2013-07-17 14:30:16 +02:00
Sebastian Dröge
78c7c16e9e
goom: Fix event handling and negotiate as soon as possible
2013-07-17 14:28:43 +02:00
Wim Taymans
6b82c89562
qtdemux: add support for WRAW
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-17 09:57:17 +02:00
Wim Taymans
f698483bb3
qtdemux: palette is appended to buffers, not in caps
...
Fix the palette handling, in 1.0 we append the palette to the buffer instead of
placing it on the caps.
See also https://bugzilla.gnome.org/show_bug.cgi?id=704292
2013-07-17 09:57:16 +02:00
Olivier Crête
54c5a7f690
rtp: Use gst_adapter_take_buffer_fast() where possible in RTP payloaders
2013-07-16 15:37:49 -04:00
Arnaud Vrac
54bba4f60c
qtdemux: reset segment on flush stop
...
cca2f555d1
introduces a regression, where the demux segment is not
reset on flush stop, so the next upstream segment event will calculate
an invalid base time on the new segment to be sent downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=704255
2013-07-16 10:47:20 +02:00
Matej Knopp
ca32442f86
qtdemux: offset samples according to edit list
...
https://bugzilla.gnome.org/show_bug.cgi?id=700264
2013-07-15 09:59:23 +02:00
Matej Knopp
ae92ea21a1
aacparse: be less verbose when parsing LOAS streams
...
https://bugzilla.gnome.org/show_bug.cgi?id=704162
2013-07-15 07:55:08 +02:00
Matej Knopp
3111161e8a
qtdemux: unselect instead of ignoring disabled track, detect chapter track
...
https://bugzilla.gnome.org/show_bug.cgi?id=704007
2013-07-12 11:45:33 +02:00
Kyosuke Nekomura
4d517e94ef
audioecho: Fix handling of delay property in PLAYING/PAUSED state
...
https://bugzilla.gnome.org/show_bug.cgi?id=703901
2013-07-12 09:36:16 +02:00
Olivier Crête
3aa20e7c8d
rtpmux: Enable proxy caps on the src pads
2013-07-11 17:21:22 -04:00
Matej Knopp
7b69f427f1
qtdemux: correct argument order in gst_util_uint64_scale_int_round
...
https://bugzilla.gnome.org/show_bug.cgi?id=703350
2013-07-10 09:20:17 +02:00
Olivier Crête
1997acc8b2
rtpmux: Keep caps order from the peer or the filter
2013-07-09 17:43:31 -04:00
Sebastian Dröge
3d0988f46f
videomixer: Fix handling of buffers without a duration
...
We'll have to pop buffer from collectpads and store it
internally only to get the timestamp of the next buffer.
If we continue to keep it in collectpads, no new buffer
to calculate the end time will ever arrive.
https://bugzilla.gnome.org/show_bug.cgi?id=703743
2013-07-09 12:42:17 +02:00
Sebastian Dröge
9e9d2ce098
videomixer: Fix negotiation with 0/1 framerates
...
https://bugzilla.gnome.org/show_bug.cgi?id=703743
2013-07-09 11:53:28 +02:00
Jonas Holmberg
beebe2b7af
matroskademux: Unlock stream lock after use
...
Stream lock of sink pad was not unlocked after non-updating seek.
2013-07-09 11:25:14 +02:00
Ognyan Tonchev
aa2d96c46b
multipartmux: Re-set need_segment flag after FLUSH_STOP
...
https://bugzilla.gnome.org/show_bug.cgi?id=703182
2013-07-09 09:16:20 +02:00
Sebastian Dröge
0cc77d8e30
rtph263ppay: Don't pass upstream filter caps to downstream
...
Downstream usually can't accept video/x-h263 but only application/x-rtp,
so we would always get an empty intersection here.
https://bugzilla.gnome.org/show_bug.cgi?id=702632
2013-07-08 14:10:44 +02:00
Wim Taymans
ab24598443
rtspsrc: avoid some strdup
2013-07-02 11:13:25 +02:00
Wim Taymans
7c950ef3f2
rtspsrc: add select-stream signal
...
Add a signal to let the app select what streams will be selected.
See https://bugzilla.gnome.org/show_bug.cgi?id=634419
2013-07-02 10:40:35 +02:00
Wim Taymans
2d276e1bcb
rtspsrc: avoid strdup
2013-07-02 10:40:35 +02:00
J. Rick Ramstetter
f01b751e52
rtp: Fix documentation and comments to use rtpbin instead of old gstrtpbin
...
https://bugzilla.gnome.org/show_bug.cgi?id=703426
2013-07-02 10:12:17 +02:00
Wim Taymans
1db7e62060
rtspsrc: add signal to notify of the SDP
...
This way, the app can look and modify the SDP.
2013-07-01 17:31:30 +02:00
Matej Knopp
4053e1d6ac
qtdemux: compute framerate from average sample duration
...
https://bugzilla.gnome.org/show_bug.cgi?id=703350
2013-07-01 12:53:17 +02:00
Alban Browaeys
97015d3c93
flvdemux: Add flvversion 1 to the flash-video caps
...
This allows using avdec_flv which requires this field to be
present in the caps. FLV only supports flash-video version 1
right now.
https://bugzilla.gnome.org/show_bug.cgi?id=703076
2013-07-01 11:43:46 +02:00
Sebastian Dröge
5f6469fe2a
deinterleave: Don't hold object lock while sending events downstream
...
Based on a patch by Kishore Arepalli <kishore.arepalli@gmail.com>
https://bugzilla.gnome.org/show_bug.cgi?id=703114
2013-07-01 11:37:00 +02:00
Sebastian Dröge
75b5a54f17
matroskademux: Add MPEG4 video profile/level to the caps
2013-07-01 11:01:13 +02:00
Sebastian Dröge
423bddac6a
matroskademux: Add AAC profile/level to the caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=703312
2013-07-01 11:01:13 +02:00
Wim Taymans
c469434ea8
vorbispay: add support for config-interval
...
Align code with the theora payloader and add support for the config-interval to
periodically send out the config headers.
2013-06-28 15:21:56 +02:00
Wim Taymans
006562c9f4
theorapay: small cleanups
2013-06-28 15:21:12 +02:00
Wim Taymans
cdc66462ce
theorapay: handle streamheaders as well
2013-06-28 12:08:19 +02:00
Wim Taymans
3169432ed4
vorbispay: always collect headers on data
...
When we see a data packet, always check if we need to collect any previous
headers.
2013-06-28 12:07:58 +02:00
Wim Taymans
6c716dfc25
vorbispay: handle streamheader as well
...
Take config strings from the streamheader when we can
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=664312
2013-06-28 11:43:17 +02:00
David Svensson Fors
692206d3a7
rtph264pay: avoid double buffer unmap on error
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=703171
2013-06-27 17:14:11 +02:00
Wim Taymans
3289a2963b
rtspsrc: reset-sync before play
...
Call reset-sync on the rtpbin before we go to playing. This makes us require SR
packets for all streams again before we attempt to sync them. If we don't reset,
it might be that we combine SR packets from before and after the PAUSE/PLAYING
state change and end up with huge bogus offsets.
2013-06-27 17:02:14 +02:00
Wim Taymans
519305d14d
jitterbuffer: improve sync on first packets
...
Don't throw away the first RTCP packet if it arrives before the first
RTP packet but remember and use it to signal sync once we get the
RTP packet.
See https://bugzilla.gnome.org/show_bug.cgi?id=691400
2013-06-27 16:23:20 +02:00
Wim Taymans
8969f00661
jitterbuffer: only signal loop when active
...
Only signal the loop function when it is active.
2013-06-27 16:15:45 +02:00
Wim Taymans
4bd2ffb26e
jitterbuffer: signal timestamp discont
...
We can now use the RESYNC buffer flag to mark a timestamp discont when we update
the ts-offset property.
2013-06-27 16:13:37 +02:00
Wim Taymans
4258ddcc36
jpegpay: turn some errors into warnings
...
Turn some errors into warnings, we can continue processing so this should
not be fatal.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=657079
2013-06-26 20:49:41 +02:00
Wim Taymans
bb9d42b976
rtspsrc: avoid some flushes
2013-06-26 14:58:53 +02:00
Wim Taymans
f39ef2ab68
rtspsrc: handle data message when waiting for reply
...
When we are waiting for a server reply, handle data messages instead of
ignoring them.
2013-06-26 14:41:36 +02:00
Wim Taymans
61219dc6ed
rtspsrc: handle data messages in separate method
...
Refactor and make a method to handle a data message.
2013-06-26 14:41:36 +02:00
Wim Taymans
a4be0c6de3
rtspsrc: add some more docs to handle-request signal
...
See https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-25 20:36:18 +02:00
Youness Alaoui
52e440c91b
Send a clock_provide message on the bus when we get a netclock
2013-06-25 14:50:47 +02:00
Youness Alaoui
547df8e14f
rtspsrc: Expose use-pipeline-clock property
2013-06-25 14:50:33 +02:00
Wim Taymans
35f6e79b94
udpsink: bind to the given interface
...
Actually call BINDTODEVICE to bind to the interface as given by the
property.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702819
2013-06-24 17:13:05 +02:00
Sebastian Dröge
3c9aba91dc
matroska: Add initial VP9 support
2013-06-21 18:22:13 +02:00
Youness Alaoui
95906b8f1c
rtsp: go back into the loop after doing pause
...
After we do a pause request, go back to loop mode so that we can listen
for server messages again.
See https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-21 10:42:20 +02:00
Olivier Crête
2cd6f53e24
rtpptdemux: Wait after the caps to forward the other events
...
First forward the stream-start, then the caps, then the rest
2013-06-20 23:16:59 -04:00
Wim Taymans
b96d931bf4
rtspsrc: fix race in state change to paused
...
When we go to paused, we first flush the connection and then send the pause
command. As a result of the flushing, the scheduled paused command can get
lost. Wait until the connection is completely flushed and the rtsp task is
waiting before issuing the paused or playing request.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-20 14:43:47 +02:00
Wim Taymans
8428423c04
qtdemux: handle SEGMENT query
2013-06-20 11:31:22 +02:00
Kishore Arepalli
5b32891ae1
avidemux: duration query returns zero for DV video in avi
...
https://bugzilla.gnome.org/show_bug.cgi?id=702625
2013-06-19 11:17:22 +02:00
Sebastian Dröge
b001da2926
qtdemux: Disable usage of allocation queries
...
This can only reliably work if demuxers have a
separate streaming thread per srcpad. This should be
done in a demuxer base class, which integrates parts
of multiqueue
https://bugzilla.gnome.org/show_bug.cgi?id=701856
2013-06-19 11:07:48 +02:00
Alex Ashley
46a137c810
Avoid skipping moov atoms for fragmented MP4 files.
...
bug #700505
Following a representation change that causes a resolution change,
the video decoder fails to decode correctly. Dashdemux detects the
representation change and pushes a new caps event and an
initialization segment (a new moov atom) to the downstream qtdemux,
but it doesn't handle this new moov yet, it will only parse the
first one it receives.
This commit changes qtdemux to accept a new moov in a dash bitstream
switching scenario.
2013-06-19 01:44:22 -03:00
Thiago Santos
384e8f6c34
qtdemux: send stream-start only once for each stream
...
Do not send stream start again when reconfiguring a pad for new caps.
That is common for adaptive streams
2013-06-19 00:55:30 -03:00
Jens Georg
745be945ce
rtpmp2tdepay: accept mislabelled streams from GStreamer 0.10 as well
...
The mp2t payloader in 0.10 mislabelled the streams as MP2T-ES
instead of MP2T, so accept that as well for compatibility reasons.
https://bugzilla.gnome.org/show_bug.cgi?id=702457
2013-06-17 15:39:17 +01:00
Wim Taymans
d9bc48edc9
rtspsrc: manage element state ourselves
...
Lock the state of the all our elements and manage their states
outselves. Because we are working async, we can't rely on the state
change function to set the state at the right time or to return the
right return value from the state change function.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702046
2013-06-16 05:40:13 +02:00
Bruno Gonzalez
e89a48616b
matroskademux: Don't unlock stream lock without locking it first
...
https://bugzilla.gnome.org/show_bug.cgi?id=702167
2013-06-14 14:10:13 +02:00
Wim Taymans
51c9f7989f
rtpsession: Use the right hashtable to calculate bandwidth
...
Don't use an unused hashtable to iterate source to calculate bandwidth.
Remove unused code.
2013-06-13 16:02:19 +02:00
Sebastian Dröge
01cc493944
Revert "videomixer: When all sinkpads are eos, update output segment stop and forward it"
...
This reverts commit 2d3910fc79
.
It's not solving any problem and instead causes code to fall apart.
https://bugzilla.gnome.org/show_bug.cgi?id=701519
2013-06-12 18:25:59 +02:00
Tim-Philipp Müller
213cd2777b
matroskademux: mark subtitle streams as sparse in stream-start event
...
And also mark the streams that should be selected by default if
marked so in the headers.
https://bugzilla.gnome.org/show_bug.cgi?id=600648
2013-06-12 15:31:22 +01:00
Stefan Sauer
39c4c5f251
audiopanorama: add prebuilt files
2013-06-11 22:14:33 +02:00
Stefan Sauer
349a60e164
audiopanorama: cleanup of transform()
...
Only map input if we are reading it. Cleanup the logging and the comments a bit.
2013-06-11 21:48:18 +02:00
Stefan Sauer
1dc06932a2
audiopanorama: use orc to speedup processing
...
Use special variants for the case when we don't change the panorama (pan=0.0).
Simplify the processing functions by passing the panorama value directy instead
of the instance. Use orc for clearing buffers too.
2013-06-11 21:48:18 +02:00
Mathieu Duponchelle
6e23f1fec4
videomixer: check last end_time after conversion to running segment
...
The last end_time was saved after conversion, so the comparison
had to be made after conversion for it to make sense.
https://bugzilla.gnome.org/show_bug.cgi?id=701385
2013-06-11 21:03:35 +02:00
Mathieu Duponchelle
4243714301
videomixer: add mix->segment.start to output_end_time
...
When the segment start is not 0, this created a situation where
the output_end_time is inferior to output_start_time, and the duration
of the next buffer ended up underflowing.
https://bugzilla.gnome.org/show_bug.cgi?id=701385
2013-06-11 21:03:03 +02:00
Sebastian Dröge
e2b46a776f
matroskademux: Send stream headers after the segment event
...
https://bugzilla.gnome.org/show_bug.cgi?id=700799
2013-06-11 13:54:53 +02:00
Sebastian Dröge
adc9f0bd10
qtdemux: Do allocation query after exposing all pads and no-more-pads
...
Also configure video streams as early as possible.
Related https://bugzilla.gnome.org/show_bug.cgi?id=701856
but not fixing that.
2013-06-11 12:27:19 +02:00
Sebastian Dröge
ab275b62a8
flvdemux: Don't forward CAPS events from upstream
...
Just use the default pad event handler.
https://bugzilla.gnome.org/show_bug.cgi?id=701976
2013-06-11 12:27:19 +02:00
Stefan Sauer
4ef27eb0f9
audiopanorama: move the enum to the header and use instead of gint
...
Move the enum for the processing method to the header so that we can use the
type for the instance struct.
2013-06-09 20:39:48 +02:00
Sebastian Dröge
1ba08e331c
wavenc: Link with libgstbase for GstByteWriter
2013-06-07 15:15:15 +02:00
Sebastian Dröge
db1c2a28a6
wavparse: Push stream-start event in pull mode before anything else
2013-06-07 13:27:07 +02:00
Sebastian Dröge
048866f1b1
Release 1.1.1
2013-06-05 18:31:40 +02:00
Sebastian Dröge
ea75b890dc
wavenc: Fix taglist ref handling that made the unit test fail
2013-06-05 15:50:04 +02:00
Wim Taymans
0d27829a6b
udpsink: avoid leaking the host
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=701586
2013-06-05 12:14:01 +02:00
Thiago Santos
7c12435f9b
qtdemux: make sure taglist is writable before adding tags
...
Avoids assertions
2013-06-02 15:37:06 -03:00
Thiago Santos
78dfdee2aa
qtdemux: effectively skip tracks that weren't listed on the 1st moov
...
Without this, stream is NULL and the code will try to access it, leading
to segfaults.
2013-06-02 13:06:15 -03:00
Thiago Santos
70fca21c28
qtdemux: skip redundant check
...
!got_moov is already checked the line above
2013-06-02 13:06:15 -03:00
Stefan Sauer
bcf1bba689
level: remove unused variables in instance struct
2013-06-01 21:34:37 +02:00
Anton Belka
db29522a43
wavenc: add tags & toc support
...
Write tags as LIST INFO chunk. Format the toc as cue + LIST adtl chunk. Remove
old #ifdef'ed code.
2013-06-01 21:34:37 +02:00
Wim Taymans
1f0600ee6f
Revert "rtph264pay: Restructuring to allow for adding optional caps"
...
This reverts commit 61666898cf
.
This commit changes what the set_sps_pps() function does, not it doesn't
set caps anymore (and should have been renamed). The main problem is that
not all call sites are updated and thus leak the string.
2013-05-31 15:18:48 +02:00
Wim Taymans
1516c14881
Revert "rtph264pay/depay: Add frame dimensions a payloaded caps"
...
This reverts commit 3dca756a5d
.
The H264 RTP spec has no attributes for width and height.
2013-05-31 15:11:12 +02:00
Wim Taymans
b79d217396
Revert "rtph264pay/depay: Add optional framerate caps for use in SDP"
...
This reverts commit d8825e2a5c
.
There is no framerate attribute in the h264 RTP spec.
2013-05-31 15:09:51 +02:00
Wim Taymans
190b3d6688
Revert "rtpjpegpay/depay: Replace framesize caps with width/height"
...
This reverts commit 0075d111b4
.
Extra application/x-rtp are SDP fields, which are strings.
2013-05-31 15:08:16 +02:00
Wim Taymans
f870cef8bc
Revert "rtpjpegpay/depay: Replace framerate caps field with fraction"
...
This reverts commit 9fd25a810b
.
We deal with sdp attributes in application/sdp, which are always strings.
2013-05-31 15:05:51 +02:00
Wim Taymans
25082a50b9
rtspsrc: add extra TLS url protocols
...
We also support TLS protocols now.
2013-05-31 12:34:22 +02:00
Sebastian Dröge
e2e1d1a158
videomixer: Add FIXME comment about the DURATION query from adder
...
Currently the code just takes with maximum upstream duration, which
is wrong. It should be the maximum upstream duration in running time.
2013-05-30 23:56:38 +02:00
Mathieu Duponchelle
5223868caa
videomixer: Set a reference to mix->current_caps as the QUERY_CAPS result.
2013-05-30 15:36:48 -04:00
Stefan Sauer
6feaf69bec
level: misc cleanups
...
Fix some oudated comments. Sort out some confusion of interval_frames and num_frames.
2013-05-30 17:38:55 +02:00
Stefan Sauer
52282b5faa
level: fix discontinuities in timestamps
2013-05-28 19:09:12 +02:00
Wim Taymans
80850df711
rtspsrc: create and push stream-start in TCP mode
2013-05-28 15:45:49 +02:00
Wim Taymans
4fc1f3088b
rtspsrc: remove some obsolete code
...
It is not needed to do a state change from the _play() function on
ourselves. The state change function already did that and we don't want to
interfere with that (or use hacks to avoid interference).
2013-05-28 15:10:07 +02:00
Wim Taymans
e6f850996b
rtspsrc: set RTCP caps on the RTCP pads
2013-05-28 12:26:25 +02:00
Wim Taymans
63f0ecbbe7
rtpsession: send stream-start and segment events
...
Also send stream-start and segment event on the RTCP pad.
We don't need to send anything on the sync_src pad because we
already forwarded all incomming events.
2013-05-28 12:26:25 +02:00
Wim Taymans
779bcc093c
rtspsrc: add signal to handle server requests
...
Add a signal to be notified of a server request. The signal handler can then
construct the response message for the server.
See https://bugzilla.gnome.org/show_bug.cgi?id=632207
2013-05-28 12:26:24 +02:00
Nicolas Dufresne
cd30a81ee3
videomixer: Maintain z-order when new pad are added
...
https://bugzilla.gnome.org/show_bug.cgi?id=701109
2013-05-27 22:43:25 -04:00
Thibault Saunier
7a3df1ab31
videomixer: Always handle flush_stop_pending atomically
...
It is not protected with the COLLECT_PADS_STREAM_LOCK anymore
2013-05-25 12:20:08 -04:00
Thibault Saunier
608bd3e2db
videomixer: Do not take COLLECT_PADS_STREAM_LOCK when unnecessary
...
Collectpad takes the lock itself when receiving serialized events
and we should not take it for not serialized ones
2013-05-25 11:03:31 -04:00
Sebastian Dröge
1b5a8ac41c
flxdec: Properly skip non-frame chunks
2013-05-24 19:34:05 +02:00
Sebastian Dröge
ae3ee32f42
flxdec: Flush data from adapter after reading it
...
Otherwise we're going in an infinite loop, reading the same data
over and over again.
2013-05-24 19:31:14 +02:00
Andoni Morales Alastruey
a62af107ae
goom2k1: fix more duplicated symbols
2013-05-24 09:29:23 +02:00
Sebastian Rasmussen
9fd25a810b
rtpjpegpay/depay: Replace framerate caps field with fraction
...
The previous implementation had the formatting of SDP attributes happen
in each RTP payloader, now instead the constituent values are propagated
as caps fields. This allows for applications to do SDP offer/answer
based on caps negotiation.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-23 21:05:49 +02:00
Sebastian Rasmussen
0075d111b4
rtpjpegpay/depay: Replace framesize caps with width/height
...
The previous implementation had the formatting of SDP attributes happen
in each RTP payloader, now instead the constituent values are propagated
as caps fields. This allows for applications to do SDP offer/answer
based on caps negotiation.
Keep parsing a-framerate, x-framerate and x-dimensions in rtpjpegdepay
to be backwards compatible with previous payloaders.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-23 21:05:43 +02:00
Sebastian Rasmussen
d8825e2a5c
rtph264pay/depay: Add optional framerate caps for use in SDP
...
This allows for applications to format SDP attributes and still do SDP
offer/answer based on caps negotiation.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
2013-05-23 21:04:17 +02:00
Sebastian Rasmussen
3dca756a5d
rtph264pay/depay: Add frame dimensions a payloaded caps
...
This allows for applications to format SDP attributes and still do SDP
offer/answer based on caps negotiation.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
2013-05-23 21:04:11 +02:00
Sebastian Rasmussen
61666898cf
rtph264pay: Restructuring to allow for adding optional caps
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
2013-05-23 21:04:00 +02:00
Sebastian Dröge
e26b8c2832
(dyn|multi)udpsink: Add properties to specify the bind address and port
...
By default we use the any addresses and a random port for binding the socket.
2013-05-23 18:42:09 +02:00
Sebastian Dröge
5b79b8ff3c
(dyn|multi)udpsink: Bind socket before using it
...
https://bugzilla.gnome.org/show_bug.cgi?id=700878
2013-05-23 18:05:07 +02:00
Sebastian Dröge
1ed7f7a6a8
(multi)udpsink: Add missing getters for socket-v6 and used-socket-v6 properties
2013-05-23 17:26:31 +02:00
Nicolas Dufresne
d8c5e31657
videomixer: Don't hold stream-lock while pushing non-serialized events
...
https://bugzilla.gnome.org/show_bug.cgi?id=700868
2013-05-23 09:20:04 -04:00
Nicolas Dufresne
a7e0f251ca
videomixer: Don't hold object lock while sending events
...
https://bugzilla.gnome.org/show_bug.cgi?id=700868
2013-05-23 09:20:04 -04:00
Sebastian Dröge
ecc6c607ff
deinterlace: The return value of gst_pad_set_caps() is not relevant anymore
...
Caps can fail to be set because the pad is not linked yet for example.
2013-05-22 17:34:07 +02:00
David Schleef
318cd39c3e
qtdemux: Add error if file has playready drm
2013-05-21 18:21:49 -07:00
Thibault Saunier
18ef4f18d0
videomixer: Send a reconfigure event upstream if sinkpad caps are not usable
...
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-21 12:15:36 -04:00
Alexander Schrab
a1df050356
mulawdec: Handle NULL buffers in handle_frame
...
https://bugzilla.gnome.org/show_bug.cgi?id=698894
2013-05-21 15:18:04 +02:00
Sebastian Rasmussen
2361567bae
rtpjpegpay/depay: Add framesize caps for use in SDP
...
The format of the value adheres to RFC6064 and it is meant to be parsed
and included in the SDP sent by gst-rtsp-server to its clients.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-21 09:09:03 +02:00
Sebastian Rasmussen
919eed0787
rtpjpegpay: Add optional framerate caps for use in SDP
...
The format of the value adheres to RFC4566 and it is meant to be parsed
and included in the SDP sent by gst-rtsp-server to its clients.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-21 09:08:21 +02:00
Mathieu Duponchelle
2d3910fc79
videomixer: When all sinkpads are eos, update output segment stop and forward it
...
https://bugzilla.gnome.org/show_bug.cgi?id=699793
2013-05-20 21:06:56 +02:00
Mathieu Duponchelle
521c9a7b5d
videomixer: Don't reset the output segment on flush stop
...
Only init it when getting from READY to PAUSED, and change it on seek events.
https://bugzilla.gnome.org/show_bug.cgi?id=699793
2013-05-20 21:03:03 +02:00
Thibault Saunier
86b106091c
videomixer: Send caps event from the streaming thread
...
This way we avoid races in caps negotiation and we make sure
that the caps are sent after stream-start.
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-19 09:28:04 -04:00
Thibault Saunier
718f9004d0
videomixer: Do not send flush_stop when receiving a seek
...
There is no reason to send a flush-stop when receiving a seek event.
In the case of a flushing seek, we could eventually want to, but in
the code path were we check if the seek is "flushing", we have the
following comment that makes sense:
"we can't send FLUSH_STOP here since upstream could start pushing data
after we unlock mix->collect.
We set flush_stop_pending to TRUE instead and send FLUSH_STOP after
forwarding the seek upstream or from gst_videomixer_collected,
whichever happens first."
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-19 09:28:04 -04:00
Thibault Saunier
85b6852deb
videomixer2: Protect flush_stop_pending with the collectpad stream lock
...
And make sure to expect a flush-stop after a flush-start
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-19 09:28:04 -04:00
Michael Olbrich
d1c56376d6
rtpmp4apay: clear config buffer before using it
...
This is necessary because parts of the memory are only modified with "|="
https://bugzilla.gnome.org/show_bug.cgi?id=700514
2013-05-18 10:57:56 +01:00
Thiago Santos
55caa99ccd
qtdemux: Do not expect EOS after a segment event if upstream is mss
...
In case qtdemux is handling a mss stream, do not mark the stream to wait
for EOS after a segment. Even if it seems to be the last one according to
the current streams information.
MSS handling is different here because there is another demuxer driving
the pipeline
2013-05-16 16:50:49 -03:00
Thiago Santos
5517e352ab
qtdemux: only set channels and rate if qtdemux knows it
...
Setting both of those to 0 is pointless and means that qtdemux
doesn't know the real value. Avoid setting it in this case.
2013-05-16 16:50:49 -03:00
Arnaud Vrac
6edcc564ba
qtdemux: set alac caps using info from codec buffer
...
The samplerate field in the STSD atom is not right for some ALAC files
(usually when audio is 96kHz/24bits), so the audio caps must be
extracted from the codec data.
https://bugzilla.gnome.org/show_bug.cgi?id=700382
2013-05-15 18:42:11 +01:00
Arnaud Vrac
8ed611cdbc
avidemux: do not push discont buffers if they aren't discont
...
https://bugzilla.gnome.org/show_bug.cgi?id=682110
2013-05-15 13:16:11 +01:00
Joshua M. Doe
837dcfb363
videocrop: Add support for GRAY16_LE/GRAY16_BE
...
https://bugzilla.gnome.org/show_bug.cgi?id=700331
2013-05-15 09:29:30 +02:00
Sebastian Dröge
41e1af3751
rgvolume: Send all events through the proxypads instead of just sending to the target
...
Otherwise the sticky events are missing on the proxypads.
2013-05-14 17:29:58 +02:00
Sebastian Dröge
4fdbf88a65
matroskaparse: Make sure to send a segment event before dataflow
2013-05-14 13:52:18 +02:00
Sebastian Dröge
5c8bb90262
deinterlace: Improve handling of min/max buffer numbers of the buffer pool
2013-05-14 09:45:12 +02:00
Matej Knopp
30c00f4fb7
deinterlace: set caps for buffer pool config
2013-05-14 09:38:24 +02:00
Olivier Crête
4f0fdabf10
multifilesink: Let the base class do get_times
...
This will make sync=TRUE work, the default is still sync=FALSE
2013-05-13 13:34:22 -04:00
Nicolas Dufresne
f67c227878
interleave: Send stream-start before caps event
2013-05-13 15:37:38 +02:00
Nicolas Dufresne
04c9f43567
rtpmux: Send stream-start before caps
2013-05-13 15:37:05 +02:00
Sebastian Dröge
6dee7d3a06
icydemux: Fix sticky event handling
2013-05-13 15:19:25 +02:00
Sebastian Dröge
9ac456bd43
flvmux: Push sticky events in the right order
2013-05-13 15:06:03 +02:00
Sebastian Dröge
0ab23ef5c9
deinterleave: Fix sticky event handling
2013-05-13 14:54:35 +02:00
Sebastian Dröge
c94fbf6206
deinterleave: Code style fixes
2013-05-13 13:55:44 +02:00
Sebastian Dröge
f28ab45f3e
rtpgstpay: First let baseclass handle events, then put them into the stream
...
Fixes handling of sticky events.
https://bugzilla.gnome.org/show_bug.cgi?id=700213
2013-05-13 13:44:35 +02:00
Tim-Philipp Müller
8359b6bff1
multipartdemux: fix example pipeline
...
Need jpegparse.
2013-05-10 14:01:14 +01:00
Nicolas Dufresne
0b737fba0d
shapewipe: Can't map twice the same buffer for writing
...
I took the opportunity to simplify that code a bit. We now use
gst_buffer_make_writable() to make the buffer writable and map twice the
same buffer, with first map being read/write, and second read only. This
get rid of the critical:
GStreamer-CRITICAL **: gst_structure_set_name: assertion `IS_MUTABLE
https://bugzilla.gnome.org/show_bug.cgi?id=700044
2013-05-10 09:27:02 +02:00
Nicolas Dufresne
13a5d0304d
shapewipe: Ensure caps are writable
...
The exist one case where that we endup with original caps in ret, in which
case we are not guaratied to have writable caps. Simply ensure this is the
caps are writable before entering the loop.
https://bugzilla.gnome.org/show_bug.cgi?id=700044
2013-05-10 09:26:07 +02:00
Nicolas Dufresne
59c2f459de
shapewipe: Fix sample pipeline in documentation
...
https://bugzilla.gnome.org/show_bug.cgi?id=700044
2013-05-10 09:26:00 +02:00
Sebastian Dröge
3110b7cc31
Revert "videomixer2: Take into account new segments"
...
This reverts commit 84ae670ab4
.
Actually this is not how it is supposed to work. videomixer
creates a [0,-1] segment and then puts frames of the different
streams there based on their running times in their own segments.
2013-05-09 16:26:19 +02:00
Mathieu Duponchelle
84ae670ab4
videomixer2: Take into account new segments
...
Also forward the event downstream on the next opportunity.
https://bugzilla.gnome.org/show_bug.cgi?id=699793
2013-05-09 16:18:54 +02:00
Tim-Philipp Müller
643450c9b8
Revert "gstrtspsrc: set buffer-size for multicast buffers"
...
This reverts commit 2481e95d03
.
This is already done five lines above, it was added a year
ago in commit 561b131e
.
2013-05-09 09:09:59 +01:00
Nicolas Dufresne
2d53229a86
audiowsinclimit: Frequence property renamed cutoff
...
Updating the documentation to reflect this change.
See: https://bugzilla.gnome.org/show_bug.cgi?id=699964
2013-05-09 08:46:04 +02:00
Aha Unsworth
2481e95d03
gstrtspsrc: set buffer-size for multicast buffers
...
For receiving video data via RTSP when the video is sent via
multicast there is no way to specify the udpsrc buffer-size.
On windows the native network buffer is not large and with video
i-frames being huge the buffer is to small and you get i-frame corruption,
it looks terrible, and there is no (easy) way to set the udpsrc buffer-size.
https://bugs.freedesktop.org/show_bug.cgi?id=52264
2013-05-08 16:57:53 -03:00
Sebastian Dröge
1588cda9a1
videomixer2: Send stream-start before caps event
...
https://bugzilla.gnome.org/show_bug.cgi?id=699895
2013-05-08 16:02:46 +02:00
Thiago Santos
a0e934e72e
qtdemux: push new caps events when caps change
...
Whenever the demuxer has a new caps on a stream, it should set the
new_caps variable to true and a new caps event will be pushed before
the next buffer
2013-05-07 19:29:17 -03:00
Thiago Santos
725faab590
qtdemux: do not push discont buffers if they aren't discont
...
qtdemux takes its buffers from a GstAdapter. Those buffers are created
from the larger buffer that it obtained from upstream and they carry
the same flags, including DISCONT if it is set. In these cases, all
buffers that qtdemux is going to push would be marked as DISCONT.
This scenario can make parsers/decoders flush on every buffer leading
to no decoding at all hapenning. This patch prevents this by unsetting
the flag if it shouldn't be set.
2013-05-07 19:29:17 -03:00
Thiago Santos
4d073beeee
qtdemux: some code cleanup for mss handling code
...
* Explicitly init variables for fragmented formats at init
* Do not use GstClockTime type if the variable isn't a timestamp
* Fix a style/readability issue at an if block
* Group 2 mss mode conditional blocks together to improve readability
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
d1b91c755c
qtdemux: avoid storing non-time newsegments to push later
...
This can confuse downstream when they get a byte segment after receiving
the natural time segment from qtdemux that it sends when starting to
push buffers. This is specially the case with parsers that try to
convert the position from byte to time format and might miss the
correct position for playback to start.
2013-05-07 19:29:17 -03:00
Thiago Santos
895525b5cb
qtdemux: avoid setting fields to non-writable caps
2013-05-07 19:29:17 -03:00
Wim Taymans
544d926732
qtdemux: don't send so many segment events
...
Only send one segment event in the beginning of the stream, not
after each moov and moof atom.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Wim Taymans
d9cd4fcc17
qtdemux: place incomming timestamps on output
...
Place the incomming timestamp (if any) directly onto the outgoing buffers
and interpollate other timestamps.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
cca2f555d1
qtdemux: improve reset of internal status
...
Reset different variables on state changes to ready and when
handling a flush-stop. For handling flush stops we should check
if there is an upstream adaptive demuxer driving the pipeline as this
means that qtdemux will get a new moov atom. For 'standard' isomedia
streams this isn't true and qtdemux should keep the previous moov
information around.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:29:17 -03:00
Thiago Santos
6c69e59677
qtdemux: prepare qtdemux to accept multiple dash moovs in a row
...
Whenever dashdemux switches bitrates it sends a new moov with the
new stream configuration. qtdemux should now handle this by splitting
the exposing and configuration of streams into separate functions. When
the stream is new it is configured and exposed, when it is a new bitrate
of an existing stream it is only reconfigured.
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:25:30 -03:00
Andre Moreira Magalhaes (andrunko)
2a7d3d1598
qtdemux: Move FLUSH_STOP/PAUSED_TO_READY handling to a reset method.
...
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:18:03 -03:00
Louis-Francis Ratté-Boulianne
d499b461da
qtdemux: Remove old pads when exposing streams and other general fixes.
...
Conflicts:
gst/isomp4/qtdemux.c
2013-05-07 19:18:03 -03:00
Thiago Santos
a3c19eeea1
qtdemux: handle mss streams
...
smoothstreaming streams should be handled as a special kind of
fragmented isomedia. In MSS the fragments will not contain a
'moov' atom with the media descriptions, this has to be extracted
from the caps.
Additionally, there should be another demuxer upstream that is likely
going to be the one to answer/act on queries and events, so qtdemux has
to forward those upstream.
2013-05-07 19:18:03 -03:00
Sebastian Rasmussen
9532b04947
rtpgstpay: fix invalid memory access in event handler
...
First process event in payloader, then hand it to the
base class which takes ownership of the event.
https://bugzilla.gnome.org/show_bug.cgi?id=699637
2013-05-04 10:49:23 +01:00
Tim-Philipp Müller
68ac392e8f
ac3parse, dcaparse: check buffer size before trimming
...
and unref old buffer as soon as possible.
2013-05-04 10:08:47 +01:00
Andoni Morales Alastruey
3462282b83
dcaparse: add support for "audio/x-private1-dts"
2013-05-03 13:44:23 +02:00
Andoni Morales Alastruey
4531381541
ac3parse: add support for "audio/x-private1-ac3"
2013-05-03 13:44:23 +02:00
Andoni Morales Alastruey
4a78a77e65
rtp: fix duplicated symbols with libvpx
2013-05-02 14:03:33 +02:00
Andoni Morales Alastruey
584fdbad84
goom2k1: fix duplicated symbols with goom
2013-05-02 14:03:26 +02:00
Sebastian Dröge
ae05ed4f05
rtph264pay: If the adapter is empty on EOS don't try to map its content
...
https://bugzilla.gnome.org/show_bug.cgi?id=699314
2013-05-01 15:49:45 +02:00
Ognyan Tonchev
0584d5c4c9
matroskademux: add stream-format=raw to aac caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=699303
2013-05-01 15:47:15 +02:00
Tim-Philipp Müller
7ccb387e85
udp: log WARNING debug message if UDP multicast is likely to be broken
2013-04-27 11:25:12 +01:00
Tim-Philipp Müller
4273eccace
udpsrc: add includes to get socklen_t defined on Windows
...
https://bugzilla.gnome.org/show_bug.cgi?id=692400
2013-04-27 11:16:54 +01:00
Yury Delendik
4bc06859d1
qtdemux: add support for VP6F VP6 flash codec
...
https://bugzilla.gnome.org/show_bug.cgi?id=699010
2013-04-27 09:39:45 +01:00
Edward Hervey
3e5ad52c0d
monoscope: Fix debug statement
2013-04-26 12:16:49 +02:00
Alexander Schrab
3ec9673dfc
mulawdec: change base class to GstAudioDecoder
...
https://bugzilla.gnome.org/show_bug.cgi?id=698894
2013-04-26 08:46:34 +02:00
Mathieu Duponchelle
6b153ce385
videomixer: send stream-start event.
2013-04-25 16:09:34 -03:00
Wim Taymans
1df2e623b5
docs: add some pay/depayloaders
...
See https://bugzilla.gnome.org/show_bug.cgi?id=551631
2013-04-25 14:05:55 +02:00
Sebastian Dröge
fb0384fa0d
mulaw: Some minor memleak fixes and cleanup
2013-04-25 12:44:15 +02:00
Alexander Schrab
f0edb5fb70
mulawenc: change to gstaudioencoder base, added bitrate tags
2013-04-25 12:36:15 +02:00
Sebastian Dröge
b1af93f791
(multi)udpsink: Use separate sockets for IPv4 and IPv6
...
https://bugzilla.gnome.org/show_bug.cgi?id=534243
2013-04-25 12:12:23 +02:00
Sebastian Dröge
0b552150ce
dynudpsink: Use separate sockets for IPv4 and IPv6
...
https://bugzilla.gnome.org/show_bug.cgi?id=534243
2013-04-25 12:09:27 +02:00
Sebastian Dröge
ed8ea46424
udp: Don't include removed gstudp.h in noinst_HEADERS
2013-04-25 10:43:56 +02:00
Sebastian Dröge
afb284e3a9
udp: Remove unused enum type
2013-04-25 09:16:14 +02:00
Sebastian Dröge
a957457cc1
udp: Use the generic marshaller instead of generating marshallers
2013-04-25 09:13:51 +02:00
Sebastian Dröge
07d3363436
udpsrc: Rename instance variable from host to multi_group
...
This is more consistent as it's used for the multicast-group property.
2013-04-25 09:07:41 +02:00
Sebastian Dröge
427673d283
udpsrc: Add bind-address property
...
This is equivalent to multicast-group currently for backwards compatibility.
In 2.0 this should be handled separately, the former only being the multicast
group and the latter always being the address the socket is bound to, even if
a multicast group is given.
2013-04-25 09:05:12 +02:00
Wim Taymans
5ba3fd3c63
vrawdepay: return output buffer from process
...
Return the output buffer from the process function instead of pushing
it ourselves. This way, the subclass can actually deal with the return
value of the push.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693727
2013-04-24 16:24:25 +02:00
Wim Taymans
eac9efb92e
rtp: a marker bit should translate to RESYNC
...
A marker bit on an audio packet does not mean a DISCONT (in the GStreamer sense
of missing data) but it means that the packet is the end of a talkspurt and thus
a good opportunity to resync to the clock. Use the RESYNC buffer flag to note
this.
Real discontinuities are marked with DISCONT still when the seqnum has a GAP or
when the input buffer has the DISCONT flag set.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=627204
2013-04-24 15:42:45 +02:00
Sebastian Dröge
fdb667ae00
rtpjpegdepay: Drop frame if it's less than 2 bytes large
...
https://bugzilla.gnome.org/show_bug.cgi?id=677560
2013-04-22 10:19:29 +02:00
Sreerenj Balachandran
504360fe36
autodetect: use _plugin_feature_rank_compare API instead of duplicating the code.
2013-04-18 14:00:06 +02:00
Olivier Crête
24bb263d54
videomixer: Don't unref query, we don't own it
...
Fixes double-unref bug. Bug found by Youness Alaoui
2013-04-16 19:29:48 -04:00
Sebastian Dröge
b0b0557c48
gst: Add better support for static plugins
2013-04-15 15:54:11 +02:00
Andoni Morales Alastruey
2ea9a66dd5
goom2k1: fix duplicated symbol with goom
2013-04-15 08:43:05 +02:00
Wim Taymans
9d7519f66e
rtp: register tag image types
...
The rtpgstdepay needs the type to be available in order to deserialize the
event.
2013-04-12 16:18:42 +01:00
Wim Taymans
b1f4587d75
rtpgstdepay: handle event parse failures better
2013-04-12 16:18:42 +01:00
Anton Belka
b959d827be
wavenc: add TOC setter support
2013-04-12 14:35:47 +02:00
Stefan Sauer
f4577ff492
wavenc: small cleanups for toc handling
...
Don't add empty labl/note chunks. Always pass instance as the first param. Add more logging.
2013-04-12 14:35:47 +02:00
Sebastian Dröge
b17750ed9e
rtspsrc: Proxy the ntp-sync property of rtpbin
2013-04-12 12:58:50 +02:00
Sebastian Dröge
53dae1585e
rtspsrc: Give the manager always the name "manager"
...
This allows to use the GstChildProxy interface to adjust
properties on it.
2013-04-12 12:51:05 +02:00
Anton Belka
bda2703e88
wavenc: add 'note' chunk support
2013-04-11 20:47:18 +02:00
Wim Taymans
f8013487c9
rtspsrc: add support for NetClientClock
...
When the server suggests a GstNetTimeProvider in the SDP, set up a
GstNetClientClock that slaves to the remote clock and suggest this clock in
provide_clock.
2013-04-11 15:00:05 +01:00
Wim Taymans
f96aa414e1
udpsink: avoid alloc and free in render function
...
Avoid doing alloc and free in the render function for each buffer. Instead,
allocate the needed arrays in _init and use those.
2013-04-11 14:57:11 +01:00
Stefan Sauer
48b9919e31
waveparse: remove superfluous g_list_first() calls
...
The variables already point to the start of the list.
2013-04-10 14:25:24 +02:00
Andreas Fenkart
20d3ec8810
rtpsbcdepay: fix sbc frame length calculation for mono and stereo modes
...
https://bugzilla.gnome.org/show_bug.cgi?id=697463
2013-04-09 23:17:57 +01:00
Anton Belka
5ae92ce770
wavparse: add 'note' chunk support
...
Add 'note' chunk support in TOC as GST_TAG_COMMENT
https://bugzilla.gnome.org/show_bug.cgi?id=696549
2013-04-09 22:58:27 +02:00
David Schleef
a55ccff854
qtdemux: check value inside enda to set endianness
2013-04-09 13:30:17 -07:00
Wim Taymans
ece73b786a
icydemux: avoid copy when we can
2013-04-09 17:34:12 +02:00
Wim Taymans
91a3afc4dc
gstpay: use bufferlist to avoid memcpy
2013-04-09 16:53:31 +02:00
Wim Taymans
3d7d757521
udpsink: improve debug
2013-04-09 16:53:31 +02:00
Alexander Schrab
79d5a7d03c
wavparse: error out if we receive eos before any valid data
...
https://bugzilla.gnome.org/show_bug.cgi?id=696684
2013-04-09 00:27:31 +01:00
Matej Knopp
67c2219687
deinterlace: force deinterlacing in "interlaced" mode
...
https://bugzilla.gnome.org/show_bug.cgi?id=697467
2013-04-07 20:48:21 +01:00
Nicola Murino
c41c16424d
rtpsbcdepay: fix printf format compiler warnings
...
https://bugzilla.gnome.org/show_bug.cgi?id=697343
2013-04-05 13:50:19 +01:00
Stefan Sauer
b79f667ef4
level: resync on discont
...
Drop pending data on discont and start a new cycle with a new base timestamp.
Cleanup some variables.
2013-04-04 22:49:49 +02:00
Olivier Crête
f8831c0cd2
rtpsbcdepay: Rank as secondary
...
This way, it will be selected by decodebin
Bug reported by andreas.fenkart@streamunlimited.com
https://bugzilla.gnome.org/show_bug.cgi?id=697227
2013-04-03 18:25:36 -04:00
Stefan Sauer
2e56032031
level: subdivide buffers for sample accurate interval handling
...
Previously we would skip level message when processing buffers > the requested
interval. Also the message frequency would contain quite some jitter due to only
considering them at the end of buffers.
Cleanup the tests while we're at it.
2013-04-03 21:40:17 +02:00
Stefan Sauer
b062171dda
spectrum: remove old since comment
2013-04-03 20:30:08 +02:00
Sebastian Dröge
d80ff8e7f3
rtspsrc: Proxy the multicast-iface property of udpsrc
2013-04-03 17:53:13 +02:00
Olivier Crête
6f3734c305
rtpssrcdemux: Only forward stick events while holding the sinkpad stream lock
...
Otherwise we get a race where if the RTCP packet comes in first and while
it is added the pads, the segment event arrives on the RTP stream, the event
may be lost completely and never forwarded.
2013-04-02 23:42:42 -04:00
Olivier Crête
76679f9ae9
rtpssrcdemux: No need to explicitely forward the caps
...
They are forwarded with the other events
2013-04-02 23:42:41 -04:00
Olivier Crête
4ad8693f3c
rtpssrcdemux: Remove unused GstSegment
2013-04-02 23:42:41 -04:00
Olivier Crête
7293b0eff7
rtpssrcdemux: Simplify event forwarding
...
Use the gst_pad_forward() mechanic, this way we won't miss pads that are
added while we are pushing
2013-04-02 23:42:41 -04:00
Olivier Crête
f4c3aef13a
rtpssrcdemux: Don't cross the internal links
...
We had the wrong condition to check for the internal links, so RTP and RTCP
pads got crossed!
2013-04-02 23:42:41 -04:00
Tim-Philipp Müller
078ff16abe
matroskademux: fix some debug messages
2013-04-03 00:49:37 +01:00
Arnaud Vrac
00b46b4744
matroskademux: handle TrueHD audio codec id
...
https://bugzilla.gnome.org/show_bug.cgi?id=697113
2013-04-02 22:47:54 +01:00
Wim Taymans
ac2bcfa833
theorapay: add delta-unit to output frames
2013-03-31 19:14:04 +02:00
Matej Knopp
5686512b77
qtmux: use timestamp delta as duration if possible
...
https://bugzilla.gnome.org/show_bug.cgi?id=696437
2013-03-30 15:18:45 -07:00
Josep Torra
509631f60b
rtp: fixes debug message printf related compiler warnings in SBC depayloader
2013-03-30 09:44:41 +01:00
Arun Raghavan
87bdad4bfc
rtp: Add an rtpsbcdepay element
...
Pretty straightforward - takes SBC encapsulated in RTP, depayloads, and
pushes out SBC buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-03-28 17:22:33 +00:00
Tim-Philipp Müller
477cc51fe7
rtp: fix SBC payloader
...
Init RTP buffer on stack correctly, so mapping it works
without criticals and the payloader actually works.
2013-03-27 22:18:34 +00:00
David Schleef
53f8b05b08
Use %03u for format in gst_pad_create_stream_id_printf()
2013-03-25 18:57:08 -07:00
Sebastian Dröge
56062768af
capssetter: Prevent unneeded caps copying and allocation
2013-03-25 10:12:03 +01:00
Dirk Van Haerenborgh
766c5b22ed
capssetter: Pass any or filter caps upstream
...
capsetter accepts anything and just forwards different caps,
as such it should return ANY caps on the sinkpad.
https://bugzilla.gnome.org/show_bug.cgi?id=693005
2013-03-25 10:11:32 +01:00
Tim-Philipp Müller
35769f7c5d
wavparse: expose CUE sheet items as tracks not chapter entries in TOC
...
https://bugzilla.gnome.org/show_bug.cgi?id=677306
2013-03-24 17:55:55 +00:00
Tim-Philipp Müller
163a7afa1a
wavenc: add some example pipelines
2013-03-23 12:59:26 +00:00
Anton Belka
e808173483
wavenc: add TOC support
...
https://bugzilla.gnome.org/show_bug.cgi?id=680998
2013-03-23 12:55:08 +00:00
Matej Knopp
f29e62c131
qtdemux: make empty subtitle buffer recognition more robust
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-23 11:24:23 +00:00
David Schleef
c0443a17c4
qtmux: Fix test regression with one buffer streams
2013-03-22 15:14:15 -07:00
David Schleef
5bd2864101
qtdemux: split large raw audio samples
...
In order to deal with a file that has samples that are 24 seconds
long. Seeking still doesn't work with such files.
2013-03-22 14:14:05 -07:00
David Schleef
364433c105
qtmux: Remove documentation for dts-method
2013-03-22 14:14:04 -07:00
David Schleef
6571e388be
qtmux: deprecate dts-method property
2013-03-22 14:14:04 -07:00
David Schleef
ee56a7cb99
qtmux: Fix problems causing bad durations in file
...
- Fix up out-of-order incoming DTS values.
- Fix duration of initial sample.
2013-03-22 14:14:04 -07:00
David Schleef
816e186029
qtmux: fix all timestamps once first_ts is determined
2013-03-22 14:14:04 -07:00
David Schleef
258c40c6dd
qtmux: Use PTS/DTS from incoming buffers
...
Remove old DTS guessing code.
2013-03-22 14:14:04 -07:00
Nicola Murino
709f05234f
qtmux: expose mulaw caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=696052
2013-03-22 20:08:06 +00:00
Rodolfo Schulz de Lima
874808fd2c
qtdemux: fix sample leak when processing private qt tags
...
https://bugzilla.gnome.org/show_bug.cgi?id=696355
2013-03-22 08:47:17 +00:00
Matej Knopp
d8ac666137
qtmux: set stream language code from tag
...
https://bugzilla.gnome.org/show_bug.cgi?id=696358
2013-03-22 08:40:26 +00:00
Matej Knopp
49d9050e9a
qtdemux: send GAP events for subtitle streams
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-21 10:03:37 +00:00
Matej Knopp
516a0b8acb
qtdemux: ignore empty subtitle buffers
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-21 10:03:34 +00:00
Matej Knopp
f494635126
qtdemux: recognize SBTL subtype for subtitles
...
https://bugzilla.gnome.org/show_bug.cgi?id=696244
2013-03-21 10:03:14 +00:00
Anton Belka
0f97b6f978
flacparse: add support for the toc-select event
...
Select tracks from the CUE sheet by sending a toc-select
event based on the uid in the TOC.
https://bugzilla.gnome.org/show_bug.cgi?id=540891
2013-03-21 00:38:48 +00:00
Michael Smith
b85c5f236b
mp4mux: in faststart mode, don't output up to 4 kB of garbage at the end.
2013-03-19 18:09:31 -07:00
Tim-Philipp Müller
5240b7453c
sbcparse: pack multiple frames into one output buffer
...
Don't output a single buffer for every tiny SBC frame
2013-03-20 00:35:17 +00:00
Kishore Arepalli
288e05c99d
deinterlace: fix infinite loop on EOS with non-default methods or fields
...
Fixes problem of infinite loop in gst_deinterlace_reset_history.
Last field in the history was never deinterlaced because idx becomes negative.
Happens e.g. with method=scalerbob fields=bottom or
method=greedyl fields=top
https://bugzilla.gnome.org/show_bug.cgi?id=695644
https://bugzilla.gnome.org/show_bug.cgi?id=693173
2013-03-17 14:47:26 +00:00
Tim-Philipp Müller
dfde4179e8
avimux: change raw video caps order so that GRAY8 is last
...
People like colours.
https://bugzilla.gnome.org/show_bug.cgi?id=695543
2013-03-12 00:16:18 +00:00
Ognyan Tonchev
3f8ad30cee
rtph264pay: Don't use upstream caps with peer_query_caps ()
...
Calling gst_pad_peer_query_caps () on the src pad with the caps
upstream can produce as a filter from gst_rtp_h264_pay_getcaps ()
is wrong and makes caps negotiation fail if upstream caps are not
NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=695629
2013-03-11 16:55:13 -04:00
Dirk Van Haerenborgh
065bdf5925
avimux: support raw BGR
...
https://bugzilla.gnome.org/show_bug.cgi?id=695543
2013-03-11 14:51:00 +01:00
Dirk Van Haerenborgh
d7743cf7c6
avidemux: support raw video with negative height
...
https://bugzilla.gnome.org/show_bug.cgi?id=695541
2013-03-11 14:23:46 +01:00
Tim-Philipp Müller
694dbcc5a0
dtmf: move dtmf plugin from -bad to -good
...
https://bugzilla.gnome.org/show_bug.cgi?id=687416
2013-03-09 01:18:30 +00:00
Tim-Philipp Müller
a4c5aa38ec
Merge branch 'dtmf-moved-from-bad'
...
https://bugzilla.gnome.org/show_bug.cgi?id=687416
2013-03-09 00:30:38 +00:00
Sebastian Dröge
539126c097
matroska: Include config.h, it's needed for _stdint.h
2013-03-03 11:59:31 +01:00
Sebastian Dröge
1810786083
flacparse: Fix (wrong) use of uninitialized variable compiler warning
2013-03-03 11:53:04 +01:00
Tim-Philipp Müller
677bfecc6f
qtdemux: add variant field to H.263 caps
...
avdec_h263 won't get plugged otherwise.
2013-03-02 13:59:52 +00:00
Arnaud Vrac
1cff6427f1
qtdemux: skip disabled tracks
...
ISO/IEC 14496-12 specifies disabled tracks should be completely
ignored, so just do it.
Avoids deadlock during prerolling for some files.
Also prevents 'chapter' subtitle tracks from showing up.
https://bugzilla.gnome.org/show_bug.cgi?id=693993
https://bugzilla.gnome.org/show_bug.cgi?id=628790
2013-03-02 13:54:23 +00:00
Stefan Sauer
15a81baea5
spectrum: remove the since doc-comment from 0.10
2013-02-28 09:43:12 +01:00
Stefan Sauer
b62cb3edcd
level: add a "post-messages" property and deprecate "message"
...
In spectrum this was changed from 0.10 to 1.0, lets do this here too.
2013-02-28 09:43:12 +01:00
Olivier Crête
df5ca83baf
rtpmp4gdepay: streamtype is not put by all RTSP server, not make it optional
...
Specific case here is Wowza 3.5.0
2013-02-26 14:19:10 -05:00
Thomas Vander Stichele
df8f5f2f83
level: put back deprecation warnings
2013-02-25 00:35:58 +01:00
Thomas Vander Stichele
52b7aab711
level: send last message on EOS
2013-02-25 00:19:22 +01:00
Mark Nauwelaerts
56e2767c20
avidemux: push mode: handle some more 0-size buffer cases
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684944
2013-02-24 19:28:07 +01:00
Tim-Philipp Müller
8004ae0369
matroskamux: fix up example pipeline in docs
2013-02-23 18:50:52 +00:00
Paul HENRYS
10802cae73
rtpsession: Fix wrong code organisation in case of collision
...
change_ssrc field of RTPSession should be set before calling
rtp_session_schedule_bye_locked () as this function will call reconsider function
that will wake up rtcp_thread which will call rtp_session_on_timeout () that will
check change_ssrc to change the ssrc.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=694184
2013-02-22 09:28:07 +02:00
Jean-François Fortin Tam
f5cb19e287
alpha: improve descriptions of chroma keying-related properties and enums
...
https://bugzilla.gnome.org/show_bug.cgi?id=694374
2013-02-22 00:09:56 +00:00
Youness Alaoui
a65fd146f8
alpha: Do not override the method with custom r/g/b values
...
Depending on the order g_object_set() calls aare made, the
target r/g/b settings will override the method if set to
green/blue. Change that so we do not use the target-r/g/b values
unless the method is set to custom.
https://bugzilla.gnome.org/show_bug.cgi?id=694374
2013-02-22 00:04:51 +00:00
Ognyan Tonchev
42d8b96f2d
auparse: do not leak src_caps
...
https://bugzilla.gnome.org/show_bug.cgi?id=694275
2013-02-21 19:31:59 +00:00
Wim Taymans
a61055809f
rtpsession: only delay RTCP when we are a sender
...
Only delay the RTCP thread when we are a sender, which we can know because we
have a send_rtp_src pad. Otherwise we might delay the RTCP thread if we
are only a receiver and then there is no code path that wakes up the
RTCP thread and we end up without RTCP packets.
2013-02-20 21:07:41 +02:00
Tim-Philipp Müller
5b19be933b
qtdemux: fix up dodgy code that tries to fix up a broken moov atom
...
After gst_buffer_new_and_alloc() gst_buffer_copy_into() will likely
append to the already-existing memory instead of filling it.
2013-02-18 20:04:05 +00:00
Tim-Philipp Müller
34b81f7c93
qtdemux: fix potential crash on short MOOV atom
...
Don't unmap short MOOV atom buffer twice, which happened
in the case where we don't fix up the MOOV atom.
Fixes crashes when thumbnailing partial mp4 file where
the MOOV atom is still incomplete.
https://bugzilla.gnome.org/show_bug.cgi?id=694010
2013-02-18 16:35:08 +00:00
Stefan Sauer
99f84b8c4c
audiopanorama: remove channel-mask from caps
...
The channel-mask is only needed for channels>2 which we don't do.
2013-02-15 21:30:15 +01:00
Tim-Philipp Müller
01c6512d5f
udpsrc: use g_socket_set_option() to set buffer size with newer GLib versions
...
So we have to worry less about portability.
https://bugzilla.gnome.org/show_bug.cgi?id=692400
2013-02-15 14:11:36 +00:00
Sebastian Dröge
a7ddbc03fe
rtp-payloading: Fix unit test caps and AMR depayloader sink template caps
...
Fields were missing from the actual caps, or too many fields
existed in the template caps.
2013-02-13 12:02:46 +01:00
Michael Smith
e3430b0d07
qtdemux: extract codec_data for ProRes
2013-02-12 13:19:53 -08:00
Tim 'mithro' Ansell
c499a81848
avimux: Fixing buffer leak in gst_avi_mux_do_buffer
...
gst_avi_mux_do_buffer was leaking data from gst_collect_pads_pop.
2013-02-12 10:09:05 +01:00
Mark Nauwelaerts
bf81dce432
avidemux: correct duration for audio VBR buffers in pull mode
2013-02-10 15:10:32 +01:00
Mark Nauwelaerts
f0645b79c5
avidemux: proper position reporting and push mode timestamping
...
... and align current_total semantics in push and pull mode,
which tracks bytes for CBR and blocks for VBR.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691481
2013-02-08 21:41:55 +01:00
Wim Taymans
2d5319c1fa
rtpsession: delay RTCP until first RTP packet
...
Delay sending the first RTCP packet until we have sent the first RTP packet.
Otherwise we will send out a Receiver Report instead of a sender report.
See https://bugzilla.gnome.org/show_bug.cgi?id=691400
2013-02-08 17:05:27 +01:00
Wim Taymans
2971ed44ee
rtpsession: remove dead code
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=668355
2013-02-07 15:06:40 +01:00
Paul HENRYS
0e91c949d8
rtpptdemux: forward sticky events and then set caps
...
When a new src pad is added, first forward the sticky events and then
set the caps on the src pad
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692786
2013-02-07 14:38:20 +01:00
Markovtsev Vadim
7cebe2fc41
rtpjitterbuffer: improve debug output
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688935
2013-02-07 14:32:26 +01:00
Wim Taymans
978cc9f538
rtpbin: rework cleanup of streams
...
Move the work of cleaning up the client streams in the free_stream
function. This allows us to properly clean up the client streams when we
remove an RTP stream as well.
Based on patch by Sujay <sdatar@cisco.com>
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660156
2013-02-07 13:02:34 +01:00
Tim 'mithro' Ansell
3a5d17e852
videomixer2: avoid caps leak
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693307
2013-02-07 11:40:35 +01:00
Wim Taymans
c3077012c0
jitterbuffer: do skew estimation only for new timestamps
...
Only run the skew estimation code when we have a new RTP timestamp. If we have
the same RTP timestamp, we simply use the previous estimation. This works
because the new observation with the same RTP timestamp has to have a bigger
receiver time and is thus not going to influence the estimation except for
causing more jitter.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=640023
2013-02-06 17:15:11 +01:00
Wim Taymans
640de61740
rtspsrc: only EOS when our source sends BYE
...
Only EOS when we receive a BYE event from the SSRC of our stream.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675453
2013-02-06 14:01:16 +01:00
Wim Taymans
0540492ab2
rtspsrc: save the stream SSRC
...
Conflicts:
gst/rtsp/gstrtspsrc.c
2013-02-06 14:00:56 +01:00
Wim Taymans
c8fb1c720c
rtspsrc: flush connection when stopping
...
When we stop, we can flush all pending commands so that we can stop and
join the task.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684924
2013-02-06 13:18:18 +01:00
Stefan Sauer
96f8775a0d
spectrum: remove outdates readme
...
Lets remove the readme from pre-0.1.0 that is completely irrelevant now.
2013-02-05 22:02:13 +01:00
Stefan Sauer
86ae581928
audiopanorama: add more debug logging
2013-02-05 18:51:27 +01:00
Rico Tzschichholz
682e49a752
audioparsers: fix typo in noinst_headers
2013-02-04 18:38:41 +00:00
Stefan Sauer
1f1fe47cb6
audiopanorama: further port to 1.0
...
Transformcaps is not called with caps containing single structures anymore. Also add missing filter handling. Still does not negotiate though.
2013-02-04 11:08:23 +01:00
Stefan Sauer
d187b96ee2
audiopanorama: fix caps
...
We don't turn float into 32bit pcm. Looks like a typo from updating the caps.
2013-02-03 22:45:52 +01:00
Olivier Crête
fe3e535853
level: Add missing coma between formats
2013-02-03 13:14:50 +01:00
Matthew Waters
b9151a9c28
videomixer: fix eos timestamp check
...
fixes hang in videotestsrc num-buffers=20 ! videomixer ! fakesink
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692935
2013-01-31 16:45:38 +01:00
Dirk Van Haerenborgh
18ff57d6b3
avimux: add support for raw monochrome 8-bit video
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692932
2013-01-31 13:00:17 +01:00
Wim Taymans
747447d298
rtpsession: avoid '...is used uninitialized'
2013-01-29 10:32:51 +01:00
Youness Alaoui
f6a00ad6e9
qtdemux: set interleaved layout correctly for LPCM audio
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:44:01 +00:00
Youness Alaoui
a76524ea08
qtdemux: add support for LPCM fourcc (uncompressed audio in Quicktime7)
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:57 +00:00
Youness Alaoui
69b814546a
qtdemux: print all debug for sound sample description v2
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:49 +00:00
Youness Alaoui
92ff8a9b09
qtdemux: sound sample description v2 doesn't override samples_per_packet
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:42 +00:00
Youness Alaoui
ee3d9cbd98
qtdemux: pass stsd data to qtdemux_audio_caps()
...
We will need that later for LPCM format support. Disable
QDM2 parsing of stsd data which dead code before as well
because data was always NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:38 +00:00
Youness Alaoui
6d3ff78575
qtdemux: add len check for sound sample descriptions v1 and v2
...
https://bugzilla.gnome.org/show_bug.cgi?id=663458
2013-01-28 23:43:28 +00:00
Tim-Philipp Müller
629772f735
rtpmanager: use C89-style comments
2013-01-28 23:07:34 +00:00
Olivier Crête
451217c437
gstrtpsession: Fix double-declared variable
2013-01-28 18:06:15 -05:00
Olivier Crête
7300d489fe
rtp: Fix compilation errors in previous patches
2013-01-28 17:58:20 -05:00
Haakon Sporsheim
86c13ceae6
rtpsession: Ensure MT safe event handling and plug event leak.
...
https://bugzilla.gnome.org/show_bug.cgi?id=667826
2013-01-28 17:44:31 -05:00
Idar Tollefsen
268c998a32
rtpsession: mt-safe event-push
...
By taking a ref of the sink-pad under lock, it won't dissappear
while the push is taking place
https://bugzilla.gnome.org/show_bug.cgi?id=667816
2013-01-28 17:34:50 -05:00
Pascal Buhler
f459fe2673
rtpssrcdemux: Safely push on pads that might be removed due to a RTCP BYE
...
https://bugzilla.gnome.org/show_bug.cgi?id=667815
2013-01-28 17:01:27 -05:00
Tim-Philipp Müller
721dd1ab26
sbcparse: init some variables to avoid bogus compiler warnings
2013-01-28 11:58:50 +00:00
Wim Taymans
4397c8ffbf
rtpdepay: remove payload type restrictions
...
Remove the pt restrictions for all the depayloaders that have an
encoding-name. We can use this to autoplug decoders.
Remove the encoding-name for all the payloaders with a fixed payload
type.
We now either have an encoding-name or a pt in the sinkpad caps of
a depayloader.
See https://bugzilla.gnome.org/show_bug.cgi?id=639292
2013-01-28 12:41:04 +01:00
Marc Leeman
bab2f3c92b
rtp: remove payload requirements from selected depayloaders
...
encoding name is required in the caps and is a better fit for autoplugging than
the pt value. Hardware manufacturers have a bad habit of skimming through RFCs
and in this case; use unassigned numbers for encoders instead of dynamic
numbers.
In essence, this patch will add support for a lot of Bosch hardware encoders
without breaking autoplugging.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639292
2013-01-28 12:23:41 +01:00
Mark Nauwelaerts
a1a579afeb
qtdemux: push mode: only parse moov 1 once
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691570
2013-01-27 12:54:20 +01:00
Tim-Philipp Müller
47fccbe635
rtpdtmfsrc: fix compiler warning
...
gstrtpdtmfsrc.c: In function 'gst_dtmf_src_prepare_message.isra.1':
gstrtpdtmfsrc.c:669:3: error: 's' may be used uninitialized in this function
2013-01-26 22:58:29 +00:00
Olivier Crête
db5c3f4048
rtpdtmfdepay: Fix missing work in doc
2013-01-25 21:06:05 -05:00
Olivier Crête
92f9a9d9ff
rtpdtmfsrc: Post the messages after the clock wait
...
This way, the messages will be closer in time to when the packets are sent out
2013-01-25 20:45:43 -05:00
Olivier Crête
0d316b4f43
rtpdtmfsrc: Only set the duration when starting to send
...
The duration depends on the clock rate, which could change due to renegotiation
2013-01-25 20:45:43 -05:00
Olivier Crête
90497aa3cd
rtpdtmfsrc: remove "ssrc" from caps
...
ssrc is uint and we don't have a uint range type
2013-01-25 20:45:43 -05:00
Tim-Philipp Müller
d62019fff2
qtmux: set language to 'undefined' instead of English by default
2013-01-24 21:08:51 +00:00
Mark Nauwelaerts
0777a600e3
audioparsers: sbc: fix bogus compiler warning
...
gst-plugins-good/gst/audioparsers/gstsbcparse.c: In function 'gst_sbc_parse_handle_frame':
gst-plugins-good/gst/audioparsers/gstsbcparse.c:210:32: error: 'ch_mode' may be used uninitialized i
2013-01-22 19:26:09 +01:00
Thijs Vermeir
16128f0234
autoparsers: use appropriate printf format for gsize
2013-01-16 14:32:56 +01:00
Tim-Philipp Müller
9455a3aee1
rtpsbcpay: update some fields in the caps to their new name
...
and to match the parser. "mode" got renamed to "channel-mode"
and "allocation" to "allocation-method".
2013-01-16 10:19:36 +00:00
Tim-Philipp Müller
9f7a949773
audioparsers: add SBC audio parser
...
From-scratch rewrite, the bluez one was useless and broken.
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-01-15 17:45:30 +00:00
Tim-Philipp Müller
39ef892938
rtp: import rtpsbcpay from bluez and port to 1.0
...
Compiles, but not tested yet (sbc elements still need to be ported).
https://bugzilla.gnome.org/show_bug.cgi?id=690582
2013-01-10 12:43:50 +00:00
Olivier Crête
c6dea5d09c
dtmf/spandsp: Move dtmfdetect to use libspandsp
...
Remove our copy of the tone_detect.c file and use the original
from libspandsp. Also move the element to the spandsp plugin.
2013-01-09 20:05:16 -05:00
Marcel Holtmann
4196feb659
rtpsbcpay: Remove workaround for compiler warnings
2013-01-10 00:18:03 +00:00
Marcel Holtmann
fe79c60d74
rtpsbcpay: Add pragma based workaround for GStreamer warnings
2013-01-10 00:18:03 +00:00
Marcel Holtmann
08e95e7249
rtpsbcpay: Update copyright information
2013-01-10 00:15:36 +00:00
Marcel Holtmann
7fa03c0076
rtpsbcpay: Fix signed/unsigned comparison issue within GStreamer plugin
2013-01-10 00:15:35 +00:00
Marcel Holtmann
27a6b0abfe
rtpsbcpay: Update copyright information
2013-01-10 00:15:35 +00:00
Marcel Holtmann
f890079aae
rtpsbcpay: First attempt in fixing compiler warnings (still needs cleanup)
2013-01-10 00:15:35 +00:00
Johan Hedberg
7d4f846112
rtpsbcpay: More coding style fixes
2013-01-10 00:15:35 +00:00
Luiz Augusto von Dentz
151ad9b28d
rtpsbcpay: Remove possible extra memcpy for gstreamer plugin.
2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz
69c8374b7c
rtpsbcpay: Fix bug sending empty packages and remove a buffer copy.
2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz
7b3e4356ea
rtpsbcpay: Fix runtime warnings of gstreamer plugin.
2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz
f74f061f3b
rtpsbcpay: Update gstreamer plugin to use new sbc API.
2013-01-10 00:13:14 +00:00
Marcel Holtmann
b9be04f07b
rtpsbcpay: Update copyright information
2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz
687400ecf4
rtpsbcpay: Fixes gstreamer caps and code cleanup.
2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz
a4f9624261
rtpsbcpay: Fix gtreamer payloader sending fragmented frames.
2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz
41e2f4f544
rtpsbcpay: Fix use of gstreamer plugin with rhythmbox and banshee and rtp timestamps.
2013-01-10 00:13:14 +00:00
Luiz Augusto von Dentz
96971cd323
rtpsbcpay: Make a2dpsink to act like a bin and split the payloader.
2013-01-10 00:13:14 +00:00
Wim Taymans
72402cc649
rtp: small improvements
2013-01-08 16:27:42 +01:00
Wim Taymans
af055d9574
jitterbuffer: refactor handle sync code
...
Move the code that combines the last SR packet and the current jitterbuffer sync
values into a sync structure, into its own function. We want to reuse this bit
later.
2013-01-07 15:50:33 +01:00
Wim Taymans
87f7d6b9bf
rtp: include downstream latency in SR calculations
...
When we make a mapping between an RTP timestamp and an NTP timestamp, include
the downstream latency applied to the sinks. This makes it possible to have
both sinks run with different latencies and still have correct sync on the
client. It also is more correct because the RTP timestamp in the SR report will
actually correspond more closely to the NTP time it was sent on the server.
For pipelines with high latency on the sender side, this actually allows a
GStreamer receiver to perform synchronisation instead of dropping the RTCP
packets.
2013-01-07 15:45:10 +01:00
Wim Taymans
c631ed3300
rtpsession: don't cast event functions
...
There is no need to cast the event functions and only causes problems later when
we change the signature later and things silently compiles wrong code.
2013-01-07 14:25:14 +01:00
Wim Taymans
8dcde8b3ea
rtp: more debug
2013-01-07 14:23:34 +01:00
Wim Taymans
6b7d05ac57
rtpsession: improve debug
2013-01-07 14:22:48 +01:00
Tim-Philipp Müller
cf1f6aff0d
udpsrc: sanity check size of available packet data for reading to avoid memory waste
...
On Windows and OS/X, _get_available_bytes() may not return the size
of the next pending packet, but the size of all pending packets in
the kernel-side buffer, which might be rather large depending on
configuration. Sanity-check the size returned by _get_available_bytes()
to make sure we never allocate more memory than the max. size for
a packet, if it's an IPv4 socket.
https://bugzilla.gnome.org/show_bug.cgi?id=610364
2013-01-04 14:00:55 +00:00
Tim-Philipp Müller
95a37196b3
rtspsrc: add "proxy-id" and "proxy-pw" properties
...
to match souphttpsrc. user/password passed via the URI
will still take precedence though.
https://bugzilla.gnome.org/show_bug.cgi?id=395427
2012-12-31 00:22:27 +00:00
Wim Taymans
8cfec6a88d
rtspsrc: fix cmd comparison
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690476
2012-12-20 17:12:30 +01:00