Commit graph

6726 commits

Author SHA1 Message Date
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
Wim Taymans 75616fac9a rtspsrc: add some more debug 2012-12-20 17:12:20 +01:00
Jonas Holmberg e12457f138 rtpjpegpay: handle width and height > 2040
If width or height is greater than 2040 set width and height to zero in
the rtp header and add x-dimensions to outcaps.

Solves #684955
2012-12-20 15:40:49 +01:00
Wim Taymans dcb0e0af93 avidemux: cleanup in flag define 2012-12-20 13:04:52 +01:00
Wim Taymans 0e522bc69a avidemux: improve debug 2012-12-20 13:04:52 +01:00
Thijs Vermeir de41376231 rtp: use appropriate printf format for gsize 2012-12-18 16:02:09 +01:00
Thijs Vermeir df88341ffb deinterlace: use appropriate printf format for gsize 2012-12-18 16:02:09 +01:00
Philippe Normand 2bd77e1c8a interleave: set src pad caps upon last sink pad CAPS event
Gather caps on all sink pads before setting the src pad caps. This is
specially needed when the audio channel mapping is set on the sink
pads and the element needs to preserve it on its src pad.

https://bugzilla.gnome.org/show_bug.cgi?id=690267
2012-12-18 12:58:43 +01:00
Tim-Philipp Müller f4cb0c4315 matroskademux: skip empty tags
instead of trying to add tags with empty strings, which
causes criticals at runtime.

https://bugzilla.gnome.org/show_bug.cgi?id=690358
2012-12-17 22:55:12 +00:00
Sebastian Dröge c49dede772 audioparsers: Make sure the caps are actually writable before changing them 2012-12-17 15:17:12 +01:00
Sebastian Dröge 26040ee38c audioparsers: Use the peer caps for restrictions instead of the srcpad allowed caps
Otherwise we will intersect with the srcpad template caps and add all the caps fields
that the parser will ever set, no matter if downstream restricts this field or not.
This requires upstream to set this field on the caps to successfully negotiate.

https://bugzilla.gnome.org/show_bug.cgi?id=690184
2012-12-17 15:01:02 +01:00
Alexey Fisher 7e47e3b92d matroskamux: set appropriate block header flag for VP8 invisible frames
Useful for debugging mostly.

https://bugzilla.gnome.org/show_bug.cgi?id=654259
2012-12-16 23:30:13 +00:00
Tim-Philipp Müller 8a3b116d1f docs: add rtpmux and rtpdtmfmux to plugin docs
https://bugzilla.gnome.org/show_bug.cgi?id=629117
2012-12-16 16:36:39 +00:00
Tim-Philipp Müller 3295b5d791 rtpmanager: move rtpmux and rtpdtmfmux elements from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=629117
2012-12-16 16:36:39 +00:00
Tim-Philipp Müller de204ba754 rtpmux: Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-12-16 16:36:39 +00:00
Tim-Philipp Müller 2778a1757f rtpmux: Use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-12-16 16:36:39 +00:00
Olivier Crête 15dfdc58d4 rtpmux: Misc fix for 0.11
Convert the incoming caps before proxying them
Clear the last_pad when going to ready

tests: Implement accept_caps, don't leak event
2012-12-16 16:36:38 +00:00
Wim Taymans 83262be703 rtpmux: update for RTP buffer api changes 2012-12-16 16:36:38 +00:00
Sebastian Dröge f17064a8ea rtpmux: Update for GST_PLUGIN_DEFINE() API changes 2012-12-16 16:36:34 +00:00
Wim Taymans c86156ad8f rtpmux: fix compilation 2012-12-16 16:35:36 +00:00
Wim Taymans 6826bbb6da rtpmux: fix for caps api changes 2012-12-16 16:35:33 +00:00
Matej Knopp bb345a584d rtpmux: Fix compiler warnings 2012-12-16 16:35:29 +00:00
Olivier Crête af4e999c59 rtpmux: Unref non-forwarded events
Also, don't unref forwarded ones
2012-12-16 16:35:29 +00:00
Olivier Crête a8789d1df1 rtpmux: resync iterator on resync 2012-12-16 16:35:29 +00:00
Olivier Crête 0c54079af5 rtpmux: Re-push sticky events on input pad change 2012-12-16 16:35:29 +00:00
Olivier Crête 21831b430f rtpmux: Don't leak gvalue from iterator 2012-12-16 16:35:29 +00:00
Wim Taymans ccc4b960fc rtpmux: more porting 2012-12-16 16:35:26 +00:00
Olivier Crête f20a6b1d16 rtpmux: port to 0.11 2012-12-16 16:35:26 +00:00
Wim Taymans 35b6668fb6 rtpmux: make request pads take _%u 2012-12-16 16:35:22 +00:00
Olivier Crête aa3607ef5c rtpdtmfmux: Add last-stop to dtmf-event upstream events
Add the running time of the last outputted buffer to the
upstream "dtmf-event" events so that the dtmf source does not
leave a gap.
2012-12-16 16:35:22 +00:00
Edward Hervey d137482fe5 rtpmux: Remove dead assignments 2012-12-16 16:35:22 +00:00
Stefan Kost 55aae6bfab rtpmux: add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2012-12-16 16:35:15 +00:00
Olivier Crête 9674d5cc23 rtpmux: Improve documentation
Add an example pipeline, and try to explain a bit more what it does.
2012-12-16 16:35:15 +00:00
Stefan Kost ca27a279ba rtpdtmfmux: remove unused variable 2012-12-16 16:35:15 +00:00
Stefan Kost c85dceeacb rtpdtmfmux: remove unused signal boilerplate 2012-12-16 16:35:15 +00:00
Stefan Kost 2353f8d852 rtpmux: no need to ref pad in _chain() 2012-12-16 16:35:15 +00:00
Youness Alaoui e42d2eebcb rtpmux: Unlock the right mutex
The mutex locked is for the 'mux' object, but we unlock the
pad, which means that if the rtpmux gets a flush, then the
object lock will stay locked forever, causing it to freeze
the next time it tries to take it.

