Commit graph

908 commits

Author SHA1 Message Date
Edward Hervey
932b32bb6e matroskamux: Avoid using freed variable
the name variable might have been attributed to pad_name, make sure we
free it only *after* pad_name has been used.

Coverity CID : 1265774
2015-01-23 15:16:25 +01:00
Edward Hervey
9fa85f72e1 matroska: Avoid debugging below category threshold
This part alone was what made the matroska thread take a full core
on an android phone ...
2015-01-21 15:26:41 +01:00
Sebastian Dröge
67d4b85d6a matroskademux: Improve detection of being stuck at the same offset
Only error out if we read from the same position again and got the
same length. Just the same position is not necessarily enough.
2014-12-29 15:35:19 +01:00
Sebastian Dröge
e596a3b6a7 matroskademux: Don't get stuck at the same offset when searching for clusters
This could happen if there is an invalid cluster with size 0, and in that
case just error out instead of looping forever.
2014-12-29 15:02:52 +01:00
Edward Hervey
cbe56d2331 matroska-demux: Cache upstream length
Instead of constantly querying upstream, just cache the last duration,
and in the unlikelyness we might have gone over query again before
deciding we are EOS.

Cut 15% cpu off matroskademux streaming thread (srsly...)
2014-12-19 10:59:18 +01:00
Vincent Penquerc'h
b7413279d9 matroska: mux/demux the OpusHead header
This is meant to be so (https://wiki.xiph.org/MatroskaOpus - while
it is marked as a draft, this part was confirmed to be correct on
IRC), and allows one to determine whether a demuxed stream is
multistream or not, and thus set the multistream caps field
accordingly. In turn, this means downstream does not have to guess.

https://bugzilla.gnome.org/show_bug.cgi?id=740744
2014-12-18 11:38:49 +00:00
Nicola Murino
c466ff4748 matroskademux: set framerate 0/1 when duration is not known
https://bugzilla.gnome.org/show_bug.cgi?id=740130
2014-12-04 18:20:37 +01:00
Sebastian Dröge
7a909917b5 matroska-mux: Use G_DEFINE_TYPE() to register the pad instead of manually registering it 2014-11-09 11:04:33 +01:00
Göran Jönsson
ec05d3b6d8 matroskamux: make GstMatroskamuxPad get_type() function thread-safe
https://bugzilla.gnome.org/show_bug.cgi?id=739722
2014-11-07 21:20:31 +00:00
Tim-Philipp Müller
85c3c36712 matroskamux: tweak writing app tag string a little 2014-11-02 19:02:35 +00:00
Jonas Holmberg
1371fa0c61 matroskademux: make demuxer reusable
Remove pads from flow combiner and reset last
flow return to FLOW_OK by resetting the flow combiner.
This prevents FLOW_FLUSHING when trying to re-use the
demuxer after setting it back to NULL/READY state.

https://bugzilla.gnome.org/show_bug.cgi?id=737359
2014-09-25 16:14:18 +01:00
Sanjay NM
26a1344f37 Miscellaneous minor cleanups
Fix redundant variables and assignments,
and unreachable breaks.

https://bugzilla.gnome.org/show_bug.cgi?id=736875
https://bugzilla.gnome.org/show_bug.cgi?id=736876
https://bugzilla.gnome.org/show_bug.cgi?id=736879
https://bugzilla.gnome.org/show_bug.cgi?id=736880
https://bugzilla.gnome.org/show_bug.cgi?id=736881
https://bugzilla.gnome.org/show_bug.cgi?id=736888
https://bugzilla.gnome.org/show_bug.cgi?id=736890
https://bugzilla.gnome.org/show_bug.cgi?id=736892
https://bugzilla.gnome.org/show_bug.cgi?id=736893
https://bugzilla.gnome.org/show_bug.cgi?id=736894
2014-09-24 00:45:31 +01:00
Anuj Jaiswal
4242495ea7 matroskamux: don't bitwise OR the same flag twice
https://bugzilla.gnome.org//show_bug.cgi?id=736543
2014-09-12 10:37:31 +01:00
Tim-Philipp Müller
4c08f2694d matroskademux: handle real audio 28_8
Fixes duplicate check for 14_4.

https://bugzilla.gnome.org//show_bug.cgi?id=736543
2014-09-12 10:35:36 +01:00
Sebastian Dröge
a3a5530518 matroska-demux: Don't handle parse errors at the end of file as an error
But only if they happen after the Matroska segment.

https://bugzilla.gnome.org/show_bug.cgi?id=735833
2014-09-05 11:36:30 +03:00
Jan Schmidt
f1c3a40547 matroska: Use gst_video_guess_framerate() function
Remove local framerate guessing function in favour of
the new gst_video_guess_framerate() function.
2014-08-15 01:17:27 +10:00
Vincent Penquerc'h
5653b1a25a matroskademux: send gap events instead of segment tricks
This fixes missing frames from being time skipped.

