Commit graph

6823 commits

Author SHA1 Message Date
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
Douglas Bagnall
0b898ab911 videoconvert: Compare y offset with height, not width, when testing for overlap
This could have prevented images showing that should have when the
source height is greater than its width.

When width exceeds height, as is common, it probably only caused a
miniscule amount of unnecessary work.  I haven't tested.
2012-11-02 09:29:30 +01:00
Tim-Philipp Müller
5ac789408b rtpvp8: include config.h and minor style fixes 2012-11-01 21:10:21 +00:00
Tim-Philipp Müller
4a849d6690 rtp: fix tabs/space mess in Makefile.am 2012-11-01 20:53:48 +00:00
Tim-Philipp Müller
321acd14dc rtp: move VP8 payloader and depayloader from -bad
Spec is still in draft state, but should hopefully not
change much now. Besides, we announce things as VP8-DRAFT-IETF-01
in our caps, so even if things change in incompatible ways it
should not break anything.

https://bugzilla.gnome.org/show_bug.cgi?id=687263
2012-11-01 20:53:48 +00:00
Tim-Philipp Müller
44efab8e3d rtpvp8: 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-11-01 20:53:48 +00:00
Mark Nauwelaerts
bc7dbbbd4f rtpvp8: replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-11-01 20:53:48 +00:00
Sebastian Dröge
4853001547 rtpvp8: update for GST_PLUGIN_DEFINE() API changes 2012-11-01 20:53:48 +00:00
Wim Taymans
fccfca38d4 rtpvp8: update for buffer changes 2012-11-01 20:53:48 +00:00
Danilo Cesar Lemes de Paula
3edffb13e3 rtpvp8; fix compatibility with the third draft
https://bugzilla.gnome.org/show_bug.cgi?id=671073
2012-11-01 20:53:48 +00:00
Mark Nauwelaerts
d9581832a0 rtpvp8: port some more to new memory API 2012-11-01 20:53:47 +00:00
Olivier Crête
c6761daa27 rtpvp8: port to 0.11 2012-11-01 20:53:47 +00:00
Sebastian Dröge
2c5ea76bdc rtpvp8pay: Fix typo 2012-11-01 20:53:47 +00:00
Youness Alaoui
1cf155d70d rtpvp8: Update the pay/depay to the ietf-draft-01 spec 2012-11-01 20:53:47 +00:00
Vincent Penquerc'h
88aade4150 rtpvp8: fix bitstream parsing using the wrong kind of bitreader
VP8 uses a probabilistic bool coder, not a straight bit coder.
This fixes parsing when error-resilient is set.

This commit includes a copy of libvpx's bool coder, BSD licensed.

https://bugzilla.gnome.org/show_bug.cgi?id=652694
2012-11-01 20:53:47 +00:00
Olivier Crête
97c3f3617c rtpvp8: Reject unknown bitstream versions 2012-11-01 20:53:47 +00:00
Edward Hervey
74a1a704bf rtpvp8: Fix unitialized variable
Makes macosx compiler happy.
2012-11-01 20:53:47 +00:00
Sjoerd Simons
6ed6318076 rtpvp8depay: Accept packets with only one byte of data
When fragmenting partions it can happen that an RTP packet only caries 1
byte of RTP data.
2012-11-01 20:53:47 +00:00
Sjoerd Simons
a45e7a3fc0 rtpvp8pay: Treat the frame header just like any other partition
When setting up the initial mapping just act as if the global frame
information is another partition. This saves special-casing it later in
the actual packetizing code.
2012-11-01 20:53:47 +00:00
Sjoerd Simons
e9f4e9342f rtpvp8: Add simple payloaders and depayloaders for VP8
Minimal implementation of http://www.webmproject.org/code/specs/rtp/,
version 0.3.2
2012-11-01 20:53:47 +00:00
Wim Taymans
d6fd0ebd04 gstpay: fix for 1.0 events
Caps events are sometimes not followed by a buffer but by an event. Flush any
pending caps before we make a packet with the event.
Chain up to the parent event handler before we attempt to push RTP packets, it
might be a segment event.
2012-11-01 18:42:39 +00:00
Wim Taymans
05232c55a5 gstdepay: fix small leak 2012-11-01 18:42:24 +00:00
Wim Taymans
08e5a197b4 gstdepay: add support for events
Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 18:18:19 +00:00
Wim Taymans
54b783b5a3 rtpgstpay: add support for sending events
We currently only send tags and custom events. The other events
might interfere with the receiver timings or are otherwise handled
by RTP.

Conflicts:
	gst/rtp/gstrtpgstpay.c
2012-11-01 18:06:11 +00:00
Wim Taymans
6502d08e43 gstpay: rewrite payloader
Use adapter to assemble the payload and make a flush function to
turn this payload into (fragmented) packets.

Conflicts:
	gst/rtp/gstrtpgstpay.c
	gst/rtp/gstrtpgstpay.h