Fixes bug #627991
2012-12-16 16:35:15 +00:00
Olivier Crête 78d1ebac9e rtpmux: Add support for GstBufferList
Factor out most of the buffer handling and implement a chain_list
function. Also, the DTMF muxer has been modified to just have a
function to accept or reject a buffer instead of having to subclass
both chain and chain_list.
2012-12-16 16:35:15 +00:00
Olivier Crête c00f14419b rtpmux: Don't leak invalid buffers 2012-12-16 16:35:15 +00:00
Tim-Philipp Müller a45429d81d rtpmux: fix missing debug log message argument 2012-12-16 16:35:15 +00:00
Olivier Crête 4a8d0243b5 rtpdtmfmux: Add some debug messages 2012-12-16 16:35:14 +00:00
Olivier Crête 423ce98666 rtpdtmfmux: Remove stream-lock event handling 2012-12-16 16:35:14 +00:00
Olivier Crête a4500c0e74 rtpdtmfmux: Update doc for simplification 2012-12-16 16:35:14 +00:00
Olivier Crête 70097866de rtpdtmfmux: Drop buffers on non-priority sinks when something is incoming on the priority sink 2012-12-16 16:35:14 +00:00
Olivier Crête f6548fe9b6 rtpdtmfmux: Add priority sink pads 2012-12-16 16:35:14 +00:00
Olivier Crête 2bcea1537b rtpdtmfmux: Cleanup event function 2012-12-16 16:35:14 +00:00
Olivier Crête 8e58646f5c rtpmux: Aggregate incoming segments 2012-12-16 16:35:14 +00:00
Olivier Crête 7be57cac3a rtpdtmfmux: Update documentation 2012-12-16 16:35:14 +00:00
Olivier Crête e590fc1f32 rtpmux: Simplify request pad creation 2012-12-16 16:35:14 +00:00
Benjamin Otte 2867e00225 rtpmux: gst_element_class_set_details => gst_element_class_set_details_simple 2012-12-16 16:35:10 +00:00
unknown fb7266884d rtpmux: update the current_ssrc from the caps
Fixes #604101
2012-12-16 16:33:47 +00:00
Håvard Graff eab65e84ca rtpmux: release pads when disposing
Because of an allocated priv (GstRTPMuxPadPrivate), the element will
leak memory if not gst_rtp_mux_release_pad() is called. This would
previously only happen if release_request_pad() was called explicitly,
somthing that should not be neccesary.

