Mark Nauwelaerts
81bf657aa7
matroskamux: fix ebml write caching with bytewriter implementation
...
Also cache a bit more during header writing.
Fixes #619273 .
2010-06-01 15:53:43 +02:00
Mark Nauwelaerts
7895ddbc38
matroskamux: use consistent debug category name for ebmlwrite
2010-06-01 15:53:37 +02:00
Mark Nauwelaerts
085e333283
matroskademux: use bytereader based GstEbmlRead as a helper
...
... rather than basing on it by inheritance.
Also use more common code for push and pull mode.
Fixes #619198 .
Fixes #611117 .
2010-06-01 15:52:12 +02:00
Mark Nauwelaerts
973c8ddfdf
matroskamux: _get_pad_template result needs no unref
2010-06-01 15:51:16 +02:00
Sebastian Dröge
0d5ae784b1
matroskademux: Don't compare running times with stream times when doing QoS
2010-06-01 11:21:30 +02:00
Philip Jägenstedt
596331c6f0
matroskademux: fix deadlock introduced by video keyframe QoS
2010-06-01 11:21:29 +02:00
Philip Jägenstedt
80926a5596
matroskademux: skip buffers before a late keyframe (QoS)
...
Before, vp8dec had no option but to decode all frames even if some/all
of them would be late. With this change, performance when keyframes are
frequent is helped a great deal. On my Thinkpad X60s, decoding a 20 s
1080p sunflower encode with keyframes every 10 frames went from taking
42 s with 5 frames shown to 21 s with 15 frames shown (still slow
enough to count by hand). When keyframes are more sparse, you will
still be able to catch up eventually, but the results won't be as
noticable.
2010-06-01 11:21:29 +02:00
Tim-Philipp Müller
97de4b217d
Revert "matroska: add temporary webm typefinder"
...
This reverts commit d148ec0ad2
.
We depend on -base git now, which has a webm typefinder in the usual
place.
2010-06-01 09:39:38 +01:00
Tim-Philipp Müller
d51576b14c
Revert "avimux, flvmux, matroskamux: don't crash if tags arrive on multiple input pads at the same time"
...
This reverts commit 6a9983cd20
.
Rely on locking done in GstTagSetter in core git.
2010-06-01 09:39:38 +01:00
Tim-Philipp Müller
a9c13cd4f7
docs: remove unnecessary videorate element from webmmux example pipeline
2010-05-28 15:14:32 +01:00
Tim-Philipp Müller
6a9983cd20
avimux, flvmux, matroskamux: don't crash if tags arrive on multiple input pads at the same time
...
This is a temporary fix for the release only.
Fixes #619533 .
2010-05-26 00:05:54 +01:00
Tim-Philipp Müller
d148ec0ad2
matroska: add temporary webm typefinder
...
Add webm typefinder just for the release, so webm works for
people whose distros don't patch gst-plugins-base as well.
We'll remove this again after the release.
2010-05-25 15:40:01 +01:00
Tim-Philipp Müller
9bdfc7254a
docs: add some pipeline examples to webmmux docs
2010-05-23 11:17:27 +01:00
Tim-Philipp Müller
a4fabfb959
matroska: fix up plugin and element descriptions a bit
2010-05-21 15:06:14 +01:00
Tim-Philipp Müller
0e12bf83a3
matroska: move webmmux into own source files
...
Makes things easier for gtk-doc.
2010-05-21 15:04:48 +01:00
Sebastian Dröge
82e4807d10
matroska: Remove the doctype enum, it's not needed anymore
2010-05-20 21:49:43 +02:00
Sebastian Dröge
6a25cd475c
webmmux: Add new webmmux element that only supports muxing of WebM
...
...and remove the doctype property from matroskamux again.
2010-05-20 21:49:43 +02:00
Philip
9c59da8601
ebmlread: rm floatcast.h include (not used)
2010-05-19 20:38:50 +02:00
Philip Jägenstedt
cbde946768
matroskamux: bump default doctype version to 2
...
In this day and age this should be safe. There's otherwise a risk people
will be creating unneccessarily big WebM files as they can't use
SimpleBlock in v1.
2010-05-19 20:38:31 +02:00
Philip Jägenstedt
9610c7f354
matroska: handle matroska and webm doctype versions equally
...
The original plan was to let WebM v1 be the same as Matroska v2 (with
extra constraints), but for simplicity it was decided to handle the
versions equally, such that e.g. SimpleBlock is only allowed in WebM v2.
2010-05-19 20:38:16 +02:00
Philip Jägenstedt
081f2d00aa
matroskademux: Verify lace size in _parse_blockgroup_or_simpleblock
...
Failure to do this for corrupt input can cause a subbuffer bigger
than the actual buffer to be created, quickly leading to segfault.
Test case:
bug_s222005751_r0.001____memcpy.webm
2010-05-19 20:35:52 +02:00
Philip Jägenstedt
c659c92091
ebml: crude hack to avoid crashing on unexpected metadata
...
The comment says this cannot happen, but it did and I don't know
why. This is not the correct fix, needs investigation. Test case:
bug_s555010094_r0.0005:0.008____IA__g_assertion_message_expr.webm
2010-05-19 20:35:28 +02:00
Philip Jägenstedt
9c1267b1a9
ebml: don't modify out str if returning an error in _read_ascii
...
This is a regression from ASCII validation changes. Test case:
bug_s66876390_r0.001____malloc_printerr.webm
2010-05-19 20:35:06 +02:00
Philip Jägenstedt
c712d28796
ebml: Validate 7-bit ASCII in gst_ebml_read_ascii
...
This was triggering an UTF-8 assertion in gst_caps_set_simple for
corrupt files with garbage as codec id. Test case:
gstreamer_error_trying_to_set_invalid_utf8_as_codec_id.webm
Old gst_ebml_read_ascii renamed to gst_ebml_read_string, also used by
gst_ebml_read_utf8. Unlike for UTF-8, failure to validate is an error,
as gst_ebml_read_ascii is used for reading doctype and codec id and we
might just as well give up early in those cases.
2010-05-19 20:33:38 +02:00
Philip Jägenstedt
d146971128
matroskademux: Ignore unexpected CodecState
...
Because GstMatroskaTrackContext *stream is set up in the first
SimpleBlock or Block, a rogue CodecState otherwise causes a segfault on
derefencing the NULL pointer. Test case:
bug_s5506167_r0.001____gst_matroska_demux_parse_blockgroup_or_simpleblock.webm
2010-05-19 20:33:35 +02:00
Philip Jägenstedt
9dc7889eea
matroskademux: Add video/webm sink caps
2010-05-19 20:32:13 +02:00
Philip Jägenstedt
ad05dfc032
matroskamux: Use SimpleBlock for WebM when possible
2010-05-19 20:32:02 +02:00
Philip Jägenstedt
1daeb26df1
matroskademux: Support "webm" DocType
2010-05-19 20:31:36 +02:00
Philip Jägenstedt
3b4759de18
matroskamux: rename matroska_version to doctype_version
2010-05-19 20:29:19 +02:00
Philip Jägenstedt
27069088db
matroskamux: Support "webm" DocType
2010-05-19 20:28:42 +02:00
Sebastian Dröge
e5e90f6035
matroskamux: Add support for On2 VP8
...
...matroskademux automatically supports it through libgstriff.
2010-05-17 17:18:24 +02:00
Sebastian Dröge
ad1c01661f
matroskamux: Write previous cluster's size
...
This is useful for backwards playback, which should be implemented
in matroskademux at some point.
2010-05-01 14:20:59 +02:00
Sebastian Dröge
1e1cf5df70
matroskademux: Set interlaced flag in the caps if the flag is set in the Matroska file
2010-05-01 14:15:49 +02:00
Sebastian Dröge
db6a3e55c6
matroskamux: Write interlaced flag if the input video content is interlaced
...
Unfortunately Matroska has no way to specify TFF and friends...
2010-05-01 14:13:24 +02:00
Tim-Philipp Müller
fa4b2938bc
matroska: init variable to avoid compiler warning on OSX
...
Fixes (bogus) "'offset' may be used uninitialized in this function"
warning on build bot (also spotted by philn).
2010-05-01 11:15:04 +01:00
Mark Nauwelaerts
a6bb8338fd
matroskademux: implement push mode seeking
2010-04-30 13:49:39 +02:00
Tim-Philipp Müller
a155deaabf
matroskademux, qtdemux: minor code cleanup in avc_level_idc_to_string()
...
Do the same with slightly fewer LOC.
2010-04-12 15:10:11 +01:00
Stefan Kost
acc742bbc9
matroska-mux: fix last commit
...
Use a local define for WAVEFORMAT_EX based on the size of the struct + 2 bytes
for the extension size.
2010-04-08 13:29:35 +03:00
Stefan Kost
0c35e0c4db
matroskamux: use riff lib more
...
Remove BITMAPINFOHEADER and use the one from riff-lib. Also remove the
WAVEFORMATEX_SIZE define and use a sizeof together with the respective struct.
Besides better code reuse this lessens the ununsed symbols in the docs.
2010-04-08 12:57:03 +03:00
Mark Nauwelaerts
dc09ace2bd
matroskademux: restrict resyncing to subtitle tracks
...
This should prevent skipping audio or video in not so well interleaved
cases.
Fixes #614460 .
2010-04-07 12:40:13 +02:00
Arun Raghavan
95c6d558f0
matroska: Export h.264 profile and level in caps
...
This replicates the code in qtdemux to export the h.264 profile and
level in the stream caps.
https://bugzilla.gnome.org/show_bug.cgi?id=614651
2010-04-02 18:51:34 +02:00
Mark Nauwelaerts
b9f569bfd0
matroskademux: push correctly sized flac header buffers
...
Fixes #614353 .
2010-03-30 16:51:36 +02:00
Mark Nauwelaerts
b1f3e4d0cf
matroskademux: only seek when in proper state
...
... and data structures can be thread-safely accessed.
See #601617 .
2010-03-26 11:45:47 +01:00
Mark Nauwelaerts
9157c262ba
matroskademux: support (pull mode) negative seek rate
2010-03-26 11:45:41 +01:00
Mark Nauwelaerts
95e38e59a2
matroskademux: track clip duration in segment
2010-03-26 11:45:39 +01:00
Mark Nauwelaerts
6ccffcf5f1
matroskademux: prefer index of video track to perform seeking
2010-03-26 11:45:36 +01:00
Benjamin Otte
3f511ec361
Add -Wwrite-strings to the configure flags
...
... and fix all warnings
2010-03-21 14:17:47 +01:00
Tim-Philipp Müller
073201b329
build: Makefile.am cleanups
...
Mostly add $(GST_BASE_CFLAGS) where it was missing, but also fix up
order of flags and libs if needed (see docs/random/moving-plugins).
2010-03-18 21:34:24 +00:00
Benjamin Otte
3342b1679e
Add -Wmissing-declarations -Wmissing-prototypes warning flags
...
And fix all the warnings.
2010-03-17 18:23:28 +01:00
Edward Hervey
869ff4263f
matroskademux: Make sure we don't send invalid newsegments
...
Fixes #611501
2010-03-02 21:20:45 +01:00