2012-11-01 17:57:52 +00:00
Douglas Bagnall
e3c77ba709 videomixer: get height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH
https://bugzilla.gnome.org/show_bug.cgi?id=687330
2012-11-01 13:03:44 +00:00
Douglas Bagnall
79403bcb0c videbox: fix border filling for gray formats
Get the height via GST_VIDEO_FRAME_HEIGHT, not _WIDTH.

https://bugzilla.gnome.org/show_bug.cgi?id=687330
2012-11-01 13:02:16 +00:00
Wim Taymans
c0713e4b80 gstdepay: check for correct fragment offset
Make sure we only insert the rtp packet in the adapter when the
frag_offset matches. When the first packet of a fragment is dropped,
it avoids putting the remaining packets in the adapter and processing
the partial fragment.

Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 12:09:47 +00:00
Wim Taymans
8a402e0c06 gstpay: set C flag on all buffers of the fragment
Set the C flags on all the fragments instead of only those with
caps in them. This makes it easier in the receiver to check if there
is a caps in the assembled fragments just by looking at the last RTP
packet flags.
2012-11-01 12:06:08 +00:00
Wim Taymans
d78ff07f7d gstdepay: use the capsversion
Take the caps from the input caps and store it in the slot given
by capsversion.
2012-11-01 11:37:44 +00:00
Wim Taymans
936c3819b5 gstpay: send caps inline
Place the capsversion on the outgoing caps so that they end up in
an SDP as well. Receivers need to know what capsversion a particular
caps is for to be able to match the caps to the CV in the RTP packets.
Place the caps inside the RTP packet whenever the caps change.

Based on patch by Andrzej Bieniek <andrzej.bieniek@pure.com>

Conflicts:
	gst/rtp/gstrtpgstpay.c
	gst/rtp/gstrtpgstpay.h
2012-11-01 11:34:33 +00:00
Andrzej Bieniek
3b1931a039 gstpay: add debug
Conflicts:
	gst/rtp/gstrtpgstpay.c
2012-11-01 11:28:50 +00:00
Andrzej Bieniek
ee5ecc7773 depay: correctly skip caps header size
Conflicts:
	gst/rtp/gstrtpgstdepay.c
2012-11-01 11:27:13 +00:00
Tim-Philipp Müller
ef0805ea14 matroskademux: put streamheaders on vorbis/speex/flac/theora caps to make remuxing work
https://bugzilla.gnome.org/show_bug.cgi?id=640589
2012-10-30 23:29:46 +00:00
Tim-Philipp Müller
752cf98745 gst: fix variable order in some Makefile.am
https://bugzilla.gnome.org/show_bug.cgi?id=687013
2012-10-27 23:27:38 +01:00
Antoine Tremblay
a1c86de09a gst: add various missing GST_PLUGINS_BASE_LIBS in Makefile.am
Those plugins depend on either libgstaudio or libgstvideo,
which are in gst-plugins-base.

https://bugzilla.gnome.org/show_bug.cgi?id=687013
2012-10-27 23:26:41 +01:00
Alexey Fisher
29cd24bc41 matroskademux: mark invisible VP8 frames with the DECODE_ONLY flag
https://bugzilla.gnome.org/show_bug.cgi?id=654259
2012-10-27 14:46:02 +01:00
Stas Sergeev
238a5ec826 multifilesrc: fix stop index handling
Make sure the stop index is always honoured. Avoids
endless loop if one wants to read and output the same
file N times, for example.

https://bugzilla.gnome.org/show_bug.cgi?id=654853
2012-10-26 11:04:01 +01:00
Руслан Ижбулатов
78193dfe71 matroskademux: Support recursive SimpleTags
Fixes #682644
Depends on #682615
2012-10-26 10:16:42 +02:00
Руслан Ижбулатов
cd719bb808 matroskademux: Expand the tag mapping.
* Also expose unknown tags as key=value pairs.
* Arrange tag map in the same order tags are listed in Matroska spec, leaving
unmapped tags as comments.
* More specific TODOs.
* Remove duplicate DATE define.

Fixes #682615
Depends on #682524
2012-10-26 10:12:52 +02:00
Sebastian Dröge
6c635ce64f matroskademux: Fix uninitialized variable compiler warning 2012-10-26 10:09:39 +02:00
Руслан Ижбулатов
71fd688ef0 matroskademux: Matroska tag TargetType support
* Reads TargetType and TargetTypeValue from a Tag.
* After Tag is completely read, processes taglist, substituting some of the
tags depending on target type value and the presence of video/subtitle streams.
* Supports reading two new simpletags - PART_NUMBER and TOTAL_PARTS

Depends on #682448
Fixes #682524
2012-10-26 10:08:18 +02:00
Руслан Ижбулатов
b75628f041 matroskademux: Per-track tags for Matroska
Requires Matroska file to have sane layout (track info before tag info).
Uses replace-merge.
Makes track UIDs 64-bit.

Fixes #682448
2012-10-26 10:03:55 +02:00
Tim-Philipp Müller
fe7236230c multifilesrc: fix typo in property description 2012-10-25 20:19:44 +01:00
Michael Smith
a88caf84b4 qtdemux: read video format header fully (so we can find 'pasp' atoms) for more fourccs.
Fixes aspect ratio of prores files.
2012-10-25 12:18:50 -07:00
Thiago Santos
02d91dcd24 imagefreeze: the new get_caps already does the filter intersection
It should be faster to pass the caps to intersect as the filter caps,
rather than using NULL and intersecting 'manually' later.