Fixes #604099
2012-12-16 16:33:46 +00:00
Wim Taymans 0d54122804 dtmfmux: method name cleanups 2012-12-16 16:33:46 +00:00
Olivier Crête 3841cc74cf rtpmux: Don't ignore requested pad name 2012-12-16 16:33:46 +00:00
Olivier Crête d93295ff9d rtpmux: Remove empty finalize 2012-12-16 16:33:46 +00:00
Olivier Crête 5e90a4e86b rtpmux: Free the pad private data on pad release
Free the pad private data on pad release instead of using a weak ref,
which is not thread safe. Also, lock the content of the pad private using the element's
object lock.
2012-12-16 16:33:46 +00:00
Olivier Crête 4be63c9add rtpmux: Reject wrong caps 2012-12-16 16:33:46 +00:00
Olivier Crête 0111bafb3a rtpmux: Fix leak Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr> 2012-12-16 16:33:46 +00:00
Olivier Crête fcc1522d2e rtpmux: Fix leak
Fixed a leak discovered by Laurent Glayal <spegle@yahoo.fr>
2012-12-16 16:33:46 +00:00
Olivier Crête ff6686f1c7 rtpmux: Fix warning 2012-12-16 16:33:46 +00:00
Olivier Crête 00791f930b rtpmux: Set different caps depending on the input 2012-12-16 16:33:46 +00:00
Olivier Crête ed0b407038 rtpmux: Only free pad private when pad is disposed 2012-12-16 16:33:45 +00:00
Olivier Crête 92bb5199ac rtpmux: Remove useless caps mangling 2012-12-16 16:33:45 +00:00
Olivier Crête 3ccf3217fe rtpmux: Rename variable for more clarity 2012-12-16 16:33:45 +00:00
Olivier Crête 4b958f6d8d rtpmux: Use GST_BOILERPLATE 2012-12-16 16:33:45 +00:00
Olivier Crête abe57be248 rtpmux: Do the includes locally 2012-12-16 16:33:45 +00:00
Olivier Crête 05844c89e9 rtpmux: Add GST_DEBUG_FUNCPTRs 2012-12-16 16:33:45 +00:00
Olivier Crête fd102b95ab rtpdtmfmux: Release locked pad on release_pad
Release the special pad if the pad is removed from the muxer.
2012-12-16 16:33:45 +00:00
Laurent Glayal 00f8bab712 rtpdtmfmux: Release special on pad dispose
Fixes #577690
2012-12-16 16:33:45 +00:00
Stefan Kost a4a22454dc docs: various doc fixes
No short-desc as we have them in the element details.
Also keep things (Makefile.am and sections.txt) sorted.
Reword ambigous returns. No text after since please.
2012-12-16 16:33:41 +00:00
Olivier Crête 7d4395a910 rtpmux: Move rtpmux from gst-plugins-farsight to -bad 2012-12-16 16:33:27 +00:00
Olivier Crête 68215752f4 rtpmux: Re-indent to Gst style 2012-12-16 16:33:24 +00:00
Olivier Crête c7d0809434 rtpmux: Document rtp muxer a bit 2012-12-16 16:33:20 +00:00
Laurent Glayal 47c7a93df2 rtpmux: Add signals before stream lock and after unlocking 2012-12-16 16:33:17 +00:00
Olivier Crête f1656ed8b0 rtpmux: Let ssrc through getcaps 2012-12-16 16:33:14 +00:00
Olivier Crête 1529dffaf9 rtpmux: Rename have_base to have_ts_base 2012-12-16 16:33:11 +00:00
Olivier Crête 57563517bd rtpmux: Protect the seqnum with object lock in rtpmux 2012-12-16 16:33:08 +00:00
Olivier Crête d3237eaf95 rtpmux: Remove unused sink_ts_base 2012-12-16 16:33:04 +00:00
Olivier Crête cc23958183 rtpmux: Have getcaps to force the same clockrate on all pads 2012-12-16 16:33:01 +00:00
Olivier Crête dc36590d0c rtpmux: Validate RTP data in RTP Mux 2012-12-16 16:32:57 +00:00
Olivier Crête 360c8d4f1d rtpmux: Remove unused clock-rate property 2012-12-16 16:32:54 +00:00
Olivier Crête b86232d0dc rtpmux: Clarify locking in rtpdtmfmux 2012-12-16 16:32:50 +00:00
Laurent Glayal 4b607cdda5 rtpmux: Missing format parameter 2012-12-16 16:32:47 +00:00
Håvard Graff b313c80367 rtpmux: Update seqnum base in rtp muxer
With help from Wim
2012-12-16 16:32:43 +00:00
Håvard Graff c479f90274 rtpmux: Fix some more leaks 2012-12-16 16:32:40 +00:00
Håvard Graff 1b5e769e0b rtpmux: Fix leak 2012-12-16 16:32:37 +00:00
Olivier Crête 5cbb0de823 rtpmux: Don't unref caps we don't know (thanks Wim) 2012-12-16 16:32:32 +00:00
Olivier Crête cebf506949 rtpmux: Put per-buffer debug at level LOG 2012-12-16 16:32:29 +00:00
Olivier Crête 3c12a423b7 rtpmux: Make debug print accurate 2012-12-16 16:32:25 +00:00
Olivier Crête c49f4c87c6 rtpmux: Set our caps on the buffers 2012-12-16 16:32:22 +00:00
Olivier Crête ec63da9366 rtpmux: Take the clock-base stored from the last setcaps 2012-12-16 16:32:18 +00:00
Olivier Crête 674c074114 rtpmux: Store the clock-base on setcaps 2012-12-16 16:32:15 +00:00
Olivier Crête 90264b9686 rtpmux: Add padprivate to the request pads 2012-12-16 16:32:11 +00:00
Olivier Crête 15d661ba3e rtpmux: Make indentation more correct 2012-12-16 16:31:56 +00:00
Olivier Crête 3a7d09a749 rtpmux: Fix typo 2012-12-16 16:31:53 +00:00
Olivier Crête 91aef3ec5e rtpmux: Set seqnum-base and clock-base in caps from rtpmuxer 2012-12-16 16:31:50 +00:00
Zeeshan Ali 6ea5ca354d rtpmux: more debug
20070815135038-f3f1e-9c7a5490a525c6e8753cb1b8c03354df99132b5c.gz
2012-12-16 16:31:46 +00:00
Youness Alaoui f0e209b638 rtpmux: missing comment
20070820185032-4f0f6-0ab67b6ac40dd4e35a8fe53f3cb6daff65ce43b9.gz
2012-12-16 16:30:33 +00:00
Olivier Crete 3ed5590da6 rtpmux: Make buffer writable before writing into it
20070712195336-3e2dc-91a5fb797cfa4919d4e2f9a728c6d6fbd3b83d93.gz
2012-12-16 16:30:31 +00:00
Olivier Crete dd13f7c8ef rtpmux: Set pads active when adding them to a potentially running element
20070706202459-3e2dc-a3731f885725594def0a7be997fc7b3a739ee967.gz
2012-12-16 16:30:27 +00:00
Olivier Crete 1c5075f927 rtpmux: Fix multiple ref leaks (patches by SP GLE)
20070607120121-3e2dc-061e9ef7a47b1b84fa8f8092f4b8bcc0e6db8c8c.gz
2012-12-16 16:30:23 +00:00
Zeeshan Ali 42f455e902 rtpmux: send event to all src pads
20070528152505-f3f1e-039216c73dc93f64c49962c77a0253cb9cfec4d3.gz
2012-12-16 16:30:18 +00:00
Zeeshan Ali dba101bb0f rtpmux: print a warning if receive an error iterating sinkpads
20070528123749-f3f1e-4c1eb3f511b5610143610a65a94d117f2c3d2580.gz
2012-12-16 16:30:15 +00:00
Zeeshan Ali baa48dc6bc rtpmux: deal with all the gst_iterator_next() return values
20070528122808-f3f1e-d301644c3be7633ec6dc5e28596e9346d2da6a50.gz
2012-12-16 16:30:12 +00:00
Zeeshan Ali de40874670 rtpmux: Return correct value from the event handler
20070525123116-f3f1e-131b37b5f4521618fe2f1320409a47e65b35ad2d.gz
2012-12-16 16:30:08 +00:00
Zeeshan Ali ed76f67e96 rtpmux: Ville's original patch to fix the traversal of dtmf event
20070525102709-f3f1e-6c41d1ef934068a4f4e810e7e981b420075b0c98.gz
2012-12-16 16:30:05 +00:00
zeeshan.ali@nokia.com 94ebe07862 rtpmux: Set the correct ts-offset on the get_prop value
20070329135250-65035-a43e222d91d57c0a61cb3287586aaa29abf78674.gz
2012-12-16 16:30:01 +00:00
zeeshan.ali@nokia.com 1ee542c378 rtpmux: Refactorize state_change
20070329135223-65035-23a0107b2e397710f035c6e88cc0e49b65bb4d5d.gz
2012-12-16 16:29:58 +00:00
zeeshan.ali@nokia.com 2498ba671a rtpmux: set SSRC on the packets
20070329133622-65035-1be6e0aa85a71389f7d257b9cd3e13a73d6b745b.gz
2012-12-16 16:29:55 +00:00
zeeshan.ali@nokia.com ee69c2690d rtpmux: Code clean-up and more debug output
20070329131936-65035-9d499e209e0d7a409c3aa0d1040778babf076179.gz
2012-12-16 16:29:52 +00:00
zeeshan.ali@nokia.com 1c799ce964 rtpmux: Use own clock-base
20070328112219-65035-1ba5fefbc65059e9b0c860528a31062ceb6a7331.gz
2012-12-16 16:29:48 +00:00
zeeshan.ali@nokia.com b04630d7a2 rtpmux: Only accept RTP streams that have the same clock-rate
20070323163139-65035-fc0b17b0b8a7a041f48994c4f26e96568168bf95.gz
2012-12-16 16:29:45 +00:00
zeeshan.ali@nokia.com 6fe1e02efd rtpmux: Some more code-cleanups
20070322161552-65035-bda96165e146b4f1d5fea1cc9576a7ab3abebc9e.gz
2012-12-16 16:29:42 +00:00
zeeshan.ali@nokia.com 1603223ee5 rtpmux: return newpad instead of NULL and warn if failed to create a pad
20070322154251-65035-cdb6651e61c2eb0205cc8c24693b43f98a2da718.gz
2012-12-16 16:29:38 +00:00
zeeshan.ali@nokia.com 23d3ed5c5f rtpmux: Refactorize the RTPMux code
20070322124132-65035-0a3278147546e33f687097a43b775b3f6aa99f93.gz
2012-12-16 16:29:35 +00:00
zeeshan.ali@nokia.com 21e6e951f6 rtpmux: Some more doc fixing
20070322121453-65035-12d602272217b51bd97df4e5790024c399622dd3.gz
2012-12-16 16:29:32 +00:00
zeeshan.ali@nokia.com 0de7fb6f37 rtpmux: More Refactoring
20070322113228-65035-bae34a79599e7de5293ed77b022361ccff822bb9.gz
2012-12-16 16:29:29 +00:00
zeeshan.ali@nokia.com 0f755657ce rtpmux: More documentation
20070322113154-65035-624850541a5b5fc3df231204be5a83d07239db28.gz
2012-12-16 16:29:26 +00:00
zeeshan.ali@nokia.com 5483c78ac0 rtpmux: Refactor the event handler function
20070321163311-65035-987e7f25d1ab5335b79f44b277abf15e4e37d317.gz
2012-12-16 16:29:23 +00:00
zeeshan.ali@nokia.com db1523ae60 rtpmux: Add RTPDTMFMux element
20070321145244-65035-9a01390b0dee3398e53199a1fa1d9352004f338e.gz
2012-12-16 16:29:19 +00:00
zeeshan.ali@nokia.com 97ff54dce7 rtpmux: Remove DTMF-specific code from RTP muxer and make it extendable
20070321123149-65035-b8a8f55ff78eed8cbb0042e827885edfc5438242.gz
2012-12-16 16:29:16 +00:00
zeeshan.ali@nokia.com 1a227ac7e5 rtpmux: Put more helpful description
20070320120524-65035-db27a7cf6307b511aeb3d996d26e790e367a7bad.gz
2012-12-16 16:29:13 +00:00
zeeshan.ali@nokia.com d876c0d8cc rtpmux: remove the (commented-out) code for blocking the pads
20070316151641-65035-0123af387951f88594797c722e882cfe70240aff.gz
2012-12-16 16:29:10 +00:00
zeeshan.ali@nokia.com 209228c44d rtpmux: Drop buffers instead of blocking the sinkpads
20070316131444-65035-9c1345ad96108881f455d4b55a7f623cd302d0ed.gz
2012-12-16 16:29:05 +00:00
zeeshan.ali@nokia.com 795822ffa5 rtpmux: Implement stream locking, needed for DTMF
20070314171618-65035-e4d24b1606ce0a3e2e739f01833f61e4d7555eac.gz
2012-12-16 16:29:02 +00:00
zeeshan.ali@nokia.com fd209faa56 rtpmux: use GST_*_OBJECT instead of g_*
20070314102058-65035-e2442888f2e3e5a3a7659ad7954a4fba34749ce2.gz
2012-12-16 16:28:58 +00:00
zeeshan.ali@nokia.com b0208cb0a6 rtpmux: No need to manage pads, parent does that for us
20070314101854-65035-ef5f4abde227102a1128835ab325905eae4c3726.gz
2012-12-16 16:28:55 +00:00
zeenix@gmail.com 74e9071dad rtpmux: Fix copyright header
20070314090358-d014a-3a6d3eeeaaf5cb8ca3bca6a33e99a551f598bd48.gz
2012-12-16 16:28:51 +00:00
zeeshan.ali@nokia.com 3c4cdf1541 rtpmux: The first implementation of RTP muxer
20070307085307-65035-833402413f99cb3f8be4883e92bad4c8722510c9.gz
2012-12-16 16:28:41 +00:00
Tim-Philipp Müller b19122bac8 scaletempo: no need for a private struct 2012-12-15 21:27:01 +00:00
Tim-Philipp Müller 61913ab7b4 audiofx: move scaletempo element from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=687262
2012-12-14 13:16:17 +00:00
Sebastian Dröge 314765c294 scaletempo: Fix event leak 2012-12-14 13:16:17 +00:00
Sebastian Dröge 490e408991 scaletempo: Fix timestamp tracking 2012-12-14 13:16:17 +00:00
Sebastian Dröge 502eb8d1b7 scaletempo: Implement LATENCY query 2012-12-14 13:16:17 +00:00
Sebastian Dröge c7589817cb scaletempo: Store instance private data in the instance struct
Getting it over and over again via G_TYPE_INSTANCE_GET_PRIVATE()
is really slow.
2012-12-14 13:16:17 +00:00
Tim-Philipp Müller e552bd484f scaletempo: use gst_element_class_set_static_metadata()
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-12-14 13:16:17 +00:00
Mark Nauwelaerts d2dd91ac47 scaletempo: replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-12-14 13:16:17 +00:00
Wim Taymans cb1743d578 scaletempo: ffmpegcolorspace is no more 2012-12-14 13:16:17 +00:00
Sebastian Dröge 93e1091d7f scaletempo: Update for GST_PLUGIN_DEFINE() API changes 2012-12-14 13:16:17 +00:00
Mark Nauwelaerts 3286cdd542 scaletempo: port to 0.11 2012-12-14 13:16:16 +00:00
Stefan Kost 62d780cd51 scaletempo: improve the docs
Fix the syntax, add more explanation and xref the properties.
2012-12-14 13:16:16 +00:00
Chris E Jones caf2b6cb5c scaletempo: Correctly handle newsegment events with stop==-1
Fixes bug #645420.
2012-12-14 13:16:16 +00:00
Stefan Kost 6d54058982 scaletempo: add missing G_PARAM_STATIC_STRINGS flags
Canonicalize property names as needed.
2012-12-14 13:16:16 +00:00
Benjamin Otte 38bc2dfb4a scaletempo: gst_element_class_set_details => gst_element_class_set_details_simple 2012-12-14 13:16:16 +00:00
Thiago Santos 2d72ec153a scaletempo: properly update new segments
Scaletempo was missing an update of 'stop' in
new segment parameters when pushing it downstream,
which caused files to end earlier when rate < 1.

