Commit graph

511 commits

Author SHA1 Message Date
Mark Nauwelaerts
ebfc77da19 matroskademux: filter bogus index entries with missing block number
... to avoid contradictory information resulting in seeks sending more
downstream than needed for the corresponding segment.
2011-12-13 18:20:49 +01:00
Mark Nauwelaerts
00ed34d2eb matroskademux: cater for safer arithmetic with global start time 2011-12-13 18:20:47 +01:00
Mark Nauwelaerts
fd88096577 matroskademux: tweak final closing segment sending
... to avoid it interfering with (sparse) stream syncing.
2011-12-13 18:20:44 +01:00
Mark Nauwelaerts
581ca6ce4e matroskademux: mind (un)signed in some timestamp arithmetic
... to avoid ending up with invalid (negative) duration.
2011-12-12 15:23:50 +01:00
Tim-Philipp Müller
b8b8454bcb Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-12 09:46:27 +00:00
Tim-Philipp Müller
c363ae8254 matroskamux: stream-format=raw goes with aac caps, not mp3 caps 2011-12-08 11:00:45 +00:00
Vincent Penquerc'h
3e2b23280e matroskaparse: warn if accumulating headers after they were pushed
https://bugzilla.gnome.org/show_bug.cgi?id=665412
2011-12-03 18:44:39 +00:00
David Schleef
94b8f0b74e matroskaparse: fix parsing
Mark more parts as belonging to streamheaders.
2011-12-03 10:40:03 -08:00
Tim-Philipp Müller
337533ee84 matroska-mux: fix name of new property and the unit test
https://bugzilla.gnome.org/show_bug.cgi?id=654379
2011-12-01 13:22:42 +00:00
Sebastian Dröge
6ec601fa12 matroskademux: Don't forget SSA subtitles in last commit 2011-12-01 13:38:06 +01:00
Sebastian Dröge
588734b291 matroskademux: Only check for markup and escape if necessary for plaintext subtitles
Otherwise we break USF and ASS/SSA subtitles.
2011-12-01 13:35:54 +01:00
Sebastian Dröge
6d4a634626 matroskademux: Copy all buffer flags when creating a subtitle buffer copy after postprocessing
This also copies the caps. Otherwise we could end up pusing
the first buffer without any caps, which causes downstream
to not get notified about the caps.

Fixes bug #664892.
2011-12-01 12:47:26 +01:00
Alexey Fisher
23594b0324 matroskamux: make default framerate optional per stream
there is at least two use cases where default frame rate
should or may be disabled:
- vp8 stream with altref frame enabled. If default frame rate
is enabled, some players will missinterprete it (critical!)
- for webm container, to reduce micro overhead
- for stream with variable frame rate.

Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
2011-12-01 10:55:57 +01:00
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Tim-Philipp Müller
54a951ff15 matroskademux: initialise seen_markup_tag field on subtitle stream context 2011-11-26 16:06:59 +00:00
Tim-Philipp Müller
80be58c4f5 matroskaparse: don't leak stream headers
https://bugzilla.gnome.org/show_bug.cgi?id=664548
2011-11-23 01:00:14 +00:00
René Stadler
2a139a28d9 matroskamux: fix regression causing malformed files
This was caused by me in 1b213d. It seems I was too focused on 0.11 when I did
this and tested the wrong branch.

The problem was reported by Alexey Fisher.
2011-11-07 12:00:12 +01:00
Mark Nauwelaerts
00c8ae733d matroskamux: do not use unoffical V_MJPEG codec id
... but as not spec'ed especially, consider it a VfW compatibility case.

Fixes #659837.
2011-10-31 15:47:14 +01:00
Mark Nauwelaerts
4924308d02 matroskademux: tune non-update seek handling cases
Fixes #661049.
2011-10-28 12:13:51 +02:00
René Stadler
1b213d905a matroska: refactor ebml-write to be more 0.11 friendly
Switching to a more 0.11-friendly pattern, where getting the buffer's data
pointer and setting the size many times is less natural. This is of course in
preparation to the upcoming port of the plugin.
2011-10-21 23:17:16 +02:00
René Stadler
003a14e15a matroska: remove stale floatcast include
GDOUBLE_TO_BE was moved to core a long time ago.
2011-10-21 22:41:57 +02:00
René Stadler
6fc85e6c9d matroskamux: fix possible crash with malformed dirac codec_data
Since size is unsigned, we need to safeguard against wrapping below zero.
2011-10-21 22:41:57 +02:00
René Stadler
5baca05ec3 ebml: small correction to previous commit
Signal a short read with UNEXPECTED, exactly like the peek_bytes function.
2011-10-21 10:03:14 +02:00
Edward Hervey
4b5f8ff8d1 ebml: Fix push-based behaviour
The 'peek' method was completely wrong (!?)
2011-10-19 13:10:47 +02:00
René Stadler
26d0812543 matroskamux: fix segment handling, so we actually use running time
gst_matroska_mux_best_pad adjusts the buffer timestamp to running time using
the segment stored in the pad's collect data. However, the event handler didn't
pass the newsegment event on to collectpads' handler, so this segment was never
updated at all.

Re-fixes bug #432612.
2011-10-11 14:58:43 +02:00
Tim-Philipp Müller
ad245a0dc2 matroska-demux: don't leak audio codec_data buffer 2011-10-10 19:02:58 +01:00
Vincent Penquerc'h
be82dd8e3a matroskademux: improve segment handling with non-zero starting timestamp
... as well as related items, such as seeking and position reporting.