https://bugzilla.gnome.org/show_bug.cgi?id=686837
2012-10-25 10:32:17 -03:00
Thiago Santos
115581eb2e imagefreeze: avoid assertion when using accept caps query
This query must receive a fixed caps, so imagefreeze should
fixate its framerate before sending the query downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=686837
2012-10-25 09:39:36 -03:00
Arnaud Vrac
bc79fe565c qtdemux: use correct type for channel-mask bitmask
Fixes crash on 32-bit systems.
2012-10-24 12:54:08 +01:00
Tim-Philipp Müller
7275860bdd flacparse: fix coverart extraction if vorbis comments come after picture header
See sample file for bug #684701.
2012-10-23 16:02:05 +01:00
Tim-Philipp Müller
7c41f42eec flacparse: ignore bad headers if we have a valid STREAMINFO header
If we run into any header parsing issues and we have a valid
STREAMINFO header already, don't error out, but just stop
header parsing and try to find some audio frames.

https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Tim-Philipp Müller
49cc719809 flacparse: post proper error message and fix buffer leak on header parsing error
https://bugzilla.gnome.org/show_bug.cgi?id=684701
2012-10-23 13:56:54 +01:00
Michael Smith
150bd97e96 qtdemux: with raw audio, set a default channel-mask for multichannel audio.
This doesn't actually parse 'chan' because it's absurdly complex.
2012-10-22 22:34:43 -07:00
Sebastian Rasmussen
9fc62a58e3 updsrc: fix typo causing compilation error
gstudpsrc.c: In function 'gst_udpsrc_create':
gstudpsrc.c:365: error: 'ret' may be used uninitialized in this function

https://bugzilla.gnome.org/show_bug.cgi?id=686642
2012-10-22 23:19:28 +01:00
Wim Taymans
a2eead3d60 avi_ fix invert function
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686550
2012-10-22 11:55:59 +02:00
Wim Taymans
0e3ef30c31 avi: fix debug 2012-10-22 11:55:22 +02:00
Wim Taymans
199aaa4021 qtdemux: add support for 'generic' samples
Add support for stuffing a complete stream into 1 sample.

See https://bugzilla.gnome.org/show_bug.cgi?id=686550
2012-10-22 11:39:37 +02:00
Tim-Philipp Müller
aa3ba65eb5 qtdemux: don't leak gst_riff_strf_auds in case of MS/RIFF audio
https://bugzilla.gnome.org/show_bug.cgi?id=681192
2012-10-19 19:26:45 +01:00
Mark Nauwelaerts
35cd53867c matroskamux: unsigned subtitle template 2012-10-19 16:14:01 +02:00
Youness Alaoui
13328bc129 videomixer2: Fix race condition where a src setcaps is ignored
If both pads receive data at the same time, they will both get their
sink_setcaps called which will call the src_setcaps, but there is
a race condition where the second one might not be called.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=683842
2012-10-19 12:10:31 +02:00
Mark Nauwelaerts
5742352e10 matroskamux: do not use unoffical V_MJPEG codec id
Since it's not spec'ed, consider it a VfW compatibility
case. Many applications (e.g. avidemux) don't understand
the unofficial V_MJPEG id.

Fixes #659837.

Conflicts:
	gst/matroska/matroska-mux.c
2012-10-18 18:29:40 +01:00
Tim-Philipp Müller
488549bb54 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-10-17 17:46:34 +01:00
Wim Taymans
e9040e90a5 jpegdepay: store quant tables in zigzag order 2012-10-17 14:23:01 +02:00
Wim Taymans
d5fd524a0c rtsession: fix compiler warning 2012-10-17 13:55:45 +02:00
Wim Taymans
26a21e85e2 rtpbin: clarify the ntp-sync option 2012-10-17 13:35:07 +02:00
Wim Taymans
f17db5c4ed rtpsession: update caps in the source
Inform the source when caps changed. This was removed in the port to 1.0
leaving the source unaware of the clock-rate and unable to interpollate
rtp timestamps for SR packets.
2012-10-17 13:22:40 +02:00
Wim Taymans
f4eef3f48d rtpbin: set PTS and DTS in jitterbufffer 2012-10-17 12:46:32 +02:00
Wim Taymans
796c1d8029 rtpbin: disable check for ntp-sync
Disable the check for the ntp-sync method. It is expected that
a rather larger offset needs to be applied with this method.
2012-10-17 12:27:03 +02:00
Wim Taymans
1cebcfa8c2 rtpbin: use running-time for NTP time
When use-pipeline-clock is set, use the running-time of the
pipeline to calculate the NTP timestamps. This method would previously
only work when the base-time is set to 0 but with this change it can
also work with different offsets and we can also implement pause/resume
of the sender and receiver now.
2012-10-17 12:26:05 +02:00
Wim Taymans
5ec642d0c3 videocrop: port to videofilter 2012-10-17 10:20:12 +02:00
Wim Taymans
3ef7c8ab93 videobox: use out_info for out properties 2012-10-17 09:36:50 +02:00
Wim Taymans
f701d980e6 median: small cleanups 2012-10-16 14:40:19 +02:00
Wim Taymans
0e21e80e9b median: remove now that it is in videofilter 2012-10-16 13:56:19 +02:00
Wim Taymans
9e67891f72 videomedian: copy media to videomedian
Copy the median video filter to videofilters and rename to
videomedian.
2012-10-16 13:47:24 +02:00
Wim Taymans
b893197317 media: port to 1.0 2012-10-16 13:16:29 +02:00
Tim-Philipp Müller
f94572fb36 avidemux: append palette data to paletted 8-bit RGB frames
Fixes playback of 8-bit indexed RGB videos, with fixes in -base.

