Nicola Murino
c4e542de69
matroskamux: Remove duration accumulation logic
...
Duration accumulation can cause rounding errors and generate wrong
duration with different buffers that share the same timestamp.
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-03-04 11:37:48 +01:00
Nicola Murino
f727762c1f
matroska: Add an helper method to get buffer timestamps
...
... and replace GST_BUFFER_TIMESTAMP that always return PTS with this method
that return PTS or DTS based on stream type.
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-03-04 11:36:24 +01:00
Nicola Murino
e676b8ba9c
matroskamux/demux: initialize dts_only
...
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-27 09:56:06 +02:00
Nicola Murino
09b8f0efc3
matroskamux: store DTS for V_MS/VFW/FOURCC streams
...
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-27 09:56:06 +02:00
Matej Knopp
fa283f407f
matroskademux: V_MS/VFW/FOURCC streams have DTS instead of PTS
...
When such stream is present demuxer should set DTS on buffers instead
of PTS. This is consistent with how VLC and libav/ffmpeg handle VFW
streams.
Sample file
https://s3.amazonaws.com/MatejK/Samples/Matroska-VFW-DTS-Only.mkv
https://bugzilla.gnome.org/show_bug.cgi?id=745192
2015-02-26 11:12:34 +02:00
Thiago Santos
7772a25fdc
matroskamux: store and write stream tags
...
Separate global from stream tags storage and write them to the
appropriate tags entry in the output
2015-02-02 20:07:13 -03:00
Jan Schmidt
4a77c8a84f
matroska: Fix seeking past the end of the file in reverse mode.
...
Snap to the end of the file when seeking past the end in reverse mode,
and also fix GST_SEEK_TYPE_END and GST_SEEK_TYPE_NONE handling
for the stop position by always seeking on a segment in stream time
2015-01-31 06:15:44 +11:00
Luis de Bethencourt
1e15808563
matroskademux: remove unnecessary check
...
No matter if gst_matroska_read_common_parse_index_cuetrack () returns that the
flow is OK or not, the check there will be a break from the switch. Removing the
check since the outcome is the same.
CID #1265762
2015-01-23 17:35:51 +00:00
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