Fixes #599903

Based on patch by: Bastian Hecht <hechtb@gmail.com>
2012-12-14 13:16:16 +00:00
Maximilian Högner 2fe7a97f1c scaletempo: Explicitely cast to signed integers to fix a segfault
Fixes bug #585660.
2012-12-14 13:16:16 +00:00
Michael Smith 1b1f6f56d6 scaletempo: Do not use void pointer arithmetic. 2012-12-14 13:16:16 +00:00
Stefan Kost 9284c85b33 scaletempo: Return the result of parent_class->event()
Original commit message from CVS:
* gst/audiofx/gstscaletempo.c:
Return the result of parent_class->event().
2012-12-14 13:16:16 +00:00
Rov Juvano 43e79f7769 Add scaletempo plugin, which allows to scale the speed of audio without changing the pitch by handling seeks with a r...
Original commit message from CVS:
Patch by: Rov Juvano <rovjuvano at users dot sourceforge dot net>
* configure.ac:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/inspect/plugin-scaletempo.xml:
* examples/scaletempo/Makefile.am:
* examples/scaletempo/demo-gui.c: (pop_status_bar),
(status_bar_printf), (demo_gui_seek_bar_format), (update_position),
(demo_gui_seek_bar_change), (demo_gui_do_change_rate),
(demo_gui_do_set_rate), (demo_gui_do_rate_entered),
(demo_gui_do_toggle_advanced), (demo_gui_do_toggle_disabled),
(demo_gui_do_seek), (demo_gui_do_play), (demo_gui_do_pause),
(demo_gui_do_play_pause), (demo_gui_do_open_file),
(demo_gui_do_playlist_prev), (demo_gui_do_playlist_next),
(demo_gui_do_about_dialog), (demo_gui_do_quit),
(demo_gui_request_set_stride), (demo_gui_request_set_overlap),
(demo_gui_request_set_search), (demo_gui_rate_changed),
(demo_gui_playing_started), (demo_gui_playing_paused),
(demo_gui_playing_ended), (demo_gui_player_errored),
(demo_gui_stride_changed), (demo_gui_overlap_changed),
(demo_gui_search_changed), (demo_gui_set_player_func),
(demo_gui_set_playlist_func), (build_gvalue_array),
(create_action), (demo_gui_show_func), (demo_gui_set_player),
(demo_gui_set_playlist), (demo_gui_show), (demo_gui_get_property),
(demo_gui_set_property), (demo_gui_init), (demo_gui_class_init),
(demo_gui_get_type):
* examples/scaletempo/demo-gui.h:
* examples/scaletempo/demo-main.c: (handle_error_message),
(handle_quit), (main):
* examples/scaletempo/demo-player.c: (no_pipeline),
(demo_player_event_listener), (demo_player_state_changed_cb),
(demo_player_eos_cb), (demo_player_build_pipeline), (_set_rate),
(demo_player_scale_rate_func), (demo_player_set_rate_func),
(_set_state_and_wait), (demo_player_load_uri_func),
(demo_player_play_func), (demo_player_pause_func), (_seek_to),
(demo_player_seek_by_func), (demo_player_seek_to_func),
(demo_player_get_position_func), (demo_player_get_duration_func),
(demo_player_scale_rate), (demo_player_set_rate),
(demo_player_load_uri), (demo_player_play), (demo_player_pause),
(demo_player_seek_by), (demo_player_seek_to),
(demo_player_get_position), (demo_player_get_duration),
(demo_player_get_property), (demo_player_set_property),
(demo_player_init), (demo_player_class_init),
(demo_player_get_type):
* examples/scaletempo/demo-player.h:
* gst/audiofx/Makefile.am:
* gst/audiofx/gstscaletempo.c: (best_overlap_offset_float),
(best_overlap_offset_s16), (output_overlap_float),
(output_overlap_s16), (fill_queue), (reinit_buffers),
(gst_scaletempo_transform), (gst_scaletempo_transform_size),
(gst_scaletempo_sink_event), (gst_scaletempo_set_caps),
(gst_scaletempo_get_property), (gst_scaletempo_set_property),
(gst_scaletempo_base_init), (gst_scaletempo_class_init),
(gst_scaletempo_init):
* gst/audiofx/gstscaletempo.h:
* gst/audiofx/gstscaletempoplugin.c: (plugin_init):
Add scaletempo plugin, which allows to scale the speed of audio without
changing the pitch by handling seeks with a rate!=1.0.
Integrate it into the docs and add the example application for it.
Fixes bug #537700.
2012-12-14 13:16:15 +00:00
Havard Graff 9c94f1187c jitterbuffer: bundle together late lost-events
The scenario where you have a gap in a steady flow of packets of
say 10 seconds (500 packets of with duration of 20ms), the jitterbuffer
will idle up until it receives the first buffer after the gap, but will
then go on to produce 499 lost-events, to "cover up" the gap.