https://bugzilla.gnome.org/show_bug.cgi?id=686046
2012-10-16 01:09:05 +01:00
Tim-Philipp Müller
e9682b938a qtdemux: don't assert if upstream size is not available when guessing bitrates
Fixes abort in push mode where the source is not seekable and the
size of the file is not available, as with

  cat foo.mp4 | gst-launch-1.0 playbin uri=fd://0

Less noticable with releases, since we disable all
g_assert() there.

https://bugzilla.gnome.org/show_bug.cgi?id=686008
2012-10-13 00:08:01 +01:00
Michael Smith
3a3a7c38aa qtdemux: allow more streams. Bump this constant to 32, which should be
enough for real-world files.
2012-10-12 14:38:33 -07:00
Michael Smith
d60c9ce2a4 qtdemux: support more different fourcc values for other ProRes variants. 2012-10-12 14:35:49 -07:00
Wim Taymans
adb70e89f9 rtspsrc: remove unused include 2012-10-10 12:05:34 +02:00
Rasmus Rohde
11ed7c0373 multiudpsink: add multicast-iface property
udpsrc already has support for setting the multicast interface, which
is useful for multi-homed machines. This patch adds the same code to
the multiudpsink.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685864
2012-10-10 11:48:25 +02:00
Wim Taymans
54f049c355 multiudpsink: don't error on send errors but only warn
Don't error on send errors but simply post a warning, it's possible
that the next packet will be fine.
2012-10-10 11:32:17 +02:00
Rasmus Rohde
6c169312d1 multiudpsink: add force-ipv4 option
Add an option to the multiudpsink that makes it possible to force
the use of an IPv4 socket.

This can e.g. be used to handle the issue described in
https://bugzilla.gnome.org/show_bug.cgi?id=682481
2012-10-10 10:28:24 +02:00
Wim Taymans
2955f0e10c multiudpsink: remove unused field 2012-10-10 10:18:52 +02:00
Wim Taymans
f4e1bb02b7 udpsrc: use negotiated allocator or pool
Use the base class to allocate a buffer for us because it knows how
to use the negotiated allocator or bufferpool.
2012-10-10 10:10:26 +02:00
Wim Taymans
e8d951ed68 multiudpsink: post error when something goes wrong 2012-10-10 10:09:37 +02:00
Wim Taymans
15c2b997e9 spectrum: elements post element messages 2012-10-10 10:09:10 +02:00
Michael Smith
7aed5a4b4b deinterleave: output channels should be marked as MONO, not FRONT_LEFT, if
we're not preserving input channel positions.
2012-10-05 15:12:27 -07:00
Michael Smith
7522cd1595 interleave: use gst_audio_channel_positions_to_mask instead of a local copy
of half of it. Handles some values more correctly.
2012-10-04 15:13:20 -07:00
Rasmus Rohde
47a8eb7ca8 gstrtpdepay: don't leak input buffer
The rtp buffer is never unmapped in the normal code exit path
of gst_rtp_gst_depay_process(..) resulting in a memory leak.

https://bugzilla.gnome.org/show_bug.cgi?id=685512
2012-10-04 19:44:28 +01:00
Sebastian Dröge
1ac6a782c3 videobalance: Add support for NV12 and NV21 2012-10-04 18:37:48 +02:00
Patricia Muscalu
7a863e4d8d rtph264pay: do not push unmapped data
Also do not use a GstBuffer after it has been pushed into the adapter.

https://bugzilla.gnome.org/show_bug.cgi?id=685213
2012-10-04 09:22:50 +01:00
Michael Smith
b04b1b5089 meta info: threadsafe registration using g_once 2012-10-03 10:51:45 -07:00
Mark Nauwelaerts
b10829d6c8 avidemux: push mode; handle some initial junk before hdrl list
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685059
2012-10-01 15:50:53 +02:00
Tim-Philipp Müller
e6d37eb30a Purge references to liboil
https://bugzilla.gnome.org/show_bug.cgi?id=673285
2012-09-29 12:41:37 +01:00
Mark Nauwelaerts
cb0e4b2059 avidemux: recognize all xsub frames as keyframes
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684977
2012-09-28 17:04:42 +02:00
Mark Nauwelaerts
511dfa5ee5 avidemux: push mode: find the correct chunk for segment following seek
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684977
2012-09-28 17:04:42 +02:00
Arnaud Vrac
f0db4a8213 qtdemux: fix parsing in push mode when moov atom is at the end
When playing an mp4 file with the MOOV atom at the end of the file, playback
fails with the error message "no 'moov' atom within the first 10 MB". This is
due to a mistake in the upstream_size typing, making the seek to the end of
file never happening.