https://bugzilla.gnome.org/show_bug.cgi?id=732372
2014-07-01 15:14:34 +01:00
Sebastian Dröge
5500dd4a20 matroskamux: Fix compiler warnings when compiling with G_DISABLE_ASSERT 2014-06-29 19:57:57 +02:00
Tim-Philipp Müller
155a3fec93 matroskaparse: don't error out if there's not enough data in the adapter
gst_matroska_parse_take() would return FLOW_ERROR instead of
FLOW_EOS in case there's less data in the adapter than requested,
because buffer is NULL in that case which triggers the error
code path. This made the unit test fail (occasionally at least,
because of a bug in the unit test there's a race and it would
happen only sporadically).
2014-06-28 17:39:36 +01:00
Sebastian Dröge
daf25482ed matroskademux: Don't call GST_DEBUG_OBJECT() and other macros with non-GObject objects
It will crash with latest GLib GIT and was never supposed to work before
either.
2014-06-22 19:26:03 +02:00
Tim-Philipp Müller
341b691b18 matroskademux: don't leak doctype string in error code path
CID 1212145.
2014-06-02 09:57:42 +02:00
Thiago Santos
c7c25071e3 matroskademux: use GstFlowCombiner
Use the flow combiner to have the standard combination results and avoid
repeating the same code

https://bugzilla.gnome.org/show_bug.cgi?id=709224
2014-05-26 19:51:02 -03:00
Adrien SCH
8ac30d4c26 matroskamux: fix the memory leak of language attribute
https://bugzilla.gnome.org/show_bug.cgi?id=728418
2014-05-13 19:55:21 -03:00
Tim-Philipp Müller
9872c19491 matroskademux: don't leak doctype string in error code path
CID 1212145.
2014-05-09 14:22:42 +01:00
Vincent Penquerc'h
ec38c62563 matroska: rejig test to avoid undefined shift behavior
Coverity 1195121, 1195120
2014-05-05 14:44:57 +01:00
Vincent Penquerc'h
9589c43516 matroskamux: ensure we don't dereference a NULL pointer
while working out the codec ID.

Coverity 1195148
2014-05-05 14:32:06 +01:00
Vincent Penquerc'h
590e20cbc9 matroskamux: do not use uinitialized clut on error
If we're missing part of the clut, do not try to use it. It seems
very likely the break was meant to break out of the switch rather
than from the loop.

Coverity 1139878
2014-05-02 14:25:01 +01:00
Vincent Penquerc'h
5c22bcf6e9 matroska: blindly fix writing variable length negative values
Spotted while fixing something else in the area.

Nothing calls this with a negative value.
2014-05-02 13:33:02 +01:00
Vincent Penquerc'h
5b9fa4e63a matroska: do not lose the top bits when writing a > 32 bit value
Coverity 1139806
2014-05-02 13:29:33 +01:00
Vincent Penquerc'h
a0bc24558e matroska: do not try to call gst_pad_query_default on a NULL pad
gst_matroska_parse_query can be called explicitely with a NULL pad.
If we reach this point with a NULL pad, fail the query.

Coverity 1139715
2014-05-02 11:39:39 +01:00
Vincent Penquerc'h
3915884017 matroska: do not return GST_FLOW_OK if we did not get a buffer
Coverity 1139714 (which will likely come back in another guise,
as the _read_init call can have a failing _map)
2014-05-02 11:28:01 +01:00
Vincent Penquerc'h
f5a9f5e221 matroska: catch failure to map buffer
Avoids dereferencing NULL.

Coverity 1139712
2014-05-02 11:20:33 +01:00
Vincent Penquerc'h
d9eb5f7fde matroska: fix content encoding scope validity check
It's 3 bits, and http://matroska.org/technical/specs/index.html
says it can't be 0.

Coverity 1139660
2014-04-21 17:21:20 +01:00
Vincent Penquerc'h
54c5710adb matroskamux: fix PAR fraction sanity check
It was checking par_num twice, and never par_denum.

Coverity 1139634
2014-04-21 17:21:20 +01:00
Vincent Penquerc'h
457712b933 matroska: fix check for amount of data to read
History shows length==0 should set data to NULL and return,
so we do that too instead of trying to read nothing.

Coverity 206205
2014-04-16 17:44:51 +01:00
Tim-Philipp Müller
821c68822b matroska-mux: add mapping for Opus audio
Might want to consider adding channels/rate
requirement to template caps, but requires
fixing up of encoder and parser first.
2014-03-30 00:35:07 +00:00
Tim-Philipp Müller
b158a1c068 matroska-demux: add mapping for Opus audio codec
https://bugzilla.gnome.org/show_bug.cgi?id=727305
2014-03-30 00:31:11 +00:00
Mark Nauwelaerts
3414e3d0b9 matroskademux: segment closing not needed in 1.x
... as sender should keep track of segment base accumulation.
Rather, it may have some adverse effects as a spurious segment event,
e.g. in collectpads.
2014-03-25 21:02:45 +01:00
Mark Nauwelaerts
9a30726226 matroskademux: early sending pending codec-data for all streams
... at least before syncing across all streams might cause some gap
activity on any of those streams, notably sparse streams.

See also #712134
2014-03-25 21:02:45 +01:00
Mark Nauwelaerts
1e135a38cc matroskamux: handle both sticky and non-sticky custom event 2014-03-25 21:02:45 +01:00
Per x Johansson
2a362c6fb1 matroskademux: fix assert on fps lower than 1
Fixes assert caused by gst_duration_to_fraction calling
gst_util_uint64_scale_int with a denominator of 0 when fps is less
than 1.

