Sebastian Dröge
991758c3d6
decodebin: For adaptive streaming, ensure to put the buffering multiqueue after a parser or demuxer
...
There are cases when there is no demuxer involved that could do the
buffering, e.g. HLS with raw MP3 or AAC. In this case we want to place
the buffering multiqueue after the parser.
Before this change, we've considered the first element after the
adaptive streaming demuxer as a parser. This is not always true, e.g.
id3demux. Instead we now wait until we actually have a parser (or
decoder).
Fixes playback on such HLS streams.
2016-12-15 16:31:20 +02:00
Seungha Yang
c4929b8647
playback: Add ANY caps features to default text raw caps
...
Raw text caps with any caps features should be also default raw caps
https://bugzilla.gnome.org/show_bug.cgi?id=775967
2016-12-12 11:10:50 +02:00
Seungha Yang
49653b058a
decodebin3: Remove unused variable
...
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
582c7cef18
decodebin3: More cleanup DecodebinOutputStream and MultiQueueSlot
...
When removing DecodebinInputStream, cleanup DecodebinOutputStream and
MultiQueueSlot also if they were drained.
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
6bd7a5602c
decodebin3: Drop duration query during _input_pad_unlink ()
...
Playbin3 takes lock when querying duration and handling
stream-collection message. So,to post stream-collection message,
duration query should be dropped when input pad is being unlinked.
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
7e76405895
decodebin3: Update stream-collection with _input_pad_unlink()
...
Since parsebin does not post new stream-collection message when
it was being removed, decodebin3 should update it itself.
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
f08e4592a4
decodebin3: Cleanup no more used DecodebinInput
...
Remove DecodebinInput using gst_element_call_async() API.
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
bd6ec225b9
decodebin3: Cleanup no more used MultiQueueSlot
...
Since MultiQueueSlot cannot be removed inside of streaming thread,
use gst_element_call_async() API.
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
4fcbcf4e48
decodebin3: Send custom-eos event to notify drained state
...
Likewise how urisourcebin is doing, use custom event if other streams
are still alive.
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
f4d6aa7167
playbin3: Reconfigure playsink again with pad-removed
...
If selected streams and actived streams are matched,
do reconfigure of playsink again with pad-removed signal
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
858ee3d913
playback: Remove trailing whitespace
...
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
cbd4bcd7a4
urisourcebin: Try to link output slot before cleanup
...
Before cleaning up output slot, check pending pads first, if available.
Then, cleanup it only if linking was failed.
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Seungha Yang
5760bd4543
urisourcebin: Cleanup unused output slot
...
Since urisourcebin cannot cleanup unused output slot
in streaming thread, it will be handled in thread pool
with gst_element_call_async ().
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-12-08 16:59:07 +01:00
Garima Gaur
6c5381eda6
playbin: Fix caps memory leak in usage of gst_static_caps_get() API
...
https://bugzilla.gnome.org/show_bug.cgi?id=775310
2016-11-29 13:42:28 +02:00
Garima Gaur
b2b8e77566
subtitleoverlay: Fix caps memory leak when failing to get sinkpad from subtitle renderer
...
https://bugzilla.gnome.org/show_bug.cgi?id=775224
2016-11-28 13:56:33 +02:00
Jan Schmidt
8a20b06e0b
playsink: warn if a custom sink is set that has no 'sink' pad
2016-11-17 00:43:58 +11:00
Wonchul Lee
08ee940de2
playbin3: remove dead code
...
It never reach into this code path, custom_combiner always not null
here.
https://bugzilla.gnome.org/show_bug.cgi?id=774454
2016-11-16 00:17:18 +11:00
Seungha Yang
364a45267e
decodebin3: Clear saw_eos flag of DecodebinInputStream by FLUSH event
...
Likewise how GstPad is doing, saw_eos flag of DecodebinInputStream
must be cleared by FLUSH event.
https://bugzilla.gnome.org/show_bug.cgi?id=774343
2016-11-15 21:38:27 +11:00
Wonchul Lee
8b95d17f75
playbin3: Fix deadlock when adding multiple parsebin
...
https://bugzilla.gnome.org/show_bug.cgi?id=773131
2016-11-15 20:37:00 +11:00
Scott D Phillips
ff8d49a4c8
Use intermediate guint when handling GstVideoMultiviewFlags
...
The underlying integer type of the enum GstVideoMultiviewFlags is
implementation defined and may not have the same size as guint.
https://bugzilla.gnome.org/show_bug.cgi?id=774293
2016-11-12 10:51:30 +02:00
Changbok Chea
14ce96a459
urisourcebin: Fix adaptive demuxer's property checking and buffering setting
...
- Add adaptive demuxer's 'connection-speed' property checking
- Set adaptive demuxer q2 buffering property via urisrc use_buffering value
https://bugzilla.gnome.org/show_bug.cgi?id=772550
2016-11-02 11:23:44 +11:00
Seungha Yang
6dbfbead61
urisourcebin: Remove trailing whitespace
...
https://bugzilla.gnome.org/show_bug.cgi?id=773341
2016-11-01 20:06:43 +02:00
hoonhee.lee
1820c18b0f
parsebin: Rename variables include 'decode' to 'parse'
...
https://bugzilla.gnome.org/show_bug.cgi?id=772832
2016-11-01 20:01:20 +02:00
Wonchul Lee
dc7fd9c1f1
urisourcebin: Fix GST_TYPE_URI_SOURCE_BIN macro typo
...
https://bugzilla.gnome.org/show_bug.cgi?id=772445
2016-11-01 20:00:27 +02:00
Wonchul Lee
7c9626a3f4
urisourcebin: fix to log event pointer
...
https://bugzilla.gnome.org/show_bug.cgi?id=772445
2016-11-01 20:00:27 +02:00
Wonchul Lee
9e8c0d224b
urisourcebin: Make use of adaptive demuxer variable
...
https://bugzilla.gnome.org/show_bug.cgi?id=772445
2016-11-01 20:00:27 +02:00
Graham Leggett
98ea3e4647
decodebin3: Fix assertion failure when unreffing NULL stream caps
...
GStreamer-CRITICAL **: gst_mini_object_unref: assertion 'mini_object != NULL' failed
https://bugzilla.gnome.org/show_bug.cgi?id=773441
2016-10-25 12:43:22 +03:00
Seungha Yang
5f2c0c8ea7
decodebin3: More SELECTION_LOCK when linking to slot
...
Since there can be multiple parsebin in a decodebin3,
linking parsebin with MultiQueueSlot should be protected also.
https://bugzilla.gnome.org/show_bug.cgi?id=772855
2016-10-14 08:29:46 +02:00
Edward Hervey
8485a8d786
playback: GstStreamType is a flag
...
Therefor don't use equality
2016-10-13 11:42:28 +02:00
Edward Hervey
acc3a9d242
playback: decodebin3 and parsebin are streams-aware
...
Elements within can add/remove pads at anytime without complying
with the fallback system.
https://bugzilla.gnome.org/show_bug.cgi?id=772741
2016-10-12 15:05:55 +02:00
Wonchul Lee
778ffac86a
parsebin: re-use existing compare_factories utils func
...
https://bugzilla.gnome.org/show_bug.cgi?id=772676
2016-10-11 16:08:27 +01:00
Edward Hervey
262b9bfd07
playbin3: Remove fallback properties/signals
...
These can all be used via the GstStream API
https://bugzilla.gnome.org/show_bug.cgi?id=769079
2016-09-27 10:11:56 +01:00
Sebastian Dröge
0c151f6bb2
streamsynchronizer: Correctly calculate group start times in reverse playback mode
...
We have to calculate from the segment.stop, not the segment.start, as
playback goes from stop to start. This fix works around another race
condition in streamsynchronizer in my testcase.
See https://bugzilla.gnome.org/show_bug.cgi?id=771479
2016-09-20 15:13:52 -04:00
Sebastian Dröge
d5e8b7df6c
playback: Use new gst_bin_set_suppressed_flags() API instead of worrying about the flags in multiple places
2016-09-12 18:37:21 +02:00
Sebastian Dröge
32aebd7baf
playback: Mark internal functions as G_GNUC_INTERNAL
2016-09-01 13:07:07 +03:00
Wonchul Lee
0cc3f199ca
playbackutils: Move compare_factories_func
...
Move _decode_bin_compare_factories_func function to playbackutils
https://bugzilla.gnome.org/show_bug.cgi?id=770692
2016-09-01 13:06:51 +03:00
Josep Torra
970ea49d30
decodebin: forward sticky events on multiqueue
...
When connecting a demuxer through a multiqueue ensure to copy sticky
events in order to allow the following factory being properly
checked that it is functional.
https://bugzilla.gnome.org/show_bug.cgi?id=769580
2016-08-25 11:22:46 +02:00
Matej Knopp
89554f665b
parsebin: do not set global tags to stream
...
https://bugzilla.gnome.org/show_bug.cgi?id=770053
2016-08-21 15:51:34 +01:00
Nirbheek Chauhan
5c4f4ac1bd
Add support for Meson as alternative/parallel build system
...
https://github.com/mesonbuild/meson
With contributions from:
Tim-Philipp Müller <tim@centricular.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)
Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded
... and many more. For more details see:
http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-20 11:09:51 +01:00
Tim-Philipp Müller
d2e5361927
playbin3: add "element-setup" signal
...
Allows configuration of plugged elements.
https://bugzilla.gnome.org/show_bug.cgi?id=578933
2016-08-08 20:04:58 +01:00
Guillaume Desmottes
f66e6839c5
decodebin3: don't leak alternate inputs
...
Fix leaks (including parsebin elements) with this pipeline:
playbin3
uri=http://127.0.0.1:8079/defaults/exMPD_BIP_TC1/exMPD_BIP_TC1.mpd
https://bugzilla.gnome.org/show_bug.cgi?id=769270
2016-08-04 11:18:05 +02:00
Guillaume Desmottes
487ef12fd1
decodebin3: fix output->decoder_{sink,src} leak
...
output->decoder_sink and output->decoder_src are both going to be
replaced in the 2 branches of the following 'if'.
https://bugzilla.gnome.org/show_bug.cgi?id=769270
2016-08-03 17:49:45 +02:00
Guillaume Desmottes
acbaa83450
decodebin3: fix tag list leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=769270
2016-08-03 17:49:45 +02:00
Guillaume Desmottes
0b77ede079
decodebin3: consume select-streams event
...
https://bugzilla.gnome.org/show_bug.cgi?id=769270
2016-08-03 17:49:45 +02:00
Guillaume Desmottes
ba74c06721
decodebin3: fix collection ref handling
...
gst_stream_collection_add_stream() consumes the collection reference
passed to it but gst_stream_collection_get_stream() is (transfer none).
Fix this pipeline:
playbin3
uri=http://127.0.0.1:8079/defaults/exMPD_BIP_TC1/exMPD_BIP_TC1.mpd
https://bugzilla.gnome.org/show_bug.cgi?id=769270
2016-08-03 17:40:05 +02:00
Guillaume Desmottes
500e4117bb
decodebin3: handle full removal of streams
...
Fix the
validate.file.playback.disable_subtitle_track_while_paused.* validate
scenarios when using playbin3.
https://bugzilla.gnome.org/show_bug.cgi?id=769298
2016-08-03 17:37:30 +02:00
Tim-Philipp Müller
43524d637c
parsebin: maintain original order when creating fallback stream collection
2016-07-26 15:23:15 +01:00
Jan Schmidt
828cb0d86a
decodebin: Send stream-group-done to unblock downstream
...
When processing EOS for a pad, send a stream-group-done
for the pad in case downstream is waiting for more
data on this stream before it can process related
streams from the group.
https://bugzilla.gnome.org/show_bug.cgi?id=768995
2016-07-25 19:56:17 +10:00
Guillaume Desmottes
c1f37edfd9
playbin3: fix collection leak
...
The collection referenced owned by playbin3 was not released when it was
destroyed.
https://bugzilla.gnome.org/show_bug.cgi?id=769080
2016-07-25 09:02:53 +02:00
Guillaume Desmottes
2c0a4d20d4
decodebin3: fix collection refcounting
...
My collection leak fix 83f30627cd
introduced a crash in this scenario: audiotestsrc ! decodebin3 ! fakesink
The reference handling of collection in decodebin3 wasn't very clear and
my attempt to fix the leak introduced a regression where we went one
reference short in some other scenarios.
Fixing this by:
- Giving a strong reference to DecodebinInput making things clearer
- Fixing get_merged_collection() which was sometimes returning an
existing reference and sometimes a new one.
https://bugzilla.gnome.org/show_bug.cgi?id=769080
2016-07-25 09:02:53 +02:00