Commit graph

15662 commits

Author SHA1 Message Date
Thibault Saunier
51cd2bd926 encoding-profile: Allow using factory names in serialization format
Instead of enforcing the user to know and understand caps to describe
the encoding format, let him use element factory names directly.
This also makes it possible to ensure that a specific encodore/muxer
is used instead of letting the ranking system do it.

It is now possible to describe an encoding format simply specifying:

  matroskamux:x264enc:vobisenc

Factor out functions in the parsing, cleaning up the whole thing.
Update documentation.
2016-12-23 17:40:23 -03:00
Thibault Saunier
998f28b65c encoding-profile: Also take into account preset name when comparing profiles 2016-12-23 17:40:23 -03:00
Thibault Saunier
636cd255ce encoding-profile: Handle path to serialized target when deserializing a profile
The synthax is path/to/encoding/profile.gep:profilename
2016-12-23 17:40:23 -03:00
Thibault Saunier
40088a9f5d encoding-target: Add 'file-extension' as a known category 2016-12-23 17:40:23 -03:00
Thibault Saunier
85979f996d encoding-target: Allow using name and targets from serialized file
We used to only care about the name of the files even if the name
is defined in the encoding target serialized file.

That commit also allows user to define several names for a single
target file (using a ';' between the names) which allows us to have
a target for youtube that is called 'youtube;yt' or a target for
'ogg;ogv;oga' file extension.
2016-12-23 17:40:23 -03:00
Thibault Saunier
2c9db14d03 encoding-target: Auto convert loading target name to lowercase
We *only* support lowercase encoding target names so we can just
handle user to use uper case ones converting them.
2016-12-23 17:40:23 -03:00
Thibault Saunier
bff04a1396 pbutils: Add documentation about encoding targets 2016-12-23 17:40:23 -03:00
hoonhee.lee
f4c25ae498 playbin-test: Don't use removed playbin3 'auto-select-streams' property
https://bugzilla.gnome.org/show_bug.cgi?id=775917
2016-12-23 17:16:15 +00:00
Carlos Rafael Giani
a257a177c3 audiotestsrc: Fix incorrect start of tick waveform
Make sure ticks start with an accumulator value of 0 by incrementing it
after filling in samples instead of before and by resetting the accumulator
every time a tick begins. This prevents it from being discontinuous at the
beginning of the tick.

https://bugzilla.gnome.org/show_bug.cgi?id=774050
2016-12-23 16:51:07 +00:00
Nicolas Dechesne
7c0c59ccdf tools: gst-play: set GST_GL_XINITHREADS
This ensure that XInitThreads is called and so gl contexts are properly
initialized.

https://bugzilla.gnome.org/show_bug.cgi?id=776403
2016-12-23 12:18:10 +02:00
Evan Nemerson
98064ed9bf audioringbuffer: add set_callback_full() for g-i
https://bugzilla.gnome.org/show_bug.cgi?id=678301
2016-12-22 15:34:58 +00:00
Nicola Murino
07646dd11b tcpclientsrc: add timeout property
https://bugzilla.gnome.org/show_bug.cgi?id=749567
2016-12-21 10:05:49 +02:00
Jan Schmidt
9517bd9b34 parsebin: Ignore failure to send sticky events
When plugging and then exposing a parser, don't fail
if it fails to send sticky events. The most likely
reason is that things were flushed due to the app
immediately doing a seek, but we can't detect flushing
separately to other error conditions without a
gst_pad_send_event_full() core function that returns
a GstFlowReturn.
2016-12-21 00:44:45 +11:00
Sebastian Dröge
19ece085ac riff-media: Fix up last commit 2016-12-20 13:00:59 +02:00
Nicola Murino
a75be73471 riff: add ADPCM_G722 support
https://bugzilla.gnome.org/show_bug.cgi?id=746574
2016-12-20 12:48:32 +02:00
Thibault Saunier
03e263b92f tests: Fix build 2016-12-19 15:20:35 -03:00
Thibault Saunier
5fd3142b67 encodebin: Fix build initializing sprof 2016-12-19 15:08:12 -03:00
Thibault Saunier
c8ea302e57 encodebin: Fallback to other profile if we fail with one
In some case we might have EncodingProfile that will be defined
in a way that, for example if a Preset is not present, another
profile for that stream should be used.

A test is added showing the feature.

https://bugzilla.gnome.org/show_bug.cgi?id=776188
2016-12-19 10:13:23 -03:00
Thibault Saunier
2d1b5a1dc2 encodebin: Enhance error debug when failing to create an encoder 2016-12-19 10:13:23 -03:00
Tim-Philipp Müller
2cfb446eb9 tag: id3v2: turn redundant check into an assert
We checked this already earlier, so this is dead code.
Leave an assert in place for consistency with the other
branch and in case the rest of the code changes.