https://bugzilla.gnome.org/show_bug.cgi?id=726106
2014-03-12 09:08:31 +01:00
Tim-Philipp Müller
f3163fb45f matroskademux: align raw audio memory to powers of two
https://bugzilla.gnome.org/show_bug.cgi?id=725008
2014-02-27 00:46:39 +00:00
Tim-Philipp Müller
c3dc53e551 matroskademux: calculate alignment properly for audio depths not a multiple of 8 2014-02-27 00:46:39 +00:00
Matej Knopp
d33b4dce63 matroskademux: fix crash with 24-bit raw audio
Do not try to align audio buffers to odd numbers,
which will get us a NULL buffer which we then
crash on.

https://bugzilla.gnome.org/show_bug.cgi?id=725008
2014-02-27 00:46:28 +00:00
divhaere
19a307930a matroska: add support for GRAY8, BGR and RGB video colourspaces in V_UNCOMPRESSED codec
https://bugzilla.gnome.org/show_bug.cgi?id=723849
2014-02-11 21:22:33 +01:00
Sebastian Dröge
aafcbbb2fe matroskaparse: Comment out some unused functions used only from the commented out pull-mode code 2014-02-09 23:21:20 +01:00
Reynaldo H. Verdejo Pinochet
2f8a1aa870 matroska: factor out read context init/reset
While at this, move _track_reset() to track-ids
so it can be called from the common read context
reset routine.

https://bugzilla.gnome.org/show_bug.cgi?id=722705
2014-02-06 13:25:12 -03:00
Per x Johansson
46bc1677a4 matroskamux: Fix constantly growing used uid list
Moves the used uid list to the class to avoid having it grow forever.

https://bugzilla.gnome.org/show_bug.cgi?id=723269
2014-01-30 11:59:28 -03:00
Reynaldo H. Verdejo Pinochet
cf0c780138 matroskaparse: better default caps when none set
Uses information gathered during EBML parsing to
forge a more suitable set of caps instead of blindly
assuming everything is video/x-matroska.

For consistency, stream type reset was added to
matroska-demux too.

https://bugzilla.gnome.org/show_bug.cgi?id=722311
2014-01-21 11:11:46 -03:00
Sebastian Dröge
809d105982 matroskademux: Don't skip all video frames until the first keyframe
Instead do it like all other demuxers and let parsers and decoders
handle that. The keyframe information inside the container might
be completely wrong like in the sample file of the bug report,
and if it is correct and we push no keyframes, then the parsers
and decoders will handle that properly anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=682276
2014-01-15 22:49:58 +01:00
Tim-Philipp Müller
88ac735af3 matroskademux: don't leak TOC chapter list 2014-01-10 16:50:11 +00:00
Vincent Penquerc'h
f8158baa93 matroskamux: remove obsolete write-dummy-and-overwrite-on-eos code
The need for rewriting apparently is obsolete 0.10 leftover.
We now have caps for subtitles when we create the headers,
so we always write the correct data in the first place.
2014-01-10 08:54:04 +00:00
Vincent Penquerc'h
1c6ee3fba4 matroskamux: write subtitle codec ID and data at start when known
This avoids issues with writing dummy data first, then having
to come back and write correct data later. Doing so prevents
the muxed stream from being actually streamable.

https://bugzilla.gnome.org/show_bug.cgi?id=712134
2014-01-09 18:29:32 +00:00
Wim Taymans
7f8c4dceb4 Revert "matroskamux: Use the running time for container timestamps, not buffer timestamps"
This reverts commit b3aa8755fe.

We are already using the running-time because they were placed on the
buffers with gst_collect_pads_clip_running_time(). Arguably it would be
better to not modify the incomming buffers but collectpads seems to want
to use absolute timestamps from the buffers for finding the best buffer
(this can be changed with a custom compare function..).
2014-01-08 11:32:54 +01:00
Sebastian Dröge
2cddf3a0a9 matroskamux: Error out if ADPCM caps don't contain the layout field 2014-01-08 09:57:48 +01:00
Nicola Murino
bbb5a2853e matroskamux: Add support for g726 ADPCM
https://bugzilla.gnome.org/show_bug.cgi?id=720995
2014-01-08 09:57:48 +01:00
Sebastian Dröge
5506dc3076 matroskamux: Add HEVC / h265 support 2014-01-06 14:55:36 +01:00
Sebastian Dröge
77745289c4 matroskademux: Add HEVC / h265 support 2014-01-06 14:55:36 +01:00
Sebastian Dröge
a4a7dafc32 matroskamux: Add missing semicolon from last commit 2014-01-05 10:28:34 +01:00
Sebastian Dröge
b3aa8755fe matroskamux: Use the running time for container timestamps, not buffer timestamps
Buffer timestamps have no real meaning here, and for selecting the next
buffer we already use the running time anyway.
2014-01-05 10:23:44 +01:00
Nicola Murino
5b1108dd5f matroskamux: adpcm max block align is 8192 2013-12-24 10:00:16 +01:00
Sebastian Dröge
4baf8080f2 matroskamux: Use correct codec id for ADPCM/DVI 2013-12-23 15:46:48 +01:00
Sebastian Dröge
7cae8922cb matroskademux: Check for the correct size of codec_data in the ACM case 2013-12-23 15:46:43 +01:00
Nicola Murino
00ea1cb003 matroskamux: basic adpcm support
https://bugzilla.gnome.org/show_bug.cgi?id=664339
2013-12-23 15:31:04 +01:00
Sebastian Dröge
fb14f66696 matroska-demux: Allow a bit more variation when detecting common framerates
Instead of +/- 1ns we allow 2ns now. Due to rounding errors there are
some Matroska files out there with 33.333331ms per frame for 30fps.
2013-11-26 11:17:42 +01:00
Sebastian Dröge
20ad174679 matroska-demux: Use gst_util_double_to_fraction() instead of GValue magic 2013-11-26 10:21:04 +01:00
Mark Nauwelaerts
643e6fdc36 matroskamux: correctly handle negative relative timestamps
... rather than scaling these as unsigned.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712744

