Sebastian Dröge
7d6cf17498
matroskademux: Fix memory leak when parsing attachments
...
gst_tag_image_data_to_image_sample() does not take ownership of the
passed memory, so don't set it to NULL to allow us to free it later.
https://bugzilla.gnome.org/show_bug.cgi?id=775472
2016-12-01 17:38:33 +02:00
Sebastian Dröge
d3bc50bc8f
matroskademux: Unify zlib/bzip2 decompress loops with the ones from qtdemux
...
Especially, simplify the code a bit.
2016-12-01 14:56:18 +02:00
Sebastian Dröge
5d4c71d76e
matroskademux: Fix cluster searching if we search multiple times in one chunk
...
After finding a cluster id in the byte reader, we skip ahead the reader
position by one further byte to be able to continue searching from there
inside the same chunk if the cluster candidate was a false positive.
We have to accomodate for that additional byte when resuming the search,
otherwise all following pulls are off-by-one for every resume and we run
into an assertion.
2016-11-22 20:24:59 +02:00
Sebastian Dröge
c0da05df38
matroska: Add size checks to the parsing of FLAC headers
2016-11-22 20:02:42 +02:00
Nicola Murino
0ef3a71b89
matroskademux: add support for skipping invalid data in push mode
...
https://bugzilla.gnome.org/show_bug.cgi?id=774566
2016-11-21 13:38:08 +02:00
Nicola Murino
20ed9e8237
matroskaparse: add support for skipping invalid data
...
https://bugzilla.gnome.org/show_bug.cgi?id=774566
2016-11-21 13:38:08 +02:00
Sebastian Dröge
28995f3527
matroskaparse: Add remaining relevant parts from a3a55305
to the parser
...
https://bugzilla.gnome.org/show_bug.cgi?id=774566
2016-11-17 10:24:28 +02:00
Nicola Murino
7627171566
matroskaparse: ignore parsing errors at the end of the file
...
This is the same change as a3a55305
for the parser.
https://bugzilla.gnome.org/show_bug.cgi?id=774566
2016-11-17 10:20:56 +02:00
Scott D Phillips
55297bdbad
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:52:24 +02:00
Branko Subasic
ddba77ea6e
matroskamux: allow resolutions above 4096
...
Modify the caps string to allow width and height greater than 4096.
There is no need to restrict it since the matroska format allows the
width and height values to be up to eight bytes long.
https://bugzilla.gnome.org/show_bug.cgi?id=773582
2016-10-27 14:01:55 +01:00
Sebastian Dröge
7ab3df4542
matroskamux: Always write the default frame duration for VP8/9 too
...
The WebM spec allows this now, and it allows us to guess a framerate.
See https://bugzilla.gnome.org/show_bug.cgi?id=772141 and
also https://bugzilla.gnome.org/show_bug.cgi?id=654379
2016-09-29 10:19:56 +03:00
Thibault Saunier
150edef830
Use the new API to post flow ERROR messages on the bus
...
https://bugzilla.gnome.org/show_bug.cgi?id=770158
2016-08-26 19:23:26 -03:00
Nirbheek Chauhan
b09f478e80
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:21:12 +01:00
Sebastian Dröge
f0ba7a5ca4
matroskamux: Remove suspicious checks for pads being active and linked
...
We should add all pads, no matter if they are linked or active or not at this
point. Skipping some that are not will cause different behaviour than with
other muxers.
2016-07-07 18:26:48 +03:00
Sebastian Dröge
dbb8ec4639
matroskamux: Error out if we start writing data with some pads not having a codec id yet
...
This can only happen if a) upstream somehow gets around the CAPS event failing
or b) there never being any CAPS event.
The following code assumes that all pads have a codec-id.
https://bugzilla.gnome.org/show_bug.cgi?id=768509
2016-07-07 18:26:48 +03:00
Sebastian Dröge
cc636760b6
matroskamux: Consistently use gst_matroska_mux_set_codec_id() for setting the codec id
2016-07-07 18:26:48 +03:00
Michael Olbrich
c5da4dc66a
matroskademux: preserve seek flags
...
Without this some flags get lost in streaming mode.
https://bugzilla.gnome.org/show_bug.cgi?id=767194
2016-06-06 10:50:02 +03:00
Sebastian Dröge
0345ba78f5
matroskademux: Set seek event seqnum in EOS and SEGMENT_DONE messages/events
...
Also actually store the seqnum in pull mode seeks.
See https://bugzilla.gnome.org/show_bug.cgi?id=765935
2016-05-20 10:57:30 +03:00
Seungha Yang
eb09829a1c
matroskademux: don't hold object lock whilst pushing out headers
...
matroskademux would take the GST_OBJECT_LOCK in
- gst_matroska_demux_push_codec_data_all()
- gst_matroska_demux_query()
Some parse element such as FLAC checks upstream seekability, and
there is some use cases that matroska-demux is linked to a parse element
(e.g.,FLAC format) without intermediate elements (e.g., queue).
In this case, matroska-demux never returns from _push_codec_data_all()
because the parser can return only after it receives the response to
the upstream query, but that's not going to happen because it's
deadlocked.
Elements must not hold the object lock whilst pushing out events
or data.
https://bugzilla.gnome.org/show_bug.cgi?id=766645
2016-05-19 22:01:53 +01:00
Edward Hervey
ac3b1cf2ed
matroska-mux: Fix strcmp usage
...
Just use g_strcmp0 which can handle NULL entries
2016-05-15 12:25:03 +02:00
Tim-Philipp Müller
3320f4f0de
matroska: use math-compat.h for NAN define
2016-05-14 17:04:57 +01:00
Nicola Murino
cbdbfc8902
matroskamux: make timecodescale configurable
...
In some use cases the default timecodescale will produce blocks with the same timestamp
https://bugzilla.gnome.org/show_bug.cgi?id=764769
2016-04-11 10:17:25 +03:00
Vineeth TM
1071309870
good: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763076
2016-03-24 14:32:20 +02:00
Nirbheek Chauhan
63803bfac0
win32: Don't try to include xmath.h on newer Visual Studio
2016-03-10 10:01:19 +00:00
Luis de Bethencourt
5dcf1a4f69
matroska-demux: remove impossible condition
...
It is impossible for a guint to have a negative value, no need to check for
this. Introduced in commit 6861d11c49
CID 1354509
2016-02-29 10:11:38 +00:00
Linus Svensson
a5691af319
matroska-demux: Don't handle seek until ready
...
https://bugzilla.gnome.org/show_bug.cgi?id=762542
2016-02-23 17:54:43 +02:00
Linus Svensson
1a3986d016
matroska-demux: Unref seek event
...
https://bugzilla.gnome.org/show_bug.cgi?id=762542
2016-02-23 17:54:43 +02:00
Matej Knopp
8657987f8f
matroskamux: don't output empty tags/tag elements
...
Such files will not play on Android, because of bug in libwebm matroska parsing, which is still present in 6.0.1
https://bugzilla.gnome.org/show_bug.cgi?id=762349
2016-02-23 11:00:05 +02:00
Vincent Penquerc'h
6861d11c49
matroska-demux: make up an OpusHead block if possible when missing
...
https://bugzilla.gnome.org/show_bug.cgi?id=761489
2016-02-23 10:47:43 +02:00
Vincent Penquerc'h
565607107f
matroska-mux: make up an OpusHead block if possible when missing
...
This block is needed in the Matroska file, but data coming from
RTP may not have one.
https://bugzilla.gnome.org/show_bug.cgi?id=761489
2016-02-23 10:47:43 +02:00
Mark Nauwelaerts
afad769c78
matroskademux: make stream-id more readable and order-friendly
...
... as streams are so ordered by id by e.g. decodebin
(and as typically already honoured by other demuxers).
2016-02-22 16:06:11 +01:00
Mark Nauwelaerts
7456ee1e1b
matroska: remove confusing duplicate track uid field
2016-02-22 16:05:41 +01:00
Tim-Philipp Müller
13a9a7543d
win32: remove outdated build cruft
...
This hasn't been touched for generations, doesn't work,
and is just causing confusion. We also don't want to
maintain these files manually.
2016-02-21 09:47:43 +00:00
Sebastian Dröge
a7c3f353bd
matroskademux: Unmap wavpack header buffer after creating it
...
Otherwise it will be mapped writable all the time and we can't read from it
anywhere.
https://bugzilla.gnome.org/show_bug.cgi?id=762239
2016-02-18 11:10:14 +02:00
Ognyan Tonchev
750b7c72fe
matroskademux: Simple implementation of TRICKMODE_KEY_UNITS
...
When the trickmode key-units flag is set on the segment, simply skip
any sample on a video stream that isn't a keyframe
https://bugzilla.gnome.org/show_bug.cgi?id=762185
2016-02-17 16:17:13 +02:00
Tim-Philipp Müller
77403d0afe
matroska-demux: send GAP events for lagging audio and video streams too
...
Send GAP events for non-subtitle streams too if they lag too much
behind, but use a higher threshold than for subtitles.
This helps with fixing prerolling with a file where one of the
audio streams only has data starting from 19s onwards. It's not
a complete fix yet, it also requires changes elsewhere, such as
in baseparse, to make sure caps are propagated.
https://bugzilla.gnome.org/show_bug.cgi?id=614460
https://bugzilla.gnome.org/show_bug.cgi?id=753899
2016-02-16 17:11:39 +00:00
Tim-Philipp Müller
f301e3f236
matroska: get rid of _stdint.h include
2016-02-08 00:11:55 +00:00
Matej Knopp
e7460d9c06
matroskamux: use A_AAC instead of A_AAC/MPEGx/y
...
Some GoogleCast compatible devices ignore A_AAC/MPEGx/y tracks; Also according to http://wiki.multimedia.cx/index.php?title=Matroska A_AAC/MPEGx/y is obsolete
https://bugzilla.gnome.org/show_bug.cgi?id=761144
2016-01-27 13:50:21 +01:00
Steven Hoving
910d75ddaf
matroska: Store subtitle stream count in the correct variable
...
And don't override the video stream count instead.
2016-01-07 18:20:30 +02:00
Sebastian Dröge
e618444ca7
matroskademux: Guard against no codec data in prores caps creation
...
CID 1346532
2015-12-29 18:05:56 +02:00
Thibault Saunier
7b026e4bc0
matroskademux: Always set the channel mask for PCM streams
...
Just use the gst_audio_channel_get_fallback_mask function for now as
the specification is too complicated and nobody implements it.
2015-12-21 18:34:42 +01:00
Thibault Saunier
10d1ba1477
matroska-mux: Implement prores support
...
https://bugzilla.gnome.org/show_bug.cgi?id=758258
2015-12-19 03:49:28 +11:00
Jan Schmidt
71d43327a3
matroska-demux: Play ProRes video streams
...
Generate video/x-prores caps for ProRes video streams.
Every frame needs an 8 byte header prepended, as described in
http://wiki.multimedia.cx/index.php?title=Apple_ProRes#Frame_layout
so do that in a post-processing callback.
https://bugzilla.gnome.org/show_bug.cgi?id=758258
2015-12-19 03:47:49 +11:00
Luis de Bethencourt
9bcbf21b87
matroska/webmmux: fix outdated example launch lines
...
Update gst-launch-0.10 lines to gst-launch-1.0
2015-11-19 17:32:17 +00:00
Luis de Bethencourt
40aa27b788
matroskamux: remove duplicate check
...
We want 1 or 2 streamheaders, the check if (bufarr->len != 1 &&
bufarr->len != 2) is enough. Not need to check if bufarr->len is <= 0 or
> 255.
2015-11-18 16:06:27 +00:00
Reynaldo H. Verdejo Pinochet
fd4d33b0fa
matroskamux: remove unnecessary NULL checks before g_free()
2015-11-15 01:43:08 -08:00
Reynaldo H. Verdejo Pinochet
edec775e26
matroska/read-common: remove unnecessary NULL checks before g_free()
2015-11-15 01:43:08 -08:00
Sebastian Dröge
ed20b9ab90
matroskademux: Use codecutils helpers for creating Opus caps
...
Also fix up codec data with values from the container.
https://bugzilla.gnome.org/show_bug.cgi?id=757152
2015-11-03 20:35:27 +02:00
Sebastian Dröge
2d98348abb
matroskademux: There is no multistream field for Opus anymore
...
https://bugzilla.gnome.org/show_bug.cgi?id=757152
2015-11-03 20:35:27 +02:00
Sebastian Dröge
c6f6092f2f
matroska/webmmux: Support Opus in webmmux and VP9 in matroskamux
...
https://bugzilla.gnome.org/show_bug.cgi?id=729950
2015-11-03 20:35:27 +02:00