Commit graph

117 commits

Author SHA1 Message Date
Mathieu Duponchelle
decea41ac7 discoverer: Serialize the top level DiscovererInfo
Which contains fields such as duration, uri and tags.

https://bugzilla.gnome.org/show_bug.cgi?id=749673
2015-06-04 19:16:40 +02:00
Tim-Philipp Müller
a24b9cd5c2 discoverer: don't crash on unknown info types when deserializing
Handle unknown info types when deserializing instead of
dereferencing NULL pointers.

Coverity CID 1302394
2015-05-29 15:30:41 +01:00
Mathieu Duponchelle
2e423dd129 discoverer: Add serialization methods.
[API] gst_discoverer_info_to_variant
[API] gst_discoverer_info_from_variant
[API] GstDiscovererSerializeFlags

+ Serializes as a GVariant
+ Adds a test
+ Does not serialize potential GstToc (s)

https://bugzilla.gnome.org/show_bug.cgi?id=748814
2015-05-19 18:48:07 +02:00
Guillaume Desmottes
d7d8fc5652 discoverer: fix GstToc leak when parsing toc messages
gst_message_parse_toc() returns a reffed GstToc which is owned by the
GstDiscovererInfo. But we have to make sure we unref its previous value before
setting the new one.

https://bugzilla.gnome.org/show_bug.cgi?id=747103
2015-04-17 14:49:01 +01:00
Thibault Saunier
dcf8c3e8b0 discoverer: Set 'processing = FALSE' when done discovering SYNC
This avoids a race where we would get new tag but we are already
prerolled and analyzing results.

It is the way it is supposed to be handled as stated in comment:
"If preroll is complete, drop these tags - the collected information is
possibly already being processed and adding more tags would be racy"
2014-08-15 13:40:17 +02:00
Thibault Saunier
235e462077 pbutils: discoverer: Always set the pipeline back to NULL after an error
Otherwize the pipeline would be in an wrong state and on the next
iteration any kind of error could happen

Everytime an error happens in a pipeline the application has to set the
pipeline back to NULL instead of READY.

https://bugzilla.gnome.org/show_bug.cgi?id=733976
2014-07-30 15:28:21 +02:00
Thibault Saunier
622007e7db discoverer: Add APIs to simply get installer details for missing plugins
Currently the API is far from optimal and the user has to work around
our badly defined API to simply install missing plugins.

API:
  new:
    gst_discoverer_info_get_missing_elements_installer_details

  deprecated:
    gst_discoverer_info_get_misc
    gst_discoverer_stream_info_get_misc

https://bugzilla.gnome.org/show_bug.cgi?id=720596
2014-05-03 21:48:55 +02:00
Tim-Philipp Müller
26a57f9a89 discoverer: minor docs fix
Can use a custom main context as well if needed.
2014-01-18 15:01:58 +00:00
Stefan Sauer
c07af869a7 discoverer: also filter 'framed' field when looking for same streams
Fixes extra streams for some mp4 files containing aac audio.
2013-10-15 11:17:56 +02:00
Stefan Sauer
b5bcd73015 discoverer: filter 'parsed' field when checking for same caps
We're checking the caps to see if we got more caps details after a parser got
plugged. This will also have a flipped 'parsed' field. If the field was already
present before the parse the match will fail. Add a function that will do the
check while excluding this field.
2013-10-07 23:21:05 +02:00
Stefan Sauer
82b6fff272 discoverer: don't shadow local variables 2013-10-07 22:55:46 +02:00
Stefan Sauer
9230a6af6a discoverer: early return when we have no streams 2013-10-07 22:55:46 +02:00
Stefan Sauer
2e1b1699fe discoverer: also log stream-id 2013-10-07 22:55:46 +02:00
Stefan Sauer
2af0831696 discoverer: fix quark-mismatch for toc and stream-id
Seems like a copy'n'paste from 15ee41df.
2013-10-07 21:18:54 +02:00
Stefan Sauer
b13385f96a discoverer: report depth for video
This was returning 0 in all cases. Use the data from GstVideoFormatInfo instead.
2013-10-05 21:03:33 +02:00
Stefan Sauer
20cdbc83f3 discoverer: extract some common code
Extract code to make a GstDiscovererInfo. Extracts code that sets StreamInfo.
2013-10-02 22:26:39 +02:00
Edward Hervey
556687b94b discoverer: Switch to playing to handle live URI
Fixes discovery on dvb://
2013-09-19 12:58:53 +02:00
Tim-Philipp Müller
a34e0420b6 discoverer: document that "finished" and "discovered" signals are only emitted in async mode
https://bugzilla.gnome.org/show_bug.cgi?id=660195
2013-08-13 20:40:47 +01:00
Sebastian Dröge
15ee41dfc9 discoverer: Add support for getting the stream-id
https://bugzilla.gnome.org/show_bug.cgi?id=654830
2012-11-20 14:57:42 +01:00
Sebastian Dröge
e223e313b6 discoverer: Use switch/case instead of lots of ifs for the event handling 2012-11-20 14:37:51 +01:00
Tim-Philipp Müller
5f59b4f7ee Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Mark Nauwelaerts
c629a44162 replace gst_tag_list_free with gst_tag_list_unref 2012-09-14 17:53:21 +02:00
Tim-Philipp Müller
c4bd7c2391 discoverer: port to new GLib thread API 2012-09-10 01:10:33 +01:00
Tim-Philipp Müller
9b8cbec590 discoverer: extract audio depth correctly
But we should only do that if it comes straight from a
container or wavparse, not if it comes from a decoder,
otherwise it's probably not really meaningful.
2012-09-09 21:11:20 +01:00
Tim-Philipp Müller
bd12b82538 discoverer: reflow some code to avoid gst-indent ping-pong 2012-09-09 19:48:54 +01:00
Tim-Philipp Müller
2079a8c12b Remove glib-compat-private.h stuff we don't need any more
It's all been ported to the latest GLib API now.
2012-09-09 18:36:49 +01:00
Tim-Philipp Müller
7c2e7b1a4f text/plain + text/x-pango-markup -> text/x-raw 2012-09-02 02:45:41 +01:00
Tim-Philipp Müller
5b715cdb90 video/x-dvd-subpicture -> subpicture/x-dvd 2012-08-20 21:36:15 +01:00
Wim Taymans
e6b606cfa3 discovere: also parse encoded formats
The video library can now also parse encoded formats so use this to fill up the
width/height and other properties.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681535
2012-08-13 11:27:47 +02:00
Wim Taymans
1e8827ed33 discoverer: remove \n from debug statement 2012-08-13 11:27:26 +02:00
Tim-Philipp Müller
26ec6d49a1 docs: expand GstDiscoverer::discovered signal docs a little 2012-08-10 17:08:31 +01:00
Руслан Ижбулатов
8f33ad80d0 discoverer: Add source-setup signal for GstDiscoverer
https://bugzilla.gnome.org/show_bug.cgi?id=681260
2012-08-06 14:42:25 +02:00
Tim-Philipp Müller
284f96765c pbutils: use generic marshaller for discoverer's "discovered" signal
If this change causes build issues, run git clean -x -d -f; ./autogen.sh
2012-08-05 14:06:14 +01:00
René Stadler
39aa4dc674 discoverer: fix discover_uri returning finalized info object 2012-07-31 01:19:36 +02:00
Edward Hervey
2817bdadc9 libs: Remove "Since" markers and minor doc fixups 2012-07-13 12:11:06 +02:00
Tim-Philipp Müller
a9d12f7bae pbutils: update discoverer for GstToc API changes 2012-06-24 22:47:05 +01:00
Anton Belka
42cb4bdf67 discoverer: Add TOC support to discoverer and add -c/--toc parameters to gst-discoverer utility 2012-05-21 08:52:05 +02:00
Vivia Nikolaidou
34d6031974 discoverer: Ported fix for bug #673504 to 0.11 2012-05-11 16:44:15 +02:00
Vivia Nikolaidou
4d9d707e32 discoverer: Wait until an update/filler newsegment event or buffer for subtitle streams
This makes sure that we wait until we received all tags for the
subtitle streams and have all information that is collected by
the discoverer.