Based on patch by Krzysztof Kotlenga <pocek@users.sf.net>
2013-11-23 12:25:05 +01:00
Thibault Saunier
6ff7522ba2 matroskademux: Use GstVideoInfo helper to create caps for raw video
This way we do not miss mandatory fields in caps.
At the same time use the gst_pb_utils_get_codec_description helper to
get codec description.

https://bugzilla.gnome.org/show_bug.cgi?id=712328
2013-11-22 18:52:54 -03:00
Tim-Philipp Müller
d9c2914c90 g_memmove() is deprecated
Just use plain memmove(), g_memmove() is deprecated in
recent GLib versions.

https://bugzilla.gnome.org/show_bug.cgi?id=712811
2013-11-21 15:30:34 +00:00
Per x Johansson
b3e0b1dbca matroskademux: Avoid division by zero assert in gst_matroska_demux_search_pos
https://bugzilla.gnome.org/show_bug.cgi?id=711829
2013-11-11 11:30:54 +01:00
Sebastian Dröge
4a8082856a matroska-demux: Fix compiler warning
matroska-demux.c: In function 'gst_matroska_demux_add_stream':
matroska-demux.c:1379:7: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'guint64' [-Werror=format=]
       "%03u", context->uid);
       ^
2013-10-30 22:13:06 +01:00
Reynaldo H. Verdejo Pinochet
38c5e5efdc matroska: Trivial grammar fix on debug msg 2013-10-06 10:02:09 -07:00
Reynaldo H. Verdejo Pinochet
1cb31eeacc matroskamux: Add context flag for WebM
WebM has a couple of specific requirements we need to handle.
Idea is to set this flag once and just rely on mux->is_webm
at run time instead of repeatedly figuring this out from
GST_MATROSKA_DOCTYPE_WEBM (which requires a strcmp()).
2013-10-06 09:54:28 -07:00
Reynaldo H. Verdejo Pinochet
edeed575ae matroska: Do not write SegmentUID for WebM mux
WebM spec states SegmentUID is Unsupported. Files produced
with gstreamer without this change will spit an error like
this when passed to mkvalidator:

ERR201: Invalid 'SegmentUID' for profile 'webm' in Info at 192
2013-10-06 08:12:50 -07:00
Matej Knopp
cf12017ef8 matroskademux: make dvd palette change event sticky
So they don't get lost.

https://bugzilla.gnome.org/show_bug.cgi?id=709454
2013-10-05 10:55:03 +01:00
Ognyan Tonchev
30f62a2eec matroskademux: Fix memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=709266
2013-10-02 16:17:33 +02:00
Matej Knopp
40c0586c17 matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-27 14:38:19 +02:00
Matej Knopp
a1a493dae4 matroskademux: update stream->pos when sending buffers so that gap events are not sent unnecessarily
https://bugzilla.gnome.org/show_bug.cgi?id=708505
2013-09-24 15:12:44 -07:00
Sebastian Dröge
d8841b4832 matroska-demux: Make sure that subtitle buffers are \0-terminated
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-20 10:22:40 +02:00
Seán de Búrca
9d3dbd6581 matroskademux: Fix off-by-one in validation of UTF-8
https://bugzilla.gnome.org/show_bug.cgi?id=707933
2013-09-12 09:19:15 +02:00
Thiago Santos
193ce9110e matroskademux: Preserve seqnum when pushing seek upstream
After converting a seek from time to bytes, use the same seqnum
on the event that goes upstream
2013-09-10 17:57:49 -03:00
Matej Knopp
a5ceab82dd matroskademux: fix leaking buffer and caps
https://bugzilla.gnome.org/show_bug.cgi?id=707688
2013-09-07 15:50:36 +01:00
Wim Taymans
2a8566ddec matroska-mux: remove framerate restriction
Remove the framerate restriction on the caps.
2013-08-27 15:25:16 +02:00
Sebastian Dröge
9863e08839 matroskademux: Don't print warnings during flushing and stop as soon as possible
https://bugzilla.gnome.org//show_bug.cgi?id=705442
2013-08-08 11:53:15 +02:00
Sebastian Dröge
2e35b36aab gst: Don't swap start/stop for negative rates in the SEGMENT query 2013-07-29 12:12:41 +02:00
Sebastian Dröge
722ef42196 matroskademux: Implement SEGMENT query 2013-07-29 10:53:54 +02:00
Matej Knopp
7335b81c47 matroskademux: fix memory leak in check_subtitle_buffer
https://bugzilla.gnome.org/show_bug.cgi?id=704921
2013-07-26 17:11:31 +02:00
Thiago Santos
8bd12e12b3 matroskademux: fix seqnum handling for seeks
Use the same seqnum as the seek for flushes/segments that are
caused by the seek. Also do the same for segment events