https://bugzilla.gnome.org/show_bug.cgi?id=659808
2011-10-05 14:34:55 +02:00
Vincent Penquerc'h
671b56f9da matroskademux: ensure minimal alignment for audio/x-raw-* buffers
Since matroskademux will attempt to push unaligned buffers,
downstream might have trouble with those, especially if downstream
uses ORC, such as audioconvert.

Ensure we push buffers aligned to the basic type at least for
those raw buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=659798
2011-09-28 12:49:42 +02:00
Branko Subasic
11b0a0effc matroskademux: Avoid sending EOS when in paused state
Changed the ebml reader's gst_ebml_peek_id_length() function so
that it returns the actual reason for why the peek failed, instead
of (almost) always returning GST_FLOW_UNEXPECTED. This prevents
the pulling task from sending EOS when doing a flushing seek.
2011-09-16 15:18:48 +02:00
Vincent Penquerc'h
26ae233035 matroskademux: fix stuttering A/V
Someone got had by implicit promotion to unsigned in ops with
a signed and an unsigned value.

https://bugzilla.gnome.org/show_bug.cgi?id=659153
2011-09-15 17:29:00 +01:00
David Svensson Fors
682ae32f6f matroskademux: configurable timestamp gap handling
matroskademux performs segment tricks to skip gaps in streams,
notably at start for non 0 based files.  There may however be
cases when full presentation (including intermediate gaps) is
desired, so a property allows to configure as of which gap
to act (or not at all).

API: GstMatroskaDemux::max-gap-time

Fixes #659009.
2011-09-14 14:49:36 +02:00
Mark Nauwelaerts
ef1ad78eee matroskademux: tweak gap handling
... so as to avoid buffers before and after gap to have identical running time.
2011-09-08 15:10:43 +02:00
Andoni Morales Alastruey
782fc78d57 matroskamux: handle GstForceKeyUnit event
... by starting a new cluster after forwarding event.

Fixes #644154.
2011-09-07 14:51:56 +02:00
Mark Nauwelaerts
aa0ae490d0 matroskamux: make default duration check less sensitive
Frame duration might vary for 1 usecond, in this case matroskamux
decides to create BLOCKGROUP instead of SIMPLEBLOCK.

Convert duration to timecodescale which is (typically) less precise, and
then also allow the difference of 1/-1 to arrange for less sensitive check.

Based on patch by Alexey Fisher <bug-track@fisher-privat.net>

Fixes #653080.
2011-09-06 15:09:13 +02:00
Vincent Penquerc'h
e032d26674 matroskademux: ensure no-more-pads is always emitted
In particular, do so even if failing to read while prerolling,
such as when reading from a partial file (eg, while it is being
downloaded).

This fixes a wedge in playbin2.

https://bugzilla.gnome.org/show_bug.cgi?id=651965
2011-08-18 11:30:07 +02:00
Jan Schmidt
1438bf26ac matroska: Register new debug category
Register the matroskareadcommon debug category when the
plugin is loaded to avoid assertion output when debug is turned on.
2011-08-03 22:52:07 +10:00
Alexey Fisher
69c14012c9 matroskademux: fix pixel-aspect-ratio if header has only one display variable
Current matroska demux calculates the pixel aspect ratio only if both
DisplayHeight and DisplayWidth are set, but it is legal to use only
one variable if the other is equal to PixelWidth or PixelHeight, at
least the mkclean utility is doing that. So this makse mkcleaned
files play correctly.

https://bugzilla.gnome.org/show_bug.cgi?id=654744
2011-07-17 00:11:03 +01:00
Alexey Fisher
a2e0bda3b5 matroskademux: handle blocks with duration=0
Some video frames, for example alt-ref frame in VP8, will be
never displayed. This is why it has duration=0.

This patch allow to use this duration.

Bug: 654175
Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
2011-07-08 09:58:29 +02:00
Branko Subasic
e385108f84 matroskademux: avoid looping when searching for clusters
Fixes some bugs that results in the demuxer looping when seaching
for clusters in non-finalized files.

https://bugzilla.gnome.org/show_bug.cgi?id=652195
2011-07-01 17:19:40 +01:00
Debarshi Ray
c8619aa0fd matroskaparse: fix reference counting of parse->streamheader
https://bugzilla.gnome.org/show_bug.cgi?id=652286

Signed-off-by: David Schleef <ds@schleef.org>
2011-06-29 23:56:53 -07:00
Stefan Kost
b5d5fa2bb9 matroska: add missing stdio include for sscanf 2011-06-14 01:07:57 +03:00
Debarshi Ray
9175a903fb matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_chapters

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:54:23 +02:00
Debarshi Ray
05778b85d5 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_attachments

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:43:12 +02:00
Debarshi Ray
d8a8326d7c matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_attached_file

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:43:04 +02:00
Debarshi Ray
366f064e73 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_info

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:55 +02:00
Debarshi Ray
2d282a6c79 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_metadata

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:46 +02:00
Debarshi Ray
493e197588 matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_metadata_id_tag

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:42:33 +02:00
Debarshi Ray
febfcce0fd matroska: refactor code common to matroskademux and matroskaparse
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_metadata_id_simple_tag

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-06-06 14:41:51 +02:00
Debarshi Ray
25e0da562b matroskaparse: Use ARTIST tag instead of AUTHOR for GST_TAG_ARTIST
AUTHOR only existed in an old version of the spec and ARTIST is
the new replacement for this. We are still reading both to still
be compatible with old files.

Fixes bug #644875.
2011-06-04 13:43:27 -07:00
David Schleef
0672232b26 matroskamux: For streaming files, push tags first 2011-06-01 17:20:44 -07:00