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
Sebastian Dröge
d620ca4740
matroskademux: Parse and handle CodecDelay, SeekPreroll and DiscardPadding
...
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2015-11-03 20:35:27 +02:00
Sebastian Dröge
52122f9206
matroskamux: Write CodecDelay, DiscardPadding and SeekPreroll for Opus
...
And also adjust timestamps and durations according to the codec delay, both
should include it for whatever reason.
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2015-11-03 20:35:27 +02:00
Sebastian Dröge
b34574d829
matroskamux: Opus headers are not in-band
...
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2015-11-03 20:35:27 +02:00
Nicola Murino
65d08e2154
matroskamux: don't drop JPEG frames that only have PTS but no DTS set
...
For the MS/VfW codec ids, we want to write DTS timestamps instead
of PTS because that's what everyone else seems to do (and it's also
how it is in AVI). So for those input formats we use the buffer DTS
instead of the PTS. However, if there's no DTS set but only the PTS
then just take the PTS instead of dropping the input buffer. This
is useful especially for I-frame only codecs like JPEG and huffyuv,
but should also be fine as fallback in general.
Fixes regression with input JPEG frames that only have PTS set on them.
https://bugzilla.gnome.org/show_bug.cgi?id=756967
2015-10-28 19:02:44 +00:00
Sebastian Dröge
cbf181f31b
matroskademux: Read buffer timestamp *after* actually setting it
...
https://bugzilla.gnome.org/show_bug.cgi?id=756809
2015-10-27 18:01:32 +02:00
Sebastian Dröge
ca9b6b55e6
matroskamux: Create a TIME segment when creating streamable output
...
Related to https://bugzilla.gnome.org/show_bug.cgi?id=754435 which
does the same for flvmux.
2015-10-11 11:37:51 +01:00
Sebastian Dröge
1cd4baa16a
matroskademux: Remove leftover assertion from 0.10
...
We now allocate memory via GstAllocator and as such can handle arbitrary
alignments, not only <= G_MEM_ALIGN.
https://bugzilla.gnome.org/show_bug.cgi?id=755708
2015-09-28 18:03:51 +02:00
Sebastian Dröge
7046852e7d
gst: Don't use deprecated gst_segment_to_position()
2015-09-26 00:12:46 +02:00
Jan Schmidt
e5d53ec7e4
matroska-mux: Don't output a warning on MONO multiview mode.
2015-09-22 00:46:01 +10:00
Thiago Santos
f9c7dc2797
matroskamux: drop HEADER flag from output buffers
...
Drop HEADER flag from output buffers if they are not indeed
headers.
Fixes resending of headers in tcp connection handling
https://bugzilla.gnome.org/show_bug.cgi?id=754768
2015-09-10 16:28:48 -03:00
Tim-Philipp Müller
99a6f8207f
matroskamux: fix matroskamux ! matroskademux
...
Don't carry over DISCONT flags from the input buffers to the
output buffer, or the demuxer might reset its state when it
receives the first data buffer just after parsing the simple
block header, and then expect sane data to follow.
Fixes matroskamux ! demux erroring out.
https://bugzilla.gnome.org/show_bug.cgi?id=754768
https://bugzilla.gnome.org/show_bug.cgi?id=657805
2015-09-10 16:05:53 +01:00
Jan Alexander Steffens (heftig)
3f8efd8af8
matroskademux: Align raw video frames to 32 bytes
...
Outputting unaligned video frames causes videoscale et al to
crash when attempting SIMD-accelerated conversion.
https://bugzilla.gnome.org/show_bug.cgi?id=736965
2015-08-31 14:35:59 +03:00
Vineeth TM
77c9e2cd4d
matroska: read: fix tag list memory leak
...
gst_toc_entry_merge_tags makes a new ref of the taglist, so it should
be unref'ed as soon as the tags are merged to the tocentry
https://bugzilla.gnome.org/show_bug.cgi?id=753904
2015-08-21 10:22:54 +03:00