Now this is obviously wrong, since the last possible time for the earliest
lost-events to be played out has obviously expired, but the fact that
the jitterbuffer has a "length", represented with its own latency combined
with the total latency downstream, allows for covering up at least some
of this gap.

So in the case of the "length" being 200ms, while having received packet
500, the jitterbuffer should still create a timeout for packet 491, which
will have its time expire at 10,02 seconds, specially since it might
actually arrive in time! But obviously, waiting for packet 100, that had
its time expire at 2 seconds, (remembering that the current time is 10)
is useless...

The patch will create one "big" lost-event for the first 490 packets,
and then go on to create single ones if they can reach their
playout deadline.

See https://bugzilla.gnome.org/show_bug.cgi?id=667838
2012-12-13 12:00:43 +01:00
Wim Taymans a858bf46db rtspsrc: fix TCP reconnect
Ignore other commands when reconnecting, otherwise the loop function would pause
and the reconnection would not happen. Continue looping after doing a reconnect
so that we have a chance to actually read the new data.
2012-12-13 09:30:59 +01:00
Philippe Normand a8fa9f2b47 deinterleave: properly set srcpad channel position
The src pad caps always describe a single audio channel so only the
first position matters if deinterleave is configured to keep channel
positions in its src pads.
2012-12-12 11:20:56 +00:00
Wim Taymans b1dc816772 rtspsrc: timeout on udpsrc is in nanoseconds 2012-12-12 11:09:42 +01:00
Wim Taymans 32bd981303 udpsrc: improve timeouts
Make it possible to set the timeout after we went to the READY state by using
the timeout when checking the condition. This also makes it possible to set the
timeout with a higher granularity than seconds.
2012-12-12 11:08:13 +01:00
Wim Taymans abd7e33db6 deinterlace: add support for strides
Implement stride support correctly by taking it from the GstVideoFrame.
Propose a bufferpool upstream when not operating in passthrough.
2012-12-11 13:00:46 +01:00
Aleix Conchillo Flaque 3503aef946 rtspsrc: do not change state to PLAYING if currently chaning state
* gst/rtsp/gstrtspsrc.c (gst_rtspsrc_play): state change might be
  happening in the application thread, so we don't change the state to
  PLAYING in the gstrtspsrc thread unless it is safe.

  A specific case is when chaning the state to NULL from the application
  thread. This will synchronously try to stop the task (with the element
  state lock acquired), but we will try a gst_element_set_state from
  gstrtspsrc thread which will block on the element state lock causing a
  deadlock.

  https://bugzilla.gnome.org/show_bug.cgi?id=684312