https://bugzilla.gnome.org/show_bug.cgi?id=684972
2012-09-27 22:20:19 +01:00
Andre Moreira Magalhaes (andrunko)
25803d651b gamma: remove duplicate entries at format at caps
Avoids extra caps/structures processing
2012-09-27 15:50:49 -03:00
Wim Taymans
dbe941338d rtpvrawdepay: negotiate pool with srcpad caps 2012-09-27 14:15:50 +02:00
Tim-Philipp Müller
f5e0321dfc videomixer: clear video frame more correctly
Make sure not to touch memory that doesn't belong to
our frame, we might be one part of a side-by-side 3D
frame, or in a picture-in-picture scenario.
2012-09-26 09:28:59 +01:00
Tim-Philipp Müller
c203ce2dbe flvdemux: minor clean-up
Use GstByteWriter, because we can, and g_value_take_boxed.
2012-09-26 00:44:59 +01:00
Dmitriy Samonenko
7d4b6f655e flvdemux: fix speex audio decoding by creating fake stream header
https://bugzilla.gnome.org/show_bug.cgi?id=683622
2012-09-26 00:16:06 +01:00
Tim-Philipp Müller
626e0258e3 videomixer: fix warnings when using transparent background
gst_video_frame_map() increases the refcount, which makes
the buffer not writable any more technically, so calling
gst_buffer_memset() on it will cause nasty warnings.

Unit test disabled because it very rarely (for me)
fails, possibly negotiation-related.

https://bugzilla.gnome.org/show_bug.cgi?id=684398
2012-09-25 23:31:34 +01:00
Robert Swain
03e5376827 deinterlace: Add some useful debug logging 2012-09-25 17:05:37 +02:00
Robert Swain
33dd81569f deinterlace: Fix telecine
This only affects behaviour in telecine cases with pattern locking
enabled. The default case should be untouched.

This works with the output from fieldanalysis at least, but the field
order looks swapped for telecine mixed buffers with the
David_slides_Schleef clip.
2012-09-25 17:04:54 +02:00
Edward Hervey
ac9394de29 videomixer: Fix leak 2012-09-25 14:18:35 +02:00
Tim-Philipp Müller
ebe0b1887a smpte: send stream-start event 2012-09-23 16:51:31 +01:00
Tim-Philipp Müller
8e3c7fa799 multipartmux: send stream-start event 2012-09-23 16:51:24 +01:00
Tim-Philipp Müller
154404fa43 matroskamux: send stream-start 2012-09-23 16:33:35 +01:00
Tim-Philipp Müller
bc37b9f4fc qtmux: send stream-start event 2012-09-23 16:33:35 +01:00
Tim-Philipp Müller
ea7f8a919c interleave: add a bunch of FIXMEs
Needs some more work, so stream-start, caps and tags are
sent in the right order.
2012-09-23 16:33:35 +01:00
Tim-Philipp Müller
1c3c8c64e6 flvmux: send stream-start event 2012-09-23 16:33:34 +01:00
Tim-Philipp Müller
c3f62d7ead avimux: send stream-start event 2012-09-23 16:33:34 +01:00
Olivier Crête
0363c1cebf rtpdtmfdepay: Use 1.0-style caps negotiation and audio/x-raw 2012-09-22 15:00:27 -04:00
Tim-Philipp Müller
8b20603f8b rtspsrc: answer URI query
Without this, something also answered the query
with TRUE but without setting a uri, not sure
what that was..
2012-09-21 23:33:47 +01:00
Olivier Crête
bc252d29ee rtph264pay: Make sure the caps don't have duplicated sps/pps 2012-09-21 17:36:12 -04:00
Michael Smith
1026970347 qtdemux: 24 bit audio here is S24LE, not S24_3LE. 2012-09-20 18:01:52 -07:00
Robert Swain
480b894642 deinterlace: Remove incorrect logic
I don't understand why these lines were added, they don't make sense to
me now and both David and I agree that removing them moves closer to
related logic being correct, therefore, they're being removed.

I've tested a few progressive, interlaced and telecine clips and they
all behave properly timestamp-wise and visually after these changes.
2012-09-19 00:39:01 +02:00
Robert Swain
a35a931555 deinterlace: Fix field duration
The frame rate fraction is correctly adjusted in the cases preceding the
field duration calculation and so the factor of 2 is incorrect.
2012-09-19 00:17:49 +02:00
Michael Smith
63716151ef videobox: Fix U/V strides for a number of cases. 2012-09-18 10:34:03 -07:00
Mark Nauwelaerts
eda9c8b3cf videomixer: init videoinfo
... to prevent random bogus caps fields.
2012-09-18 12:15:17 +02:00
Mark Nauwelaerts
8c28a60eee videomixer: chain up to collectpads query function 2012-09-18 12:15:17 +02:00
Nicolas Dufresne
76da367ecd videomixer: Don't let GstCollectPad shadow custom sink pad query func
In the current implementation, the custom pad query function is not called.
This patch, set that query function on the GstCollectPads to avoid this
shadowing.