Fixes bug #673504.
2012-05-11 16:44:15 +02:00
Sebastian Dröge
c84108de3c video: Update for libgstvideo API changes 2012-04-19 12:30:57 +02:00
Tim-Philipp Müller
29c266ccff Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	common
	docs/libs/gst-plugins-base-libs.types
	ext/pango/gsttextoverlay.c
	ext/vorbis/gstvorbisdec.c
	gst/playback/gstplaysink.c
	gst/playback/gstplaysinkconvertbin.c
	sys/ximage/ximagesink.c
	sys/xvimage/xvimagesink.c
2012-03-08 20:31:34 +00:00
Jonathan Matthew
bc1fb43408 discoverer: don't change result for missing plugin errors
https://bugzilla.gnome.org/show_bug.cgi?id=671047
2012-03-03 13:50:34 +00:00
Wim Taymans
e44dd9db8f Merge branch 'master' into 0.11
Conflicts:
	gst-libs/gst/audio/gstaudioencoder.c
	gst-libs/gst/pbutils/gstdiscoverer.c
2012-02-16 14:23:28 +01:00
Tim-Philipp Müller
e40ea30972 discoverer: try harder to obtain a duration if we don't get one right away
If we don't get a duration right away, set the pipeline to playing
and sleep a bit, then try again. This is ugly, but the least worst
we can do right now. The alternative would be to make parsers etc.
return some bogus duration estimate even after only having pushed
a single frame, for example.

Fixes discoverer showing 0 durations for some mp3 and aac files
(e.g. soweto-adts.aac).
2012-02-14 19:36:43 +00:00
Tim-Philipp Müller
24749aa2db discoverer: mark GError argument of "discovered" signal with STATIC_SCOPE
So the error is passed to the callback as is without a copy being made.
2012-02-01 19:34:22 +00:00
Tim-Philipp Müller
ef75dd6e90 discoverer: use G_TYPE_ERROR instead of GST_TYPE_G_ERROR 2012-01-22 01:47:14 +00:00
Tim-Philipp Müller
68785cc2e7 discoverer: fix up for GstTagList != GstStructure 2012-01-12 23:25:22 +00:00
Tim-Philipp Müller
0461ed2ada Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst-libs/gst/pbutils/gstdiscoverer-types.c
	gst-libs/gst/pbutils/gstdiscoverer.c
	tests/check/Makefile.am
2012-01-12 23:21:17 +00:00
Vincent Penquerc'h
ab7e72ad70 discoverer: fix structure leak
I hit the 'misc' one, but let's also make sure the topology
one get freed as well, though I do not know if this can happen
twice.
2012-01-12 14:27:25 +00:00
Vincent Penquerc'h
96e40584ce discoverer: fix caps and discoverer object ref leaks 2012-01-11 12:16:28 +00:00