2012-12-10 15:13:22 +01:00
Tim-Philipp Müller 672ab8fb5b webmux: fix linking with shout2send element
Shout2send only accepts webm format, not matroska, but due
to a bug in matroskamux, webmmux's source pad is also created
with the matroska source pad template as pad template, which
makes the link function think it can't link webmmux to shout2send.

Also add unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=689336
2012-11-30 17:22:34 +00:00
Wim Taymans 64cdbb77a9 rtspsrc: use new option parser function 2012-11-27 11:13:37 +01:00
Tim-Philipp Müller 5dee61a8d5 law: fix accidental file permissions change
https://bugzilla.gnome.org/show_bug.cgi?id=687469
2012-11-26 15:17:13 +00:00
Tim-Philipp Müller 314efb684b qtdemux: avoid criticals if unknown fourcc has space at beginning or end
https://bugzilla.gnome.org/show_bug.cgi?id=682936
2012-11-25 14:16:09 +00:00
Tim-Philipp Müller efaa80fbc6 videobox: fix border filling for planar YUV formats
We would get a green border instead of a black one, for
example.

https://bugzilla.gnome.org/show_bug.cgi?id=684991
2012-11-24 19:32:51 +00:00
Tim-Philipp Müller ef6c16a32e mulaw: const-ify some arrays 2012-11-24 14:27:33 +00:00
Roland Krikava 3be45f7022 mulawdec: fix integer overrun
There might be more than 65535 samples in a chunk of data.