Fixes #676242
2013-07-25 15:24:31 -03:00
Sebastian Dröge
57dd1189d5 matroskademux: Add support for group-id in the stream-start event 2013-07-22 15:30:13 +02:00
Arnaud Vrac
6e26f1d067 mastrokademux: do not push discont buffers if they aren't discont
Unset the discont flag instead of posssibly pushing a buffer with
a flag that's still set.

https://bugzilla.gnome.org/show_bug.cgi?id=682110
2013-07-17 18:10:11 +01:00
Jonas Holmberg
beebe2b7af matroskademux: Unlock stream lock after use
Stream lock of sink pad was not unlocked after non-updating seek.
2013-07-09 11:25:14 +02:00
Sebastian Dröge
75b5a54f17 matroskademux: Add MPEG4 video profile/level to the caps 2013-07-01 11:01:13 +02:00
Sebastian Dröge
423bddac6a matroskademux: Add AAC profile/level to the caps
https://bugzilla.gnome.org/show_bug.cgi?id=703312
2013-07-01 11:01:13 +02:00
Sebastian Dröge
3c9aba91dc matroska: Add initial VP9 support 2013-06-21 18:22:13 +02:00
Bruno Gonzalez
e89a48616b matroskademux: Don't unlock stream lock without locking it first
https://bugzilla.gnome.org/show_bug.cgi?id=702167
2013-06-14 14:10:13 +02:00
Tim-Philipp Müller
213cd2777b matroskademux: mark subtitle streams as sparse in stream-start event
And also mark the streams that should be selected by default if
marked so in the headers.

https://bugzilla.gnome.org/show_bug.cgi?id=600648
2013-06-12 15:31:22 +01:00
Sebastian Dröge
e2b46a776f matroskademux: Send stream headers after the segment event
https://bugzilla.gnome.org/show_bug.cgi?id=700799
2013-06-11 13:54:53 +02:00
Sebastian Dröge
4fdbf88a65 matroskaparse: Make sure to send a segment event before dataflow 2013-05-14 13:52:18 +02:00
Ognyan Tonchev
0584d5c4c9 matroskademux: add stream-format=raw to aac caps
https://bugzilla.gnome.org/show_bug.cgi?id=699303
2013-05-01 15:47:15 +02:00
Sebastian Dröge
b0b0557c48 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
Tim-Philipp Müller
078ff16abe matroskademux: fix some debug messages 2013-04-03 00:49:37 +01:00
Arnaud Vrac
00b46b4744 matroskademux: handle TrueHD audio codec id
https://bugzilla.gnome.org/show_bug.cgi?id=697113
2013-04-02 22:47:54 +01:00
David Schleef
53f8b05b08 Use %03u for format in gst_pad_create_stream_id_printf() 2013-03-25 18:57:08 -07:00
Sebastian Dröge
539126c097 matroska: Include config.h, it's needed for _stdint.h 2013-03-03 11:59:31 +01:00
Tim-Philipp Müller
8004ae0369 matroskamux: fix up example pipeline in docs 2013-02-23 18:50:52 +00:00
Tim-Philipp Müller
f4cb0c4315 matroskademux: skip empty tags
instead of trying to add tags with empty strings, which
causes criticals at runtime.

https://bugzilla.gnome.org/show_bug.cgi?id=690358
2012-12-17 22:55:12 +00:00
Alexey Fisher
7e47e3b92d matroskamux: set appropriate block header flag for VP8 invisible frames
Useful for debugging mostly.

https://bugzilla.gnome.org/show_bug.cgi?id=654259
2012-12-16 23:30:13 +00:00
Tim-Philipp Müller
672ab8fb5b webmux: fix linking with shout2send element
Shout2send only accepts webm format, not matroska, but due
to a bug in matroskamux, webmmux's source pad is also created
with the matroska source pad template as pad template, which
makes the link function think it can't link webmmux to shout2send.

Also add unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=689336
2012-11-30 17:22:34 +00:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Tim-Philipp Müller
ef0805ea14 matroskademux: put streamheaders on vorbis/speex/flac/theora caps to make remuxing work
https://bugzilla.gnome.org/show_bug.cgi?id=640589
2012-10-30 23:29:46 +00:00
Alexey Fisher
29cd24bc41 matroskademux: mark invisible VP8 frames with the DECODE_ONLY flag
https://bugzilla.gnome.org/show_bug.cgi?id=654259
2012-10-27 14:46:02 +01:00
Руслан Ижбулатов
78193dfe71 matroskademux: Support recursive SimpleTags
Fixes #682644
Depends on #682615
2012-10-26 10:16:42 +02:00
Руслан Ижбулатов
cd719bb808 matroskademux: Expand the tag mapping.
* Also expose unknown tags as key=value pairs.
* Arrange tag map in the same order tags are listed in Matroska spec, leaving
unmapped tags as comments.
* More specific TODOs.
* Remove duplicate DATE define.