See https://bugzilla.gnome.org/show_bug.cgi?id=684237
2012-09-18 12:14:43 +02:00
Mark Nauwelaerts
3eee42fdfc use gst_element_factory_get_metadata to replace obsolete API 2012-09-15 19:06:06 +02:00
Mark Nauwelaerts
0380de3f95 replace gst_element_class_set_details_simple with gst_element_class_set_metadata 2012-09-14 17:27:49 +02:00
Wim Taymans
829c80ce6c fix more caps 2012-09-14 13:30:37 +02:00
Jan Schmidt
a27deda053 deinterlace: Don't treat every custom-downstream event as EOS
Don't fall through to the EOS handling after receiving a
custom-downstream event.
2012-09-12 12:23:08 -07:00
Stefan Sauer
f874922e1c collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:05:44 +02:00
Mark Nauwelaerts
d6ca569c29 udp: add include for IPPROTO_* 2012-09-12 17:14:46 +02:00
Mark Nauwelaerts
58c96df0ae udp: properly match braces and cpp directives
Fixes compilation where IPV6_TCLASS not defined.
2012-09-12 16:39:08 +02:00
Edward Hervey
8498551692 shapewipe: Use default query handler where needed
And clean up get_caps code while I'm at it
2012-09-12 14:42:07 +02:00
Wim Taymans
1c64a91a50 deinterlace: improve framerate transform
Handle G_MAXINT in the framerates better. If we cannot double or divide the
framerate, clamp to the smallest/largest possible value we can express instead
of failing.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683861
2012-09-12 13:28:07 +02:00
Wim Taymans
6d9f9bf11a deinterlace: small cleanup 2012-09-12 13:17:54 +02:00
Youness Alaoui
c3d619be67 videomixer2: Adding nv12 and nv21 support
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683841
2012-09-12 10:46:22 +02:00
Michael Smith
4f015c594c qtdemux: add support for prores
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683839
2012-09-12 10:18:53 +02:00
Mark Nauwelaerts
f12ef67f56 ext, gst: only activate in pull mode if upstream is seekable 2012-09-11 17:44:51 +02:00
Wim Taymans
a374217786 qtdemux: don't reset segment
Don't reset the segment because we need the values for accumulation. the segment
is reset at start and after a flushing seek. Fixes some problems with files with
quicktime segments.
2012-09-11 11:59:54 +02:00
Mark Nauwelaerts
8d93246b93 gst: adjust comment style 2012-09-10 14:31:02 +02:00
Mark Nauwelaerts
ca36de1e8f avidemux: remove defunct commented code 2012-09-10 14:30:42 +02:00
Tim-Philipp Müller
6dc7b4c3c7 video/x-3ivx and video/x-xvid -> video/mpeg,mpegversion=4
If it ever turns out that we really must use thoe specific
fourccs and not the generic one, we can still add a flavor
field to the caps later.
2012-09-10 00:43:24 +01:00
Daniela
03fbd7ec6e rtspsrc: avoid leak
When setup fails, make sure to cleanup afterwards.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=673509
2012-09-07 16:33:18 +02:00
Mark Nauwelaerts
f24b58d19c rtpamrdepay: unmap rtp buffer
... thereby plugging a memleak.
2012-09-07 15:25:53 +02:00
Mark Nauwelaerts
fa90dfc4df rtph264pay: avoid crashing on NULL access in debug message 2012-09-07 15:25:52 +02:00
Mark Nauwelaerts
8f4bfeb698 rtph263ppay: plug caps leak 2012-09-07 15:25:52 +02:00
Wim Taymans
ecaa2624d3 deinterlace: remove redundant _set_allocation call 2012-09-06 17:09:20 +02:00
Mark Nauwelaerts
1ce09d7ef9 deinterlace: plug some leaks 2012-09-06 17:05:49 +02:00
Wim Taymans
510482b01a deinterlace: reuse core function for GCD 2012-09-06 16:52:18 +02:00
Mark Nauwelaerts
9d4579b38a deinterlace: support filter in getcaps 2012-09-06 16:31:17 +02:00
Mark Nauwelaerts
a4458f5f74 deinterlace: do not leak getcaps result 2012-09-06 16:31:17 +02:00
Wim Taymans
45e5ec29ac deinterlace: add support for bufferpool
Add bufferpool support to avoid a memcpy in the videosink when actively
interlacing.
Remove some commented obsolete code.
2012-09-06 16:25:05 +02:00
Wim Taymans
f59fb16f58 deinterlace: proxy allocation query in passthrough
We can let the allocation query pass when we are operating in passthrough mode.
2012-09-06 13:38:52 +02:00
Wim Taymans
4efdbc97a5 deinterlace: use default event functions
instead of blindly forwarding unknown events.
2012-09-06 13:23:46 +02:00
Wim Taymans
a557282aaa deinterlace: small cleanups 2012-09-06 13:23:30 +02:00
Wim Taymans
f1ef3b4983 deinterlace: call default query handlers
Call the default query handler instead of forwarding the query blindly. Fixes
issues of strides because of proxying the allocation query wrongly.
2012-09-06 12:56:30 +02:00
Wim Taymans
6693a22875 videobalance: avoid deadlock
_update_properties takes the object lock and should not be called when the
object lock is already taken.
2012-09-04 12:35:53 +02:00
Tim-Philipp Müller
aeba106878 matroskamux: extract interlaced-ness of video track from interlace-mode field
instead of the old boolean "interlaced" field.
2012-09-03 12:46:03 +01:00
Tim-Philipp Müller
9bf90f47cf video/x-xvid -> video/mpeg,mpegversion=4 2012-09-03 02:51:24 +01:00
Tim-Philipp Müller
fb0f3c17f5 text/plain + text/x-pango-markup -> text/x-raw 2012-09-02 02:50:50 +01:00
Tim-Philipp Müller
b27ac94af2 gst_message_new_duration -> gst_message_new_duration_changed 2012-09-02 01:31:53 +01:00
Wim Taymans
5b394385b9 session: also stop probatation on existing sources
Receiving an RTCP packet should also stop probation on sources we have seen
before.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683065
2012-08-30 22:07:24 +02:00
Aleix Conchillo Flaque
4a200b670f rtp: make rtp packet probation configurable (bug #682512) 2012-08-30 21:49:57 +02:00
Mark Nauwelaerts
a2475a40a5 flacparse: fixup 0.11 port of suspect frame checking
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682959
2012-08-30 11:30:01 +02:00
Mark Nauwelaerts
e1881d1e44 avidemux: avoid invalid H264 bytestream codec_data
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681369
2012-08-28 19:01:11 +02:00
Mark Nauwelaerts
e523b42d41 qtdemux: port segment event creation to 0.11 2012-08-28 19:01:11 +02:00
Mark Nauwelaerts
748304ced7 qtdemux: release extra event ref when replacing pending newsegment event 2012-08-28 16:28:29 +02:00
David Corvoysier
d0eed20428 isomp4: add DASH tfdt box support
MPEG DASH has defined a set of new boxes to specify duration, indexes and
offsets of ISOBMFF fragments.

The Track Fragment Base Media Decode Time (tfdt) Box can in particular be
included inside a traf box to specify the absolute decode time, measured on the
media timeline, of the first sample in decode order in the track fragment.

This information can be used by the isomp4 demux to find out the current position of
an MP4 fragment in the timeline.

This patch adds code to isomp4 to:
- parse the tfdt box
- adjust the time/position member of the new segment sent when playback starts

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677535
2012-08-28 16:28:27 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
e4cb67fad8 docs: gst-launch-0.11 -> gst-launch-1.0 2012-08-27 21:20:29 +01:00
Tim-Philipp Müller
045c4b6ec8 deinterlace: the field in caps is "interlace-mode" not "interlace-method"
Fix deinterlace unit test. Need to set right field on output caps.
Also remove right field (not old 0.10 "interlaced" boolean field)
from caps in unit test before comparing old and new.
2012-08-27 21:20:29 +01:00
Michael Rubinstein
6ea5d31456 videomixer: fix endianness check on systems where non-glib endianness defines are not set
On Windows LITTLE_ENDIAN without the G_ in was not defined,  so the
test comes out wrong.
2012-08-24 19:45:11 +01:00
Wim Taymans
916e4c86fa udpsink: don't crash on NULL error
Check if there is an error before retrieving its message.

See https://bugzilla.gnome.org/show_bug.cgi?id=682481
2012-08-22 17:27:27 +02:00
Aleix Conchillo Flaque
8d864dbbfc rtspsrc: make jitterbuffer drop-on-latency available (fix #682055)
Conflicts:

	gst/rtsp/gstrtspsrc.h
2012-08-22 10:39:19 +02:00
Tim-Philipp Müller
bce47066ca video/x-dvd-subpicture -> subpicture/x-dvd 2012-08-20 23:30:38 +01:00
Tim-Philipp Müller
6ee9a7d228 multifilesrc: fix example pipeline in docs 2012-08-17 20:52:42 +01:00
Stefan Sauer
1f255a585b equalizer: enable presets for the n-band equalizer
Add a test for saving and restoring the preset.
2012-08-17 15:01:40 +02:00
Tim-Philipp Müller
0d148d9c6f deinterlace: fix not-negotiated errors on variable or missing framerate in input caps
Remove some bogus code I added during porting that would error out
on missing or variable framerates in input caps. Handle this like
we do in 0.10

Fixes test_mode_disabled_passthrough unit test check.
2012-08-14 01:20:19 +01:00
Sjoerd Simons
b19b914d3a law: Filter layout caps field
The layout caps field shouldn't be passed through to the sink pad
of {mu,a}lawdec.

https://bugzilla.gnome.org/show_bug.cgi?id=681677
2012-08-13 08:52:58 +02:00
Olivier Crête
264bcf7d6f rtph264pay: Make it actually work after cleanups 2012-08-08 19:49:05 -07:00
Sebastian Dröge
6586e42384 gst: Set alignment at the correct place of GstAllocationParams 2012-08-08 17:41:42 +02:00
Sebastian Dröge
6f74b2afb7 gst: Set alignment at the correct place of GstAllocationParams 2012-08-08 17:41:31 +02:00
Tim-Philipp Müller
0e6b66a2a0 gst: update disted orc files 2012-08-08 15:10:37 +01:00
Tim-Philipp Müller
787c314ec3 Silence some 'variable may be used uninitialized' compiler warnings
When compiling with -DG_DISABLE_ASSERT
2012-08-08 11:31:59 +01:00
Tim-Philipp Müller
4de8bd004c No code with side-effects inside g_assert() please 2012-08-08 11:07:55 +01:00
Olivier Crête
b4ff570532 multiudpsink: Return FLUSHING instead of ERROR on unlock
If the base class asks multiudpsink to unlock, then it should return
FLUSHING, not ERROR
2012-08-07 11:31:32 -07:00
Mark Nauwelaerts
2d179ebf90 flacparse: generate empty vorbiscomment for complete streamheaders if needed
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681335
2012-08-07 12:24:42 +02:00
Olivier Crête
2e21ace12c rtpssrcdemux: Block pad while it is announced.
Block the RTP pad and associated RTCP pads while they are being
announced. This it to prevent a race where one is announced and
before the callback has connected it, the other one gets a buffer.

We can't use the "padlock" of ssrcdemux because it causes deadlocks.
2012-08-06 18:04:58 -07:00
Mark Nauwelaerts
1547fdbe5a rtpmparobustdepay: set correct data_size for generated dummy frame
... which prevents getting stuck in a loop if such one is needed.
2012-08-06 14:58:21 +02:00
Mark Nauwelaerts
3e1832f5a4 rtpmparobustdepay: improve and fix debug statement
... so it really informs about next rather than past frame.
2012-08-06 14:58:21 +02:00
Mark Nauwelaerts
31a1cb0a11 rtpmparobustdepay: update available bytewriter space when repositioning
... and add some more assert to catch potential surprises early on.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680558
2012-08-06 14:58:21 +02:00
Sebastian Dröge
7b5925b5a4 gst: Add stream-id to stream-start events 2012-08-06 13:43:57 +02:00
Sebastian Dröge
46255d6ada matroskademux: Chain up to the parent class' query handler if no pad is provided 2012-08-06 10:59:18 +02:00
Olivier Crête
2aa360c936 rtpssrcdemux: Release lock before signalling new pad
This prevents a deadlock where something would try to push an event
through the SSRC demux from the callback, causing the pads to be iterated
and the lock taken.
2012-08-04 18:14:28 -07:00
Tim-Philipp Müller
c074bfd0b9 gst_tag_list_free -> gst_tag_list_unref 2012-08-04 16:10:16 +01:00
Mark Nauwelaerts
a549b0bf2c rtspsrc: manage race between connection closing and flushing
... where the former can happen in task thread and the latter in mainloop
upon downward state change.
2012-08-03 14:10:32 +02:00
René Stadler
75ee20ec67 qtdemux: fix double unref of private tag buffer 2012-08-01 12:16:41 +02:00
Anton Belka
86c236a5f6 wavparse: create TOC as needed
Avoid creating the toc if the wav has no or empty cue chunk.
Also a small code cleanup.
2012-07-30 20:39:19 +02:00
Tim-Philipp Müller
1ddb71e5b6 wavparse: update for TOC API changes 2012-07-28 11:26:01 +01:00
Tim-Philipp Müller
5b4eb723b6 matroska: update for TOC API changes 2012-07-28 11:22:43 +01:00
Tim-Philipp Müller
1d5ed57cfa flacparse: update for TOC API changes 2012-07-28 11:20:08 +01:00
Sebastian Dröge
0827f54b93 tag: Update for taglist/tag event API changes 2012-07-28 00:19:51 +02:00
Mark Nauwelaerts
dd25411161 qt(de)mux: pass private blob tags in a sample
... rather than a buffer, and the detailed info in the sample info
rather than caps.
2012-07-27 12:12:13 +02:00
Robert Swain
af7fee714d videocrop: Don't return NULL from _transform_caps
If _transform_caps () returns NULL, the basetransform _transform_caps
tries to call gst_caps_is_subset () with a NULL subset which hits an
assertion.
2012-07-27 11:33:12 +02:00
Mark Nauwelaerts
0bf9d8c6a6 rtpmparobustdepay: modify buffer data rather than buffer itself 2012-07-26 16:34:52 +02:00
Mark Nauwelaerts
c40807f6aa rtpmparobustdepay: avoid leaking bytewriter instance 2012-07-26 16:34:52 +02:00