https://bugzilla.gnome.org/show_bug.cgi?id=687469
2012-11-24 14:24:41 +00:00
Wim Taymans 5d0507c09e rtspsrc: pause the task instead of spinning
Actually pause the loop task instead of spinning forever.
2012-11-22 11:34:31 +01:00
Joshua M. Doe fe9fb8d8a7 videoflip: Add gray 8/16 support 2012-11-20 12:49:49 +01:00
Wim Taymans c28bfa8902 rtspsrc: handle segment event
Make a segment event when we send a new range header to a client (first PLAY
request or after a seek). Send the segment event in interleaved mode.
Clean the segment event on cleanup

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688382
2012-11-16 15:38:29 +01:00
Wim Taymans bd91bd3193 rtspsrc: fix check for active streams
A stream can be active without a srcpad yet and we want to send
events on those streams as well.
2012-11-16 15:22:46 +01:00
Wim Taymans 11cf4d4fd3 rtspsrc: create and add pads outside of lock
Create and add the ghostpad for the new stream outside of the lock because it
is not needed and causes deadlocks.
2012-11-16 13:33:44 +01:00
Aleix Conchillo Flaque 6c855edf03 rtspsrc: allow client to disable reconnection
* gst/rtsp/gstrtspsrc.[ch]: added new "udp-reconnect" property. Before,
  rtspsrc always tried to reconnect to the server when the RTSP
  connection was closed by the server. This property lets the user
  decide whether it wants rtspsrc to reconnect or not.

  https://bugzilla.gnome.org/show_bug.cgi?id=683912
