Commit graph

297 commits

Author SHA1 Message Date
René Stadler
17240ac9ec matroska: port to 0.11
Support for TAG_IMAGE and TAG_ATTACHMENT is commented out; this requires caps
on buffers which is gone from 0.11.

Segment handling in the demuxer is a bit complex; I added some FIXME comments
in places where I'm not yet sure if I ported correctly.
2011-11-26 15:01:01 +01:00
Wim Taymans
a19a4a69ae more template fixes 2011-11-04 13:12:37 +01:00
Mark Nauwelaerts
4924308d02 matroskademux: tune non-update seek handling cases
Fixes #661049.
2011-10-28 12:13:51 +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
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
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
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
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
399fc9cd1c matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_parse_header

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 17:43:01 +02:00
Debarshi Ray
bc7d61abca matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_get_seek_track
    - gst_matroska_{demux,parse}_reset_streams

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:57:30 +02:00
Debarshi Ray
17ff8a73d8 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}_found_global_tag

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:57:06 +02:00
Debarshi Ray
eeb4d19992 matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_index_seek_find
    - gst_matroska{demux,parse}_do_index_seek

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:54 +02:00
Debarshi Ray
1a6e658444 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}_tracknumber_unique

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:44 +02:00
Debarshi Ray
0aa35a6bcc 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}_decode_data

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:38 +02:00
Debarshi Ray
b437744b70 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}_get_length

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-30 07:56:21 +02:00
Debarshi Ray
5ba333bcad matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_encoding_cmp
    - gst_matroska_{demux,parse}_read_track_encodings

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-27 09:10:17 +02:00
Debarshi Ray
2589f1cd2d matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_peek_id_length_pull
    - gst_matroska_{demux,parse}_peek_id_length_push

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-27 09:09:33 +02:00
Debarshi Ray
f3820b61a1 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}_peek_adapter

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-27 09:09:10 +02:00
Mark Nauwelaerts
74e0c05ff7 matroskademux: UTF-8 subtitles may have markup
Fixes #616936.
2011-05-26 12:12:57 +02:00
Debarshi Ray
5384308c99 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}_peek_pull

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-25 20:02:40 +02:00
Debarshi Ray
72d969b360 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}_peek_bytes

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-25 10:16:31 +02:00
Debarshi Ray
f885e2721a matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_{demux,parse}_encoding_order_unique
    - gst_matroska_{demux,parse}_read_track_encoding

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-25 10:13:27 +02:00
Debarshi Ray
85036682cb matroska: refactor code common to matroskademux and matroskaparse
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
    - gst_matroska_decode_content_encodings
    - gst_matroska_decompress_data

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-24 09:53:45 +02:00
Debarshi Ray
51c7e6d252 matroska: move GstMatroska{Demux,Parse}::state to GstMatroskaReadCommon
https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-24 09:52:50 +02:00
Debarshi Ray
15ce1142ca matroska: refactor code common to matroskademux and matroskaparse
Replace the following functions with their gst_matroska_read_common_*
counterparts:
    - gst_matroska_{demux,parse}_parse_index
    - gst_matroska_{demux,parse}_parse_skip
    - gst_matroska_{demux,parse}_stream_from_num

Introduce GstMatroskaReadCommon to contain those members of
GstMatroskaDemux and GstMatroskaParse that were used by the above
functions.

https://bugzilla.gnome.org/show_bug.cgi?id=650877
2011-05-23 17:21:52 +02:00
Mark Nauwelaerts
8b910885ec matroskademux: additional lock safety
Fixes #619590.
2011-05-16 13:30:10 +02:00
Debarshi Ray
bdc464a778 matroskademux: calculate segment duration after parsing all the IDs
Since the segment duration is given in terms of the
GST_MATROSKA_ID_TIMECODESCALE we should only convert it into
nanoseconds when we are sure that any scale specified in the file has
been read.

https://bugzilla.gnome.org/show_bug.cgi?id=650258
2011-05-16 08:56:06 +02:00
Robert Swain
d596c2e926 matroska: Remove unused but set variables
GCC 4.6.x spits warnings about such variable usage.
2011-04-16 12:40:53 +01:00
David Schleef
41f3b30010 matroskademux: Better calculation of framerate
https://bugzilla.gnome.org/show_bug.cgi?id=647833
2011-04-15 12:27:57 +01:00
Tim-Philipp Müller
d3a24dc842 matroskademux: set stream-format=byte-stream on h264 caps if there's no codec data
https://bugzilla.gnome.org/show_bug.cgi?id=606662
2011-04-13 16:47:05 +01:00
Sebastian Dröge
5b977c4fec matroska: Mark tag mapping tables as static const 2011-03-16 09:39:20 +01:00
Sebastian Dröge
52aa27f997 matroskademux: Use ARTIST Matroska 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-03-16 09:39:20 +01:00
David Schleef
eab982ce60 matroskademux: Earlier debug category initialization 2011-02-17 18:05:43 -08:00
Mark Nauwelaerts
d466f07def matroskademux: avoid sorting NULL array of cluster positions 2011-02-14 17:57:33 +01:00
Mark Nauwelaerts
b70f4b6ffa matroskademux: store cluster positions provided by SeekHead
... and use those, if available, to locate a cluster rather than scanning.
2011-02-10 18:17:31 +01:00
Mark Nauwelaerts
9de84b45bc matroskademux: properly resume cluster scanning
... rather than getting offset tracking messed up, and then likely
failing a subsequent assert.
2011-02-09 16:27:00 +01:00
Mark Nauwelaerts
68fc03fd76 matroskademux: pull mode should always report seekable
... as it no longer requires an index, but can seek by scanning as well.
2011-01-24 22:24:28 +01:00
Stefan Kost
a570310cdc matroska-demux: remove unused variables when debug-logging disabled 2011-01-03 20:17:47 +02:00