Fixes #682615
Depends on #682524
2012-10-26 10:12:52 +02:00
Sebastian Dröge
6c635ce64f matroskademux: Fix uninitialized variable compiler warning 2012-10-26 10:09:39 +02:00
Руслан Ижбулатов
71fd688ef0 matroskademux: Matroska tag TargetType support
* Reads TargetType and TargetTypeValue from a Tag.
* After Tag is completely read, processes taglist, substituting some of the
tags depending on target type value and the presence of video/subtitle streams.
* Supports reading two new simpletags - PART_NUMBER and TOTAL_PARTS

Depends on #682448
Fixes #682524
2012-10-26 10:08:18 +02:00
Руслан Ижбулатов
b75628f041 matroskademux: Per-track tags for Matroska
Requires Matroska file to have sane layout (track info before tag info).
Uses replace-merge.
Makes track UIDs 64-bit.

Fixes #682448
2012-10-26 10:03:55 +02:00
Mark Nauwelaerts
35cd53867c matroskamux: unsigned subtitle template 2012-10-19 16:14:01 +02:00
Mark Nauwelaerts
5742352e10 matroskamux: do not use unoffical V_MJPEG codec id
Since it's not spec'ed, consider it a VfW compatibility
case. Many applications (e.g. avidemux) don't understand
the unofficial V_MJPEG id.

Fixes #659837.

Conflicts:
	gst/matroska/matroska-mux.c
2012-10-18 18:29:40 +01:00
Tim-Philipp Müller
154404fa43 matroskamux: send stream-start 2012-09-23 16:33:35 +01:00
Stefan Sauer
f874922e1c collectpads: remove gst_collect_pads_add_pad_full
Rename gst_collect_pads_add_pad_full() to gst_collect_pads_add_pad() and fix all
invocations.
2012-09-12 21:05:44 +02:00
Mark Nauwelaerts
f12ef67f56 ext, gst: only activate in pull mode if upstream is seekable 2012-09-11 17:44:51 +02:00
Tim-Philipp Müller
aeba106878 matroskamux: extract interlaced-ness of video track from interlace-mode field
instead of the old boolean "interlaced" field.
2012-09-03 12:46:03 +01:00
Tim-Philipp Müller
9bf90f47cf video/x-xvid -> video/mpeg,mpegversion=4 2012-09-03 02:51:24 +01:00
Tim-Philipp Müller
fb0f3c17f5 text/plain + text/x-pango-markup -> text/x-raw 2012-09-02 02:50:50 +01:00
Tim-Philipp Müller
b27ac94af2 gst_message_new_duration -> gst_message_new_duration_changed 2012-09-02 01:31:53 +01:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Tim-Philipp Müller
bce47066ca video/x-dvd-subpicture -> subpicture/x-dvd 2012-08-20 23:30:38 +01:00
Sebastian Dröge
6f74b2afb7 gst: Set alignment at the correct place of GstAllocationParams 2012-08-08 17:41:31 +02:00
Sebastian Dröge
7b5925b5a4 gst: Add stream-id to stream-start events 2012-08-06 13:43:57 +02:00
Sebastian Dröge
46255d6ada matroskademux: Chain up to the parent class' query handler if no pad is provided 2012-08-06 10:59:18 +02:00
Tim-Philipp Müller
c074bfd0b9 gst_tag_list_free -> gst_tag_list_unref 2012-08-04 16:10:16 +01:00
Tim-Philipp Müller
5b4eb723b6 matroska: update for TOC API changes 2012-07-28 11:22:43 +01:00
Sebastian Dröge
0827f54b93 tag: Update for taglist/tag event API changes 2012-07-28 00:19:51 +02:00
Mark Nauwelaerts
1a46572aaa matroskademux: push mode: increase segment accuracy following seek
Conflicts:

	gst/matroska/matroska-demux.c
2012-07-24 21:15:49 +02:00
Mark Nauwelaerts
ea0729ff32 matroskademux: perform proper KEY_UNIT seek also in push mode
Conflicts:

	gst/matroska/matroska-demux.c
2012-07-24 21:15:49 +02:00
Mark Nauwelaerts
7e9dffa226 matroskademux: avoid NULL access when checking subtitle
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680388
2012-07-24 12:33:41 +02:00
Mark Nauwelaerts
d6ef204190 matroskademux: generate correct segment stream time
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680275
2012-07-23 17:38:43 +02:00
Mark Nauwelaerts
a5dfa3d689 matroskademux: proper parse recovery after seek
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680427
2012-07-23 15:45:33 +02:00
Sebastian Dröge
b4621cbb3a matroskademux: Non-update seeks should still make sure that reverse playback status is reset
Conflicts:
	gst/matroska/matroska-demux.c
2012-07-20 15:33:43 +02:00
Sebastian Dröge
9a83a0749e matroskademux: Properly initialize from_offset and from_time 2012-07-20 15:33:04 +02:00
Sebastian Dröge
b02034dda1 matroskademux: We need an index and index entry for reverse playback
Reverse playback does not work with index-less files yet.
2012-07-20 14:28:37 +02:00
Sebastian Dröge
6dbc6ad3cf matroskademux: Fix reverse playback for seeks without stop position
Conflicts:
	gst/matroska/matroska-demux.c
	gst/matroska/matroska-demux.h