2012-11-16 12:55:10 +01:00
Wim Taymans e2a4d28c1f rtspsrc: clear variables before retrying
Else we might unref an old udpsrc twice in cleanup.
2012-11-16 12:17:37 +01:00
Wim Taymans cc9cb26be1 rtspsrc: propose ports in multicast
When the user configured a port-range, propose ports from this range
as the multicast ports. The server is free to ignore this request but if it
honours it, increment our ports so that we suggest the next port pair for the
next stream.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=639420
2012-11-16 12:17:37 +01:00
Wim Taymans 5025b3f1b3 rtspsrc: add more debug 2012-11-16 12:17:37 +01:00
Tim-Philipp Müller 6f1aa3e4d5 multifilesink: post messages in max-size mode as well
No reason not to really.
2012-11-16 09:13:22 +00:00
Wim Taymans c33507f186 udpsrc: post error before stopping 2012-11-15 14:48:59 +01:00
Tim-Philipp Müller bdf3c77828 gst_adapter_prev_timestamp -> gst_adapter_prev_pts
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-14 00:13:36 +00:00
Nicolas Dufresne 673d2d24b8 videoflip: Add NV12/NV21 support
https://bugzilla.gnome.org/show_bug.cgi?id=688225
2012-11-13 14:25:04 +01:00
Wim Taymans c755af0cb0 rtpsource: protect against invalid RTP packets 2012-11-12 11:18:30 +01:00
Tim-Philipp Müller 35fafae241 videocrop: add support for YV12
We can do I420, so we can do YV12 as well.
2012-11-10 18:21:28 +00:00
Alessandro Decina b916d2b398 multifilesink: don't write stream headers with key-unit-event
Don't write stream headers, let upstream elements insert them in the stream if
all_headers=true is set in key unit events.
2012-11-10 12:41:33 +01:00
Nicolas Dufresne e111068f7b videocrop: Add NV12/NV21 support
https://bugzilla.gnome.org/show_bug.cgi?id=687964
2012-11-10 01:52:44 +01:00
Sebastian Dröge c70ba7765a udpsrc: Also clear GError 2012-11-09 11:22:30 +01:00
Sebastian Dröge b86d20e45b udpsrc: Don't error out if we get an ICMP destination-unreachable message when trying to read packets
See bug #529454 and #687782 and commit
751f2bb364
2012-11-09 11:20:27 +01:00
Christian Fredrik Kalager Schaller 485505f323 Fix vp8rtp header names in Makefile 2012-11-07 13:36:33 +01:00
Nicolas Dufresne 1ad8ebac44 videocrop: Add support for automatic cropping
This change enable automatic cropping using -1 set to left, top, right or
bottom property. In the case both side are set to automatic cropping, the
croping will be done equally on both side (in the odd case, right and
bottom cropping will be 1 pixel more).

https://bugzilla.gnome.org/show_bug.cgi?id=687761
2012-11-07 11:20:24 +01:00
Marc Leeman 7cbca3dcd1 rtsp: the RTCP port number is inclusive
The configured port number pair has its upper bound set to the maximum
allowed RTCP port, inclusive.

See https://bugzilla.gnome.org/show_bug.cgi?id=639420
2012-11-06 13:22:58 +01:00
Tim-Philipp Müller beb3c9c9be Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Tim-Philipp Müller 230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Wim Taymans 9857e6af4d vrawdepay: don't access rtp buffer after unmap
Read the marker bit before we unmap the rtp packet.
2012-11-02 18:48:17 +00:00