CID 1397350.
2016-12-18 12:29:42 +00:00
Sebastian Dröge
15123c0455 discoverer: Get caps from the element's srcpad if possible
The caps put into the stream topology by decodebin are the caps at the
moment the pads are exposed on it. This is usually before decoders
received any buffers.
In discoverer we however wait for pre-roll, which ensures that each
decoder handled buffers already. At this point, there might be more
information known about the caps already that we could make use of.

One example here is extra information stored in the SEI of H264, like
the multiview-mode. This will be known if there is a SEI before the
first keyframe, but decodebin won't put this into the topology as it
only waits for the initial caps of h264parse (which come directly after
SPS/PPS).

With this change, the multiview-mode is in the caps reported by
discoverer in many cases.
2016-12-17 22:01:10 +02:00
Sebastian Dröge
ce693174f4 decodebin2: Put the correct element srcpad into the topology for the very last element of a chain
We were putting the decode pad there, which is the ghostpad linked to
the last element. The decode pad is already in the pad field.
2016-12-17 22:01:10 +02:00
Sebastian Dröge
46835f550d decodebin2: Put the correct pad into the stream-topology if a parser/converter is used
We have to take the capsfilter into account then as the elements are not
linked directly. Previously this caused NULL be set in these cases.
2016-12-17 22:01:10 +02:00
Tim-Philipp Müller
64befcde7c Actually delete .spec.in file as well
Only removed it from build description.
2016-12-16 17:39:59 +00:00
Thibault Saunier
d67f945177 encoding-profile: Fix documentation and port to gtk markdown
And remove some trailling whitepsaces
2016-12-16 11:27:31 -03:00
Thibault Saunier
6f50b59a20 meson:doc: Build libraries documentations 2016-12-16 11:27:31 -03:00
Thibault Saunier
f4ed0e1af1 base: Actually support using the default encoding target 2016-12-16 11:27:31 -03:00
Thibault Saunier
646e0499fb encoding-target: Remove useless check for local presence 2016-12-16 11:27:31 -03:00
Thibault Saunier
7f76713835 pbutils: Add safe guard too encoding profile API 2016-12-16 11:27:31 -03:00
Thibault Saunier
8bbf67c37d audio: Fix introspection annotation
In gst_audio_check_valid_channel_positions the mask
is an out parameter.

And minor conversion from a print to a GST_ERROR.
2016-12-16 11:27:31 -03:00
Thibault Saunier
1c7c51fa23 encoding-target: Handle GST_ENCODING_TARGET_PATH in list_all
And fix the compare_target function
2016-12-16 11:27:31 -03:00
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
Tim-Philipp Müller
4dd7a25d2d Remove generated .spec file
Likely extremely bitrotten, and we should not ship this anyway.
2016-12-14 09:48:02 +00:00
Tim-Philipp Müller
e0742b8759 rtsp: add boxed types for new authentication credential API
To make the structs usable in bindings, and fix

gstrtspmessage.c:1188: Warning: GstRtsp:
gst_rtsp_message_parse_auth_credentials: return value: Invalid
non-constant return of bare structure or union; register as
boxed type or (skip)

https://bugzilla.gnome.org/show_bug.cgi?id=774416
2016-12-13 22:45:02 +00:00
Sebastian Dröge
9795115564 gst: Don't declare variables inside the for loop header
This is a C99 feature.
2016-12-13 22:26:08 +02:00
Vincent Penquerc'h
6ee5922f2f audioringbuffer: do not require 4 byte multiple for encoded MPEG
Bytes per frame doesn't make sense for encoded audio.

https://bugzilla.gnome.org/show_bug.cgi?id=776038
2016-12-13 10:16:07 +00: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
Thibault Saunier
c2d3c98340 meson: Support building without Gst debug 2016-12-09 18:29:47 -03:00
Sebastian Dröge
2f62720d71 xmptag: Don't leak the namespace string if there are multiple
https://bugzilla.gnome.org/show_bug.cgi?id=775887
2016-12-09 17:36:47 +02:00
Jan Schmidt
7ff1de380f id3v2: Clarify id3v2_add_id3v2_frame_blob_to_taglist()
Pass the frame data and size explicitly to
id3v2_add_id3v2_frame_blob_to_taglist() and add a
comment that it's being deliberately / manually
passed the full ID3v2 frame including header.
2016-12-09 18:06:35 +11:00
Jan Schmidt
d178f7626a id3v2: Add missing overrun check for frame sizes
When frames claim to have a footer, ensure they
are large enough to contain one to avoid an invalid
read overrun.

Spotted by Joshua Yabut
2016-12-09 18:06:35 +11:00
Jan Schmidt
226dfc3f32 ogg: Fix element factory klass for OGM parsers
They're parsers, not decoders, so fix the klass info
accordingly.
2016-12-09 18:06:35 +11:00
Tim-Philipp Müller
6bb574ba89 docs: design: remove outdated draft docs (hw-acceleration, va) 2016-12-08 23:15:31 +00:00
Tim-Philipp Müller
46138b1b1d docs: design: move most design docs to gst-docs module 2016-12-08 23:00:45 +00: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