2012-07-20 11:23:16 +02:00
Sebastian Dröge
42b5065cc4 matroskademux: Only take the stream_start_time into account for SET seeks
For other seeks the stream_start_time is already added to the
segment values.

Conflicts:
	gst/matroska/matroska-demux.c
2012-07-20 11:18:27 +02:00
Sebastian Dröge
9fdcad4aee matroskademux: Pass seek rate to upstream seek events in push mode
Fixes bug #679435.

Conflicts:
	gst/matroska/matroska-demux.c
2012-07-18 11:40:56 +02:00
Edward Hervey
f063e40af7 demux: Push STREAM_START event when needed 2012-07-13 13:51:48 +02:00
Mark Nauwelaerts
f1b435d1b5 update for riff field rename 2012-07-09 12:53:47 +02:00
Sebastian Dröge
aeafc3a093 gst: Implement segment-done event 2012-07-05 13:13:09 +02:00
Sebastian Dröge
2e90ff9bb9 matroskademux: Remove the TOC query handling 2012-07-05 12:35:49 +02:00
Sebastian Dröge
04e0bbef17 matroska: Update for new GstToc API
TOC support in matroskamux is disabled for now as it was broken anyway.
2012-07-05 12:28:59 +02:00
Sebastian Dröge
407bf06dc4 matroskademux: Only push the TOC event, the message is handled by the sinks 2012-07-03 17:34:10 +02:00
Tim-Philipp Müller
83cb4c63c3 matroska: update for GstToc API additions 2012-06-26 18:48:11 +01:00
Wim Taymans
e565f0d1ff matroska: set interlace-mode 2012-06-26 17:04:41 +02:00
Tim-Philipp Müller
2c04c30ec3 matroska-mux: update for GstTocSetter changes 2012-06-25 20:11:53 +01:00
Sebastian Dröge
dff2fec970 matroskademux: Return FALSE from queries if we can't answer POSITION/DURATION queries 2012-06-25 13:33:57 +02:00
Anton Belka
c3061f434b matroskademux: Return FALSE from TOC query if no TOC exists instead of an empty TOC 2012-06-25 09:47:59 +02:00
Tim-Philipp Müller
296783908c matroska: update for GstToc API changes 2012-06-24 22:51:16 +01:00
Wim Taymans
30d3dfee36 update for task api change 2012-06-20 10:33:42 +02:00
Matej Knopp
c55e492e80 matroska-demux: Send gap events for subtitle streams 2012-06-19 11:21:52 +01:00
Mark Nauwelaerts
8b1da8adb2 matroskademux: always perform full seek if seek is flushing
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677838
2012-06-11 13:12:26 +02:00
Sebastian Dröge
91ca34a0bb matroskademux: Update for TOC event API change 2012-06-06 14:17:08 +02:00
Wim Taymans
b5df4f0e62 update for tag event change 2012-06-06 13:02:12 +02:00
Tim-Philipp Müller
3986174aa9 flv, matroska: don't use GstStructure API on tag lists 2012-05-27 00:02:08 +01:00
Alessandro Decina
51c8cd805d matroskademux: increase NEWSEGMENT accuracy after seeking
demux->common.segment is populated during seek handling with the target
start/stop positions. Don't override them when sending out a NEWSEGMENT.

Conflicts:

	gst/matroska/matroska-demux.c
2012-05-24 14:31:55 +02:00
Alessandro Decina
66d95d808c matroskademux: don't discard the incoming seek segment on push based seeking
The incoming seek segment was being discarded leading to push based seeking
being potentially inaccurate.
2012-05-24 14:26:23 +02:00
Vincent Penquerc'h
93ce50f9b9 matroska: implement forward snapping keyframe seeking
Requires an index.
2012-04-30 10:37:57 +01:00
Tim-Philipp Müller
9c236b290d matroska: update for media type changes 2012-04-28 19:57:51 +01:00
Wim Taymans
fcfe6d9e28 matroskamux: set caps on srcpad
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=674219
2012-04-20 13:35:35 +02:00
Mark Nauwelaerts
67e168aef4 collectpads2: rename to collectpads 2012-04-17 15:14:27 +02:00
Mark Nauwelaerts
04b4d30f2c misc: chain up to collectpads event handler 2012-04-16 16:37:49 +02:00
Edward Hervey
4aef223db0 matroska: Check return value of GstByteReader/Writer 2012-04-12 15:49:44 +02:00
Mark Nauwelaerts
ea397f60e4 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst/flv/gstflvdemux.c
	gst/matroska/matroska-demux.c
