Tim-Philipp Müller
f4db7443ae
rtpvp8pay: couple of minor optimisations
...
Pre-allocate buffer list of the right size to avoid re-allocs.
Avoid plenty of double runtime cast checks and re-doing the
same calculation over and over again in rtp_vp8_calc_payload_len().
Only call gst_buffer_get_size() once.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
6c9e2194d2
rtpgstpay: pre-allocate buffer list of the right size
...
To avoid re-allocs.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
01ee993d8d
rtph264pay: pre-allocate bufferlist of the right size
...
To avoid unnecessary re-allocs.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
c7c72c00b1
rtph264pay: push single buffer directly, no need to wrap it in a bufferlist
...
No point in a buffer list if we just have one single
buffer to push. Fix up unit test to handle that case
as well.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
0f5da64de3
rtpvrawpay: make chunks per frame configurable
...
Bit of a misnomer because it's really chunks per field
and not per frame, but we're going to ignore that for
the time being.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
2cf13b603f
rtpvrawpay: remove unused variables
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
a09e237b85
rtpvrawpay: pre-allocate buffer lists of sufficient size
...
Avoids unnecessary reallocs when appending buffers
to the bufferlist.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
15a33ccc65
rtpvrawpay: micro-optimise variable access in inner loop
...
Store some values that don't change during the execution
of the inner loops locally, so the compiler knows that too.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
fdf95fecbd
rtpvrawpay: use buffer lists
...
Collect buffers to send out in buffer lists instead of
pushing out single buffers one at a time. For HD video
each frame might easily add up to a couple of thousand
packets, multiply that by the frame rate and that's a
lot of push() and sendmsg() calls per second.
A good reason to push out buffers as early as possible is
latency, so we don't accumulate the whole frame in a single
buffer list, but instead push it out in a few chunks, which
is hopefully a reasonable compromise.
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
884d1af074
udp: improve element descriptions for dynudpsink and multiudpsink
2014-06-18 14:54:58 +01:00
Tim-Philipp Müller
6c1231eed3
udp: remove suppression of compiler warnings for deprecated GLib API
...
Not needed any more.
2014-06-18 14:54:58 +01:00
Ravi Kiran K N
3c4c130c5e
videobox: Fix caps negotiation issue
...
Make sure that if AYUV is received it will detect that it can produce
both RGB and YUV formats
Signed-off-by: Ravi Kiran K N <ravi.kiran@samsung.com>
https://bugzilla.gnome.org/show_bug.cgi?id=725248
2014-06-17 09:27:45 -03:00
Tim-Philipp Müller
054f774455
rtptheoradepay: fix double frees
...
Fix double-frees introduced to fix another coverity report.
CID 1223053
2014-06-16 12:03:38 +01:00
Tim-Philipp Müller
bb51ec5842
dynudpsink: return FLUSHING when sendto got canceled, not an error
2014-06-13 10:12:07 +01:00
Vincent Penquerc'h
25c26a4c4c
rtptheordepay: fix leaks
...
Coverity 1212163
2014-06-12 11:24:15 +01:00
Vincent Penquerc'h
8e80478cf7
rtpg729pay: leak fixes
...
Coverity 1212159
2014-06-12 11:16:08 +01:00
Vincent Penquerc'h
fe4c5b92b1
rtph263pay: fix leak
...
Coverity 1212157
2014-06-12 11:11:38 +01:00
Vincent Penquerc'h
6ef26e4a8a
rtph263pay: fix leaks
...
Coverity 1212149
2014-06-12 10:43:53 +01:00
Vincent Penquerc'h
c58a2d9bbb
rtpdvpay: catch failures to map buffer
...
Coverity 1139741
2014-06-12 10:31:47 +01:00
Vincent Penquerc'h
7e278e6b22
multipartdemux: guard against having no MIME type
...
The code would previously crash trying to insert a NULL string
into a hash table.
It does seem a little broken that indexing is done by MIME type
and not by index though, unless the spec says there cannot be
two parts with the same MIME type.
https://bugzilla.gnome.org/show_bug.cgi?id=659573
2014-06-11 17:44:56 +01:00
Nicolas Dufresne
9966fdfa75
multipartdemux: Send stream-start event
...
This event was not sent. Send it before caps, this requires the pad to
be parented. This removes warning like: "Got data flow before
stream-start event".
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=731475
2014-06-10 15:43:21 -04:00
Thiago Santos
9fda7b107f
qtdemux: avoid looping indefinitely in broken svq3 files
...
Abort if an atom with size 0 is read from within the svq3 stsd
atoms
https://bugzilla.gnome.org/show_bug.cgi?id=726512
2014-06-10 15:33:33 -03:00
Edward Hervey
f7fc8d74c9
flvdemux: Attempt upstream seek first
...
If we have an upstream element that can handle the seek (such as
rtmpsrc), try to do that first before attempting it ourself.
2014-06-09 10:04:38 +02:00
Vincent Penquerc'h
40ae581ef2
wavparse: do not include codec_data on raw audio caps
...
If the wav header contains an extended chunk, we want to keep
the codec_data field, but not for raw audio.
This fixes some elements (such as adder) from failing to intersect
raw audio caps which would otherwise be intersectable.
2014-06-05 10:34:49 +01:00
Edward Hervey
2b9493b5f0
flvdemux: Query duration upstream first
...
Upstream elements (like rtmpsrc) might be able to provide the duration
more accurately than flvdemux. Especially with index-less vod files
2014-06-05 09:38:29 +02:00
Jan Alexander Steffens (heftig)
303883752e
flvdemux: set RESYNC buffer flag when bridging large PTS gaps
...
So downstream gets notified when this happens.
https://bugzilla.gnome.org/show_bug.cgi?id=725903
2014-06-04 10:28:47 -04:00
Tim-Philipp Müller
341b691b18
matroskademux: don't leak doctype string in error code path
...
CID 1212145.
2014-06-02 09:57:42 +02:00
Thiago Santos
c25d94b7ef
qtdemux: upstream handles seek if fragmented and on time segment
...
Otherwise we can reject seeks on local files that contain fragmented-like
atoms like 'mvex'. Also improve a message log
https://bugzilla.gnome.org/show_bug.cgi?id=730722
2014-05-30 15:01:50 -03:00
Wim Taymans
a5a7649831
h264depay: make sure we call handle_nal for each NAL
...
Call handle_nal for each NAL in the STAP-A RTP packet. This makes
sure we correctly extract the SPS and PPS.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730999
2014-05-30 16:51:37 +02:00
Thiago Santos
fd6b348898
avidemux: remove stream last flow return
...
GstPad already stores that information
https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:51:13 -03:00
Thiago Santos
2b454bf87f
qtdemux: remove last flow return from stream struct
...
It is already stored on GstPad on core
https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:51:12 -03:00
Thiago Santos
3b887887be
flvdemux: Use GstFlowCombiner
...
Use the flow combiner to have the standard combination results and avoid
repeating the same code
https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:51:07 -03:00
Thiago Santos
c7c25071e3
matroskademux: use GstFlowCombiner
...
Use the flow combiner to have the standard combination results and avoid
repeating the same code
https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:51:02 -03:00
Thiago Santos
da3c031627
avidemux: use GstFlowCombiner
...
Removes flow return combination code to use the newly added GstFlowCombiner
2014-05-26 15:30:12 -03:00
Thiago Santos
4b0ce7dc30
qtdemux: use GstFlowCombiner
...
Removes the common code to combining flow returns to let it be
handled by core gstutils' GstFlowCombiner
https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 15:30:12 -03:00
Thiago Santos
d423b9f63e
qtdemux: parse tkhd transformation matrix and add tags if appropriate
...
Handle the transformation matrix cases where there are only simple rotations
(90, 180 or 270 degrees) and use a tag for those cases. This is a common scenario
when recording with mobile devices
https://bugzilla.gnome.org/show_bug.cgi?id=679522
2014-05-24 15:38:54 -04:00
Thiago Santos
f0b99d96a9
qtdemux: add tag mappings for _swr, _mak and _mod tags
...
swr -> Application name
mak -> device manufacturer
mod -> device model
2014-05-23 03:15:42 -03:00
Sebastian Dröge
1cdd3765d6
goom: Use fabs() instead of abs() to calculate the floating point absolute value
...
tentacle3d.c:268:7: error: using integer absolute value function 'abs' when
argument is of floating point type [-Werror,-Wabsolute-value]
if (abs (tmp - fx_data->rot) > abs (tmp - (fx_data->rot + 2.0 * G_PI))) {
^
2014-05-19 11:24:06 +02:00
Sebastian Dröge
97fb3655df
debugutils: Properly calculate the difference with unsigned types
...
tests.c:161:16: error: taking the absolute value of unsigned type
'unsigned long' has no effect [-Werror,-Wabsolute-value]
t->diff += labs (GST_BUFFER_TIMESTAMP (buffer) - t->expected);
2014-05-19 11:21:36 +02:00
Aleix Conchillo Flaqué
782d65cab1
rtspsrc: always use a random ssrc for the internal session
...
Use a random SSRC different than 0 for the internal session SSRC.
https://bugzilla.gnome.org/show_bug.cgi?id=730212
2014-05-16 16:58:44 +02:00
Wim Taymans
d004eda79d
rtpsession: update last_activity when sending RTP
...
Also update last_activity when doing something with the internal
source to make sure don't timeout early.
See https://bugzilla.gnome.org/show_bug.cgi?id=730217
2014-05-16 16:55:17 +02:00
Aleix Conchillo Flaqué
a62b280873
rtpbin: update rtp encoder/decoder docs
...
Use %u in RTP encoder/decoder pads to match other rtpbin pads.
https://bugzilla.gnome.org/show_bug.cgi?id=730146
2014-05-15 15:48:21 +02:00
George Kiagiadakis
7e2138794f
rtpsession: remove unused if branch
...
1) sources that have sent BYE in the past cannot be senders, since
they would have timed out to being receivers in the meantime...
2) sources that have sent BYE are now being removed earlier inside
this function
2014-05-14 16:01:50 +02:00
George Kiagiadakis
85d4c031d4
rtpsession: cleanup sources that have sent BYE
2014-05-14 16:01:50 +02:00
George Kiagiadakis
7d7840cc4a
rtpsession: unify nested if clauses
2014-05-14 16:01:50 +02:00
George Kiagiadakis
0e6a31411b
rtpsession: timeout internal sources that are inactive for a long time and send BYE
2014-05-14 16:01:50 +02:00
Aleix Conchillo Flaqué
bcd469ff31
rtpjitterbuffer: don't stop looping if event found in the queue
...
If we are inserting a packet into the jitter queue we need to keep
looping through the items until the right position is found. Currently,
the code stops as soon as an event is found in the queue.
Regarding events, we should only move packets before an event if there
is another packet before the event that has a larger seqnum.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730078
2014-05-14 10:23:28 +02:00
Adrien SCH
8ac30d4c26
matroskamux: fix the memory leak of language attribute
...
https://bugzilla.gnome.org/show_bug.cgi?id=728418
2014-05-13 19:55:21 -03:00
Edward Hervey
420661bd95
qtdemux: Fix leak of palette_data in error cases
...
CID #1212151
2014-05-12 16:56:35 +02:00
Edward Hervey
112d948b7e
qtmux: Free node_header in error cases
...
CID #1212134
2014-05-12 16:53:32 +02:00
Edward Hervey
6c4882996f
flvdemux: Don't use WARNING for not-linked flow return
...
Pollutes debug logs for no reason. It's only an error if all pads
return not-linked
2014-05-12 13:46:01 +02:00
Edward Hervey
c09b14c931
flvdemux: Skip unknown tags in push-mode
...
We add a new mode (SKIP) in push-mode to skip tags that we don't known about
Partially fixes https://bugzilla.gnome.org/show_bug.cgi?id=670712
2014-05-12 13:45:06 +02:00
Wim Taymans
b2e1598e4a
rtpjitterbuffer: increment accepted packets after loss
...
When we detect a lost packet, expect packets with higher
seqnum on the input.
Also update the unit test.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729524
2014-05-09 18:10:32 +02:00
Jason Litzinger
9068e1bb8e
Add new test case.
2014-05-09 18:10:32 +02:00
Eric Trousset
bd51aa7aa8
qtdemux: don't respond to a position query in BYTE format with a TIME position
...
https://bugzilla.gnome.org/show_bug.cgi?id=729553
2014-05-09 16:12:45 +01:00
Tim-Philipp Müller
9872c19491
matroskademux: don't leak doctype string in error code path
...
CID 1212145.
2014-05-09 14:22:42 +01:00
Tim-Philipp Müller
615f6e55c1
flacparse: skip PICTURE headers without any image data
...
Fixes warning if the image length is 0.
2014-05-07 00:58:15 +01:00
Guillaume Desmottes
d089f99a39
rtp/README: update pipelines to work with 1.0
...
- Use gst-libav encoders/decoders instead of gst-ffmpeg
- gstrtpjitterbuffer -> rtpjitterbuffer
- gst-launch-0.10 -> gst-launch-1.0
- Add 'videoconvert' element
- xvimagesink -> autovideosink
https://bugzilla.gnome.org/show_bug.cgi?id=729247
2014-05-05 20:23:56 -04:00
Vincent Penquerc'h
ec38c62563
matroska: rejig test to avoid undefined shift behavior
...
Coverity 1195121, 1195120
2014-05-05 14:44:57 +01:00
Vincent Penquerc'h
9589c43516
matroskamux: ensure we don't dereference a NULL pointer
...
while working out the codec ID.
Coverity 1195148
2014-05-05 14:32:06 +01:00
Olivier Crête
b2a52035bf
rtprtxreceive: Wait until timeout to clear association requests
...
If two streams request a retranmission for the same SSRC, ignore the second
one if the first oen is less than one second old, otherwise time out the first
one and ignore the second.
2014-05-04 22:36:59 -04:00
Olivier Crête
0742a5a257
rtpmux: Always let upstream chose the ssrc if it wishes
2014-05-04 19:11:03 -04:00
Mark Nauwelaerts
6c584bc833
rtpjitterbuffer: avoid stall by corrupted seqnum accounting
2014-05-04 13:38:26 +02:00
Olivier Crête
2e54d38dd0
rtpsession: Keep local conflicting addresses in the session
...
As we now replace the local RTPSource on a conflict, it's no longer possible
to keep local conflicts in the RTPSource, so they instead need to be kept
in the RTPSession.
Also fix the rtpcollision test to generate multiple collisions instead of
one by change the address, as otherwise we detected that it was a single one.
2014-05-03 18:30:20 -04:00
Sebastian Dröge
1d4404d883
Release 1.3.1
2014-05-03 18:02:23 +02:00
Sebastian Dröge
859c751a5d
imagefreeze: Set segment position to the stop position of the buffer
2014-05-02 17:14:29 +02:00
Sebastian Dröge
4282d75597
imagefreeze: Properly report errors before stopping the srcpad task
2014-05-02 17:14:29 +02:00
Sebastian Dröge
4933394d35
imagefreeze: Error out if we have no caps yet
2014-05-02 17:14:29 +02:00
Vincent Penquerc'h
218294b9f3
wavparse: avoid dividing by a 0 blockalign
...
This can be 0. In that case, do not try to cut off the last few
bytes from the last buffer.
Coverity 1146971
2014-05-02 14:49:27 +01:00
Vincent Penquerc'h
590e20cbc9
matroskamux: do not use uinitialized clut on error
...
If we're missing part of the clut, do not try to use it. It seems
very likely the break was meant to break out of the switch rather
than from the loop.
Coverity 1139878
2014-05-02 14:25:01 +01:00
Vincent Penquerc'h
d917c94037
flxdec: fix integer overflow
...
Coverity 1139859
2014-05-02 14:18:08 +01:00
Vincent Penquerc'h
60ba2d7aee
rtpqdmdepay: remove pointless check
...
Besides, the pointer was dereferenced earlier anyway.
Coverity 1139853
2014-05-02 14:09:02 +01:00
Vincent Penquerc'h
a846e84349
rtspsrc: remove duplicate test
...
item was dereference previously.
While there, reorder some test for faster early out.
Coverity 1139844
2014-05-02 14:06:25 +01:00
Vincent Penquerc'h
5c22bcf6e9
matroska: blindly fix writing variable length negative values
...
Spotted while fixing something else in the area.
Nothing calls this with a negative value.
2014-05-02 13:33:02 +01:00
Vincent Penquerc'h
5b9fa4e63a
matroska: do not lose the top bits when writing a > 32 bit value
...
Coverity 1139806
2014-05-02 13:29:33 +01:00
Vincent Penquerc'h
10663decd9
videoflip: add missing break in switch
...
Coverity 1139755
2014-05-02 12:10:26 +01:00
Vincent Penquerc'h
a0bc24558e
matroska: do not try to call gst_pad_query_default on a NULL pad
...
gst_matroska_parse_query can be called explicitely with a NULL pad.
If we reach this point with a NULL pad, fail the query.
Coverity 1139715
2014-05-02 11:39:39 +01:00
Vincent Penquerc'h
3915884017
matroska: do not return GST_FLOW_OK if we did not get a buffer
...
Coverity 1139714 (which will likely come back in another guise,
as the _read_init call can have a failing _map)
2014-05-02 11:28:01 +01:00
Vincent Penquerc'h
f5a9f5e221
matroska: catch failure to map buffer
...
Avoids dereferencing NULL.
Coverity 1139712
2014-05-02 11:20:33 +01:00
Vincent Penquerc'h
94720fd3a1
avimux: refuse caps with invalid framerate
...
Coverity 1139701
2014-05-02 10:53:00 +01:00
Vincent Penquerc'h
1be86ebb2a
qtmux: handle 0 size packets without dividing by 0
...
Coverity 1139691
2014-05-02 10:21:09 +01:00
Vincent Penquerc'h
b692539b55
qtdemux: guard against invalid frame size to avoid division by 0
...
Coverity 1139690
2014-05-02 09:49:32 +01:00
Vincent Penquerc'h
436c8c11a0
qtdemux: trivial typo fix
2014-05-02 09:49:17 +01:00
Vincent Penquerc'h
0253db6d36
mpegaudioparse: remove dead code
...
A stricer check is already done earlier, and integer overflows
do not seem possible here.
Coverity 1139675
2014-04-30 17:48:53 +01:00
Vincent Penquerc'h
a55b8e9c00
rtpvrawpay: guard against pathological "no space" condition
...
Even if one woul hope one pixel can fit in a MTU, ensure we do not
overwrite a buffer if this is not the case.
Spotted while looking at Coverity 1208786
2014-04-30 14:50:44 +01:00
Vincent Penquerc'h
dfa2df1c88
rtpjpegdepay: sanity check for NULL qtable
...
Can happen (at least in crafted stream)
Coverity 1208778
2014-04-30 11:52:10 +01:00
Tim-Philipp Müller
b1473491cf
wavparse: pass on tags from upstream if there are any
...
Don't just ignore upstream tags from e.g. an ID3 tag before
the .wav data, pass them on downstream.
https://bugzilla.gnome.org/show_bug.cgi?id=729223
2014-04-30 01:08:41 +01:00
Wim Taymans
eba3bba524
rtpjitterbuffer: optimize timer update
...
When we are not doing retransmission, we just need to find the current
seqnum so we can stop when we found it.
2014-04-29 16:26:53 +02:00
Wim Taymans
b2c9646acb
rtpjitterbuffer: small optimizations
...
Small optimizations where we can.
Add some more debug.
2014-04-29 16:21:44 +02:00
Wim Taymans
df04fcbb5d
rtpjitterbuffer: signal when next_seqnum changed
...
Signal the pushing thread when the next_seqnum changed and we might be
able to push a buffer now.
2014-04-29 16:16:17 +02:00
Wim Taymans
3cd0e8ae88
rtpjitterbuffer: only signal event when head changed
...
After adding a buffer, only signal the pushing thread when the head
buffer changed or else we cause a useless wakeup.
2014-04-29 16:12:29 +02:00
Wim Taymans
18b69419fd
rtpjitterbuffer: rework packet insert
...
Rework the packet queue so that the most common action (insert a packet
at the tail of the queue) goes very fast.
Report if a packet was inserted at the head instead of the tail so that
we can know when to retry _pop or _peek.
2014-04-29 16:02:37 +02:00
Wim Taymans
9994ff2c6c
rtpvraw: use plane pointers when needed
...
Pack/unpack planar formats to/from the first plane.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=729058
2014-04-28 14:45:57 +02:00
Nicolas Dufresne
d87cc7bacf
goom: Remove french comment saying to prefix functions
...
All non-static function in this file are already prefixed with goom_.
2014-04-27 21:57:38 -04:00
Tim-Philipp Müller
02436f52c6
goom: fix compilation on ios-arm7-10.9 and osx-x86_64
...
uint is not a standard type, and the rest of the code uses
Uint which is locally typedefed to unsigned int.
https://bugzilla.gnome.org/show_bug.cgi?id=729067
2014-04-28 00:24:16 +01:00
Luis de Bethencourt
3943c3ec08
goom: fix undefined behaviour of left-shift
...
Don't left-shift into the sign bit, the result is undefined and potentially
an overflow could flip the sign.
2014-04-27 18:31:48 -04:00
Luis de Bethencourt
5dc2e6bef1
qtdemux: check return from qt_demux_video_caps
...
Now qtdemux_video_caps() can return NULL. We need to check this return before
using it's value.
https://bugzilla.gnome.org/show_bug.cgi?id=728987
2014-04-26 20:51:36 -04:00
Tim-Philipp Müller
c9597298f9
docs: remove outdated and pointless 'Last reviewed' lines from docs
...
They are very confusing for people, and more often than not
also just not very accurate. Seeing 'last reviewed: 2005' in
your docs is not very confidence-inspiring. Let's just remove
those comments.
2014-04-26 23:35:17 +01:00
Luis de Bethencourt
c073a6c779
qtdemux: initialize caps pointer to null
...
Make sure the caps pointer returns initialized when using it in
qtdemux_parse_tree ().
https://bugzilla.gnome.org/show_bug.cgi?id=728987
2014-04-25 18:23:23 -04:00
Jan Schmidt
f2d0ddf113
rtpjitterbuffer: Clear last_pt on flush-stop.
...
Otherwise, we don't recheck the buffer caps for clock-rate
properly on the next chain.
2014-04-23 18:54:16 +10:00