2012-04-10 11:57:53 +02:00
Mark Nauwelaerts
dfda34ea24 matroskademux: some more segment handling tweaking 2012-04-10 11:38:08 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Mark Nauwelaerts
e90c67b3a9 matroskademux: cleanly initialize and set needed segment
Fixes #673165.
2012-04-06 16:12:36 +02:00
Sebastian Dröge
aa2cd462da gst: Update for GST_PLUGIN_DEFINE() API changes 2012-04-05 17:36:38 +02:00
Sebastian Dröge
5cdd49bf25 gst: Update versioning 2012-04-04 14:37:47 +02:00
Stefan Sauer
bc761c94c7 mkv: port toc changes to 0.11 2012-04-02 23:35:43 +02:00
Stefan Sauer
50bc831c91 Merge branch '0.10'
Conflicts:
	gst/matroska/matroska-demux.c
	gst/matroska/matroska-mux.c
	gst/matroska/matroska-read-common.c
	gst/matroska/matroska-read-common.h
2012-04-02 23:22:01 +02:00
Alexander Saprykin
113ba4ac3c matroska: add GstToc support for muxer 2012-04-02 22:11:51 +02:00
Alexander Saprykin
80f8a506be matroska: add support for GstToc in demuxer 2012-04-02 22:11:51 +02:00
Alexander Saprykin
bd7761635a matroska: add chapter support in GstMatroskaReadCommon 2012-04-02 22:11:51 +02:00
Alexander Saprykin
94c5f6dcc9 matroska: add GstToc support for muxer 2012-03-29 21:50:31 +02:00
Alexander Saprykin
76192af2ef matroska: add support for GstToc in demuxer 2012-03-29 21:50:31 +02:00
Alexander Saprykin
890b1752aa matroska: add chapter support in GstMatroskaReadCommon 2012-03-29 21:50:31 +02:00
Wim Taymans
69002aa24f update for buffer changes 2012-03-28 12:53:05 +02:00
Wim Taymans
e310ee8218 caps: improve caps handling
Avoid caps copy and leaks
2012-03-27 16:42:41 +02:00
Wim Taymans
c44cd8f55b Merge branch 'master' into 0.11
unport gdkpixbuf
not merged: https://bugzilla.gnome.org/show_bug.cgi?id=654850

Conflicts:
	docs/plugins/Makefile.am
	docs/plugins/gst-plugins-good-plugins-docs.sgml
	docs/plugins/gst-plugins-good-plugins-sections.txt
	docs/plugins/gst-plugins-good-plugins.hierarchy
	docs/plugins/inspect/plugin-avi.xml
	docs/plugins/inspect/plugin-png.xml
	ext/flac/gstflacdec.c
	ext/flac/gstflacdec.h
	ext/libpng/gstpngdec.c
	ext/libpng/gstpngenc.c
	ext/speex/gstspeexdec.c
	gst/audioparsers/gstflacparse.c
	gst/flv/gstflvmux.c
	gst/rtp/gstrtpdvdepay.c
	gst/rtp/gstrtph264depay.c
2012-03-22 11:53:24 +01:00
Wim Taymans
846f309522 update for memory api changes 2012-03-20 10:24:05 +01:00
Wim Taymans
513d480fbf don't pass random pointers to pull_range 2012-03-16 21:47:21 +01:00
Wim Taymans
ecaea36c3d update for memory api changes 2012-03-15 13:36:17 +01:00
Vincent Penquerc'h
ee1be9236f matroskademux: only unlock pad when it was locked
This fixes the mutex being unlocked too much and ending up allowing
other threads when they should not.

https://bugzilla.gnome.org/show_bug.cgi?id=671776
2012-03-12 15:20:33 +01:00
Wim Taymans
eb03b4de55 fix for caps api change 2012-03-12 11:47:35 +01:00
Wim Taymans
80dca40c35 fix for _do_simplify changes 2012-03-12 10:43:57 +01:00
Nicola Murino
3f4e4edaa2 gst: Fix some query leaks 2012-03-12 09:10:20 +01:00
Tim-Philipp Müller
cc0511f5d8 flvmux, matroskamux, qtmux: if in doubt about downstream seekability default to streaming=true
If downstream didn't answer our SEEKING query and told us
it's seekable, default to streaming=true. We couldn't do
this in 0.10 for backwards compatibility reasons, but we
can in 0.11. Play it safe.
2012-02-27 01:12:09 +00:00
Tim-Philipp Müller
f49410d698 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/audioparsers/gstmpegaudioparse.c
2012-02-27 01:00:03 +00:00
Tim-Philipp Müller
f4afccff5c matroskamux: create streamable output if downstream is not seekable
Ignore the "streamable" property setting and create streamable
output if downstream is known not to be seekable (as queried
via a SEEKABLE query).

Fixes pipelines like webmmux ! appsink creating seemingly
corrupted output if streamable has not been set to true.
2012-02-25 15:56:30 +00:00
Wim Taymans
e71c7dc8f9 matrosk: fix segment update 2012-02-17 14:38:03 +01:00
Wim Taymans
225e98d623 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacenc.c
	ext/jack/gstjackaudioclient.c
	ext/jack/gstjackaudiosink.c
	ext/jack/gstjackaudiosrc.c
	ext/pulse/plugin.c
	ext/shout2/gstshout2.c
	gst/matroska/matroska-mux.c
	gst/rtp/gstrtph264pay.c
2012-02-10 16:23:14 +01:00
Nicola Murino
32f8a04b57 matroskademux: avoid posting invalid duration for each frame
https://bugzilla.gnome.org/show_bug.cgi?id=666583
2012-02-06 10:23:51 +00:00